2012-06-19 3 views
3

Я использую технику LocalReport.Render для печати отчета из формы приложения Windows, как описано здесь: http://msdn.microsoft.com/en-us/library/ms252172.aspxтолько страница одна печать

Он работает, но только первые отпечатки страниц. Я не использую ни один верхний или нижний колонтитул на странице отчета, а только тело. Никаких дочерних отношений, никаких подписок. Просто очень простой список объектов данных.

Я делаю что-то вроде этого, чтобы загрузить источник данных в отчете:

List<mysimpledataobject> MyData = new List<mysimpledataobject>(); 
... add 10 items to the list ... 
report.DataSources.Add(new ReportDataSource("Sales", MyData)); 

только делает первую страницу. Я подумал, что, возможно, все страницы были представлены в списке потоков, и, возможно, только первая страница на самом деле отправляется на принтер, но когда я отлаживаю и просматриваю список потоков, я вижу только один элемент. Поток должен иметь один элемент в списке потоков для каждой страницы.

Порция визуализации кода выглядит следующим образом:

report.Render("Image", deviceInfo, CreateStream, out warnings); 

foreach (Stream stream in m_streams) 
    stream.Position = 0; 

Список m_streams только 1 пункт в нем, так что только одна страница выводится на печать.

Я также пробовал передавать DataTable и Array бизнес-объектов в качестве источника данных, но это тоже не работает.

Любые идеи будут оценены. Благодарю.

+0

Некоторые мысли: вы пробовали рендеринга в PDF еще? И, возможно, измените принтер, возможно, попробуйте что-то вроде PdfWriter? – Jeroen

ответ

1

Если вы хотите сделать все страницы вашего отчета, вам необходимо установить для StartPage установки в DeviceInfo.

Значение по умолчанию StartPage и EndPage: . Вот почему вы всегда делаете только первую страницу.

Пример:

string mime, encoding, fileNameExtension; 
string[] streams; 
Warning[] warnings; 
byte[] bytes = report.Render("IMAGE", @"<DeviceInfo><OutputFormat>TIFF</OutputFormat><StartPage>0</StartPage></DeviceInfo>", out mime, out encoding, out fileNameExtension, out streams, out warnings); 
Смежные вопросы