5

C#プログラムを作成し、MakeReportsのstimulsoftに接続しました。

以下のコードを使用して、2つのDatatableを含むデータセットをレポートに送信します。

DataSet ds = new DataSet();
dtP.TableName = "dtP";
dtF.TableName = "dtF";
ds.Tables.Add(dtP);
ds.Tables.Add(dtF);
Report.RegData(ds);
Report.Show();

「レポート」はstireportオブジェクトです。

レポートページが表示されたとき。私のレポートは空です。

そして、データセットとして1つのデータテーブルだけを私のレポートに送信すると、うまく機能します。


解決する:

私のc#プログラムに以下のコードを追加すると、私の問題を解決できます:

objStiReport.Dictionary.Clear();
objStiReport.RegData(ds);
objStiReport.Dictionary.Synchronize();
4

3 に答える 3

4

私もこの問題を抱えていました。私は多くの方法を試しましたが、誰も問題を解決しませんでした。スティミュラスソフトレポートデザイナの辞書で何かを変更しました。

1)Data from Dataset, DataTableデータアダプタタイプを選択します

2)Name In Sourceプロパティの名前を設定します(例DS

3)いくつかのテーブルをに追加し、それらを次のようにDS設定します。このようにテーブルのプロパティを設定することが重要であることに注意してください。Name In SourceDS.Table1Name In Source

Name In Sourceのようなテーブルのプロパティを設定するDS.TableNameと、問題は解決しました。

于 2013-06-27T06:21:54.173 に答える
2
 1. Merge your 2 datables

dtP.Merge(dtF, false, MissingSchemaAction.Add);

 1. fill your report with datatable
Report.RegData(dtP);

別の方法(データテーブルをマージできない場合)は、各データテーブルのすべての列を含む1つのデータテーブルを作成することです。

2つのデータテーブル間の関係を確立するためにデータリレーションを作成できますが、RegDataメソッドはリレーションを理解できますか(datarelationp)?

于 2012-08-29T12:34:00.360 に答える
0
  1. 刺激レポートデザイナーによる最初のオープンレポート

  2. [辞書]タブの上部にある[アクション]をクリックし、[XMLスキーマのインポート]を選択してデータセットファイルを選択します(XSD拡張子付き)[XMLスキーマのインポート]を選択してデータセットファイルを選択します

  3. 他のデータセットを追加するには、手順2を繰り返しますが、[MergXMLSchema]を選択します

  4. アプリコードでは、次のように使用します。

     StiReport report = new StiReport();
     report.Load(Server.MapPath(@"Report.mrt"));
     report.Compile();
    
     report.RegData(myDataSet1);
     report.RegData(myDataSet2);
     StiMobileViewer1.Report = report;
    
于 2017-09-06T05:08:56.523 に答える