1

我在 c# 中使用 microsoft 报告查看器生成了报告。

为了在横向视图中打印报告,我使用了代码:

reportViewer1.PrinterSettings.DefaultPageSettings.Landscape = true;

我将这段代码放在Form LoadEvent 和 Event 上reportviewer load,如下所示:

private void BillPDF_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'dsBillPDF.totalBill' table. You can move, or remove it, as needed.
            this.totalBillTableAdapter.Fill(this.dsBillPDF.totalBill,AllBill.fromDate);
            reportViewer1.PrinterSettings.DefaultPageSettings.Landscape = true;
            this.reportViewer1.RefreshReport();
        }

        private void reportViewer1_Load(object sender, EventArgs e)
        {
            reportViewer1.PrinterSettings.DefaultPageSettings.Landscape = true;
        }

不幸的是,这段代码不起作用。

的用法reportViewer1.PrinterSettings.DefaultPageSettings.Landscape = true;是错误的吗?或者我写错了位置。

请帮我。

4

3 回答 3

7

乍一看,您的代码看起来不错。我发现每次更改报告方向时都需要刷新报告。根据经验,我在使用 ReportViewer 进行景观美化时遇到了同样的问题。您需要更改宽度和高度设置,使宽度大于高度。

选择报告属性

此屏幕截图的白色部分是我报告的底部。现在只需右键单击并选择报告页脚下方的“报告属性... ”(空白处的任何位置)。

右键点击

报告属性

在这里,您还可以将方向设置为横向(但您是通过代码完成的,所以这很好)。确保您的打印机支持纸张尺寸格式(在我们的例子中为 Letter)...例如,某些打印机不会处理“自定义”格式

如果宽度仍然小于高度,请手动调整它,您应该能够解决您的问题。

边距也很重要。每当您打印和/或导出为 PDF 时,您可能希望使用边距。每当我这样做时,ReportViewer 都会给我带来一些问题。

报告属性

如果所有这些都失败了,请尝试像这样拉伸您的报告并重复属性程序: 报告尺设置为 27 厘米

我的 .rdlc 上的报告标尺设置为 27 厘米左右。

我的代码片段(VB.NET)

    sReportDataSource.Name = "rptBillDataset" 'Dataset name associated to the report
    sReportDataSource.Value = ds.dsBillDetail 'Dataset value
    rv.rvRdlc.LocalReport.DataSources.Add(sReportDataSource)
    rv.rvRdlc.PrinterSettings.DefaultPageSettings.Landscape = True
    rv.rvRdlc.RefreshReport()
    rv.Show()
于 2013-05-07T12:31:46.800 回答
0

System.Drawing.Printing.PageSettings ps = new System.Drawing.Printing.PageSettings();

ps.风景=真;

this.reportViewer1.SetPageSettings(ps);

在 VS 2010 Pro 中为我工作

于 2014-06-21T17:58:56.063 回答
0

如果您这样做,您将获得当前页面设置而不是默认页面设置

System.Drawing.Printing.PageSettings ps = reportViewer1.GetPageSettings();
ps.Landscape = true;
reportViewer1.SetPageSettings(ps);
于 2015-03-23T23:41:56.300 回答