Crystal レポートは初めてです。コードを使用して実行時にレポートのデータソースを設定する必要があります。私は動作するコードを持っていますが、それは非常に予測不可能であり、多くの問題を引き起こしています. 何か間違ったことをしているのか、それとももっと良い方法があるのか 知りたかっただけです。
スタンドアロンの Crystal アプリケーションからのレポートのコンパイル時に指定された接続を使用するのではなく、レポートが接続文字列を使用していないと感じることがあります。これは本当ですか?
Dim connectionInfo As New ConnectionInfo
connectionInfo.ServerName = "UID=abc;PWD=abc;Driver= {SQL Server};Server=" & Page.Request.QueryString("server") & ";Database=" & Page.Request.QueryString("database")
Using report As New ReportDocument
report.Load(Server.MapPath("/report/Crystal/test.rpt"))
report.FileName = Server.MapPath("/report/Crystal/test.rpt")
SetDBLogonForReport(connectionInfo, report)
...
End Using
Private Sub SetDBLogonForReport(ByVal connectionInfo As ConnectionInfo, ByVal reportDocument As ReportDocument)
Dim tables As Tables
tables = reportDocument.Database.Tables
For Each table As CrystalDecisions.CrystalReports.Engine.Table In tables
Dim tableLogonInfo As New TableLogOnInfo
tableLogonInfo = table.LogOnInfo
tableLogonInfo.ConnectionInfo = connectionInfo
table.ApplyLogOnInfo(tableLogonInfo)
Next
End Sub