PowerApps│最後に更新したレコードをギャラリーで選択状態にする方法

こんにちは、あんこ先生です。

新規にレコードを追加したとき、ギャラリーコントロールは追加前に選択していたレコードになっていた。

それで困ったことはありませんか?

これは、レコードの追加修正に関わらずギャラリーコントロールが選択情報を維持しているためです。

例えば、商品コード130番を選択した状態で、新たに200番を新規に追加したとします。

すると、ギャラリーコントロールに200番の商品が追加されますが、130番が選択状態を維持し続けます。

これでは先ほど追加した商品の明細をフォームに表示させられないばかりか、130番を200番の内容だと誤認してしまい、不便ですよね。

そこで、今回の記事では、最後に更新したレコードをギャラリーコントロールで選択状態とさせる方法を紹介します。

実際にコードをコピペして、動作を確認してみましょう!

そもそもギャラリーがなにかわからない、ちょっと復習したいって人はこの記事をどうぞ。


なぜギャラリーコントロールの選択情報を更新するのか

答えはひとつ、ギャラリーコントロールが選択しているレコードを他コントロール等に参照させるためです。

ギャラリーコントロールが選択しているレコードはGalleryxx.Selectedとして多様な活用ができます。

フォームコントロールItemプロパティをはじめ、グラフへの展開、条件判定など非常に使い勝手がよいレコードです。

そのため、選択情報を操作できることは大きなアドバンテージにつながります。

ギャラリーコントロールの選択初期値について


ギャラリーコントロールの初期値は、Defaultプロパティで設定できます。

通常空欄のため、アプリ起動直後は先頭のレコードになります。

ここにレコードを指定すれば、該当するレコードが選択状態になります。

//レコード選択例
LookUp(M_PriceList,Code=106)
DropDown.Selected

ただし、初期値なので他を選択すると元には戻りません。

その場合、Reset関数を実行することで、再度Defaultプロパティを参照させることができます。

なお、指定したレコードが存在しない場合は先頭レコードが選択されます。

つまり、ここにフォームで最後に更新したレコードを指定すればよいのね!

フォームコントロールの最終更新レコードについて

ギャラリー選択


フォームコントロールの最終更新レコードは、LastSubmitプロパティで取得できます。

LastSubmitプロパティは、フォームコントロールで更新したレコードを戻り値として保持します。

つまり、ギャラリーコントロールDefaultプロパティに次のコードを埋め込めば実現できるわけです。

Formxx.LastSubmit

とても簡単でしたね。


フォームコントロール以外で更新した場合

注意点がひとつあります。

LastSubmitプロパティPatch関数などの参照元として使用、レコード更新した場合でも、更新前の値を保持します。

この時、フォームコントロールItemプロパティGalleryxx.Selectedにした場合は、更新後のを表示します。

//実行した更新コード
Patch(M_PriceList,Formxx.LastSubmit,{PurchasePrice:400})


該当レコードを削除した場合

Formxx.LastSubmitで保持しているレコードをRemove関数などで削除した場合は空になります。

次にレコードを更新すると、そのレコードを保持します。

活用事例


最後に追加したデータを削除する

Remove(M_PriceList,Formxx.LastSubmit)

レコードを追加のみしていく前提の運用ですが、上記のアイコンを押せば最後に追加したレコードのみ確実に削除できます。

2回目以降はFormxx.LastSubmitの中身が空になるため、それ以上削除されることはありません。


一時的なレコード修正のログを取得する

Collect(_Log,Formxx.LastSubmit)

フォームコントロールOnSuccessプロパティに上記コードを埋め込めばログが取得できます。

コレクションなのでアプリを終了すると消えます。

必要ならリストなどに書き込みましょう。

まとめ

今回は最後に更新したレコードをギャラリーコントロールで選択させる方法を紹介しました。

Defaultプロパティに1行埋め込むだけなので簡単でしたね。

さっそくアプリに組み込んで動作させてみましょう!

アイキャッチ
アイキャッチ-コントロール

ご支援よろしくおねがいします

この記事を気に入ってくださった方、寄付してあげてもいいよという方がいらっしゃっいましたら、ご支援いただけると助かります。

下記リンクからAmazonギフト券で、金額は15円からお気持ちを入力してください。

受取人のメールアドレスは amazon@anko7793.com までお願いします。

メッセージもいただけるとたいへん喜びます。

よろしくお願いします。

Amazonギフト券(Eメールタイプ) 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
七草あんこ
非IT系中間管理職やってます。社命によりoffice365を主軸とした業務改善プロジェクトメンバーに任命されたことでPowerAppsと出会えました。いまではビジネス・プライベートを問わず、欠かせないツールになっています。導入初期やアプリ作成時に遭遇した諸問題の解決法とサンプルアプリの作り方を紹介していきます。主にTwitterで情報収集しているので不明点など呟いているとお邪魔するかもしれません。