【问题标题】:Print From Crystal Report In client PC in ASP.NET MVC 5在 ASP.NET MVC 5 的客户端 PC 中从 Crystal Report 打印
【发布时间】:2019-08-25 13:40:42
【问题描述】:

我正在 asp.net mvc 5 中创建一个 pos 应用程序,并使用水晶报表创建发票,现在当销售按钮单击时,我想打印该发票, 我的代码:

$.ajax({
            type: 'POST',
            contentType: 'application/json',
            dataType: 'json',
            url: '@Url.Action("SaveData", "PointOfSale")',
            data: dataList,
            success: function (data) {
                if (data.isRedirect) {
                    window.setTimeout(function() {
                        window.location = data.redirectUrl;
                    },700);
                    toastr.success("Save Successfully.");
                }
            }
        });

我的控制器:

public void GenerateInvoice(string invoice)
    {
        var invoiceData = _reportManager.InvoicePrint(invoice);
        var strPath = Path.Combine(Server.MapPath("~/Reports/Invoice.rpt"));
        DataSet objDataSet = invoiceData;
        DataTable dataTable = objDataSet.Tables[0];

        using (ReportDocument report = new ReportDocument())
        {
            report.Load(strPath);
            report.Database.Tables["VEW_RPT_INVOICE_PRINT"].SetDataSource((DataTable)dataTable);
            report.SetDatabaseLogon("saraecom", "saraecom");
            report.PrintOptions.PrinterName = "EPSON TM-T82 Receipt";
            report.PrintToPrinter(1, false, 0, 0);
        }
    }

但此代码仅在服务器打印机中打印发票,我如何在客户端计算机上打印?

我把PrintToPrinter改成report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "crReport");

此代码下载报告为 pdf,如何在客户端打印机中打印而不是下载...

提前谢谢....

【问题讨论】:

    标签: c# jquery asp.net-mvc crystal-reports


    【解决方案1】:

    朋友,您可以使用此方法在 ASP.NET MVC 5 的客户端 PC 中打印水晶报表。

    我已经在使用这个方法了。

    您只需从按钮单击视图中调用 ActionResult 方法,如下所示:

    <a href="/VisitDetails/PrintVisitorPass/@Model.id" class="btn btn-default ">Print Userpass</a>
    

    然后像这样在你的控制器中创建一个 ActionResult 方法:

        public ActionResult PrintVisitorPass(string id)
        {
    
            var visitList = (from visitor in db.VisitorDetails
                                 where visitor.invoiceid == id
                                select visitor).ToList();
    
            ReportDocument rd = new ReportDocument();
            rd.Load(Path.Combine(Server.MapPath("~/CrystalReports"), "VisitorPass2.rpt"));
            rd.SetDataSource(visitList);
    
            try
            {
                rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "crReport");
                return RedirectToAction("ActionName", "ControllerName", new { id = id });
            }
            catch (Exception ex) { return RedirectToAction(ex.ToString()); }
        }
    

    希望这段代码对你有所帮助。

    【讨论】:

    • rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "crReport"); 此代码返回一个 pdf 文件,但如何获取 pdf 并打印?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多