Поля Crystal Reports не изменяются во время выполнения в Visual Studio 2010 - PullRequest
0 голосов
/ 05 января 2012

У меня Visual Studio 2010 Enterprise. Вот мой код, который отлично работает для всех других вещей, но не меняет поля во время выполнения. Хотя значение objRpt.PrintOptions.PageMargins.leftMargin, rightmargin и т. Д. Изменяется, оно не отражается ни в CyrstalReportViewer, ни в Hardcopy выходных данных.

Вот код:

CrystalReport1 objRpt;
objRpt = new CrystalReport1();
adepter.Fill(Ds, "Customer");
objRpt.SetDataSource(Ds);
MessageBox.Show("Left margin:"+objRpt.PrintOptions.PageMargins.leftMargin.ToString()); //Here it shows 1440 

objRpt.PrintOptions.PrinterName = "HP LaserJet 1020";
PageMargins margins = objRpt.PrintOptions.PageMargins;

margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
objRpt.PrintOptions.ApplyPageMargins(margins);
MessageBox.Show("Left margin:"+objRpt.PrintOptions.PageMargins.leftMargin.ToString()); 

//Here it shows 350 BUT no use.

Мне удалось установить поля во время разработки, щелкнув правой кнопкой мыши Отчет> Дизайн> Параметры страницы. Если я установлю здесь, поля работают отлично, и они отражаются как в программе просмотра отчетов, так и в печатном виде. Но этого не происходит, когда я использую приведенный выше код.

1 Ответ

0 голосов
/ 27 апреля 2012

После небольшой копки кажется, что настройки полей Crystal Reports перезаписываются настройками принтера по умолчанию при использовании Crystal Reports Viewer (по крайней мере, для Crystal Reports Viewer в форме окна и нажатием кнопки «Печать» на начало просмотра отчетов). Возможным обходным путем для этого является использование собственной кнопки печати и вызов PrintToPrinter, который учитывает ваши собственные настройки полей. Другие обходные пути включают в себя: - Редактирование отчета с необходимым пробелом для имитации поля - Перехватите вызов печати и затем отрегулируйте поля (я не могу вспомнить название вызова функции сверху моей головы) - Установите принтер по умолчанию для отчета «Нет принтера». При выборе принтера из средства просмотра отчетов он должен затем применить настройки принтера по умолчанию.

Я столкнулся с этой проблемой при работе с приложением для распечатки удостоверений личности. Вызов PrintToPrinter () не приведет к увеличению поля в картах, что и нужно. Запустив его в средстве просмотра отчетов и нажав кнопку печати, вы заставите его использовать настройки принтера по умолчанию - с полем 0,17 дюйма или около того. В результате были получены карты, которые печатались бы неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...