イントロダクション

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 2003 (Modified)


このトピックでは、4Dプログラム言語について紹介します。以下の話題について取り上げます:

・言語とは何か、また何ができるのか

・メソッドをどのように利用するか

・4Dでどのようにしてアプリケーションを作成するか

この節ではこれらのとっぴ九の一般的な事柄について説明します。詳細については他の節で説明しています。

言語とは?


4D言語は、私たちが日ごろ話している言語とさして変わりありません。4D言語はアイデアを表現したり、伝達したり、指示したりするために使用される、コミュニケーションの形です。話し言葉のように、4Dは独自のボキャブラリ、文法、シンタックスを持っています。これを使用して、開発者は4Dに、データベースやデータをどのように管理するかを伝えることができます。

4Dを効率的に使用する目的では、言語のすべてを知っている必要はありません。話すために英語のすべてを知る必要はありません。実際、少々のボキャブラリしか持っていなくても、雄弁に語ることはできるものです。4D言語も同様です。創造性を発揮するためには、言語の小さい部分を知っていればよく、他の部分はそれが必要になったときに学べばよいのです。

なぜ言語を使用するのか?


4Dを使い始めのころには、プログラミング言語の必要性は少ないように見えます。デザインモードで、4Dはプログラムを必要としない、広範囲の様々なデータ管理タスクを行うための自由度の高いツールを提供しています。データ入力やクエリ、並び替え、レポート作成などの基本的なタスクは簡単に処理できます。実際、データ検証や入力補助、グラフ作成、ラベルの生成など、多くの機能が追加で提供されています。

ではなぜ4D言語を使用するのでしょうか? 例えば以下のような利用が考えられます:

・自動的な繰り返しタスク: このようなタスクにはデータの更新、複雑なレポートの生成、長い一連の操作を全自動で行うといったことが含まれます。

・ユーザインタフェースのコントロール: ウィンドウやメニューを管理したり、フォームやインタフェースオブジェクトをコントロールできます。

・高度なデータ管理を行う: このようなタスクにはトランザクション処理、複雑なデータ検証、マルチユーザ管理、セットや命名セレクションの処理が含まれます。

・コンピュータのコントロール: シリアルポート通信やドキュメント管理、エラー管理を行うことができます。

・アプリケーションの作成: アプリケーションモードで動作する、カスタマイズされたデータベースを作成できます。

・組み込みの4D Webに機能を追加する: 4Dが自動で変換するWebフォームに動的なHTMLページを追加できます。

言語を使用すれば、データベースのデザインや処理を完全にコントロールできます。4Dはパワフルな汎用のエディタを提供していますが、言語を使用すればデータベースを必要に応じてカスタマイズできるのです。

データをコントロールする


4D言語を使用すれば、パワフルでエレガントに、データをコントロールできます。4D言語は初心者にも使いやすく、経験豊かな開発者の利用に耐えるほど高度です。言語の利用により、組み込みのデータベースの機能から、完全にカスタマイズされたデータベースにスムースに移行できます。

4D言語のコマンドを使用して標準のレコード管理エディタにアクセスできます。例えばQUERY コマンドを使用すれば (デザインモードでアクセスできる) クエリエディタが表示されます。この言語コマンドを利用することは、レコードメニューのクエリコマンドを選択するのと同じくらい簡単ですが、QUERYコマンドはさらに利用価値があります。QUERY コマンドを使用して、指定したデータを検索できるのです。例えばQUERY ([People];[People]Last Name="Smith") はデータベースから"Smith"という名前の人物をすべて検索します。

4D言語はとてもパワフルです。ひとつのコマンドはしばしば従来のプログラム言語で書かれた数百行あるいは数千行にも及ぶコードに相当します。このパワーを持ちながら、コマンドにはシンプルな英語の名称がつけられています。例えばクエリを行うにはQUERYコマンドを、レコードを追加するにはADD RECORDコマンドを使用します。

言語は、ほとんどどんなタスクでも簡単に実行できるようデザインされています。レコードの追加、並び替え、データの検索などの操作がシンプルなコマンドで提供されています。さらにコマンドを使用してシリアルポートのコントロール、ディスク上のドキュメントの読み込み、高度なトランザクション処理等を行うこともできるのです。

4D言語はもっと高度なタスクを相対的に簡単に行います。このようなタスクを言語なしで行うことはほとんど想像できません。

言語のパワフルなコマンドを使用したとしても、タスクによっては複雑で難しいものとなることがあります。ツール自身はタスクを処理しません。タスク自身がチャレンジすべきものであり、ツールはその処理を簡単にするだけです。例えば、ワープロを使用すれば素早く簡単に文章を書くことができますが、ワープロ自体が文章を書くわけではありません。4D 言語の使用はデータの管理処理を簡単にし、複雑なタスクの処理に自信を持ってアプローチできるようにします。

4D言語は従来のコンピュータ言語ですか?


従来のコンピュータ言語に馴れ親しんでいる方は、本節を参照してください。それ以外の方は、この章を読み飛ばしても構いません。

4D言語は従来のコンピュータ言語とは異なります。この言語は、今日のコンピュータで使用できる最も先進的で柔軟性のある言語の1つです。4Dのプログラミング言語は、他の方法ではなく、あなたが行った通りに動作するよう設計されています。

従来の言語を使用して開発を行う場合、まず広範な計画を立てる必要があります。実際計画の立案は開発の重要な工程の1つとなります。4Dはデータベースのあらゆる部分でプログラミング言語をいつでも使用することができます。例えば、初めにフォームにメソッドを追加し、後ほどさらにいくつかのメソッドを追加することができます。データがより高度になったら、メニューから制御するプロジェクトメソッドを追加することもできます。必要最低限の言語を使用できます。他の多くのデータベースのような“すべてか、あるいは全くないか”ではありません。

従来の言語では、オブジェクトを正式に定義しなければなりません。しかし、4Dではボタンなどのオブジェクトを作成し、それを使用するだけで構いません。4Dは自動的にオブジェクトを管理します。例えば、ボタンを使用するためには、ボタンをフォーム上に作成し、名前を指定します。ユーザがボタンをクリックした時点で、メソッドに通知します。

従来の言語では、コマンドの使用を固定化したり限定する等して融通性に欠ける点が多いのに対して、4Dのプログラミング言語は優れたユーザインタフェースを実現しています。

メソッドはプログラミング言語の入り口


メソッドは、4Dにタスクを実行させるための一連の命令文です。メソッド内の各行を“ステートメント”と呼びます。各ステートメントは、プログラミング言語の部品で構成されます。

ここでは、既にSelf-Trainingを通読し、メソッドを作成し使用した経験があることを前提に説明を行います。

4Dには次の5種類のメソッドがあります:

・オブジェクトメソッド: フォームオブジェクトを制御するために使用する短いメソッド。

・フォームメソッド: フォームの表示、印刷を管理するメソッド。

・トリガ: データベースの規則を強制するためのメソッド。

・プロジェクトメソッド: データベース全体で使用できるメソッド。例えばメニューに関連付けるメソッドなど

・データベースメソッド: データベースのオープンやクローズのとき、またはWebブラウザがインターネットおよびイントラネット上でWebサーバとして公開されているデータベースに接続するときに、初期化や特別な動作を実行するメソッド

次節では、各メソッドの紹介とデータベースを自動化する方法について説明します。

オブジェクトメソッドについて

動作を行うことが可能なフォーム・オブジェクト(アクティブオブジェクト)は、関連するメソッドを持つことができます。オブジェクトメソッドは、データ入力時や印刷時にアクティブオブジェクトの監視や管理を行います。オブジェクトをコピーして貼り付けると、オブジェクトメソッドがそのアクティブオブジェクトとともにコピーされます。これにより、スクリプトが付けられたオブジェクトの再利用可能なライブラリを作成することができます。オブジェクトメソッドは必要な時にコントロールを得ます。

オブジェクトメソッドは、データベースへの入り口であるユーザインタフェースを管理するための主要ツールです。ユーザインタフェースは、コンピュータがユーザと通信するための手順とルールから成り立っています。その最終目的は、データベースのユーザインタフェースをできるだけ簡単で使いやすくすることです。ユーザインタフェースは、コンピュータとのやり取りを快適にし、ユーザがそれを楽しめるように、または気にならないようにする必要があります。

フォームには、以下の2つの基本的なタイプのアクティブオブジェクトがあります:

・フィールド等のデータの入力、表示、格納のために使用されるもの

・入力エリア、ボタン、スクロールエリア、階層リスト、メータ等コントロールに使用されるもの

4Dでは、以下のようなクラシックフォームを作成できます:

また、以下のような複数のグラフィックコントロールを使用してフォームを作成できます:

想像力が許す限りのグラフィックを使用したフォームを作成することもできます:

作成するスタイルがどのような形式であろうと、アクティブオブジェクトはすべてデータ入力エリアの範囲チェックや入力フィルタ、コントロール、メニュー、ボタン用の自動動作等の内蔵の支援機能を持っています。オブジェクトメソッドを追加する前にこれらの支援機能を使用出来ます。内蔵の支援機能はメソッドと同様に、アクティブオブジェクトに関連付けられ、それがアクティブなのはアクティブオブジェクトが使用されるときだけです。

通常、内蔵の支援機能とオブジェクトメソッドを組み合わせて使用して、ユーザインタフェースを制御します。

データ入力に使用するオブジェクトメソッドは、フィールドまたは変数に対して特定の処理を実行します。このオブジェクトメソッドは、データの属性チェック、フォーマット編集、計算処理等を行うことが出来ます。別テーブルのデータを情報を取得することもできます。もちろん、これらの処理は、4Dに内蔵されたデータ入力支援により実行することも出来ます。しかし、複雑な処理が必要な場合には、オブジェクトメソッドを使用します。内蔵されたデータ入力支援に関する詳細は4D Design Referenceを参照してください。

オブジェクトメソッドは、制御に使用するボタン等のオブジェクトにも作成することができます。これらのオブジェクトは、データベースを使用する上でとても重要です。これには、レコード移動や別フォームへの移動、データの追加、削除等を実行するボタンがあります。また、これらのオブジェクトは、データベースの使用を簡単にし、それを習得するために必要な時間を減少させます。ボタンにも、データ入力時と同様に内蔵の支援機能が使用可能です。オブジェクトメソッドを使用すれば、4D内に組み込まれていない動作を追加することができます。例えば、以下の図は、クリックされた時点でクエリエディタを表示するボタンのオブジェクトメソッドを示しています。

オブジェクトメソッドに精通してくると、オブジェクトメソッドを持つオブジェクトのライブラリを作成すると便利なことに気付きます。これらのオブジェクトやオブジェクトメソッドをフォーム、テーブル、データベース間でコピーしたり、貼り付けることができます。また、必要な場合に使用できるように、クリップボード(Windows)またはスクラップブック(Macintosh)にそれらを保存することもできます。

フォームメソッドを使ってフォームをコントロールする

オブジェクトメソッドがフォームオブジェクトに付随するのと同様に、フォームメソッドはフォームに付随します。1つのフォームには、1つのフォームメソッドを持つことができます。フォームはデータの入力、表示および印刷をする手段です。フォームは様々な方法でデータを見せてくれます。フォームを使用することで、魅力的で使いやすいデータ入力画面や印刷帳票を作成することができます。フォームメソッドはデータの入力画面や印刷するための個々のフォームを監視および管理するのに使用します。

フォームメソッドは、オブジェクトメソッドよりも上位のレベルでフォームを管理します。オブジェクトメソッドは属しているオブジェクトが使用された場合にのみ実行されるのにたいし、フォームメソッドはフォームのあらゆる動作で実行されます。そのためフォームメソッドは、フォーム上の異なるオブジェクト間の相互関係やフォーム全体を制御するために使用します。

フォームは多くの方法で使用されるため、フォームが使われたときに何が起こったのかを把握することが必要です。この目的のためにフォームイベントを使用します。フォームイベントは、フォームに現在何が起こったのかを伝えます。フォーム上のオブジェクトメソッドと同様、個々のタイプのイベント(クリック、ダブルクリック、キーストローク等)毎にフォームメソッド実行の可否を設定することができます。

フォーム、オブジェクト、イベント、そしてメソッドについての詳細は、フォームイベントの節を参照してください。

トリガを使ってデータベースのルールを強制する

トリガはテーブルに設定されるため、テーブルメソッドとも呼ばれます。トリガは、テーブルのレコードを操作(追加、削除、修正)するたび、4Dデータベースエンジンによって自動的に起動されます。トリガはデータベースのレコードに対する「違法な」操作を防止することができます。例えば、請求書発行システムでは、請求書発行先の顧客を指定しない請求書を追加できないようにすることができます。トリガはテーブル上の操作を制限する非常に強力なツールであると同時に、偶発的なデータの損失や不正な変更を防止します。最初は簡単なトリガを作成しておいて、後で高度にしていくこともできます。

トリガについての詳細は、トリガの節を参照してください。

データベース全体で使われるプロジェクトメソッド

特定のオブジェクトやフォーム、テーブルに付随するオブジェクトメソッド、フォームメソッド、トリガと異なり、プロジェクトメソッドはデータベースのどこからでも使用することができます。プロジェクトメソッドは繰り返し使用したり、別のメソッドの中から呼び出して使用することもできます。同じ処理を繰り返し実行する必要がある場合でも、それぞれに対して同一のメソッドを書く必要はありません。プロジェクトメソッドは、別のプロジェクトメソッドやオブジェクトメソッド、フォームメソッドから必要な場所で随時呼び出されます。呼び出されたプロジェクトメソッドは、呼び出した場所にメソッド全体を書き込んだ時と同じように動作します。別のメソッドから呼び出されるプロジェクトメソッドのことを“サブルーチン”と呼びます。

プロジェクトメソッドを使用するもう1つの方法として、メニューへの割り当てがあります。メニューに割り当てられたメソッドは、メニューを選択した時に実行されます。メニューは、プロジェクトメソッドを呼び出すものと考えることができます。

データベースを管理するデータベースメソッド

フォームにイベントが発生したときに、オブジェクトメソッドやフォームメソッドが起動されるのと同様に、データベースへのイベント発生により起動するメソッドがあります。これがデータベースメソッドです。例えば、データベースをオープンするたびに、データベース全体で使用する変数を初期化したい場合があります。これには、データベースをオープンしたときに4Dが自動的に実行する 「On Startup」データベースメソッドを使用します。

データベースメソッドについての詳細は、データベースメソッドの節を参照してください。

データベースを開発する


開発は、言語や内蔵ツールを使用してデータベースをカスタマイズするということです。

データベースを作成すると、プログラミング言語の第一歩を踏み出したことになります。データベースのテーブル、フィールド、フォーム、オブジェクト、メニューの各部分は、プログラミング言語と密接に関連しています。4D言語は、データベースのこれらの部分について対応します。

プログラミング言語を初めて使用する場面は、おそらくデータ入力を制御するために、フォームオブジェクトにオブジェクトメソッドを作成する場合でしょう。そして、フォームの表示を制御するために、フォームメソッドを作成します。データベースが複雑になってくると、データベースを完全にカスタマイズするために、プロジェクトメソッドを割り当てたメニューバーを追加できます。

4Dによる開発は非常に柔軟性があります。データベースの作成に、決まった方法があるわけではありません。自分自身に合った方法で作成することができます。もちろん、以下のようないくつかの一般的なパターンはあります。

・実装: 設計した内容をデザインモードで実装する。

・テスト: アプリケーションテストメニューコマンドを使用してアプリケーションモードに移動し、設計した内容やカスタマイズした要素をテストします。

・使用: データベースのカスタマイズが完了したら、データベースを直接アプリケーションモードで実行するよう設定します。

・修正: エラーを発見したら、デザインモードに移動してそれを修正します。

4Dには、必要になるまで隠されている、データベース作成のための特別な開発支援ツールが内蔵されています。プログラミングに熟知するにつれて、これらのツールを活用することで開発プロセスを容易にしてくれることがわかってきます。例えば、メソッドエディタはタイプミスを見つけたり、プログラムソースを適切に整形します。またインタプリタ(プログラムの実行エンジン)はシンタックス中のエラーを見つけ出し、どこが誤りかを示します。デバッガは、メソッド中のエラーを見つけるために、実行中のメソッド監視、表示することができます。

アプリケーションのビルド


これでデータ入力、検索、ソート、レポート等データベースの一般的な使用方法について理解されたと思います。これらの処理は、4D内に組み込まれている標準のメニューやエディタを使用してデザインモードで実行してきました。

データベースを使用するにつれて、繰り返して実行する一連の処理があることが明らかになります。例えば個人連絡先のデータベースにおいて、データを変更するたびに、取引先を検索、名字でソート、特定のレポートを印刷すると仮定します。このようなタスクは難しくないように見えますが、処理を20回以上も実行するとなると、時間を消費します。また数週間データベースを使用しなかった場合には、レポートを作成する手順を克明に憶えているとも限りません。しかし、メソッドを作成すれば、1つのメニューを選択するだけで、一連の処理を自動的に実行してくれるためレポートを作成するための手順を忘れていても大丈夫です。

アプリケーションはカスタムメニューを持ち、データベース利用者の要求する処理を行います。アプリケーションは、データベースの全ての要素(ストラクチャ、フォーム、オブジェクト、メソッド、メニュー、パスワード等)から構成されます。

データベースをコンパイルし、スタンドアロンのWindowsとMacintoshアプリケーションを作成できます。データベースをコンパイルすることは言語の実行速度を向上させ、データベースを保護し、完全に独立したアプリケーションを作成することを可能にします。4Dに内蔵されたコンパイラは整合性のためメソッド内で変数のシンタックスと変数の型をチェックします。

アプリケーションは、人の名前を入力してレポートを印刷するだけの単純なものから、請求・在庫管理システムといった複雑なものまであります。アプリケーションの使用に制限はありません。一般にデータベースは、デザインモードでの使用から、カスタムメニューやフォームで完全にコントロールするように拡張していきます。

次は?

・アプリケーションの開発は、開発者の思うままに複雑にも簡単にもすることもできます。簡単な4Dアプリケーションの構築については4Dアプリケーションを構築するの節を参照してください。

・4Dを始めたばかりの方は、4Dの言語の基本について学ぶために4Dプログラミング言語へお進みください。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次