点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入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。 -如果没有提供足够的信息,请提前道歉。
已将标签更改为BOE Platform SDK。
确保您使用的.NET SDK与BOE Server的版本相同。
BOE 4.0现在已结束补丁程序周期,现在该升级到4.2了。
Don
Hi Don,
赞赏快速反应。
据我所知,BOE服务器版本为14.1.7.1853 2013 Support Pack7。VB引用的.NET SDK显示为v13。
是否存在用于Crystal Reports的v14 .NET SDK? 我找不到高于13的东西。
谢谢
Chris
好,版本13程序集现在不会连接到BOE。 您可以卸载它们。
您需要转到SMP并下载BOE .NET SDK。
需要获得支持合同才能到达那里,并需要一个USer帐户才能登录。
Don
嗨,克里斯,
您的消息框在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运行时没有任何好处。
丹
一周热门 更多>