Ordaの初歩で躓いています

凄く初歩的な所で躓いておりますので お教えください。

ORDA・・少し興味を持ち始め「4D Japan テクニカルブログ」の例題より、一番基礎となる「ORDA: エンティティの新規作成・更新・削除」をダウンロードして動きとメソッドの記述を追いかけていた所、「Form.contactToSave」や「Form.selectedContact」等の「Form.」の後に記述されている「contactToSave」や「selectedContact」が命令文なのか? パラメーターなのか? オブジェクト名なのか? 何なんだろう??とリファレンスを見てみましたが見つかりませんでした。

何処かに使用されているフォームオブジェクト名なのか?と探してみましたが、その様なオブジェクトは使われておらず、メソッドの中で定義宣言されているのか?と見てみましたが宣言されている個所も見当たりません。

この「Form.」の後に書かれる記述は何なんでしょうか?
パラメータや予約語等であるならば その種類一覧はどのマニュアルの何処を参照すれば書かれているのでしょうか?

こんにちは。

一般に

object.property

object.method()

のように,

() で発動(invoke)するものはメソッド,

() がないものはプロパティといいます。

「contactToSave」や「selectedContact」はいずれも予約語ではなく,プロパティです。

プロパティというのは,変数のようなもの,
メソッドというのは,プロジェクトメソッド(プロシージャ)のようなものです。

object.property:=値
object.method():=New formula // (17R4以降)

または

OB SET(object;“property”;値)
OB SET(object;“method”;New formula(…))

と代入すれば,存在するようになります。

object:=New object(“property”;値;“method”;New formula(…))

といった感じに初期化することもできます。

こんばんは! 先日は大阪の講義で大変お世話になり 有難う御座いました。

早速 ご回答頂き有難うございます。

()付きのモノは、関数扱いだろうと思いましたので迷いは無かったのですが、
この()無しですが、4D内部で決まった名の変数と言う事でしょうか?
それとも4Dでは、変数名を型宣言無しで その場その場で使って良いと言う事なのでしょうか?

変数なのかな?と思ったりしたのですが、メソッドの何処にも型宣言されていなかったので
これって何?何処に存在するモノなのか?と疑問に思ったら、アチラこちらも連鎖で解らなくなってきまして・・・。

オブジェクト型の場合,

C_OBJECT($o)

の$oは宣言しますが,個別のプロパティ,

$o.a:=1
$o.b:=Null
$o.c:=Current date
$o.d:=Current user
$o.e:=True

を宣言することはありません。プロパティの型は決まっていないからです。

同様に,

コレクション型の場合,

C_COLLECTION($c)

の$cは宣言しますが,個別の要素,

$c[0]:=1
$c[1]:=Null
$c[2]:=Current date
$c[3]:=Current user
$c[4]:=True

を宣言することはありません。要素の型も決まっていないからです。

参考までに,以前のセミナー資料です。

https://speakerdeck.com/miyako/obuziekutoxing-developer-conference-2018yori

14枚目「バリアント型としてのプロパティ」

オブジェクト型のプロパティは型が決まっていない(多言語のバリアント型に似ている)
ことを活かしたコーディングの可能性に触れています。

お世話になって降ります。

色々とご返答を頂き、自分の中での勘違いポイントが判明いたしました。

少し4Dから遠ざかっており C系のプログラムに行っておりましたので
プログラム内で宣言記述無く変数を使う事に 凄く違和感があり頭の中で
(・・?状態から抜け出せずにいました。

4Dは、メソッドで宣言しなくても、フォーム内にいきなりオブジェクトを作り
その都度 そのオフジェクトに変数と型を指定できる事をスッカリ忘れて折りま
した。
メソッド内の何処にも 変数宣言されていない「Form.contactToSave」や
「Form.selectedContact」が出て来たので これって変数にしては宣言文が
見当たらないし・・・と言う事になりまして・・・。

ご説明をお聞きしている内に、メソッドで宣言記述をしなくてもフォームレイア
ウト作成時にオブジェクトに都度変数を作れる事を思い出しました。
もしかすると、結構初歩から4Dを勉強しなおさないといけないかもしれません・・・。
色々と 有難うございました。

それと前項でご説明頂きました個別のプロパティのプロパティの型は決まっていないので
個別宣言不要とのお話は 先日の講演時にご説明頂いた内容ですね?
この事は しっかり覚えております^^;
C_〇×で宣言された場合、その変数はポインタ変数としてアドレス内にデータを格納する為
個別の型は気にする必要は無いと言う事ですよね?

因みに、4Dで 使用されている変数一覧表をプリントアウトする事は可能なのでしょうか?
アチラこちらとその都度 変数を作っていると纏まりが無く、全体を見まわしにくいので
全体的に使用されている各種変数名が何処で使われているのか?(可能ならば何処で生まれて
いるのか?)を管理帳票として印刷できればと思うのですが・・・。

お忙しい中 宜しくお願い致します。

なかなか返信できずに申し訳ございません。

もうすでに疑問は解消されていることかもしれませんが,
記録のために,回答を残しておければと思います。

「使用されている変数一覧表をプリントアウトするには」

データベース設定 / コンパイラーで「Symbolファイルを生成」にチェックを入れてコンパイルすれば,ストラクチャと同階層にテキストファイルが出力されます。変数やメソッドなど,シンボル全般のリストです。

注記:一部の古いストラクチャでファイルが空になる事例が報告されています。

あるいは,コンパイラーの「肩宣言を生成」ボタンをクリックして,Compiler_から始まる名前のメソッドをチェックすることもできます。デザインモード「編集 > 未使用のメソッドとグローバル変数を検索」と合わせて有用なツールです。