点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我遇到一个奇怪的问题,...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我遇到一个奇怪的问题,...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好
我遇到一个奇怪的问题,数据库登录提示仅出现在第二页(导航下一页)上。 我正在使用Visual Studio 2019社区版和Crystal Reports 13,更新27支持VS2019。 在针对表进行报告时,我没有这个特殊的问题,但是存储过程接受多个参数,并且过程中的选择引用了多个视图。 为了更容易理解:
该报告的调用方式如下
受保护的空白Page_Load(对象发送者,EventArgs e) { 如果(!IsPostBack) { ReportDocument reportDocument = new ReportDocument(); reportDocument.Load(Server.MapPath(@"〜/CrystalReport2.rpt")); reportDocument.SetParameterValue(0,2020); reportDocument.SetParameterValue(1,1); reportDocument.SetParameterValue(2,3); reportDocument.SetParameterValue(3," 1"); reportDocument.SetParameterValue(4," 1"); ConnectionInfo connectionInfo =新的ConnectionInfo { DatabaseName ="测试", UserID =" sa", 密码="密码", ServerName =" RAJESH-PC" }; SetDBLogonForReport(connectionInfo,reportDocument); CrystalReportViewer1.Visible = true; CrystalReportViewer1.ReportSource = reportDocument; } }
和SetDBLogonForReport方法如下:
私有无效SetDBLogonForReport(ConnectionInfo connectionInfo,ReportDocument rpt) { foreach(rpt.Subreports中的ReportDocument subRpt) { foreach(subRpt.Database.Tables中的表crTable) { Response.Write(crTable.Name); crTable.LogOnInfo.ConnectionInfo.AllowCustomConnection = true; TableLogOnInfo logInfo = crTable.LogOnInfo; logInfo.ConnectionInfo = connectionInfo; 尝试 { crTable.ApplyLogOnInfo(logInfo); } 抓住(前例外) { Response.Write(ex.Message); } } } foreach(rpt.Database.Tables中的表crTable) { Response.Write(crTable.Name); crTable.LogOnInfo.ConnectionInfo.AllowCustomConnection = true; TableLogOnInfo loi = crTable.LogOnInfo; loi.ConnectionInfo = connectionInfo; 尝试 { crTable.ApplyLogOnInfo(loi); } 抓住(前例外) { Response.Write(ex.Message); } } }
虽然在没有数据库登录提示的情况下执行单页报告,但经过2天的不懈努力寻找解决方案后,我有点完全迷失了。
致谢
rajesh
感谢戴尔
我修复了链接。
更好的一个可能也是这个:
1985571-如何使用Crystal Reports查看器在Web应用程序中使用会话(完整代码)
https://launchpad.support.sap.com/#/notes/1985571
@ Rajesh,并将您的代码从Page_Load移到Page_Init,页面加载仅被调用一次。 MS早已发生了变化,所以现在所有页面刷新现在都由Page Init调用。
Don
一周热门 更多>