点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经在很多帮助下获得了ODBC...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经在很多帮助下获得了ODBC...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我已经在很多帮助下获得了ODBC的更新,以使基于SQL Server的报表能够正常工作,但是现在我试图弄清楚Oracle DB的状况,因为它对我不起作用。 似乎在" VerifyDatabase"处失败,据我了解可能会导致问题。 我确实删除了该行并进行了测试,这使连接的别名留为空白,这远不理想。
请帮助我弄清楚如何修复代码,以便可以同时将其用于Oracle和SQL Server。
ReportDocument rpt = new ReportDocument(); rpt.Load(rptSourceURL); ISCDReportClientDocument rptClientDoc = rpt.ReportClientDocument; //为两个现有参数值设置参数值。 //rpt.SetParameterValue(" servProvCode"," ab"); //rpt.SetParameterValue(" servProvCode2"," cd"); 如果(rpt.ReportClientDocument.DataDefController.DataDefinition.ParameterFields.Count> 0) { foreach(rptClientDoc.DataDefController.DataDefinition.ParameterFields中的CrystalDecisions.ReportAppServer.DataDefModel.ParameterField参数字段) { //MessageBox.Show(paramfield.Type.ToString()); 如果(paramfield.Type.ToString()==" crFieldValueTypeStringField") { rpt.SetParameterValue(paramfield.Name," ABC"); } 否则,如果(paramfield.Type.ToString()==" crFieldValueTypeDateField") { rpt.SetParameterValue(paramfield.Name," 01/01/2000"); } 其他 { rpt.SetParameterValue(paramfield.Name," 123"); } } } //创建一个新的命令表来替换报告当前表。 CrystalDecisions.ReportAppServer.DataDefModel.CommandTable boTable =新的CrystalDecisions.ReportAppServer.DataDefModel.CommandTable(); //获取报告的数据库表集合 CrystalDecisions.ReportAppServer.DataDefModel.Tables boTables; boTables = rptClientDoc.DatabaseController.Database.Tables; //设置新的属性包值,如果没有更改但仍然保留,则可能不需要 //boMainPropertyBag:这些保存表ConnectionInfo对象的属性 PropertyBag boMainPropertyBag =新的PropertyBag(); //boInnerPropertyBag:这些保存QE_LogonProperties的属性 //在主属性包(boMainPropertyBag)中 PropertyBag boInnerPropertyBag =新的PropertyBag(); //设置boInnerPropertyBag的属性 boInnerPropertyBag.Add(" DSN",rptODBC); boInnerPropertyBag.Add(" Database",rptDatabase); boInnerPropertyBag.Add(" User ID",rptUser); //boInnerPropertyBag.Add(" UseDSNProperties"," False"); boInnerPropertyBag.Add("使用DSN默认属性","假"); boInnerPropertyBag.Add("数据源名称",rptODBC); //设置boMainPropertyBag的属性 boMainPropertyBag.Add("数据库DLL"," crdb_odbc.dll"); boMainPropertyBag.Add(" DSN",rptODBC); boMainPropertyBag.Add(" QE_ServerDescription",rptODBC); boMainPropertyBag.Add("数据源名称",rptODBC); boMainPropertyBag.Add(" QE_DataSourceName",rptODBC); boMainPropertyBag.Add(" QE_DatabaseName",rptDatabase); boMainPropertyBag.Add(" QE_DatabaseType"," ODBC(RDO)"); //添加我们在boInnerPropertyBag对象中设置的QE_LogonProperties boMainPropertyBag.Add(" QE_LogonProperties",boInnerPropertyBag); boMainPropertyBag.Add(" QE_SQLDB"," True"); boMainPropertyBag.Add(" SSO Enabled"," False"); //创建一个新的ConnectionInfo对象 CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo boConnectionInfo =新的CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo(); //将数据库属性传递给连接信息对象 boConnectionInfo.Attributes = boMainPropertyBag; //设置连接种类 boConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE; //**编辑**如果需要,设置用户名和密码。 boConnectionInfo.UserName = rptUser; boConnectionInfo.Password = rptPassword; //============================================ //更新"主要报告"表 //============================================ for(int k = 0; k
上面的代码格式部分(不确认/否定答案只是对喜欢格式化代码的人进行代码更新。)
一周热门 更多>