Skip to main content

 

アプリケーションの開発

 

OutSystems

ブロック間でデータを渡す

子ブロックのある画面やブロックで、子ブロックのイベントが別のブロックの更新を必要とすることがあります。たとえば、日付ピッカーを含むブロックが変更されると、別のブロックによって描画されたチャートを更新する必要があります。

たとえば、2つのブロックの親である画面があるとします。

  • 日付ピッカーを実装するSourceブロック。
  • 日付に基づいてチャートを描画するTargetブロック。

Sourceブロックで日付が変更されると、Targetブロックをリフレッシュする必要があります。

日付ピッカーはチャートに表示されているタイムフレームを更新します

以下は、ブロック間の伝達の概要です。

  1. Sourceブロックで、親画面/ブロックに通知して必要なデータを渡すために、イベントを作成してトリガーします。
  2. 画面/ブロックで、Sourceブロックによってトリガーされたイベントを処理し、Targetブロックの入力パラメータを更新します。
  3. モバイルアプリの場合、最後にTargetブロックで、必要に応じてOnParametersChangedイベントハンドラのロジックを実行します。Webアプリケーションの場合、Targetブロックを明示的にリフレッシュします。

この伝達の仕組みを実装するには、以下の手順を実行します。

Sourceブロック:

  1. 要素ツリーのSourceブロックを右クリックし、イベントを追加します。必要な場合は、親に値を渡すための入力パラメータをイベントに追加します。

  2. Trigger Eventツールを使用して、イベントをトリガーするアクションを作成します。必要な場合は、イベントの入力パラメータとして必要なデータを渡します。

  3. イベントをトリガーするためにアクションを呼び出します。

画面/ブロック:

  1. インターフェイスエディタで、Sourceブロックインスタンスのウィジェットを選択します。

  2. プロパティペインで、Sourceブロックによってトリガーされたイベントに新しいイベントハンドラのアクションを追加するために、[Events]セクションのEventプロパティとHandlerプロパティを編集します。

  3. 新しく作成されたアクションで、Targetブロックの入力パラメータに新しい値を設定するロジックを実装します。この結果、Targetブロックが自動的に更新されます。

モバイルアプリで、更新された入力パラメータの値に応答してTargetブロックがロジックを実行する必要がある場合は、以下の手順を実行します。

  1. 要素ツリーで、Targetブロックを選択します。

  2. プロパティペインで、[Events]セクションのOn Parameters Changedプロパティを編集し、入力パラメータの値が変更された際に実行するクライアントアクションを作成するために[(New Client Action)]を選択します。

  3. 新しく作成されたクライアントアクションで、クエリをリフレッシュする、または入力パラメータの新しい値を処理するロジックを実装します。

Webアプリケーションで、更新された入力パラメータの値に応答してTargetブロックがロジックを実行する必要がある場合は、以下の手順を実行します。

  1. イベントハンドラアクションに移動します。

  2. Ajax Refreshツールを使用してTargetブロックを更新します。