1

Linq で Crystal レポートを再度使用しようとしていますが、問題が発生しています。これをどのように行うべきかについて、さまざまなフォーラムや記事を読みましたが、何が間違っているのかわかりません。

最初に試した方法

Dim DBDataContext = GetDataConnection()

Dim cryRpt As IBS_DAL.cryLocationTransfer = New IBS_DAL.cryLocationTransfer()
cryRpt.Load(cryRpt.FileName)

Dim testDS = From stl In DBDataContext.STranLines
             Where stl.STLStkRef >= "000000000330" AndAlso
                   stl.STLStkRef <= "000000000337" AndAlso
                   (stl.STLTranCode = "LI" Or stl.STLTranCode = "LO")
             Select stl.ToRepObj

cryRpt.SetDataSource(testDS.ToList)

CrystalReportViewer1.ReportSource = cryRpt

ToRepObj は現在、null 値を持たないオブジェクトを使用するように作成したクラスに設定しています。

しかし、レポートが読み込まれると、データを入力しているためまったく意味のないパスワードが要求されます。サーバー名は、レポートで以前に設定した .net オブジェクトです。

以前は Microsoft Reporting を使用していたため、解決策を見つける必要がありましたが、不足している領域がいくつか見つかったため、Crystal を使用するのが最善であると判断しましたが、Linq では使用したことがありません。

2番目に試した方法

このWeb サイトで見た別の方法も試しましたが、何らかの理由で空白のレポートが表示されます。.Net オブジェクトは、Crystal レポートの stkcode にリンクされています。

Dim testDS = (From stl In DBDataContext.STranLines
                 Where stl.STLStkRef >= "000000000330" AndAlso 
                       stl.STLStkRef <= "000000000337" AndAlso
                       (stl.STLTranCode = "LI" Or stl.STLTranCode = "LO")
                 Select stl)
Dim ds1 = (From stl As STranLine In testDS
           Select stl.ToRepObj).ToList
Dim ds2 = (From stl As STranLine In testDS
           Select stl.Stock.ToRepObj).ToList

Dim cryrpt2 As ReportDocument = New IBS_DAL.CrystalReport1()

cryrpt2.Database().Tables("IBS_DAL_roSTranLine").SetDataSource(ds1)
cryrpt2.Database().Tables("IBS_DAL_roStock").SetDataSource(ds2)

CrystalReportViewer1.ReportSource = cryrpt2
4

1 に答える 1

0

これを試してみてください

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim data As New DataClasses1DataContext
    Dim m = (From master In data.Masters Select master Where master.ID = 10)
    Dim a As New CrystalReport3
    a.SetDataSource(m)
    CrystalReportViewer1.ReportSource = a
 End Sub
于 2012-10-06T09:23:12.510 に答える