ここ最近のリリースで、4D Write Pro には多くの表組み関連の機能が追加されました。コンテキスト、データソース、フォーミュラを使って、データベースのデータに基づいた表組みを簡単に作成することができます。
これはとても簡単なので、エンドユーザーにこの機能をそのまま使ってもらいたいと思う方も多いでしょう。しかし、データソースやフォーミュラの扱いに詳しくないユーザーにとっては、ときに難しいことであるのも理解しています。4D v20 R2 では、これに対するソリューションとして開発された新しい表ウィザードを提供しています。
このウィザードは、エンドユーザーが利用できます。エンドユーザーは、開発者が提供する、用途や業務に合わせたテンプレートを利用することができます。テンプレートの設定には以下が含まれます:
- データクラスとデータクラス属性の定義、
- データクラス、データクラス属性、およびフォーミュラの翻訳名の設定、
- 業務に適合したフォーミュラの準備、
- グラフィックスタイルのデザイン。
HDI のサンプルデータベースと、デモビデオもぜひご覧ください。
WP表ウィザードのインターフェース
ユーザーは、ツールバーまたはサイドバーの “表を挿入” メニューから ウィザード にアクセスできます。
インターフェースは非常にシンプルです。ユーザーはテンプレートまたはデータクラスを選択し、テーマを選びます。そして、列として表示するフィールドをチェックします。列の順番を変えることもできます。次に、ヘッダー行、繰り返し行の上下に配置されるブレーク行、追加の行の数を定義します。次に、ブレーク行または追加の行に表示するフォーミュラを選択します。最後に、”挿入” ボタンをクリックして、Write Pro ドキュメントに表を追加します。
表がドキュメントに挿入されると、ユーザーはそのスタイルを修正またはカスタマイズできます。ツールバーとサイドバーの書式設定ツールはそのまま使用できます。
デモビデオ:
HDI をダウンロードして、ビデオの例題を試すことができます。
設定方法
ウィザード は 3つの設定ファイルで構成されます。
テンプレートファイル
テンプレートファイルでは、以下を定義できます:
- 表のデータソース に使用するエンティティセレクションを返すフォーミュラ、
- 表の列として選択できるデータクラス属性、
- ブレーク行 のフォーミュラ、
- ブレーク行 のコンテキストメニューで選択できるフォーミュラ、
- キャリーオーバー行 のコンテキストメニューで選択できるフォーミュラ、
- および追加行のコンテキストメニューで選択できるフォーミュラ。
テンプレートファイル は、プロジェクトの “Resources/4DWP_Wizard/Templates” フォルダーに保存します。
以下は、テンプレートファイルの一例です:
{ "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\")" } ] }
JSONフォーマットと属性名についての詳細は、オンラインドキュメント をご覧ください。
トランスレーションファイル
トランスレーションファイル は、テンプレート、テーマ、テーブル、フィールド、およびフォーミュラの翻訳名を表示するのに使用されます。このファイルは、プロジェクトの “Resources/4DWP_Wizard/Translations” フォルダーに追加します。
ユーザーがインターフェースでデータクラスを選択する場合、トランスレーションファイルには 2つ目の機能があります。それは、ユーザーに提案されるデータクラスとデータクラス属性をフィルターすることです。たとえば、テーブルの ID を非表示にできます。
注: この動作は、クラシック言語の、SET TABLE TITLES と SET FIELD TITLES コマンドに似ています。
以下は、トランスレーションファイルの一例です:
{ "tables": [{ "original": "People", "translation": "Personne" } ], "fields": [{ "original": "lastname", "translation": "Nom" }, { "original": "firstname", "translation": "Prénom" }, { "original": "salary", "translation": "Salaire" }, { "original": "company", "translation": "Société" } ], "formulas": [{ "original": "Sum of salary", "translation": "Somme des salaires" } ] }
オンラインドキュメント では、利用可能な属性の一覧と説明が提供されています。
テーマファイル
4D WritePro Interface コンポーネントでは、デフォルトテーマのリストが提供されています。しかし、独自のテーマを作成して、プロジェクトの “Resources/4DWP_Wizard/Themes” フォルダーに保存することができます。
テーマファイルでは、ヘッダー行、繰り返し行、キャリーオーバー行、ブレーク行、追加の行について、次のWP属性が定義できます:
- textAlign
- backgroundColor
- borderColor
- borderStyle
- borderWidth
- font
- color
- fontFamily
- fontSize
- 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" } }
JSON文法については、ドキュメント を参照ください。
次は…
WP表ウィザードは、4D WritePro Interface コンポーネント の一部です。ソースは Github にあります。
感想やフィードバックはフォーラムへお寄せください。