1. 操作系コントロール
1.1 ボタン / アイコン
ユーザーがクリックまたはタップして操作できるコントロールです。
どちらのコントロールもOnSelectプロパティを持ち、このOnSelectにクリックされた際の処理を書きます。
よく使うプロパティ
- OnSelect : ボタンやアイコンがクリックされた際の処理を記述
- Visible:ボタンやアイコンの表示/非表示の切り替え(true:表示 / false:非表示)
- DisplayMode:ボタンの活性/非活性の切り替え
- DisplayMode.Edit:活性
- DisplayMode.Disabled:非活性
- DisplayMode.View:表示のみ(操作不可)
Visibleがfalseの場合は非表示
左からDisplayMode.Edit, DisplayMode.Disabled, DisplayMode.View
※VisibleとDisplayModeプロパティはほぼすべてのコントロールで使用するプロパティです。
以降のコントロールの説明では省略します。
1.2 テキスト入力(テキストボックス)
ユーザーが文字列を入力するコントロールです。
数字のみ入力させることや、複数行テキストを入力させることも可能です。
よく使うプロパティ
- Text:入力されているテキストを取得
- Default:既定で入るテキストを指定 ※このプロパティに変数を設定すると、その変数の更新でテキスト入力コントロールのテキストを更新可能
- Format:入力可能なテキストの種類。文字列または数字を指定
- Mode:単一行また複数行を指定
- OnChange:入力されたテキストが変更された際の処理を記述
1.3 コンボボックス/ドロップダウン
ユーザーが選択肢から値を選択できるコントロールで、以下が大きな違いです。
- コンボボックス:検索可能、複数選択可能
- ドロップダウン:選択なし状態の不許可
よく使うプロパティ(共通)
- Items:表示する選択肢
- OnChange:選択が変更された際の処理を記述
- Selected:選択されている選択肢
よく使うプロパティ(コンボボックス)
- DisplayFields:コンボボックスに表示する列の名前
- SelectMultiple:複数選択の可否
- IsSearchable:検索の可否
- DisplayFields:検索対象とする列の名前
- DefaultSelectedItems:既定の選択肢
- SelectedItems:選択されている選択肢(複数)
よく使うプロパティ(ドロップダウン)
- Default:既定の選択肢
- AllowEmptySelection:「選択なし」状態の可否
1.4 チェックボックス
ユーザーがオンまたはオフを設定できるコントロール。
よく使うプロパティ
- Text:チェックボックスに表示するラベル
- Default:既定の選択状態
- Value:チェックされているか否かを取得
- OnCheck:チェックが付いた際の処理を記述
- OnUnCheck:チェックが外れた際の処理を記述
1.5 フォーム
フォームコントロールはデータソースのデータを新規追加/編集/表示するためのコントロールです。
フォームコントロールの説明では以下のSPOリスト(データソース)を使用します。
フォームコントロールのプロパティ「Datasource」に対し、上記SPOリストを設定すると、以下のように自動で入力/表示用のコントロールが作成されます。
DefaultModeプロパティ
フォームコントロールのプロパティ「DefaultMode」を変更することで、フォームコントロールの最初のモードを指定することができます。
新規追加モード(FormMode.New)
DefaultModeに「新規(FormMode.New)」を指定することで、フォームコントロールは新規追加モードになります。
値を入力し、任意のコントロール(例ではボタン)からSubmitForm関数を呼びことで、データソースにデータを追加することができます。
↓ ボタン押下でデータが追加される。
SubmitFormを呼び出したフォームコントロールは、自動で編集モードに切り替わります。
例では編集対象のデータを指定していないため、「表示するアイテムがありません」メッセージが表示されています。
※編集対象のデータの指定方法は次の章
編集モード(FormMode.Edit)
DefaultModeに「編集(FormMode.Edit)」を指定することで、フォームコントロールは編集モードになります。
また、SubmitFormを呼び出されたフォームコントロールは自動で編集モードに変わります。
編集対象のデータは、Itemプロパティを使用し、指定します。
下の例ではFirst関数と組み合わせることで、データソースの最初のデータを編集するように指定しています。
アプリ上で内容を編集しSubmitFormを呼び出すことで、データソースのデータが更新されます。
※Itemプロパティを指定せずに編集/表示モードにし、アプリを再生モードにすると「表示するアイテムがありません」エラーメッセージが表示されます。
表示モード(FormMode.View)
DefaultModeに「表示(FormMode.View)」を指定することで、フォームコントロールは表示モードになります。
編集モードと同様にItemプロパティを使用し、表示するデータを指定します。
アプリ実行中のモードの切り替え
NewForm、EditForm、ViewForm関数を呼び出すことで、アプリ実行中にフォームコントロールのモードを変更することが可能です。
表示モードのフォームコントロールに対し、NewForm関数を呼び出すと、
新規追加モードに変わります。
よく使うプロパティ
- LastSubmitItem:該当のフォームコントロールにて、最後にSubmit(新規追加 or 編集)したアイテムを指定できます。
- OnSuccess:SubmitFormの呼び出し(新規追加 or 編集)が成功したときの処理を記述します。※常に新規追加モードのフォームを作成したい場合、このOnSuccess内でNewForm関数を呼び出します。
DataCardのUpdateプロパティ
新規追加モードや編集モードのフォームにSubmitFormを呼んだ際に、データソースの各列に対しどのような値を入れるか、はフォーム内の各列に対応したDataCardコントロールのUpdateプロパティに定義します。
以下の画像のフォームコントロールに対しSubmitFormを呼ぶと、SharePointリストの「タイトル」列へは、常にログインユーザーのメールアドレス(User().Emailの値)が代入されます。
2. 表示系コントロール
2.1 ラベル
ラベルコントロールはテキストを表示するコントロールです。
ラベルコントロールでは、テキストは表示のみで編集はできません。
よく使うプロパティ
- Text:ラベルに表示するテキスト
- Wrap:表示するテキストの長さがラベルの幅に収まらない場合、折り返して表示するか省略して表示するかを指定 ※省略表示する場合はToolTipプロパティに全文を載せることが多い。
2.2 ギャラリー/データテーブル
ギャラリーコントロールとデータテーブルは、複数の値を持つテーブル(コレクションやデータソース)を表示するコントロールです。
例として以下のコレクションを扱います。
ギャラリー
ギャラリーにサンプルコレクションを表示すると、以下のような表示となります。
ギャラリー内のコントロールで、「ThisItem」を指定することで、そのアイテムのプロパティにアクセスすることが可能です。
データテーブル
データテーブルでサンプルコレクションを表示すると、以下のようになります。
ギャラリーとデータテーブルの使い分け
ギャラリーとデータテーブルは、主に以下を加味し使い分けを行います。
- 縦横両方にスクロールバーが必要 :データテーブル
- 細かなレイアウト調整をしたくない :データテーブル
- 細かなレイアウト調整が必要 :ギャラリー
- 細かなデザイン適用が必要 :ギャラリー
- 既定で選択するアイテムを指定したい:ギャラリー
よく使うプロパティ(共通)
- Items:表示するテーブル(コレクションやデータソース)を指定
- Selected:選択中のアイテム
よく使うプロパティ(ギャラリーのみ)
- AllItems:表示しているすべてのアイテム
- Default:既定で選択するアイテム
- WrapCount:アイテムを折り返す数
※WrapCountの指定とレイアウトの調整でサムネイル表示も可能
3. その他コントロール
3.1 Appコントロール
Appコントロールはアプリケーションの制御に関する処理を記述するコントロールです。
起動時の処理や起動時に表示する画面などをこちらで指定することができます。
よく使うプロパティ
- OnStart:起動時の処理を記載します。
- Formulas:アプリで使用する定数を定義します。
- StartScreen:起動した際に表示する画面を指定します。
- ActiveScreen:現在アプリで表示中の画面を取得できます。
OnStartプロパティ
アプリ起動時の処理を記載するプロパティで、主にグローバル変数やコレクションの初期値を宣言する際に使用されます。
OnStartプロパティ内に処理を多数記述してしまうと、アプリ起動時のパフォーマンスに影響を与えてしまう可能性があるため、注意が必要です。
開発中にOnStart処理をテストしたい際や実行したい際は、「…」メニューより実行することが可能です。
Formulasプロパティ
アプリで使用する定数を定義します。
詳細は以下のサイトを参照してください。
>>PowerAppsアプリで使う定義値はApp.OnStartではなくApp,Formulasで宣言する
StartScreenプロパティ
アプリ起動時に表示する画面を定義します。
IfやSwitch関数と組み合わせることにより、外部の値(データソースの値)などによって起動画面を分岐させることも可能です。
詳細は以下のサイトを参照してください。