ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20
表組みの管理
|
アイコン | 行 | 数 | 必須 | 条件 | 説明 |
![]() | ヘッダー行 | 最大5 | - | - | 標準の表ヘッダー、繰り返し表示されるヘッダー行 参照 |
![]() | 繰り返される行 | 1 | 必須 | データソースフォーミュラは必ず繰り返される要素を返す必要があります | 表にヘッダー行またはブレーク行がない場合、繰り返される行が表の最初の行となります。それ以外の場合には、ヘッダー行の後の最初の行がこの行となります。一般的にはThis を使用した式(例: This.item.value )が記述されています。ドキュメントが値を表示モードで行が複製されているとき、この式を通して処理されたデータへとアクセスすることができます。 |
![]() | ソートブレーク行 | 最大5 | - | データソースフォーミュラは必ず繰り返される要素を返す必要があります | 繰り返される行の前または後に表示される行。ブレーク行 参照 |
![]() | 下部キャリーオーバー行 | 1 | - | データソースフォーミュラは必ず繰り返される要素を返す必要があります | 繰り返される行またはブレーク行のあとに最初に表示される行。キャリーオーバー行 参照 |
その他の行 | 無制限 | - | - | 標準の行(複製されません) |
表示例(参照を表示 モード):
フォーミュラが計算されると、繰り返される行は、データソースフォーミュラから返される全エンティティ数またはコレクション項目数と合致するまで自動的に複製されます:
いずれの場合にしても、以下の宣言を使用することで実際の行数を得ることができます:
WP GET ATTRIBUTES($table;wk row count;$vcount) // 上記の例の場合には31
データソースに基づいた表は下部キャリー行をサポートします。これは表が複数のページ/カラムに分割される場合に各ページ/カラムの下部に自動的に表示される行です。キャリーオーバー行はThis.previousItems という式を使用することで、ここまで表示/印刷された項目に基づいた追加の情報を表示することができます(This を使用した式 参照)。この機能を使用することで、例えば小計行を追加することなどができます。
キャリーオーバー行は以下のように表示されます:
重要: キャリーオーバー行は、空でないコレクションまたはエンティティセレクションを返すデータソースフォーミュラで埋められた表において、値を表示モードのときにのみ利用できます。それ以外の場合、またはデータソースフォーミュラが計算されていない場合には、キャリーオーバー行は通常の行として表示されます。
キャリーオーバー行は以下のように作成できます:
注意: キャリーオーバー行機能が有効化されている場合、行内の改ページは許可されません(表のページ分け 参照)。対応するオプションが設定されてい場合には、無視されます。
データソースに基づいた表では1つまたは複数の並べ替えブレーク行をサポートします。これは繰り返される行の前または後に表示することができます。並べ替えブレーク行を使用すると、表内で既に並べ替えられているデータソースの項目を、計算されたフォーミュラの値に基づいて複数の部分に区分けすることができます。
フォーミュラの値が変わるたびに、新しいブレーク行が挿入されます。そのため、表が正確にレンダリングされるためには、表のデータソースとして使用されているエンティティセレクション(またはコレクション)は適切にソートされている必要があります。例えば、国ごとおよび都市ごとにブレーク行を挿入したい場合、データソースは以下のように指定されている必要があります: ds.people.all().orderBy("country asc, city asc")
ブレーク値は、wk break formula 属性を通して定義されます。値は通常、"This.item.name'' のような、項目のプロパティに基づいたフォーミュラです。そうでない場合には値は全く変化しないことがあり、これではブレークフォーミュラは意味のないものになってしまいます。wk break formula 属性は、表に何のデータソースもない場合、あるいは行がヘッダー行の場合には無視されます。ブレーク行は繰り返される行と(前か後ろに)隣り合うか、他のブレーク行と隣り合うように配置されなければなりません。そうでない場合にはこれは無視されます。
WP SET ATTRIBUTES($row_2;wk break formula;Formula(This.item.country))
この機能で使用することができるThis.breakItems 式を使用することで、例えば、繰り返される行全体の平均を1つのブレーク行で表示することができます。breakItems は、表のデータソースがエンティティセレクションならエンティティセレクションの、表のデータソースがコレクションならコレクションの、データソースの評価されたサブセットです。そのため、ブレーク行内には、以下のように書くことができます: This.breakItems.sum("salary")
ブレーク行を作成するには、以下の手順に従って下さい:
$row:=WP Table get rows($table;2;1) //2行目をブレークとして選択
WP SET ATTRIBUTES($row_2;wk break formula;Formula(This.item.country))
表内のフォーミュラ内で使用された場合、This キーワードはコンテキストに応じて異なるデータへのアクセスを提供します:
コンテキスト | 式 | 型 | 返されるもの |
全て | This.table | オブジェクト | カレントの表 |
This.row | オブジェクト | カレントの表の行要素 | |
This.rowIndex | 数値 | カレント行のインデックス、1から数え始める | |
表に対してデータソースが定義されている場合 | This.table.dataSource | オブジェクト (formula) | データソースをフォーミュラとして取得 |
This.tableData | (通常は)コレクションまたはエンティティセレクション | 評価された table.dataSource | |
表のデータソースがコレクションまたはエンティティセレクションを返す場合のそれぞれの繰り返される行内 | This.item.xxx | 不定 | 表のデータソースのコレクションまたはエンティティセレクションにマップされたそれぞれの項目。例えば、割り当てられたエンティティにfirstName 属性がある場合にはThis.item.firstName でアクセス可能 |
This.itemIndex | 数値 | コレクションまたはエンティティセレクション内でのカレントの項目のインデックス、0から数え始める | |
データソースがコレクションまたはエンティティセレクションを返す表における任意の行(ただしヘッダー行を除く) | This.previousItems | コレクションまたはエンティティセレクション | 下部キャリーオーバー行の前まで、あるいは式の行の前までのページに表示された要素。これには式を格納している行を表示しているページも含まれます。 この式は This.tableData の式と同じ型の値を返します。 |
ブレーク行内 | This.breakItems | コレクションまたはエンティティセレクション | コレクションまたはエンティティセレクションの項目が以下の場所に表示されます:
|
その他のコンテキストにおいては、これらの式はundefined を返します。
注意: フォーミュラの挿入についてのより詳しい情報については、WP INSERT FORMULA を参照してください。
表がデータソースからのデータが表示されている場合、参照が計算されると行が自動的に作成されます。行を挿入または削除したり、セルのコンテンツを削除したり、スタイルを変えたり、といったことができます:
しかしながら、表のデータソースが再計算された場合、計算された行への変更は(最初の行以外)全て失われてしまうという点に注意して下さい。その一方で、最初の行は繰り返される行であるため、この行に対して行われた変更は、表のデータソースが再計算された際に全ての行へと伝搬していきます。同じことはブレーク行にも適用され、計算されたブレーク行に対して行われた編集はテンプレートブレーク行を除いて全て失われてしまいます(テンプレートのブレーク行は表の最初または最後に配置されます)。
例えば、以下の表は、:
式が再計算されたあとは以下のようになります:
カーソルが、データソースが割り当てられている表のセル内に挿入された時、以下の情報を表示する警告アイコンが左上角に表示されます:
フォーミュラが参照として表示されている場合、あるいはドキュメントを保存した時、最初の行のみがテンプレート行として表示/保存されます(フォーミュラが固定化されていなかった場合)。
フォーミュラが固定化されると、表は標準の表となり、表のデータソースはリセットされます。
注意: freezeExpressions 標準アクションを使用しても、フォーミュラは再計算されません。
プロダクト: 4D
テーマ: 表組みの管理
変更: 4D v19 R7
変更: 4D v20
4D Write Proリファレンス ( 4D v20)