繁体   English   中英

如何从GridView显示水晶报表?

[英]How to show crystal report from GridView?

我有一个带有一个ButtonField列的GridView,如下所示:我已经基于具有一个名为ID的输入参数的存储过程创建了Crystal Report。 我将ID保留在GridView的DataKeyNames中。

因此,当用户单击Gridview中的“打印”按钮时,将显示相应的晶体报告。

急切地等待您的有用提示。

没有直接的方法可以将gridview导出到Crystal报表。

使用数据集调用相同的查询,将数据集传递给报表。

我得到了答案。

        if (e.CommandName == "printReport")      
        {
            int ID = Convert.ToInt32(GridView1.SelectedDataKey.Value);
            try
            {
                CrystalDecisions.CrystalReports.Engine.ReportDocument rpt =
                            new CrystalDecisions.CrystalReports.Engine.ReportDocument();

                string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
                string[] str = conn.Split(';');
                string server = str[0].Substring(str[0].IndexOf(" = ") + 3);
                string database = str[1].Substring(str[1].IndexOf(" = ") + 3);
                string userid = str[2].Substring(str[2].IndexOf(" = ") + 3);
                string password = str[3].Substring(str[3].IndexOf(" = ") + 3);

                rpt.Load(Server.MapPath("~/Engineering/Reports/Report.rpt"));

                for (int i = 0; i < rpt.DataSourceConnections.Count; i++)
                    rpt.DataSourceConnections[i].SetConnection(server, database, userid, password);
                rpt.SetParameterValue(0, ID);

                rpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "Report");
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM