13

ASP.NET MVC プロジェクト内で RDLC レポートを HTML でレンダリングしたいと考えています。

この記事の助けを借りて、RDLC レポートを PDF、Excel、および TIFF 画像でレンダリングするプロトタイプを作成することに成功しました。しかし、HTML が で利用可能なデフォルトのフォーマットの 1 つでないことに驚きましたLocalReport.Render()

HTML4.0 のレンダリング フォーマットを有効にするためのトリックを説明しているこの記事に出くわしましたが、それはコントロールのためだけのものだと思いますReportViewer(間違っている可能性もあります)。

問題は、MVC で RDLC レポートを HTML でレンダリングする方法ReportViewです (下のスクリーンショットを参照)。

ReportView コントロールで表示される RDLC レポート

4

2 に答える 2

8

ReportViewer オブジェクトを使用して、RDLC を PDF または HTML にレンダリングできます。私の場合 (以下)、PDF ドキュメントが必要で、それを FileContentResult ActionResult として返しました。ダウンロードとして返す場合は、File ActionResult を使用します (使用するためにコメントアウトしました)。

    public ActionResult GetPackingSlipPDF(int shipmentId)
    {
        var shipment = _inboundShipmentService.GetInboundShipmentById(shipmentId);

        Warning[] warnings;
        string mimeType;
        string[] streamids;
        string encoding;
        string filenameExtension;

        var viewer = new ReportViewer();
        viewer.LocalReport.ReportPath = @"Labels\PackingSlip.rdlc";

        var shipLabel = new ShippingLabel { ShipmentId = shipment.FBAShipmentId, Barcode = GetBarcode(shipment.FBAShipmentId) };

        viewer.LocalReport.DataSources.Add(new ReportDataSource("ShippingLabel", new List<ShippingLabel> { shipLabel }));
        viewer.LocalReport.Refresh();

        var bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

        return new FileContentResult(bytes, mimeType);

        //return File(bytes, mimeType, shipment.FBAShipmentId + "_PackingSlip.pdf");
    }
于 2012-05-30T17:21:06.383 に答える