0

私は C# からレポートを動的に作成し、正常に完了しました。問題は、右に配置されていることであり、中央に配置したいと考えています。どうやってするか ?

私のコードはここにあります:

 private void ShowReport()
 {
      ReportDataSource rds = new ReportDataSource("MyData", m_dataSet.Tables[0]);
      this.reportViewer1.LocalReport.DataSources.Add(rds);

      this.reportViewer1.RefreshReport();

      this.reportViewer1.LocalReport.LoadReportDefinition(m_rdl);
      reportViewer1.LocalReport.GetDefaultPageSettings().Margins.Right = 125; //Has no effect 
      this.reportViewer1.RefreshReport();   
 }

私も試しました:

 public static Rdl.Report CreateReport(string groupBy)
        {
            Rdl.Report report = new Rdl.Report();
            try
            {
                report.Items = new object[] 
                {
                    CreateDataSources(), 
                    CreateHeader(groupBy),  
                    CreateBody(groupBy), 
                    CreateDataSets(), 
                    "9.5in", 
                    "1.5in",
                };
                report.ItemsElementName = new Rdl.ItemsChoiceType37[]
                { 
                    Rdl.ItemsChoiceType37.DataSources, 
                    Rdl.ItemsChoiceType37.PageHeader,
                    Rdl.ItemsChoiceType37.Body,
                    Rdl.ItemsChoiceType37.DataSets,
                    Rdl.ItemsChoiceType37.Width,
                    Rdl.ItemsChoiceType37.LeftMargin,

                };
            }
            catch (Exception ex) { }
            return report;
        }

reportviewer の配置を設定する必要はないことに注意してください。reportviewer でレポートの配置を設定する必要があります。

4

2 に答える 2

1

ドキュメントと作業領域のサイズを計算しなくても、ReportViewer の次のプロパティでうまくいくことがわかりました。

このコードをフォームの Initialization メソッドに配置します。

ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
ReportViewer1.ZoomMode = ZoomMode.PageWidth;

これにより、ドキュメントが中央に配置され、フォームのサイズにうまく収まります。

于 2020-08-03T21:33:15.770 に答える