0

CR 13.1 を使用して VS 2010 のレポートにデータセットを接続しようとしています。4 年前に古いバージョンでこれを行いましたが、現在は動作していません。クエリの後にデータセットの内容を確認したところ、探しているものが得られたので、getdata 関数は問題になりません。レポート オブジェクトと空のレポート ドキュメントを使用して、データセットをレポートに接続しようとしました。(CrystalReportSource は既にレポートに組み込まれています。これは別の問題です。)

別の方法を試すことができるように、ビューアー オブジェクトとソース オブジェクトと共にフォームにボタンがあります。どちらの方法でもレポートにデータが入力されず、問題を明確にするコードがどこにも見つかりません。

コードは次のとおりです。

Public Class WebForm1
    Inherits System.Web.UI.Page
    Private ds As New DataSe
    Private da As New OleDb.OleDbDataAdapter
    Private dsUORInfoT As New DataSet
    Private rptUOR As New CrystalReport
    Private UORrpt As New ReportDocument
    Private reportPath As String = Server.MapPath("CrystalReport1.rpt")



    Private ConnectionString As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Session("dbName") = "VAPD"
        GetData("select * from t_offense where offense_nbr ='201305170216-3529'", dsUORInfoT)
        UORrpt.Load(reportPath)
        'rptUOR.SetDataSource(dsUORInfoT)
        UORrpt.SetDataSource(dsUORInfoT)
        CrystalReportViewer1.ReportSource = UORrpt
        'CrystalReportSource1.Report.

    End Sub
4

1 に答える 1

0

まあ、それは少し混乱しています。私は、Oracle データベースを使用していることを忘れていたと思います。これは何を意味するのでしょうか?これは、データセット オブジェクトのサポートがせいぜい平凡であることを意味します。宣伝どおりに動作することを期待して、複数のテーブル データセットを作成しました。データセット オブジェクトの .FILL にはテーブルに名前を付ける機能が含まれており、SQLServer の場合は適切なテーブルを埋めることがわかります。オラクルの場合、それほど多くはありません。

したがって、表示されているコードはある程度機能しますが、データセット内のすべてのテーブルを埋めていなかったので、とにかく機能せず、それらを埋めようとしたときに機能しませんでした。

それ以来、レポートに必要なデータを提供するために構造化されたビューを使用しているビュー ベースのモデルに切り替えました。これにより、複数のテーブル データセットが不要になります。これは、おそらくよりクールまたはより効率的であったはずですが、実際には実際には機能しません。

于 2013-07-31T15:15:10.620 に答える