AhmedYehiaK Ответов: 1

Выпуск предварительного просмотра печати на ReportViewer 2010 C#


Всем привет

У меня есть средство просмотра отчетов, которое программно отображает отчет rdlc, когда пользователь нажимает кнопку
в случае кнопки я делаю следующее:

System.Drawing.Printing.PageSettings pg = new System.Drawing.Printing.PageSettings();
pg.Landscape = true;
pg.Margins.Top = 2;
pg.Margins.Bottom = 2;
pg.Margins.Left = 40;
pg.Margins.Right = 2;
system.Drawing.Printing.PaperSize size = new PaperSize();
size.RawKind = (int)PaperKind.A4Extra;
pg.PaperSize = size;
reportViewer1.SetPageSettings(pg);

DataTable dt = ReceiptsManager.GetAvowelsReportDT(<Parameters>);

if (dt != null && dt.Rows.Count > 0)
{
  reportViewer1.LocalReport.ReportPath = <RDLC Report Path>

  ReportDataSource RDS = new ReportDataSource();
  RDS.Name = <RDLC Report Dataset Name>;
  RDS.Value = dt;
  reportViewer1.LocalReport.DataSources.Clear();
  reportViewer1.LocalReport.DataSources.Add(RDS);

  this.reportViewer1.RefreshReport();
}


отчет отображается хорошо, но когда я нажимаю на кнопку Режим предварительного просмотра кнопка просмотрщик отобразил маленький черный ящик без какого либо содержимого и когда я нажимаю правую кнопку мыши и выбираю pagesetup я вижу свои предопределенные настройки а когда я нажимаю OK отображается отчет

Поэтому я хочу решить эту проблему и когда пользователь нажимает кнопку Режим предварительного просмотра отчет отображается с предопределенными настройками

Заранее спасибо

mgoad99

У меня не было точно такой же проблемы, как вы описали, но я знаю, что пользователи должны установить активный элемент управления x для печати из средства просмотра отчетов (так же, как если бы они запускали отчет непосредственно в диспетчере отчетов). Как правило, при первой попытке печати пользователь получает сообщение с просьбой установить элемент управления. После того, как они установили его, они больше не получают этого сообщения. Может быть, есть проблема с элементом управления, который дает вашим пользователям маленький черный ящик вместо сообщения об установке?

AhmedYehiaK

как я уже упоминал ранее после того как мы видим маленький черный ящик я нажимаю правую кнопку мыши и выбираю PageSetup затем я вижу все настройки которые я программно установил затем нажимаю OK

затем маленький черный ящик исчез, и отчет хорошо отобразился

Так что я тоже могу посмотреть и распечатать отчет но вся проблема в том что я упоминаю

1 Ответов

Рейтинг:
2

mohamad qodosi

привет , у меня была одна и та же проблема в течение долгого времени, и в конце концов я понял это.

размер бумаги имеет некоторые значения, такие как высота и ширина.
когда вы создаете новый объект формата PaperSize, эти значения равны нулю, а когда вы устанавливаете бумагу формата A4, эти значения снова равны нулю. таким образом, ваш размер бумаги не определен, и как только вы откроете pagesetup и нажмете кнопку ОК, размер бумаги будет установлен на свои истинные значения.

поэтому вам придется устанавливать их вручную. я использовал стандартный размер бумаги pages и изменил его вместо того, чтобы создавать новый объект, и моя программа работала правильно.

так что просто замените свой код :

system.Drawing.Printing.PaperSize size = new PaperSize();

и поставь вот это:
system.Drawing.Printing.PaperSize size = pg.PaperSize;


в моем случае это решает проблему