データ ソースの参照
データ ソースの列を参照するには、以下の書式を使用します。
[DataSource.Column]
データ ソース名と列名はピリオドで区切ります。たとえば、次のように指定します。
[Employees.FirstName]
関係を使用してデータ ソースを参照する場合は、データ ソース名を含めることができます。詳細については、「データ」の章を参照してください。たとえば、関連付けられたデータ ソースの列を参照するには次のように指定されます。
[Products.Categories.CategoryName]
次に、式で列を使用する例を見てみましょう。
[Employees.FirstName] + " " + [Employees.LastName]
注意事項:各列にはデータ型が定義されています。これはそれぞれの DataType プロパティで設定されています(このプロパティは[データ]ウィンドウでデータ列を選択したときに[プロパティ]ウィンドウで表示されます)。式内で列を使用する場合、その使用法はその列のデータ型によって異なります。たとえば、前述の例で示した FirstName および LastName の列はいずれも文字列データ型であるため、それに応じた使用が可能です。次の例では、数値型の Employees.Age 列を使用しようとしています。これはエラーを引き起こします。
[Employees.FirstName] + " " + [Employees.Age]
文字列と数値を混在させてはいけないため、この式はエラーになります。このため、次のように数値を文字列に変換する必要があります。
[Employees.FirstName] + " " + [Employees.Age].ToString()
この場合、Employees.Age 列を整数変数であるかのように参照します。これで適切な式として成立します。式はすべてコンパイルされます。コンパイラの観点から、(データ列の参照のような)非標準的なものがすべて、コンパイラにわかりやすい別のデータ型に変換されます。このため、最後の式は次のような形に変換されます。
(string)(Report.GetColumnValue("Employees.FirstName")) + " " +
(int)(Report.GetColumnValue("Employees.Age")).ToString()
ご覧のとおり、FastReport データ列への参照を次のように変更します。
[Employees.FirstName] --> (string)(Report.GetColumnValue("Employees.FirstName"))
[Employees.Age] --> (int)(Report.GetColumnValue("Employees.Age"))
つまり、式でデータ列を使用する場合、その列をデータ型が定義された変数のように使用することができます。たとえば、次の式では従業員名の先頭文字を返します。
[Employees.FirstName].Substring(0, 1)