ブロックの変更を親に反映する
再利用可能な画面要素を使用している場合、その親がそこで起こっているインタラクションに反応することが考えられます。OutSystemsでは、ブロックはインスタンス化されている親要素、画面またはブロックのイベントハンドラをトリガーするイベントを定義できます。イベントハンドラには、エンドユーザーのインタラクションに反応するロジックが含まれます。
モバイルアプリでは、以下の手順を実行します。
-
要素ツリーのブロックを右クリックし、イベントを追加します。使用されると、このイベントはそのブロックの親に通知を送信します。
-
必要な場合は、通知とともに送信される入力パラメータをイベントに追加します。
-
変更を反映するクライアントアクションのブロック要素ツリーにあるイベントを使用します。
-
通知を処理する親を開き、ブロックを選択します。プロパティペインで、[Events]セクションに移動し、イベントハンドラのプロパティを通知を受け取るクライアントアクションに設定します。
-
イベントによって送信された値がある場合は、入力パラメータをこのアクションに追加し、イベントの値を割り当てます。
Webアプリでは、以下の手順を実行します。
-
変更を反映するブロックのアクションを開きます。
-
アクションフローにNotifyアクションを追加します。オプションとして、反映するテキスト値に入力パラメータMessageを設定します。これ以降、アクションが実行されると親に通知が反映されます。
-
通知を処理する親を開き、ブロックを選択します。ブロックのプロパティペインで、[On Notify]セクションのDestinationプロパティを通知を受け取るアクションに設定します。
-
そのアクションで、通知を処理するロジックを実装します。指定された場合は、NotifyGetMessageアクションを使用して、通知とともに送信されたメッセージにアクセスします。
モバイルアプリの例
場所のレビューや評価ができるアプリケーションであるGoOutアプリケーションでは、エンドユーザーは場所を1つから5つの星で評価できます。評価を表示するStarRatingという名前のブロックを作成しました。これを、星をタップすると評価できるように変更します。
-
StarRatingブロックを開きます。
-
[Interface]タブで、StarRatingブロックを右クリックし、「RatingChanged」という名前のイベントを追加してInteger型のNewRating入力パラメータを設定します。
-
ブロックに「ChangeRating」という名前の新しいクライアントアクションを追加し、Integer型のNewRating入力パラメータを設定します。
-
新しいアクションを開きます。Trigger Eventをツールボックスからアクションフローにドラッグし、RatingChangedイベントを選択します。イベントのNewRating入力パラメータをアクションのNewRating入力パラメータに設定します。
-
[WriteReview]画面を開きます。この画面は場所のレビューを送信するために使用され、レビューで場所を評価するためにStarRatingブロックを使用します。
-
画面に「ChangeRating」という名前のアクションを作成し、Integer型のNewRating入力パラメータを設定します。
-
画面のStarRatingブロックを選択します。イベントRatingChangedのHandlerプロパティをChangeRatingアクションに設定し、NewRating入力パラメータをイベントの入力パラメータに設定します。これで、ChangeRatingアクションはRatingChangedイベントのハンドラとして設定されます。
-
ChangeRatingアクションでは、レビューの分類をイベントを通して受け取った新しい評価に変更します。
-
アプリケーションをパブリッシュしてテストします。
Webアプリの例
場所のレビューや評価ができるアプリケーションであるGoOutWebアプリケーションでは、エンドユーザーは場所を1つから5つの星で評価できます。星アイコンを使用して、現在の評価を表示するStarRatingという名前のブロックを作成しました。これを、エンドユーザーが星をクリックすると場所を評価できるように変更します。
-
StarRatingブロックを開きます。
-
エンドユーザーが評価しようとクリックするたびに実行するアクションであるOnClick画面アクションで、Executeアクションをツールボックスからアクションフローにドラッグし、Notifyアクションを選択します。
-
NotifyアクションのMessageプロパティをOnClickアクションのNewRating入力パラメータに設定します。これで、エンドユーザーが選択した評価が親に反映されます。
-
[Homepage]画面を開き、場所の評価を割り当てるStartRatingブロックを使用します。
-
StartRatingブロックを選択し、Destinationプロパティを「OnNotify」という名前の新しい画面アクションに設定します。
-
このアクションで、フォームレコードの評価を新しい値に設定します。ブロックからの通知アクションで渡される値を読み込むために、NotifyGetMessage()関数を使用します。受け取った値はテキストなのでInteger型にするために、TextToInteger()関数を使用して値をキャストします。
-
アプリケーションをパブリッシュしてテストします。