每次在第二页上显示数据库登录提示

2020-08-17 18:08发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我遇到一个奇怪的问题,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我遇到一个奇怪的问题,数据库登录提示仅出现在第二页(导航下一页)上。 我正在使用Visual Studio 2019社区版和Crystal Reports 13,更新27支持VS2019。 在针对表进行报告时,我没有这个特殊的问题,但是存储过程接受多个参数,并且过程中的选择引用了多个视图。 为了更容易理解:

  1. 我有两个数据库
  2. 生产和测试
  3. " sa"在两个数据库上都具有完全访问权限
  4. 在测试数据库上创建报告的视图/过程
  5. 在IDE中设计报告和进行审核时,我没有任何问题。 登录提示仅在调试和发布后出现。

该报告的调用方式如下

受保护的空白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

5条回答
骆驼绵羊
2020-08-17 18:55 .采纳回答

感谢戴尔

我修复了链接。

更好的一个可能也是这个:

1985571-如何使用Crystal Reports查看器在Web应用程序中使用会话(完整代码)

https://launchpad.support.sap.com/#/notes/1985571

@ Rajesh,并将您的代码从Page_Load移到Page_Init,页面加载仅被调用一次。 MS早已发生了变化,所以现在所有页面刷新现在都由Page Init调用。

Don

一周热门 更多>