ho usato vb.net ma ciò che ti deve interessare è la logica
codice:
Private Sub cmdstampa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdstampa.Click
If txt1.Text = "" Or ComboBox1.Text = "" Then
MsgBox("e' indispensabile selezionare un " _
+ "condominio ed un mese prima di procedere alla stampa " _
+ "delle bollette", MsgBoxStyle.Information, "ATTENZIONE")
Else
Dim tabella As New DataTable
Dim numerobolletta As Int64 = bn()
Dim iriga, j As Int32
Dim anno As String = CStr(Year(Now()))
CondName()
Importa()
DS.Tables.Item(0).TableName = "lamia"
DS.DataSetName = "myds"
tabella = DS.Tables.Item(0)
modbol1.SetParameterValue("anno", anno)
For iriga = 0 To tabella.Rows.Count - 1
modbol1.SetParameterValue("numbol", numerobolletta)
modbol1.SetParameterValue("mese", ComboBox1.Text)
modbol1.SetParameterValue("importo", tabella.Rows(iriga).Item(9))
modbol1.SetParameterValue("nome", tabella.Rows(iriga).Item(0))
modbol1.SetParameterValue("via", nomec)
For j = 1 To 8
If tabella.Columns(j).ColumnName = "F" & j + 1 Then
modbol1.SetParameterValue("sp" & j, " ")
Else
modbol1.SetParameterValue("sp" & j, tabella.Columns(j).ColumnName)
End If
Next
For j = 1 To 8
If Not IsDBNull(tabella.Rows(iriga).Item(j)) Then
modbol1.SetParameterValue("i" & j, tabella.Rows(iriga).Item(j))
End If
Next
'modbol1.PrintToPrinter(1, True, 1, 1)
numerobolletta = numerobolletta + 1
'Next
'impostazione seconda bolletta del foglio
If iriga < tabella.Rows.Count - 1 Then
iriga = iriga + 1
modbol1.SetParameterValue("numbol2", numerobolletta)
modbol1.SetParameterValue("importo2", tabella.Rows(iriga).Item(9))
modbol1.SetParameterValue("nome2", tabella.Rows(iriga).Item(0))
For j = 1 To 8
If Not IsDBNull(tabella.Rows(iriga).Item(j)) Then
modbol1.SetParameterValue("i" & j & "2", tabella.Rows(iriga).Item(j))
End If
Next
Else
modbol1.SetParameterValue("numbol2", 0)
modbol1.SetParameterValue("importo2", 0)
modbol1.SetParameterValue("nome2", " ")
For j = 1 To 8
If Not IsDBNull(tabella.Rows(iriga).Item(j)) Then
modbol1.SetParameterValue("i" & j & "2", 0)
End If
Next
End If
modbol1.PrintOptions.PaperOrientation = 2
modbol1.PrintOptions.PaperSize = 9
modbol1.PrintToPrinter(1, False, 1, 1)
numerobolletta = numerobolletta + 1
Next
aggiornabn(numerobolletta - 1)
Me.Close()
End If
è piu semplice di ciò che sembra focalizzati su
modbol1.setparametervalue("nomecampoparametro","va lore che gli passi")