2011-12-27 23 views
0

こんにちは私は、ODBC dsn-less接続文字列を使用して、基本的にデータベースのレポートフロントエンド(独自のPervasive SQL)を計画しています。実行時に動的テーブルを使用してCrystalレポートを作成する

私はVisual Studioでデータセットを作成し、レポートをアプリケーションにリンクできます。しかし、実際の使用状況では、データベースの場所はユーザーごとに異なります。それは主要な問題ではありません。私はデータベースパスの場所を設定できる接続文字列でそれを克服しました。

はここ

...私は一意のファイル名(私は上記の実際に同じ名前)が付いているから、読みたいテーブルの名前キッカーです。私は実行時にテーブル名を再マップするためにcrystalが必要です。本当にテーブル名の接頭辞だけです。フィールドのフィールドと名前は変更されません。

私はこのブロックを書くためにどこを見なければならないでしょうか? VS2010 & C#を使用しています。私はあなたがテーブル名を取得/設定するためにいくつかのランタイムリフレクションを行うことができるCrystalで来るクラスファイルのいくつかの並べ替えでなければならないと思いますか?

ご迷惑をおかけして申し訳ありません。 Rob

編集:APIドキュメントとその他のサポートを持っているドキュメントlinkが見つかりました。私はそれらを勉強します。それらはすべて.chmファイル(Windowsヘルプファイル)なので、検索する "オンライン"ドキュメントはありません。

答えて

0
  • クリスタルのReportViewerが追加objReport
  • にパブリック関数ShowReport()

    public void ShowReport(ReportDocument objReport) 
    { 
        Cursor.Current = Cursors.WaitCursor; 
        objReport.SetDatabaseLogon("", "dbpassword"); 
        cRep.ReportSource = objReport; 
        this.Show(); 
        Cursor.Current = Cursors.Default; 
    } 
    

を名前を変更し、アプリケーション内のどこからでも呼び出す追加

ds = GetDataInDataSet();//fILL DataSet with your data 
rptPSummary objRpt = new rptPSummary(); 
objRpt.SummaryInfo.ReportComments = "Have a nice day"; 
objRpt.SummaryInfo.ReportTitle = "Purchase Summary Report from " + sDate.ToString("dd/MM/yyyy") + " to " + eDate.ToString("dd/MM/yyyy"); 
objRpt.SetDataSource(ds); 

frmReportView frmRpt = new frmReportView(); 
frmRpt.Text = objRpt.SummaryInfo.ReportTitle; 
frmRpt.MdiParent = this; 
frmRpt.ShowReport(objRpt); 
+0

返信いただきありがとうございます!だから、データセットはテーブル名が何であるかを決定するものですね。レポートにデータセットを渡すと、クエリするテーブルをどのように知ることができますか? – Robnauticus

関連する問題