最近のアクセス:
Call メソッド

Web パネルまたはプロシージャーなどの GeneXus オブジェクトを別のオブジェクト (呼び元) から呼び出すことができます。呼び出しでは、パラメーターを転送する場合と転送しない場合があります。

構文

ObjectName.Call( [ parm1, ...., parN ] )
入力値の説明:
ObjectName
      呼び出すオブジェクトの名前です。
par1, …, parN
オプションのパラメーターであり、目的に応じて呼び先オブジェクトに送信できます (これらのパラメーターを呼び先オブジェクトで受信するには、Parm ルールを使用してパラメーターを宣言する必要があります)。
Call メソッドは、呼び元がトランザクションなのか、Web パネルなのか、プロシージャーなのかに応じて、呼び元オブジェクトの異なるセクションに記述できます (たとえば、呼び元がプロシージャーの場合は、Call メソッドをオブジェクトのソースの行に指定する必要があります。呼び元オブジェクトがトランザクションの場合は、要件に応じて、オブジェクトの [ ルール ] セクションやイベント内に Call メソッドを指定します)。
重要: Call メソッドの構文では、ドットと Call を省略できます。省略しても、GeneXus にはオブジェクトの呼び出しを検出する機能が備わっているため、呼び出し内容はまったく同じです。

1) ナレッジベース内に Web パネルがあり、フォームにボタンが 1 つだけあるとします。ユーザーがこのボタンを押すと、そのボタンに関連付けられたイベントが実行されます。ここでの目的は、すべての顧客を印刷するプロシージャーを呼び出すことです。そこで、この目的を達成するため、ボタンに関連付けられたイベント内に次のコードを定義します:
Event 'Print all customers'
    PrintAllCustomers.call()
EndEvent
次のコードは上記とまったく同じように動作します:
Event 'Print all customers'
    PrintAllCustomers()    //ドットと call が省略されています。
EndEvent
どちらの例でも、PrintAllCustomers というプロシージャーがパラメーターなしで呼び出されます (このため、Parm ルールをプロシージャーで定義する必要はありません)。

2) 次に、Web パネルのフォームに、データベースに格納されたすべての国を表示するダイナミック コンボ ボックスがあるとします。また、フォームにはボタンも存在するとします。ユーザーは国を選択した後、このボタンを押します。ここでの目的は、ユーザーが選択した国に属するすべての顧客を印刷するプロシージャーを呼び出すことです。
イメージ:24260.png
ユーザーが国を選択すると、ダイナミック コンボ ボックスに関連付けられた &CountryId 変数に CountryId 項目属性の値が割り当てられます。その後、ユーザーがボタンを押すと、そのボタンに関連付けられたイベントが実行されます。
このため、ボタンに関連付けられたイベント内部にプロシージャーの呼び出しを定義する必要があります。この場合は、&CountryId 変数をパラメーターとしてプロシージャーに送信します。プロシージャーはこのパラメーターを受信します (プロシージャー内で Parm ルールを使用してパラメーターを宣言する必要があります)。最後に、プロシージャーで受信した値を使用して、その国に属する顧客をフィルタリングします。
ボタンに関連付けられたイベント内の次のコードは、PrintCustomers というプロシージャーを呼び出し、そのプロシージャーにパラメーターとして &CountryId 変数が送信されます:
Event 'Print customers'
    PrintCustomers(&CountryId)    
EndEvent
プロシージャーでは、次のルールが定義されている必要があります:
parm(&CountryId);
...次のコードに示すように、その国に属する顧客をフィルタリングするために、プロシージャーのソースで &CountryId 変数が使用されます:
イメージ:24267.png

モバイルアプリケーション開発用のオブジェクトの注記

スマート デバイス オブジェクトでは、Call メソッドはネイティブ モバイル アプリケーションのイベントで記述する必要があります。

参考情報

Udp メソッド

動画

イメージ:20668.png Communication between objects



サブページ
Created: 14/09/18 03:09 by Admin Last update: 21/11/07 21:43 by Admin
カテゴリ
Powered by GXwiki 3.0