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")