前前回、VB.NETで印刷用データをinvoice1.xmlという名前でXML出力して、
前回、それを元にRDLレポートのデザインをしたが、
RDLソースのデータセットの中で、
本来数値であるはずのquantity、unit_price、amountがデータ型がString型となっている。
気持ち悪いので、Float型に改めてみた。
前回、それを元にRDLレポートのデザインをしたが、
RDLソースのデータセットの中で、
本来数値であるはずのquantity、unit_price、amountがデータ型がString型となっている。
気持ち悪いので、Float型に改めてみた。
<DataSets>
<DataSet Name="Data">
<Query>
<DataSourceName>DS1</DataSourceName>
<CommandText>url=File:///C:/invoice1.xml; RowsXPath=invoice/row;</CommandText>
</Query>
<Fields>
<Field Name="report_id">
<DataField>report_id</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="code">
<DataField>code</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="color">
<DataField>color</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="quantity">
<DataField>quantity</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
<Field Name="unit_price">
<DataField>unit_price</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
<Field Name="amount">
<DataField>amount</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
</Fields>
</DataSet>
</DataSets>
<DataSet Name="Data">
<Query>
<DataSourceName>DS1</DataSourceName>
<CommandText>url=File:///C:/invoice1.xml; RowsXPath=invoice/row;</CommandText>
</Query>
<Fields>
<Field Name="report_id">
<DataField>report_id</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="code">
<DataField>code</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="color">
<DataField>color</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="quantity">
<DataField>quantity</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
<Field Name="unit_price">
<DataField>unit_price</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
<Field Name="amount">
<DataField>amount</DataField>
<rd:TypeName>System.Float</rd:TypeName>
</Field>
</Fields>
</DataSet>
</DataSets>
ついでにそれらの文字の配置を右揃えにする。
しかし、である。
このようにしても数値のフォーマット(例えば#,##0)が反映されない。
このようにしても数値のフォーマット(例えば#,##0)が反映されない。
数値のフォーマットを反映させるには、
テキストボックスのValueの値を
=Fields!amount.Value
から
=Convert.ToDouble(Fields!amount.Value)
に変更すれば良いようだ。
テキストボックスのValueの値を
=Fields!amount.Value
から
=Convert.ToDouble(Fields!amount.Value)
に変更すれば良いようだ。
変更前
変更後
ちなみにConvert.ToDouble関数以外にも様々な関数が用意されている。