4D Write Pro – データソース付き表組みの作成ウィザード

ここ最近のリリースで、4D Write Pro には多くの表組み関連の機能が追加されました。コンテキスト、データソース、フォーミュラを使って、データベースのデータに基づいた表組みを簡単に作成することができます。

これはとても簡単なので、エンドユーザーにこの機能をそのまま使ってもらいたいと思う方も多いでしょう。しかし、データソースやフォーミュラの扱いに詳しくないユーザーにとっては、ときに難しいことであるのも理解しています。4D v20 R2 では、これに対するソリューションとして開発された新しい表ウィザードを提供しています。

このウィザードは、エンドユーザーが利用できます。エンドユーザーは、開発者が提供する、用途や業務に合わせたテンプレートを利用することができます。テンプレートの設定には以下が含まれます:

  • データクラスとデータクラス属性の定義、
  • データクラス、データクラス属性、およびフォーミュラの翻訳名の設定、
  • 業務に適合したフォーミュラの準備、
  • グラフィックスタイルのデザイン。

 

HDI のサンプルデータベースと、デモビデオもぜひご覧ください。

HDI:表ウィザード

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

ユーザーは、ツールバーまたはサイドバーの “表を挿入” メニューから ウィザード にアクセスできます。

インターフェースは非常にシンプルです。ユーザーはテンプレートまたはデータクラスを選択し、テーマを選びます。そして、列として表示するフィールドをチェックします。列の順番を変えることもできます。次に、ヘッダー行、繰り返し行の上下に配置されるブレーク行、追加の行の数を定義します。次に、ブレーク行または追加の行に表示するフォーミュラを選択します。最後に、”挿入” ボタンをクリックして、Write Pro ドキュメントに表を追加します。

blank

表がドキュメントに挿入されると、ユーザーはそのスタイルを修正またはカスタマイズできます。ツールバーとサイドバーの書式設定ツールはそのまま使用できます。

デモビデオ:

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 TITLESSET 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 にあります。
感想やフィードバックはフォーラムへお寄せください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。