Member 12332478 Ответов: 2

Как распечатать многостраничный


Мне нужно распечатать что-то из datagrid на первую страницу и те же данные, но с большим количеством файлов на другую страницу ( цена, например, видна только на второй странице ).

Еще одна проблема заключается в том, как решить, когда я печатаю laine из datagrid и есть больше строк, чем одна страница, как перейти на следующую страницу.

Спасибо

Что я уже пробовал:

Private Sub printDocument2_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
        
             If ComboBox1.SelectedIndex = 1 Then
            a = 0
            Do While a < 2
                e.Graphics.DrawRectangle(p, 38, 400, 765, 30)
                e.HasMorePages = True
                a = a + 1

                e.Graphics.DrawRectangle(p, 38, 400, 765, 100)
                Return
            Loop
            e.HasMorePages = False
        ElseIf ComboBox1.SelectedIndex = 0 Then

2 Ответов

Рейтинг:
7

Maciej Los

С помощью оператор возврата[^ внутри Do While .. Loop цикл вызывает возврат к вызывающей процедуре.

Это довольно легко проверить:

Sub Main
	DoSomething()
End Sub

Sub DoSomething()
	Dim i As Integer = 0
	Do While i < 100
		Console.WriteLine("Current value of counter is: {0}", i)
		i+=1
		Return
	Loop
End Sub


Результат:
Current value of counter is: 0


Перейдите по ссылке, чтобы получить более подробную информацию.


Рейтинг:
2

OriginalGriff

Сохраните номер страницы уровня класса и проверьте это в своем методе.
Установите HasMorePages в значение true, если вы только что не напечатали последнюю страницу, и увеличивайте количество страниц каждый раз, когда она вызывается. Возможно, вы также захотите сохранить переменную "следующая строка", чтобы помочь вам с многостраничной печатью DataGrid.