DioDocs for Excel
DioDocs for Excel
テンプレートプロパティ
帳票の作成 > 帳票テンプレートの構成 > テンプレートプロパティ

テンプレートプロパティは、以下の画像のように、テンプレートフィールドとともに丸括弧「( )」で囲んで定義します。

 

Context プロパティ

Context(省略形:C)プロパティは、セル間の関係(コンテキスト)を設定します。

なお、セルのコンテキストについての詳細は、「セルのコンテキスト」を参照してください。

設定値:セル参照、データフィールド、「None」

{{ds.field(C=A1, E=H)}}

Hello World! {{(C=A2)}}

{{=SUM(F4) (C=ds1.team)}}

{{=SUM(ds1.score) (C=ds1.team*ds1.season)}}

 

Expansion プロパティ

Expansion(省略形:E)プロパティは、セルの値が展開する方向を設定します。

なお、セルの展開についての詳細は、「セルの展開」を参照してください。

設定値:列挙型

{{ds.field(C=A1, E=H)}}

 

Group プロパティ

Group(省略形:G)プロパティは、データのグループ化の種類を設定します。

設定値:列挙型

{{ds.field(G=repeat)}}

{{ds.field(G=list)}}

 

以下の画像は、Group プロパティの設定例とその出力結果です。

 

 

Range プロパティ

Range(省略形:R)プロパティは、指定範囲内のテンプレートフィールドのフォールバックコンテキストを設定します。範囲に含まれるデフォルトまたは明示的なコンテキストを持たないすべてのテンプレートフィールドは、Range プロパティが定義されているセルをコンテキストとして使用します。

設定値: セル範囲(デフォルトは Null)

{{ds.field(R=B3:F10)}}

 

以下の画像は、製品名に対して Range プロパティを定義すると、製品の明細が製品名を基準に展開・グループ化されること示しています。

 

Sort プロパティ

Sort(省略形:S)プロパティは、テンプレートフィールドにおけるソートの種類を設定します。このプロパティは、単一または複数の列に適用され、それぞれのセルの値によって決定されます。この機能により、昇順と降順でのソートだけではなく、カスタムの並べ替えルールを1つまたは複数の列に適用できます。

DioDocs for Excelは、次の基本的なルールに従ってソートを実装します。

  1. セルがテンプレートセルとインスタンスセルに区別され、テンプレートのソート関数が処理されます。テンプレートセルはテンプレートファイル内のセルであり、インスタンスセルはテンプレートの処理後に作成されるセルです。
  2. テンプレートセル間の関係は親子関係として扱われます。同様の関係がインスタンスセル間にも適用されます。
  3. 兄弟関係のインスタンスセル間のセルはソートされるが、親子関係は変更されません。ソートされるインスタンスセルは、次の2つの条件を満たす必要があります。
    1. これらのセルは同じテンプレートセルから取得される必要があります。
    2. これらのセルは共通の親セルを持つ必要があります。

例として、次のデータソースを考えてみます。

次のテンプレートを使用する場合、Sort プロパティがコンテキストセルA1によって制限され、共通の親セルがないため、D列のセルを並べ替えることはできません。

Sort プロパティはセルA1にのみ追加できます。その結果、テンプレートは以下のようになります。

出力結果

Sort プロパティが設定されているセルのみをソートすることができ、Sort プロパティが設定されていないセルをソートすることはできません。上記のデータソースでは、セルD1の値に基づいてセルA1の値ををソートすると、セルD1ではなくセルA1のみがソートされます。

ソートは、次の3つの方法で設定できます。

設定値: 列挙型

S=Asc(デフォルト):昇順にソートします。

S=Desc:降順にソートします。

S=None: ソートしません。

設定値: 配列

S={“X“, “Y“,”Z”}

設定値:

S=(Cell A Asc {“X“, “Y“,”Z”}, Cell B Desc)

例1:単一列のソート

{{ds.field(S=Desc)}}

以下の画像は、ソートの種類に基づいてテンプレートフィールドがどのように展開されるかを示しています。

Sort

例2:複数の列のソート

{{ds.OrderID(S=(C12,D12 desc),G=List)}}

以下の画像は、セルC12とセルD12に基づいて[注文ID]列がどのようにソートされるかを示しています。

例3:カスタムルールによるソート

{{ds.City(S=(A12 desc {"ニューヨーク", "シカゴ", "ミネソタ", "サンティアゴ", "フリーモント", "キト", "メデジン", "ブエノスアイレス"}))}}

以下の画像は、カスタムの並べ替えルールに基づいて[都市]列がどのようにソートされるかを示しています。

PageBreak プロパティ

PageBreak(省略形:PB)プロパティは、テンプレートフィールドの後に改ページを追加するかどうかを設定します。なお、詳細な動作は、以下のとおり、生成された Excel 帳票でのテンプレートセルの位置によって決定されます。

設定値:Boolean

{{ds.field(PB=true)}}

 

以下の画像は、「Category」フィールドの後に改ページを追加するよう設定した例とその出力結果です。

メモ:TemplateOptions.PaginationMode が true の場合、Pagebreak プロパティは無視されます。

 

Image プロパティ

Image プロパティは、画像を追加するかどうかを設定します。また、追加する場合は、画像の幅と高さを指定したり、縦横比を維持したりすることもできます。

width と height を使用してセル内の画像のカスタム寸法を指定しますが、keepaspect を使用して画像のサイズをセルのサイズに合わせて縦横比を維持します。width と height を設定するときに、寸法の単位 (pt または px) も指定する必要があります。

対応している画像のデータ型は、byte[] および base64 文字列です。

セル内の画像の配置は、セルの横位置と縦位置の配置を設定することで制御できます。デフォルトでは、画像は横位置と縦位置ともにセルの中央に配置されます。

設定値:Boolean

Image = True :画像を追加します。

Image= False(デフォルト):画像を追加しません。

Image.width=文字列の値:画像の幅を指定します。デフォルトはセルの幅です。

Image.height=文字列の値:画像の高さを指定します。デフォルトはセルの高さです。

Image.keepaspect= True:画像の縦横比を維持します。

Image.keepaspect= False(デフォルト):画像の縦横比を維持しません。

構文を作成するには、次の説明のように略語を使用することもできます。

メモ: 画像の両方のプロパティを指定すると、Keepaspect が幅と高さの設定より優先されます。

{{ds.icon(Image=true)}}

{{ds.icon(Image=true, Image.width=150px)}}

{{ds.icon(Image=true, Image.height=150px)}}

{{ds.icon(Image=true, Image.keepaspect=true)}}

以下の画像は、Excel 帳票に画像を出力する例です。

Image

自動改ページに関するテンプレートプロパティについては、「自動改ページのプロパティと関数」を参照してください。

メモ:上記のすべてのテンプレートプロパティは大文字と小文字を区別しません。つまり、DioDocs for Excelは大文字と小文字に関係なく、大文字と小文字の区別を無視して値と一致します。