設計時にデータセットを持たずに XtraReports のフィールドのデータソースを設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1242825

  •  12-09-2019
  •  | 
  •  

質問

現在、XtraReports レポート ツールを調べていますが、まだ理解できない点があります。

設計時に接続、アダプター、データセットを構築せずに、プログラム的に行うことで、特定のフィールド (おそらくラベルとしてレポートに表示される) のデータ ソースを設定するにはどうすればよいですか。

たとえば、3 つのフィールドを持つ「User」というテーブルを作成できます。ユーザー ID、ユーザー名、パスワード。レポート デザイナーで 3 つのラベルを配置し (これが私の質問です)、3 つのデータベース フィールドを表示するデータソースを設定します。次に、背後のコードで接続を作成し、コマンドを実行し、データセットを入力し、レポート インスタンスを作成し、それにデータテーブルを渡し、レポート プレビューを表示します。

これは可能でしょうか?十分に明確でない場合はお知らせください。

ありがとう!

役に立ちましたか?

解決

あなたのDataSourceを表すXMLスキーマにレポートのDataSourceSchemaプロパティを設定することができます。それはあなたがデータベースにするたびに、接続を確立することなく、設計時に、あなたのデータバインディングを設定するには、レポートデザイナを使用できるようになります。

ここで私はそれを行う方法は次のとおりです。 私は私のレポートクエリのほとんどが完成したら、私はへの呼び出しで一度コードを実行します。

myDataSet.WriteXml("C:\myDataSourceSchema.xml", System.Data.XmlWriteMode.WriteSchema)

は、その後、レポートデザイナに私が新しく作成されたファイルへのレポートのDataSourceSchemaプロパティを設定します。あなたがデザイン時にバインドすることができますので、これは、レポートデザイナのフィールドリスト]タブに移入されます。そうすれば、あなたは一度だけ有効なデータソース(またはあなたが列を変更任意の時間)を持っている必要があります。あなたは間違いなく、まだPrzemaasのアプローチを行うと、コードでデータバインディングのすべてを行うが、私は、設計者が作業のほとんどを処理させることを好むことができます。

他のヒント

データセットを使用せずにレポートを構築するには、IList オブジェクトを使用します。この素晴らしいチュートリアルに従ってください

方法:Web レポートを配列リストにバインドする https://documentation.devexpress.com/#XtraReports/CustomDocument3851

はい、可能です。コード内で必要なデータバインディングを定義できます。

this.xrLabel1.DataBindings.Add(new DevExpress.XtraReports.UI.XRBinding("Text", data, "Name", "aaa"));
  • ここのテキストはXrLabelのプロパティです。 クラスである。あなたが望んでいるのは バインドされたフィールドをラベルのテキストとして表示する。
  • data はデータを持つオブジェクトです
  • 「名前」は表示したいフィールドの名前です
  • 「aaa」は表示形式で、値をカスタム形式で表示する場合に適用されます。

基本的に、XtraReport のデータバインディングは、標準の Windows フォーム データバインディングとほぼ同じように動作します。

さらにガイドラインが必要かどうかをお知らせください

ここでは、代替である..

rtpObject.DataSourceSchema = dataSet.GetXmlSchema();

パブリックとしてこのセット修飾子プロパティを行う前に、

InvoicePrinting_Rpt InvoicePrintingRpt = new InvoicePrinting_Rpt();//report object 

InvoicePrintingRpt.BillDetails.Report.DataSource = ds_Invoice;
InvoicePrintingRpt.Report.DataMember = ds_Invoice.Tables[0].TableName;
 //bellow third parameter as your column name.
InvoicePrintingRpt.lbl_BillHead.DataBindings.Add("Text", null, "BILL_DESCRIPTION");
InvoicePrintingRpt.lbl_Det_Date.DataBindings.Add("Text", null, "TRANSACTION_DATE");
InvoicePrintingRpt.lbl_ISINCode.DataBindings.Add("Text", null, "ISIN_CODE");

ReportViewer1.Report = InvoicePrintingRpt;//assign report obj   
ReportViewer1.Report.Name = "DevExpress_Reports.InvoicePrinting_Rpt";
ReportViewer1.DataBind(); //binding
XRBinding binding = new XRBinding("Text", ageingBindingSource, "ageing_contactsLookup.name");
this.xrLabel19.DataBindings.Add(binding);

//または//

XRBinding binding = new XRBinding("Text", dbaDataSet, "transactions.fk_transitems_transactionid.name2");
this.xrTableCell1.DataBindings.Add(binding);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top