如何设置REPORTVIEWER控件工具条显示中文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置REPORTVIEWER控件工具条显示中文相关的知识,希望对你有一定的参考价值。

参考技术A 一、修改reportviewer控件的Dock属性为Fill就可以了

二、Dock属性介绍:
Control.Dock 属性
获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。

Dock取值说明
1、None 该控件未停靠。
2、Top 该控件的上边缘停靠在其包含控件的顶端。
3、Bottom 该控件的下边缘停靠在其包含控件的底部。
4、Left 该控件的左边缘停靠在其包含控件的左边缘。
5、Right 该控件的右边缘停靠在其包含控件的右边缘。
6、Fill 控件的各个边缘分别停靠在其包含控件的各个边缘,并且适当调整大小。

如何通过 ReportViewer 控件从 s-s-rS 报告中导出到 Excel

【中文标题】如何通过 ReportViewer 控件从 s-s-rS 报告中导出到 Excel【英文标题】:How to export to excel from a report on s-s-rS via ReportViewer control 【发布时间】:2015-10-01 14:53:07 【问题描述】:

也许有人问过这个问题,如果是,请随时为我指出正确的方向。

我有一份关于 s-s-rS 的报告,我的数据集/数据源当然在那里。数据集是一个动态查询。

这个想法是通过 Excel 导出报告的结果。

我的 Aspx 中有一个 Web 服务器控件 ReportViewer。有谁知道是否有导出到 excel 的方法以及如何在我的代码中对其进行编码。

如果您需要更多信息,请告诉我,我会发布。

编辑: 检查信息和其他链接我做了以下方法。

private void CreateEXCEL(Dictionary<string, string> parametros, string nombreReporte)
    
        // Variables
        Warning[] warnings;
        string[] streamIds;
        string mimeType = string.Empty;
        string encoding = string.Empty;
        string extension = string.Empty;

        List<ReportParameter> parameters = new List<ReportParameter>();

        foreach (var d in parametros)
        
            parameters.Add(new ReportParameter(d.Key, d.Value));
        



        // Setup the report viewer object and get the array of bytes
        MyReportViewer.ProcessingMode = ProcessingMode.Remote;
        MyReportViewer.ServerReport.ReportPath = nombreReporte;

        MyReportViewer.ServerReport.SetParameters(parameters);

        byte[] bytes = MyReportViewer.ServerReport.Render("EXCEL", null, out mimeType, out encoding, out extension, out streamIds, out warnings);


        // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
        Response.Buffer = true;
        Response.Clear();
        Response.ContentType = mimeType;
        Response.AddHeader("content-disposition", "attachment; filename=" + nombreReporte + "." + extension);
        Response.BinaryWrite(bytes); // create the file
        Response.Flush(); // send it to the client to download

    

但是当我执行我的网络应用程序并调用此方法时,我有以下错误: 服务器犯了协议违规Section=ResponseStatusLine

有人遇到过这样的问题吗?

【问题讨论】:

这看起来像你要找的东西:***.com/questions/12241736/… 【参考方案1】:

你可以使用.Render方法:

LocalReport.Render ServerReport.Render

MSDN 提供的示例适用于 Excel,但您可以对 PDF 和任何其他支持的格式使用相同的方法。

请注意,也可以使用ReportViewer 的内置功能手动导出到 Excel/PDF。

【讨论】:

【参考方案2】:

嗨,伙计,如果您的列在数据集中是动态的,那么 s-s-rS 中就没有这样的选项。但是我可以给你一个提示,比如当你编辑和 s-s-rS 时它会喜欢 XML。

记住这一点,您可以从代码中将数据集的整个结构构建为 RDLC 文件。

具体来说,您需要在运行时生成 RDLC 文件。使用一些常见的模板并将模板占位符替换为列值的

我个人向您保证,导出数据不会花费太多时间。但是你应该付出一些努力来实现这一点。 我根据我过去的经验告诉这个解决方案。我做过这样的事情:)

如果您需要更多信息,请随时询问。但不要问代码。

【讨论】:

【参考方案3】:

服务器违反了协议 Section=ResponseStatusLine

这是一个可能有帮助的答案: https://***.com/a/4289266/3854195

【讨论】:

以上是关于如何设置REPORTVIEWER控件工具条显示中文的主要内容,如果未能解决你的问题,请参考以下文章

c#的reportViewer控件

C#,reportviewer控件,怎么填充整个窗口

VB.NET - 打印 RDLC 报告而不显示 ReportViewer 控件

C# form程序中reportviewer控件怎么使用?

ReportViewer 报表使用整理

求教 reportViewer控件的显示数据问题