私はプログラムを作成しています: datagridview でいくつかの行を選択した後、1 つ以上が選択されたかどうかを確認します。1 つの場合、1 ページにレポートを 2 部印刷します (1 つのレポート = 半ページ)。それ以上の場合: 1 ページに 2 つのレポートを印刷し、必要なページだけ印刷します。問題は、私のコードが同じレポートの 4531456453 ページ (1 行目と 2 行目) を出力することです:/
コードの基本的な例:
yPos = 0
Do While tmpI < mydatagridview.SelectedRows.Count - 1
For Each selectedrow As DataGridViewRow In mydatagridview.SelectedRows
Dim data as string = mydatagridview.SelectedRows(selectedrow.index).cells(1).value
Dim data2 as string = mydatagridview.SelectedRows(selectedrow.index).cells(12).value
e.graphics.drawstring(data, drawfont, (e.graphics.pagebound.width/2-e.graphics.measurestring(data, drawfont).width/2), 25+yPos)
e.graphics.drawstring(data2, drawfont, (e.graphics.pagebound.width/2-e.graphics.measurestring(data2, drawfont).width/2), 50+yPos)
yPos += e.pagebounds.height/2
tmpI += 1
If yPos > e.pagebound.height/2 Then
h = 0
e.HasMorePages = true
Exit Sub
End If
Next selecedrow
Loop
現時点では、前に述べたように、インデックス 0 と 1 の SelectedRows から data と data2 を持つ無限の量のページを印刷します。