4D v14.3メソッド |
||
|
4D v14.3
メソッド
メソッド
コマンド、演算子、および言語の他の部分を動作させるためにメソッドがあります。メソッドにはいくつかの種類があり、オブジェクトメソッド、フォームメソッド、テーブルメソッド(トリガ)、プロジェクトメソッド、データベースメソッドがあります。この章では、すべてのタイプのメソッドに共通の機能を説明します。 メソッドは、ステートメントで構成されます。ステートメントとは、メソッドの1行のことで1つの命令を実行します。ステートメントは単純な場合もあれば、複雑な場合もあります。ステートメントは常に1行ですが最大32,000文字まで使用することができます。これは、ほとんどの処理で十分な長さです。 例えば、以下の行は[People]テーブルに新しいレコードを追加するステートメントです。 ADD RECORD([People]) メソッドは、テストとループの制御フローの実行を含みます。制御フローに関する詳細は、の節を参照してください。 注:メソッドは最大2GBのテキストまたは、32000行まで記述できます。これらの限界を越えた場合、これ以上行を追加できないというアラートボックスが表示されます。 4Dのメソッドには、以下の5種類があります。
フォームメソッドが属しているフォームをイベントが含んでいる場合に、4Dがフォームメソッドを自動的に呼び出します。 オブジェクトメソッドとフォームメソッドの詳細に関しては、Form eventの節や4D Design Referenceを参照してください。
同様に、思いがけないデータの損失や不正な変更も防ぐことができます。ユーザは簡単なトリガを作成し、それを徐々に洗練されたものにしてゆくことができます。
プロジェクトメソッドは再利用でき、他のメソッドによる使用が可能です。作業の反復が必要になった場合でも、状況ごとに同じメソッドを書く必要はありません。必要に応じていつでもプロジェクトメソッドを他のプロジェクトメソッド、フォームオブジェクト、フォームメソッドから呼び出すことができます。 プロジェクトメソッドには、メニューと関連付けるというもう1つの使用方法があります。開発者がプロジェクトメソッドをメニューに関連付けると、そのメニューが選択されたときにそのメソッドが実行されるようになります。これでメニューをプロジェクトメソッドの呼び出しと同じように考えることができます。 メソッドは先頭の行から始まり、最後の行に到達するまで、各ステートメント(命令文)を実行します。以下にプロジェクトメソッドの例を示します。 QUERY([People]) ` 検索エディタ画面を表示します まず、プログラミング言語の用語と機能を説明することにします。上記の各行をステートメントまたはコードと呼びます。プログラミング言語を使用して作成したものを、単にコードとも呼びます。4Dは、コードで指定した処理を実行します。 それでは、最初の行を詳しく見てみましょう。 QUERY([People]) ` 検索エディタ画面を表示しますr この行の最初の要素であるQUERY は、コマンドです。コマンドは4Dのプログラミング言語の一部で、処理を実行します。QUERY コマンドは「クエリ」エディタを表示します。「ユーザ」モードの「レコード」メニューから「クエリ」→「検索」を選択することと同じ機能です。 この行の2番目の要素である括弧は、QUERY コマンドに対する引数(パラメータ)を指定します。引数は、コマンドが処理を実行するために必要なものです。この例では、[People]はテーブル名です。テーブル名は常に角カッコ([...])の中で指定します。つまり、PeopleテーブルがQUERY コマンドの引数であるということを意味します。コマンドの中には複数の引数を持つものもあります。 3番目の要素は、行の終りに指定されたコメントです。コメントは逆アポストロフィ(` )によって示します。開発者やコードを解析する人にこのコードが何を行っているのかを説明します。またコメント記号に続く内容は、コードを実行する時点で無視されます。 注:コメントは32000文字まで記述できます。 以下の行は、レコードが見つかったかどうかを調べます。 If(Records in selection([People])=0) ` 該当するレコードがみつからなかったならば… Ifステートメントはフロー制御文です。If文はテストを行い、結果がTrueであれば次の行を実行します。Records in selection は関数です。これは値を返すコマンドです。ここでは、Records in selection 関数は引数として渡されたテーブルのカレントセレクションのレコード数を返します。 注:関数名の頭文字だけが大文字になっていることに注意してください。これは、4Dの関数に対する命名規則によるものです。 既に、カレントセレクションとは何かについて説明しました。これは、その時点で作業対象となっているレコードの集まりのことです。レコードの数が0件の場合(レコードが全く見つからない場合)に以下の行を実行します。 ADD RECORD([People]) ` レコードを追加する ADD RECORD コマンドは入力フォームを表示し、新しいレコードを追加します。この行はインデントされています。4Dは、自動的にコードをフォーマットします。この行は、先ほどのフロー制御ステートメント(If)に従属することを示すためにインデントされています。 End if ` これで終わり End if 文はIf 文の制御セクションを終了します。フロー制御ステートメントを使用した場合は、常に制御が終了する場所を示す対応ステートメントを指定する必要があります。 この節の概念をしっかりと把握し、理解してください。 もっとよく知るには、以下の節を参照してください:
|
プロパティ
プロダクト: 4D 参照
データタイプ ARTICLE USAGE
ランゲージリファレンス ( 4D v12.4) |