点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们正在尝试使用Appl...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们正在尝试使用Appl...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我们正在尝试使用ApplyLogOnInfo动态传递Sybase数据库登录凭据,以将数据加载/导出到.rpt文件。 但是,在调用该函数时似乎没有做任何事情。
我们正在将Microsoft Visual Basic 2015与SAP BusinessObjects Enterprise XI 4.0一起使用。 以下是部分代码:
导入CrystalDecisions.Reporting 导入System.IO 导入System.Data.Odbc 导入System.Data 导入System.Configuration 导入CrystalDecisions.CrystalReports.Engine 导入CrystalDecisions.Shared 导入CrystalDecisions.ReportAppServer.DataDefModel 模块Module1 子Main() '获取命令行参数 Dim CommandLineArgs作为System.Collections.ObjectModel.ReadOnlyCollection(String)= My.Application.CommandLineArgs 将myConnectionInfo设置为新的CrystalDecisions.Shared.ConnectionInfo() 与myConnectionInfo .ServerName = CommandLineArgs(5) .DatabaseName = CommandLineArgs(7) .UserID = CommandLineArgs(9) .Password = CommandLineArgs(11) 结束于 昏暗的cryRpt作为新的ReportDocument cryRpt.Load(CommandLineArgs(3)) cryRpt.SetDatabaseLogon(myConnectionInfo.UserID,myConnectionInfo.Password,myConnectionInfo.ServerName,myConnectionInfo.DatabaseName) Dim crTables作为CrystalDecisions.CrystalReports.Engine.Tables = cryRpt.Database.Tables 对于每个crTable,如crTables中的CrystalDecisions.CrystalReports.Engine.Table 将crTableLogonInfo设为新的TableLogOnInfo() crTableLogonInfo = crTable.LogOnInfo crTableLogonInfo.ReportName = cryRpt.Name crTableLogonInfo.ConnectionInfo.AllowCustomConnection = True crTableLogonInfo.ConnectionInfo = myConnectionInfo crTableLogonInfo.TableName = crTable.Name MessageBox.Show(crTableLogonInfo.ConnectionInfo.ServerName) MessageBox.Show(crTableLogonInfo.ConnectionInfo.DatabaseName) MessageBox.Show(crTableLogonInfo.ConnectionInfo.UserID) MessageBox.Show(crTableLogonInfo.ConnectionInfo.Password) crTable.ApplyLogOnInfo(crTableLogonInfo) MessageBox.Show(crTable.LogOnInfo.ConnectionInfo.ServerName) MessageBox.Show(crTable.LogOnInfo.ConnectionInfo.DatabaseName) MessageBox.Show(crTable.LogOnInfo.ConnectionInfo.UserID) MessageBox.Show(crTable.LogOnInfo.ConnectionInfo.Password) 如果不是crTable.TestConnectivity()然后 MessageBox.Show("无法应用登录") 万一 下一个
在故障排除期间添加了消息框,该消息框显示表的登录凭据未更新为提供的值。 而是显示了.rpt文件开发过程中使用的数据库的详细信息。
我们已经搜索了有关ApplyLogOnInfo函数的先前询问的问题,但没有找到任何解决方案。
非常感谢您的帮助!
P.S。 -如果没有提供足够的信息,请提前道歉。
嗨,克里斯,
您的消息框在applyLogonInfo之前和之后显示相同的信息,还是在它们之前和之后使用不同的值?
登录是否失败?
即使您的消息框显示了保存在报表中的connectioninfo,但是如果您成功使用此代码登录,是否还会显示旧数据库的数据还是来自新连接的数据?
我看不到任何明显的代码错误,但是您登录了两次,这是不必要的。
SetDatabaseLogon将登录到DB以及登录到每个单独的表。 两种方法都不是必需的。 SetDatabaseLogon更是一种简化登录的辅助方法。 仅使用两种方法之一。
首先注释掉" For Each ..."循环。 报表是否登录并显示正确的数据?
如果要使用TableLogonInfo,请使用SetDabaseLogon注释掉该行,看看是否可行。
有一个V14 .NET SDK。 32位程序集与BOE客户端安装一起安装(作为选项)。 64位程序集随BOE服务器安装一起安装(作为选项)。 如果您拥有BOE,则还可以从 https://下载运行时 support.sap.com/en/my-support/software-downloads.html
V14 SDK还包括BOE的运行时,因此它比V13安装的要大得多。 由于您正在使用ReportDocument对象模型,并且未连接到BOE,因此使用V14运行时没有任何好处。
丹
一周热门 更多>