2

私のMVC3かみそりアプリケーションでは、レポートに次のコードを使用しました

コントローラー

ReportViewer rv = new Microsoft.Reporting.WebForms.ReportViewer();
    rv.ProcessingMode = ProcessingMode.Local;
    rv.LocalReport.ReportPath = Server.MapPath("~/Reports/TestReport.rdlc");
    rv.LocalReport.Refresh();

    byte[] streamBytes = null;
    string mimeType = "";
    string encoding = "";
    string filenameExtension = "";
    string[] streamids = null;
    Warning[] warnings = null;

    streamBytes = rv.LocalReport.Render("RDLC", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

    return File(streamBytes, mimeType, "TestReport.rdlc");

ASPXビュー

<div>
        <script runat="server">
            private void Page_Load(object sender, System.EventArgs e)
            {
                ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/TestReport.rdlc");
                ReportViewer1.LocalReport.Refresh();
            }
        </script>
        <form id="Form1" runat="server" method="get" action="/Pag1/File">
        <asp:ScriptManager ID="ScriptManager1" runat="server">          
        </asp:ScriptManager>
        <rsweb:reportviewer id="ReportViewer1" runat="server" height="500" width="500" AsyncRendering="false"></rsweb:reportviewer>
        </form>        
    </div>

ここでは、PDFがpdfviewerでそれを開く必要があるため、結果が得られました。したいだけですdisplay the report in viewr。私はMVC3を初めて使用します。誰かが知っているなら共有してください

上記のコードのリファレンスはこちら

4

2 に答える 2

1

私のサイトの 1 つでレポートを生成するために使用する ActionMethod の例を次に示します。

    public ActionResult WeeklyAisleReport(DateTime start, DateTime end)
    {
        var range = new DateRange(start, end);
        var records = _repository.Select(range, "");
        var formattedRecords = AisleProductivityRecord.Generate(records).ToList();

        var localReport = new LocalReport
        {
            ReportPath =
                Server.MapPath("~/Content/Reports/PTLWeeklyProductivity.rdlc")
        };


        var pickRecords = new ReportDataSource("PickRecords",formattedRecords);

        localReport.DataSources.Add(pickRecords);


        const string ReportType = "PDF";
        string mimeType;
        string encoding;
        string fileNameExtension;


        Warning[] warnings;
        string[] streams;

        //Render the report
        byte[] renderedBytes = localReport.Render(
            ReportType,
            null, //deviceInfo,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
        Response.AddHeader("content-disposition",
                           "attachment; filename=WeeklyAisleReport-" + start.ToString("yyyy_MM_dd") + "." +
                           fileNameExtension);
        return File(renderedBytes, mimeType);
    }

ビューに関しては、MVC アプリケーションで WebForms タグ (、など) を使用することはできません。PDF を生成する ActionMethod にポストするフォームを作成する必要があります。

Razor ビュー ファイルは次のようになります (例として私の方法を使用)。

   @using (Html.BeginForm("WeeklyAisleReport", "PTL"))
   {
       @Html.TextBox("start")
       @Html.TextBox("end")
       <input type="submit" value="View Report"/>
   }
于 2013-02-14T01:44:59.757 に答える