⚙️

編集フォームのカスタム カードに表示されないプロパティがある

2024/05/14に公開

はじめに

Power Apps の編集フォームでフィールドを選択する方法の他にカスタム カードを追加することができます。

例として取引先企業テーブルを編集するフォームを作成してみます。データ ソースに紐づけられたカードの場合は Default プロパティが表示されます。

一方、カスタム カードの場合は Default プロパティが表示されません。他にも MaxLengthUpdate も表示されていません。

これらはカード内のコントロールと編集フォームが連携するために必要なプロパティです。このような違いがどうして生まれるのかを確認したいと思います。

実行手順

まずはキャンバス アプリを .msapp ファイル形式でダウンロードします。ダウンロードしたファイルを Microsoft Power Platform CLI (pac) コマンドで展開します。

pac canvas unpack --msapp {{filepath}} --sources {{dirpath}}

展開してできたフォルダーの Src フォルダーにある Screen2.fx.yaml を開いて中身を確認します。

Screen2 As screen:

    Form1 As form:
        ...

        DataCard1 As typedDataCard.blankCard:
            BorderStyle: =BorderStyle.Solid
            DisplayMode: =DisplayMode.Edit
            Fill: =RGBA(0, 0, 0, 0)
            Height: =200
            Width: =455
            X: =0
            Y: =2
            ZIndex: =1

        取引先企業名_DataCard1 As typedDataCard.textualEditCard:
            BorderStyle: =BorderStyle.Solid
            DataField: ="name"
            Default: =ThisItem.取引先企業名
            DisplayMode: =Parent.DisplayMode
            DisplayName: =DataSourceInfo([@'取引先企業 '],DataSourceInfo.DisplayName,name)
            Fill: =RGBA(0, 0, 0, 0)
            Height: =50
            MaxLength: =DataSourceInfo([@'取引先企業 '], DataSourceInfo.MaxLength, name)
            Required: =true
            Update: =DataCardValue1.Text
            Width: =455
            X: =0
            Y: =0
            ZIndex: =2
        ...

取引先企業名 に紐づけられたカードの場合は typedDataCard.textualEditCard です。これはテキスト フィールドだからで、選択肢フィールドの場合は typedDataCard.comboBoxEditCard になります。またカスタム カードは typedDataCard.blankCard という型になっていることがわかります。フィールドのデータ型に対して対応するカードの種類があるということがわかります。

おわりに

カスタム カードの typedDataCard.blankCardtypedDataCard.textualEditCard に変更して .msapp ファイル形式に圧縮し、アップロードすると、見えなかったプロパティが見えるようになります。何かのときに使えるテクニックだと思います。

Discussion