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