メインコンテンツまでスキップ
バージョン: 20 R7 BETA

4D WritePro インターフェース

4D WritePro インターフェースは、エンドユーザーが 4D Write Proドキュメントを簡単にカスタマイズできるパレットを提供します。

4D のデベロッパーは、これらのパレットをアプリケーションに簡単に実装することができます。 それにより、エンドユーザーは、フォントやテキストの揃え方向、ブックマーク、表レイアウト、フレームなど、4D Write Pro のプロパティをすべて管理することができます。

インターフェースのマニュアルについては、4D デザインリファレンス4D Write Pro エリアのドキュメント を参照ください。

表ウィザードの設定に関するドキュメントは以下のとおりです。

表ウィザード

表ウィザードは、コンテキスト、データソース、およびフォーミュラを使用した、データベースのデータに基づく表組みの作成をさらに簡素化します。

エンドユーザーがアクセスできる表ウィザードは、4D デベロッパーが設定し提供するテンプレートをロードします。 これにより、デベロッパーはユーザーの特定のユースケースやビジネス要件に応じてテンプレートをカスタマイズすることができます。

表ウィザードには、デフォルトのテンプレートおよびテーマが用意されており、デベロッパーはそれらを、アプリケーションで必要とされる内容に適合させることができます。

アプリケーションに表ウィザードを実装するために、デベロッパーはテンプレートファイルを作成し、設定することができます。

WP表ウィザードのインターフェース

ユーザーは、4D Write Pro インタフェースツールバーとサイドバーの "表を挿入" メニューボタンから表ウィザードダイアログを開きます。

このインターフェースで、ユーザーは最初のドロップダウンリストからテンプレートまたはテーブルを選択し、2番目のドロップダウンリストからテーマを選択します。

列について:

テンプレートまたはテーブルの選択に応じて、テンプレートに保存されているフィールドのリストが表示されます (BLOB およびオブジェクト型は自動的に除外されます)。 表の列として表示させたいフィールドは、フィールド名の左にあるチェックボックスで選択します。また、表示する列の順序はフィールドをドラッグしてリスト内を移動させることで変更することができます。

行について:

表ウィザードでは、ヘッダー行と追加の行の数 (それぞれ 0~5) を定義したり、ブレーク行 (小計行) を繰り返し行の上または下に設定したり、キャリーオーバー行 の表示/非表示を選択したりすることもできます。

さらに、次のオプションを使用して、データソースが空の場合の表組みの動作を選択できます: データ行を表示、データ行を非表示、表を非表示、プレースホルダー行を表示。

表示について:

ユーザーは、ドロップダウンリストから希望するオプションを選択することで、好みのズームレベルを調整し、ラジオボタンを使ってフォーミュラまたはデータを表示し、チェックボックスを使って水平ルーラーを表示するかどうかを選択します。

表の作成とカスタマイズが完了したら、挿入 ボタンをクリックして、WPドキュメントに表組みを追加することができます。

ドキュメントに表が統合されると、ユーザーはそのスタイルをカスタマイズできます。 ツールバーやサイドバーの書式設定ツールはすべて利用可能です。

WP表ウィザードのテンプレートの設定

テンプレートの設定には以下が含まれます:

表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。

テンプレートファイル

テンプレートファイルを使って、以下のことが定義できます:

  • 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ
  • ブレーク行のフォーミュラ (ブレーク行を挿入できる場合)
  • 表の列として使用できるデータクラス属性
  • ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ

テンプレートファイルはプロジェクトの "Resources/4DWP_Wizard/Templates" フォルダーに保存する必要があります。

JSON形式のテンプレートファイルには、以下の属性が含まれます:

属性必須説明
tableDataSourceテキスト表のデータソースのフォーミュラ
columnsコレクション表の列のコレクション
columns.checkテキスト表ウィザードであらかじめチェックされている場合は true。 列のチェックをあらかじめ外しておく場合は false。
columns.headerテキストユーザーに提示する表示名
columns.sourceテキストFormula
breaksコレクションブレークオブジェクトのコレクション。 ブレークの順番は重要です。 この順番は、ドキュメント内でブレーク行が繰り返し行の上にある場合の順番に対応します。
breaks.labelテキストユーザーに提示する表示名
breaks.sourceテキストFormula
breakFormulasコレクションブレーク行に適用可能なフォーミュラオブジェクトのコレクション
breakFormulas.labelテキストユーザーに提示する表示名
breakFormulas.sourceテキストFormula
bcorFormulasコレクション下部キャリーオーバー行に適用可能なフォーミュラオブジェクトのコレクション
bcorFormulas.labelテキストユーザーに提示する表示名
bcorFormulas.sourceテキストFormula
extraFormulasコレクション追加の行に適用可能なフォーミュラオブジェクトのコレクション
extraFormulas.labelテキストユーザーに提示する表示名
extraFormulas.sourceテキストFormula
placeholderFormulasコレクションプレースホルダー行に挿入されるフォーミュラオブジェクトのコレクション
フランス語のランゲージについて

もし、4Dランゲージがフランス語に設定された環境で実行される可能性があるのであれば、ランゲージ設定に関わらず正しく解釈されるよう、フォーミュラに トークン を使用するようにしてください。

例題

JSONファイルの簡単な一例を以下に示します:

{
"tableDataSource": "ds.People.all().orderBy(\"toCompany.name asc, continent asc, country asc, city asc\")",
"columns": [{
"check": true,
"header": "Firstname",
"source": "This.item.firstname"
}, {
"check": true,
"header": "Lastname",
"source": "This.item.lastname"
}, {
"check": true,
"header": "Salary",
"source": "String(This.item.salary;\"###,###.00\")"
}
],
"breaks": [{
"label": "Company",
"source": "This.item.toCompany.name"
}
],
"breakFormulas": [{
"label": "Company",
"source": "This.item.toCompany.name"
}, {
"label": "Sum of salaries",
"source": "String(This.breakItems.sum(\"salary\"); \"###,###.00\")"
}
],
"bcorFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
],
"extraFormulas": [{
"label": "Sum of salaries",
"source": "String(This.tableData.sum(\"salary\"); \"###,###.00\")"
}
]
}


トランスレーションファイル

トランスレーションファイルは、テンプレート、テーマ、テーブル、フィールド、およびフォーミュラの翻訳名を指定します。 これらのファイルはプロジェクトの "Resources/4DWP_Wizard/Translations" フォルダーに追加します。

各トランスレーションファイルには、対応する言語コード (英語なら "en"、日本語なら "ja" など) のファイル名を付けます。

JSON形式のトランスレーションファイルには、以下の属性が含まれます:

属性必須説明
テーブルコレクション翻訳されたテーブルオブジェクトのコレクション
fieldsコレクション翻訳されたフィールドオブジェクトのコレクション
formulasコレクション翻訳されたフォーミュラオブジェクトのコレクション
fileNamesコレクション翻訳された fileNameオブジェクトのコレクション (テーマとテンプレート名に適用)

これら属性に含まれるコレクションの各オブジェクト要素は以下の属性を含みます:

属性必須説明
originalテキスト翻訳の対象となる原文
translationテキスト原文を翻訳したもの

これらの属性を定義することで、原文と翻訳されたコンテンツ間の適切な対応が確保されます。

テンプレート名やフォーミュラ名 (ブレーク行、キャリーオーバー行、追加の行) がトランスレーションファイルに存在する場合、表ウィザードではその翻訳が表示されます。 また、トランスレーションファイル内で定義されたテーブルだけが表ウィザードに (翻訳されて) 表示されます。

ユーザーがインターフェースでテーブルを選択したときには、トランスレーションファイルは追加の役割を果たします。 具体的には、ユーザーに提案されるテーブルやフィールドをフィルターします。 たとえば、テーブルID を非表示にするなど、この動作は SET TABLE TITLESSET FIELD TITLES コマンドに似ています。

例題
{
"tables": [{
"original": "People",
"translation": "従業員"
}
],
"fields": [{
"original": "lastname",
"translation": "名字"
}, {
"original": "firstname",
"translation": "名前"
}, {
"original": "salary",
"translation": "給与"
}, {
"original": "company",
"translation": "会社"
}
],
"formulas": [{
"original": "Sum of salary",
"translation": "給与の合計"
}
]
}


テーマファイル

4D WritePro Interface コンポーネントには、"Arial"、"CourierNew"、"YuGothic" などのテーマがデフォルトで用意されており、"Blue" や "Green" など複数のバリエーションが用意されています。 しかし、プロジェクト内の "Resources/4DWP_Wizard/Themes" フォルダーにテーマファイルを配置することで、独自のテーマを作成することができます。

JSON形式のテーマファイルには、以下の属性が含まれます:

属性必須説明
defaultオブジェクトすべての行に適用されるデフォルトスタイルを格納したオブジェクト。
tableオブジェクト表組みに適用されるスタイル定義を格納したオブジェクト。
rowsオブジェクトすべての行に適用されるスタイル定義を格納したオブジェクト。
cellsオブジェクトすべてのセルに適用されるスタイル定義を格納したオブジェクト。
header1オブジェクト先頭のヘッダー行に適用されるスタイル定義を格納したオブジェクト。
header2オブジェクト2つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。
header3オブジェクト3つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。
header4オブジェクト4つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。
header5オブジェクト5つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。
headersオブジェクトheader1、header2など専用のスタイル定義がない場合に、ヘッダー行に 適用されるスタイル定義を格納したオブジェクト。
dataオブジェクト繰り返し行に適用されるスタイル定義を格納したオブジェクト。
break1オブジェクト1つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。
break2オブジェクト2つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。
break3オブジェクト3つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。
break4オブジェクト4つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。
break5オブジェクト5つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。
breaksオブジェクトbreak1、break2など専用のスタイル定義がない場合に、ブレーク行に 適用されるスタイル定義を格納したオブジェクト。
bcorオブジェクト下部キャリーオーバー行に適用されるスタイル定義を格納したオブジェクト。
placeholderオブジェクトプレースホルダー行に適用されるデフォルトスタイルを格納したオブジェクト。

JSONファイルで設定する各属性に対して、以下の WP属性を定義することができます (対応する WP定数 を指定します):

WP 属性対応する WP定数
textAlignwk text align
backgroundColorwk background color
borderColorwk border color
borderStylewk border style
borderWidthwk border width
fontwk font
colorwk font color
fontFamilywk font family
fontSizewk font size
paddingwk padding
例題
{
"default": {
"backgroundColor": "#F0F0F0",
"borderColor": "#101010",
"borderStyle": 1,
"borderWidth": "0.5pt",
"font": "Times New Roman",
"color": "#101010",
"fontFamily": "Times New Roman",
"fontSize": "7pt",
"padding": "2pt"
},
"table": {
"backgroundColor": "#E1EAF3"
},
"header1": {
"textAlign": 2,
"borderColor": "#41548F",
"borderWidth": "1.5pt",
"backgroundColor": "#979BA9",
"color": "#F4F4FF",
"font": "Times New Roman Bold"
},
"data": {
"fontSize": "13pt",
"textAlign": 0
},
"break1": {
"textAlign": 2,
"fontSize": "15pt"
}
}


参照

4D Write Pro - 表ウィザード (チュートリアル動画)