XtraReportのCalculatedFiled(計算フィールド)を使用してRDLCレポートの式を実装
2935 ワード
DevExpressレポートは確かに強く、柄が多く、目まぐるしくしています.
今回XtraReportを用いてレポートを開発したが,多くの問題は公式の文書では詳細に説明されていないので,ここに記録する.
1、XtraReportのFormattingRules属性は、私が望む式ではなくbool値のみを返す条件(Condition)判断です.
2、XtraReport公式ドキュメントのドラッグコントロールに基づいて作成されたCalculatedFiledこそ私が望んでいる式です.
1』ドラッグコントロールの仕方が柔軟ではなく、XtraReportオブジェクトのDataSource(データソース)で使用されるDataSetタイプは、XtraReportを構築する際にDataMemberプロパティを指定する必要があります.
ただし、これらはドラッグコントロールで自動的に生成され、手動で書く必要はありません.
2』は純粋なコードで実現されており、私のデータソースはList<>タイプであるため、構築時には必ずDataMember属性を指定できないことに注意する必要がある.
3、XtraReportレポートはRDLC中行グループ(RowGroup)と列グループ(ColumnGroup)をサポートしていないようですが、私が発見しなかったのかもしれません.
今回XtraReportを用いてレポートを開発したが,多くの問題は公式の文書では詳細に説明されていないので,ここに記録する.
1、XtraReportのFormattingRules属性は、私が望む式ではなくbool値のみを返す条件(Condition)判断です.
2、XtraReport公式ドキュメントのドラッグコントロールに基づいて作成されたCalculatedFiledこそ私が望んでいる式です.
1』ドラッグコントロールの仕方が柔軟ではなく、XtraReportオブジェクトのDataSource(データソース)で使用されるDataSetタイプは、XtraReportを構築する際にDataMemberプロパティを指定する必要があります.
this.calculatedField1 = new CalculatedField
{
DataMember = "Product",
Expression = "Iif([Id]==1,-2,2 )",
Name = "calculatedField1"
};
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.calculatedField1});// , 。
this.DataMember = "Product";
this.DataSource = ds;
this.xrTableCell1.DataBindings.Add("Text", null, "Product.calculatedField1");
ただし、これらはドラッグコントロールで自動的に生成され、手動で書く必要はありません.
2』は純粋なコードで実現されており、私のデータソースはList<>タイプであるため、構築時には必ずDataMember属性を指定できないことに注意する必要がある.
this.calculatedField1 = new CalculatedField
{
//DataMember = "Product",// List , DataMember
Expression = "Iif([Id]==1,-2,2 )",
Name = "calculatedField1"
};
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.calculatedField1});
//this.DataMember = "Product";// List , DataMember
this.DataSource = list;
this.xrTableCell1.DataBindings.Add("Text", null, "calculatedField1");
3、XtraReportレポートはRDLC中行グループ(RowGroup)と列グループ(ColumnGroup)をサポートしていないようですが、私が発見しなかったのかもしれません.