Power Apps自分用のチートシート

Power Apps自分用のチートシート

Power Appsでよく使うコードがありますが、その都度書くのが面倒なので自分用としてまとめていきます。

フォームのモードを表示する

1つのフォームの画面で、新規作成、編集、表示を切り替えて使う時がよくあります。それぞれのモードで問題が無いかをチェックする際、画面上に一時的にテキストラベルを設置し、下のコードでモードを確認しながらチェックをしたりします。

Pwoer Apps
If(
    Form1.Mode=FormMode.Edit,"Edit",
    Form1.Mode=FormMode.New,"New",
    Form1.Mode=FormMode.View,"View"
    )
//Form1はフォームのパーツ名

オンラインかオフラインかを表示させる

アプリを使う際、オフラインで使用されては困るケースがあったりします。オフラインの時にメッセージを表示させたりします。

Pwoer Apps
//テキストラベルでオンライン、オフラインを表示する
If(Connection.Connected,"オンライン","オフライン")

//ScreenのOnVisibleなどに設定して、画面表示時にメッセージとして表示させる
If(
    Connection.Connected,
    Notify( "オンライン", NotificationType.Success),
    Notify( "オフライン", NotificationType.Error )
    )

日付の表示形式

日付の表示形式で「2023年3月25日(土)」のような形式で表示したい時があります。フォーマットで一発で作成でき無いため、Substitute関数を使って曜日を消す必要があるので備忘録的に書いておきます。

下記以外はだいたい公式ドキュメントに記載の内容で作成ができます。

Pwoer Apps
//Now()、は日付のデータを入れます。
Substitute(Text(Now() , "yyyy年mm月dd日(ddd)"),"曜日","")

中央揃え

中央揃えをする方法でよく使うのは下の2通りです。

コンテナを使う方法

コンテナを使う方法が個人的にはおすすめです。

  • 垂直コンテナ・・・横の中央揃で、要素は縦に積み重なっていく
  • 水平コンテナ・・・縦の中央揃えで、要素は横に並んでいく

それぞれ設定しているプロパティはこちらです。

プロパティ
Container2.WidthParent.Width
Container2.Height200
Container2.LayoutJustifyContentLayoutJustifyContent.Center
Container2.LayoutAlignItemsLayoutAlignItems.Center
Container3.WidthParent.Width
Container3.Height200
Container3.LayoutJustifyContentLayoutJustifyContent.Center
Container3.LayoutAlignItemsLayoutAlignItems.Center

上の方は垂直コンテナなので、要素を追加すると縦に積み重なる形で中央揃えされます。下の方は水平コンテナで、要素を追加すると横並びで中央揃えをしてくれます。

(コンテナには、分かりやすくするために罫線を付けています)

余談ですが、垂直・水平コンテナの”LayoutGap”(ギャップ)を設定すると要素の間の余白を設定できます。

プロパティ
Container2.LayoutGap20
Container3.LayoutGap10

それぞれ要素の間の余白を設定できるので、ボタンをきれいに上下や左右でレイアウトをしたい時などに便利。

上では適当に数値を入れていますが、コンテナの高さ・幅、ボタンの高さ・幅を利用してギャップを設定するときれいにコンテナ内で均等に整列できます。

プロパティ
Container2.LayoutGap(Container2.Height – Button7.Height – Button2.Height)/4
Container3.LayoutGap(Container3.Width – Button4.Width – Button6.Width)/4

コンテナを使わない方法

個人的にはあまり使わない手法です。

画面の構成はボタン一つのみを配置し、それぞ画面の中央に表示させたいと思います。

完成した画面イメージはこちら。

先程はコンテナを使って中央揃えをしていましたが、コンテナを全く使わずに真ん中に配置できています。

設定するのはボタンの位置のXとY座標のみ。

プロパティ
Button8.X(Parent.Width-Button8.Width)/2
Button8.Y(Parent.Height-Button8.Height)/2

意外とシンプルな形で作れますが、ボタンを2つ並べて中央揃えしたり、コンテナのように余白を作ることは位置を調整するしか方法が無さそうでかなり面倒。

個人的にはコンテナを使う方法をよく使います。

取得数をカウントする

データソースからの取得件数

基本的にはアプリ上で設定した値と同じになるはず。万が一の確認用途として使うかもしれません。

Pwoer Apps
//データソースの名前を()の中に書く
CountRows(datasourcename)

ギャラリーの件数を取得

ギャラリーに表示されている件数を確認する時に使います。委任の影響などの確認で使うかもしれません。

Pwoer Apps
//ギャラリーのパーツの名前(と「.AllItems」)を()の中に書く
CountRows(Gallery1.AllItems)

Power Automateを実行し、データの取得を行う

データソースの委任の制限などで、Power Automateでデータを取得する場合に使うコードです。Power Apps側でクエリを設定し、Power Automateに渡すことで、Power Automate側の作りをシンプルにすることができます。

Pwoer Apps

//Pwoer Automate用query作成
Set(
    _glbFolwQuery,
    //年齢
    "age eq " & "'" & NumberInput1.Value & "'" 
    //性別
    & "and sex eq " & "'" & DropdownCanvas2.Selected.Value & "'"
);
//フローの実行
UpdateContext({_colResultData: PowerAppV2_SharePoint検索.Run(_glbFolwQuery)});

//実行結果をテーブルへ変換
UpdateContext(
    {
        _colTblResultData: ForAll(
            Table(ParseJSON(_colResultData.flowreslt)),
            {
                address: Text(ThisRecord.Value.address),
                full_name: Text(ThisRecord.Value.full_name),
                sex: Text(ThisRecord.Value.sex),
                age: Text(ThisRecord.Value.age),
                username: Text(ThisRecord.Value.username),
                password: Text(ThisRecord.Value.password)
            }
        )
    }
)

上記は、ユーザーデータのリストを対象にしたもので、それっぽい値を入れています。

コメントを残す

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

CAPTCHA