アプリケーションは、特定の要求を満たすために設計されたデータベースです。アプリケーションは、操作を容易にするようにデザインされたユーザインタフェースを持っています。あるアプリケーションが実行する作業は、その目的内に限定されます。4Dを使用すると、アプリケーション作成は従来のプログラミングよりも速やかに、かつ容易に行うことができます。4Dは、次に示すようなさまざまなアプリケーション作成に利用可能です:
- 請求書システム
- 在庫管理システム
- 会計システム
- 給与システム
- 人事システム
- 顧客管理システム
- インターネットやイントラネット経由による共有データベース
これらすべてのシステムを一つのアプリケーションに納めることもできます。このようなアプリケーションは、データベースの代表的な利用例です。さらに、4Dのツールを使用すると、次のような画期的なアプリケーションを作成することができます:
- 文書管理システム
- 画像管理システム
- カタログ発行アプリケーション
- シリアルデバイス制御/監視システム
- 電子メールシステム(E-メール)
- マルチユーザスケジューリングシステム
- メニューリスト、ビデオコレクション、音楽コレクション等の一覧
通常、アプリケーションは、デザインモードで使用するデータベースから始めることができます。カスタマイズするにつれて、データベースがアプリケーションへと“進化”していきます。アプリケーションの異なる点は、データベース管理に必要となるシステムがユーザの目に触れないというところです。データベース管理は自動化され、ユーザはメニューを利用して特定の作業を実行します。
4Dデータベースをデザインモードで使用する場合、結果を実現するために必要となる手順を知っておかなければなりません。アプリケーションのアプリケーションモードを使用するには、デザインモードでの自動化されている以下のようなすべての事柄を、あなたが管理する必要があります。
- テーブル操作:ユーザはテーブルリストウィンドウや最後に使用したテーブル、ナビゲーションボタンを使用できません。メニューコマンドとメソッドを使用して、テーブル操作を制御します。
- メニュー:アプリケーションモードには、終了メニューコマンドが納められたデフォルトのファイルメニューの他、編集、モード、そしてヘルプメニュー、(Mac OSではアプリケーションメニューも) が存在します。アプリケーションでさらにメニューが必要となる場合、メニューを作成し、4Dメソッドや標準アクションを用いてこれらの管理をしなくてはなりません。
- エディタ:アプリケーションモードでは、クエリや並び替え等のエディタを自動的に利用することはできません。これらのエディタを使用したい場合、4Dメソッドを用いて呼び出す必要があります。
以下の節では例題を用いて、プログラミング言語によってデータベースの使用を自動化する方法を紹介します。
カスタムメニューは、アプリケーションにおける主要なインタフェースです。このメニューにより、ユーザはより簡単にデータベースの習得や利用を行えるようになります。カスタムメニューの作成はとても簡単です。メニューエディタを使用して、各メニューコマンド(メニュー項目とも呼ばれる)にメソッドや自動アクションを関連付けるだけです。
「ユーザの視点」の節では、ユーザがメニューコマンドを選択した後の事象について説明します。次の節「メニューの舞台裏」では、この動作を実現するための設計について説明します。例題はシンプルですが、カスタムメニューを用いることにより、データベースの使用や習得がいかに楽になるかが理解できます。デザインモードの“一般的な”ツールやメニューコマンドではなく、ユーザはそれぞれのニーズに合った事柄だけに注目することができます。
ユーザはPeopleメニューからCreateというメニュー項目を選択し、新しいPeopleをデータベースに追加します。

Peopleテーブルの入力フォームが表示されます。

ユ-ザはPeopleのFirst Nameを入力し、タブで次のフィールドへ移動します。

ユーザはPeopleのLast Nameを入力します。

ユーザはタブで次のフィールドへ移動します。: Last Nameが大文字に変換されます。

ユ-ザはレコ-ドの入力を終了し、登録ボタンをクリックします(通常は、ボタンバー上の最後のボタン)。

空のレコードが表示されるので、ユーザはキャンセルボタン(“X”印が付いたボタン)をクリックして“データ入力ループ”を終了します。再びメニューバーが表示されます。
メニューバーは、デザインモードのメニューバーエディタを使用して作成します。

Createメニュー項目には、New personという名前のプロジェクトメソッドが関連付けられています。このメソッドは、デザインモードのメソッドエディタを使用して作成されています。

ユーザがこのメニュー項目を選択すると、メソッドNew Personが実行されます。
REPEAT
ADD RECORD([People])
Until(OK=0)
Repeat...Untilループ内のADD RECORDコマンドは、デザインモードにおける新規レコードメニュー項目と同様の動作を行います。このループは入力フォームを表示し、ユーザは新規レコードを追加することができます。ユーザがレコードを保存すると、新たに空のレコードが表示されます。このADD RECORDループは、ユーザが「キャンセル」ボタンをクリックするまで実行を続けます。
レコードに入力すると、以下の作業が行われます:
- First Name フィールドにはメソッドがなく、何も実行されません。
- Last Name フィールドにはメソッドがあります。このオブジェクトメソッドはデザインモードのフォームエディタとメソッドエディタで作成されます。メソッド内では以下のコードが実行されます:
このコードはLast Name フィールドの内容を大文字に変換します。
レコードが入力され、ユーザが次のレコードでキャンセルボタンをクリックすると、OKシステム変数が0に設定されてADD RECORDループが終了します。
次に実行するステートメントが存在しないため、New Personメソッドは実行を終了し、制御がメニューバーに戻ります。
あるタスクをデザインモードで実行する方法と、プログラミング言語で実行する方法とを比較してみましょう。実行する処理は共通のものです。
次の節の“デザインモードにおけるデータベースの使用”では、デザインモードで実行される処理を示します。
その次の節、“アプリケーションモードにおける組み込みエディタの使用”では、同じ処理がアプリケーションで実行される様子を示します。
これらのメソッドはともに同じ処理を実行しますが、2番目の節の手順はプログラミング言語を使用して自動化されている点に注目してください。
ユーザはレコードメニューからクエリ>クエリ... を選択します。

クエリエディタが表示されます。

ユーザは検索条件を入力し、クエリボタンをクリックします。検索が行われます。
ユーザはレコードメニューから並び替えを選択します。

並び替えエディタが表示されます。

ユ-ザが並び替え条件を入力して並び替えボタンをクリックすると、並び替えが実行されます。
この後、レコードを印刷するには、さらに次の手順が必要となります:
- ユ-ザがファイルメニュ-からプリント...を選択します。
- いずれのフォームを印刷するかをユ-ザが認識する必要があるため、プリントダイアログボックスが表示されます。
- 印刷用ダイアログボックスが表示されます。ユーザは各設定を選択し、レポ-トが印刷されます。
前述の作業がアプリケーションモードではどのように行われるかを検証しましょう。
ユーザはPeopleメニューからReportを選択します。
すでにこの時点で、ユーザにとってアプリケーションを使用するほうが簡単です。ユーザは最初の手順がクエリであることを知っている必要はありません。
メニューコマンドにはMy Reportというメソッドが関連付けられています。このメソッドは次の通りです:
最初の行が実行されます:
クエリエディタが表示されます。

ユーザが検索条件を入力しクエリボタンをクリックすると、検索が実行されます。
次に、メソッドMy Reportの2行目が実行されます:
ユーザは次の手順がレコードの並び替えであることを認識する必要がない点に注目してください。
並び替えエディタが表示されます。

ユーザが並び替え条件を入力し並び替えボタンをクリックすると、並び替えが実行されます。
次に、メソッドMy Reportの3行目が実行されます:
ここでもユーザは、次に実行されることを知っている必要がありません。このメソッドがすべて処理します。
最後に、メソッドMy Reportの最終行が実行されます:
印刷ダイアログボックスが表示されます。ユーザが各設定を選択すると、レポ-トが印刷されます。
前述の例題で使用したものと同じコマンドを使用し、データベースの自動化をさらに進めることができます。
新しくなったMy Reportメソッドを見てみましょう。
ユーザは、PeopleメニューからReportを選択します。メニューコマンドにはMy Report2というメソッドが関連付けられています。このメソッドは次の通りです:
最初の行が実行されます:
QUERY([People];[People]Company="Acme")
クエリエディタは表示されません。その代わりに、QUERYコマンドにより検索条件が指定され、実行されます。ユーザは何も行う必要はありません。
メソッドMy Report2の2行目が実行されます:
ORDER BY([People];[People]Last Name;>;[People]First Name;>)
並べ替えエディタは表示されず、並び替えが即座に実行されます。ここでもユーザによる処理は必要ありません。
メソッドMy Report2の最終行が実行されます:
印刷ダイアログボックスは表示されません。PRINT SELECTIONコマンドは、任意の引数であるアスタリスク(*)を受け入れ、これによりコマンドはレポートフォームの作成時に指定された印刷設定を使用し、レポートが印刷されます。
このように自動化をさらに進めることにより、ユーザは3つのダイアログボックスでオプションを入力する必要がなくなりました。これらの利点は次の通りです:
- クエリが自動的に実行される:ユーザが指定すると、クエリの作成時に誤った条件を選択する可能性があります。
- 並び替えが自動的に実行される:ユーザが指定すると、並び替えの定義時に誤った条件を選択する可能性があります。
- 印刷が自動的に実行される:ユーザが指定すると、誤ったフォームを選択して印刷する可能性があります
4Dアプリケーションの開発を進めていくと、最初は気付かなかった数多くの機能を発見することでしょう。また、他のツールやプラグインを4D開発環境に追加し、標準の4Dの機能を高めることができます。
4Dはアプリケーションの機能を向上させる各種プラグインを提供しています。
- 4D Write: ワードプロセッサ
- 4D View: スプレッドシートおよびリストエディタ
- 4D Internet Commands: インターネット上の通信用ユーティリティ
- 4D Pack: 4Dに30以上のコマンドを追加します。
- 4D ODBC Pro: ODBCを使用した接続
- 4D for OCI: ORACLE Callインタフェースを用いた接続
詳細に関しては、4D社または4Dパートナーまでお問い合わせください。Webサイトでもこれらの情報を提供しています。:
http://www.4d.com/jp/
世界各国において、ユーザグループや電子フォーラム、4Dパートナーから構成されている4Dコミュニティが意欲的に活躍しています。4Dパートナーからはサードパーティツールが提供されています。次のアドレスで、4Dのユーザフォーラムに登録することができます:
http://forums.4D.fr/
4Dコミュニティからは、ヒントやTips、ソリューション、情報、その他のツールが提供され、開発にかかる時間やエネルギーを節約して生産性を高めることが可能です。