PowerAppsで作成するときの最も基本的な「データ選択」と「選択したデータ表示」です。
自動で作成してくれる補助機能がたくさんあるため基本的なところが分かっておらず、いつも「えーっと……」となるため、ちゃんと実践してみました。
内容
- SharePointリストをデータソースにして、Galleryに一覧表示させる
- 一覧にしたアイテムの1つをクリックしたら、Foamに詳細を表示させる

Gallery表示
レイアウト > 高さが伸縮可能なギャラリー
| プロパティ | 設定内容 | 備考 |
|---|---|---|
| Items | ‘タスク管理リスト5000件以上’ | |
| TemplateFill | If(ThisItem.IsSelected, RGBA(214, 241, 255,1), RGBA(255,255,255,1)) | 選択した行の背景色を変更 |
Gallery内のコントロール

| 左図 | 挿入 |
|---|---|
| 名前 | ディスプレイ > テキスト |
| T番号 | ディスプレイ > テキスト |
| 矢印 | 図形 > 次へ矢印 |
※すべてモダンコントロールで作成しています
名前 コントロール名:Body1
| プロパティ | 設定内容 | 備考 |
|---|---|---|
| Height | Self.Size * 1.8 | |
| PaddingLeft | 5 | |
| Size | 18 | |
| Text | ThisItem.担当者 | |
| VerticalAlign | VerticalAlign.Middle | |
| Width | Parent.TemplateWidth/2 | |
| X | 0 | |
| Y | Self.Height / 2 | 縦位置の中央を設定 |
T番号 コントロール名:Title1
| プロパティ | 設定内容 | 備考 |
|---|---|---|
| Height | Self.Size * 1.8 | |
| PaddingLeft | 0 | |
| Size | 18 | |
| Text | ThisItem.Title | |
| VerticalAlign | VerticalAlign.Middle | |
| Width | Parent.TemplateWidth/2 -(Parent.Width-Arrow1.X) | 2分割後に矢印アイコンのサイズをマイナス |
| X | Body1.Width | |
| Y | Self.Height / 2 | 縦位置の中央を設定 |
矢印 コントール名:Arrow1
| プロパティ | 設定内容 | 備考 |
|---|---|---|
| Height | Parent.TemplateHeight /2 | |
| HoverBorderColor | ColorFade(Self.BorderColor, 20%) | |
| HoverFill | ColorFade(Self.Fill, 15%) | |
| OnSelect | Select(Parent) | |
| Width | Self.Height | |
| X | Parent.Width -Self.Width -30 | |
| Y | Self.Height/2 |
Foamの設定
DataSource GalleryのDataSourceと同じSharePointリスト名を設定
Item Gallery.Selected
Itemのところに表示させるアイテム内容を設定しますので、今回はこのように。
Galleryで選択したアイテムを表示させる、という意味です。
最初はGallery側で絞込み設定するのかと悩んでいましたが、Gallery側はあくまで「何のレコードを選択したのか」という条件を示してあげるだけでOK。
実際に表示させるFoamの方で「何のレコードを選択したのか」を受領し、それを元に表示方法を設定していく、という考え方のようです。
別画面で選択したレコードをFoam表示させる
最初の画面で選択した情報は、別の画面に移動した瞬間消えてしまいます。
そのため、消えないようにその情報を保存しておく必要があります。
選択したレコードを保存しておく変数を用意し、その中に情報を入れます。
Galleryに別画面へ移動させるためのボタンを挿入
ボタンのOnSelectに以下を設定
Set(varSelectedItem, ThisItem);
Navigate(Screen2, ScreenTransition.Fade)Set(グローバル変数)を使用することで、アプリ全体でこの変数 varSelectedItem を使用できるようになりました
※varSelectedItemは適当な変数名のため、自由に変更可能です
変数にデータを保存すると同時にNavigateで画面を移動させます
Screen2にFoamを挿入して設定する
新しく挿入するFoamの設定で重要なのは「DataSource」と「Item」です。
| DataSource | ‘タスク管理リスト5000件以上’ | 必ず同じSharePointリストを設定する |
|---|---|---|
| Item | varSelectedItem | 選択したデータが保存されている変数 |
これで別の画面に移っても、選択した情報を損なうことなく表示させることが可能になりました
基本中の基本なので補助機能に頼ることなく覚えておきたいですね
