点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Web应用程序(带有We...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Web应用程序(带有We...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个Web应用程序(带有Webform的.NET MVC,用于显示Crystal Report Viewer)。 我在Visual Studio中创建了一个数据集。 我正在尝试将此数据集连接到具有来自ODBC数据库的字段的现有Crystal Report。 如何配置报告以连接到两个数据源? 我能够将每个报表连接到不同的报表,但不能连接在一起。 谢谢!
//连接到数据集 受保护的void Page_Load(对象发送者,EventArgs e) { ReportDocument报告=新的ReportDocument(); 字符串reportPath2 = Server.MapPath(" CrystalReport2.rpt"); DataSet ds = new DataSet(" Customers"); DataTable表=新的DataTable("客户"); table.Columns.Add(" Name",typeof(System.String)); table.Columns.Add(" Age",typeof(System.Int32)); DataRow row1 = table.NewRow(); row1 [" Name"] =" John Doe"; row1 [" Age"] = 45; table.Rows.Add(row1); ds.Tables.Add(table); report.Load(reportPath2); report.SetDataSource(ds); CrystalReportViewer1.ReportSource =报告; } //**************************************************** ************************************** //连接到ODBC 受保护的void Page_Init(对象发送者,EventArgs e) { 字符串reportPath = Server.MapPath(" CrystalReport2.rpt"); //首次加载报告 if(!IsPostBack ||(ReportDocument)Session [" Report"] == null) { report = new ReportDocument(); report.Load(" reportPath"); ConfigureCrystalReport(report); Session.Add(" Report",report); } //连接Crystal Report Viewer以在会话中显示已加载的报告 CrystalReportViewer1.ReportSource =(ReportDocument)Session [" Report"]; //防止在报表打开时提示参数 CrystalReportViewer1.EnableParameterPrompt = false; } 公共无效ConfigureCrystalReport(ReportDocument报告) { ConnectionInfo connectionInfo =新的ConnectionInfo(); AssignConnection(connectionInfo); //将连接分配给主报表中的所有表 foreach(report.Database.Tables中的CrystalDecisions.CrystalReports.Engine.Table表) { AssignTableConnection(table,connectionInfo); } //循环遍历所有节及其对象,以对子报表执行相同的操作 foreach(report.ReportDefinition.Sections中的" CrystalDecisions.CrystalReports.Engine.Section"部分) { //在每个部分中,我们需要遍历所有报告对象 foreach(CrystalDecisions.CrystalReports.Engine.ReportObject reportObject在section.ReportObjects中) { 如果(reportObject.Kind == ReportObjectKind.SubreportObject) { SubreportObject subReport =(SubreportObject)reportObject; ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName); foreach(subDocument.Database.Tables中的CrystalDecisions.CrystalReports.Engine.Table表) { AssignTableConnection(table,connectionInfo); } } } } } 公共静态void AssignConnection(ConnectionInfo连接) { //自动登录数据库而不会提示用户 connection.UserID =" USER_ID"; connection.Password =" _PASSWORD"; connection.ServerName =" SERVER_NAME"; } 公共静态无效AssignTableConnection(CrystalDecisions.CrystalReports.Engine.Table表,ConnectionInfo连接) { //缓存登录信息块 TableLogOnInfo logOnInfo = table.LogOnInfo; //设置连接 logOnInfo.ConnectionInfo =连接; //将连接应用于表! table.ApplyLogOnInfo(logOnInfo); }
下载WIKI链接到Parameter test应用,它具有用于设置main和 子报表:
https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads
一周热门 更多>