次の方法で共有


キャンバス アプリのデータ カードについて

データ カードは、キャンバス アプリでフォームを動作させる構成要素です。 この記事では、カードをカスタマイズして、必要な方法でデータを正確に表示および収集する方法について説明します。

キャンバス アプリの表示フォーム コントロールと編集フォーム コントロールは、レコード全体のコンテナーです。 各フォームには、フォームの構成要素である複数の カード コントロールがあります。 各カードは、レコードから 1 つのフィールドを表示または編集し、 その DataField プロパティを使用してそのフィールドにリンクできるようにします。 フォームには完全なレコードが表示され、各カードは 1 つのフィールドに焦点を当てて、データの表示または更新方法を制御します。

学習内容:

  • 既存のデータ カードをカスタマイズする方法
  • 高度な変更のためにカードのロックを解除する方法
  • カスタム カード操作を作成する方法

前提 条件: フォームを初めて使用する場合は、まずフォームの 追加データ フォームの理解に関する記事を参照してください。

試してみる: カードの種類を変更する

任意のアプリでカードのカスタマイズをすぐに試すことができます。 Power Apps には、文字列、数値、およびその他のデータ型用の定義済みのカードが用意されています。

Power Apps で選択したカードのスクリーンショット。

カードを変更するには:

  1. Power Apps Studio で編集用にアプリを開きます。
  2. ツリー ビューでフォーム コントロールを選択します。
  3. [プロパティ] ウィンドウで、変更するフィールドを見つけます。
  4. 使用可能なオプションを表示するには、カードの種類のドロップダウンを選択します。

右側のウィンドウには、使用可能な種類が表示され、フィールドのカードを変更できます。

Assets という名前のリストから構築されたアプリの編集フォーム コントロールのスクリーンショット。フォームには、カスタマイズできるいくつかのフィールドが表示されます。

この例では、1 行のテキスト カードが選択されていますが、URL テキストが 1 行に収まる長さよりも長くなっています。 このカードを複数行のテキスト カードに変更して、ユーザーが編集できる領域を増やします。

Power Apps での複数行テキスト カードの編集のスクリーンショット。

このデータ ソースのいくつかのフィールドは表示されませんが、そのチェック ボックスを選択することで、フィールドの表示/非表示を切り替えることができます。 この例では、 SecurityCode フィールドを表示する方法を示します。

カードをカスタマイズする

カードにはさまざまなコントロールが含まれています。 編集フォーム コントロールで、挿入タブから追加する標準のテキスト入力コントロールにデータを入力します。

この記事では、カード内のコントロールを変更してカードの外観を変更する方法について説明します。

  1. SecurityCode フィールドに最後に挿入したカードに戻ります。 このカードを 1 回選択して選択します。

    セキュリティ コードを選択します。

  2. 入力コントロール自体を選択して、カード内の テキスト 入力コントロールを選択します。

    テキストの入力を選択します。

  3. 選択ボックスをドラッグしてカード内でコントロールを移動し、選択ボックスの端に沿ってハンドルをドラッグしてサイズを変更します。 SecurityCode カード内のテキスト入力コントロールのドラッグとサイズ変更のスクリーンショット。

カード内のコントロールのサイズ変更、移動、その他の変更を行うことができますが、最初にロックを解除しないとコントロールを削除することはできません。

カードのロックを解除する

コントロールを含めるだけでなく、カードはプロパティと数式を含むコントロールであり、高度なカスタマイズに使用できます。 フォームにフィールドを表示することを選択すると、右側のウィンドウによってカードが自動的に作成され、必要な数式が生成されるため、時間と労力が節約されます。 これらの数式は、右側のウィンドウの [ 詳細設定 ] タブで確認できます。

詳細ロック。

ここには、カードの最も重要なプロパティの 1 つである DataField プロパティが表示されています。 このプロパティは、データ ソースのどのフィールドがこのカードに表示され、ユーザーが編集できるかを示します。

詳細設定タブの上部にあるバナーは、このカードのプロパティがロックされていることを示します。 DataFieldDisplayNameRequired の各プロパティの横にも錠アイコンが表示されます。 これらの数式は右ウィンドウで作成されたもので、これらのプロパティが誤って変更されるのを防ぐためにロックされています。

ロック アイコン。

上部のバナーを選択してカードのロックを解除すると、これらのプロパティを変更できます。

ロック解除されたカード。

ここでは、DisplayName を変更して、AssetID の間にスペースを挿入します。 この変更を行うことで、生成された内容を変更します。 右側のウィンドウで、このカードに異なるラベルが設定されています。

表示名を変更します。

これで、このカードを制御できるようになり、ニーズに合わせてさらに変更できます。 ただし、以前と同様に、カードを 1 つの表現から別の表現 (1 行のテキストから複数行のテキストなど) に変更する機能は失われます。 定義済みのカードを、制御する "カスタム カード" に変換しました。

重要

カードのロックを解除すると、再びロックすることはできます。 カードをロック状態に戻すには、カードを一旦削除し、右側のウィンドウに再挿入します。

カード内のコントロールの追加や削除などのさまざまな方法を使用して、ロックを解除したカードの外観や動作を変更できます。 たとえば、挿入タブのアイコン メニューから星の図形を追加できます。

スターを追加します。

星はカードの一部になり、たとえばフォーム内のカードを並べ替えた場合に一緒に移動します。

もう 1 つの例として、ImageURL カードのロックを解除し、次に挿入タブから 画像 コントロールを追加してみます。

画像を追加します。

数式バーで、このコントロールの Image プロパティを TextBox.Text に設定します。ここで、TextBox は URL を保持するテキスト入力コントロールの名前です。

イメージを表示します。

画像が表示され、この URL を編集することができます。 Image プロパティとして Parent.Default を使用することもできますが、ユーザーが URL を変更しても更新されません。

このアプリの 2 番目の画面でも同じことを行うことができます。この画面では、 表示フォーム コントロールを使用してレコードの詳細を表示します。 この場合、ユーザーがその画面の URL を編集しないため、ラベルを非表示にする (カードではなくラベルの Visible プロパティを false に設定する) 場合があります。

画像表示を表示します。

フォームの操作

カードのロックを解除すると、カードとそれを含むフォーム間の操作方法を変更できます。

ここでは、コントロールがどのようにカードと連動し、カードがどのようにフォームと連動するかについてのガイドラインを示します。 これらのガイドラインは、カードやカード内のコントロールなど、他のコントロールを参照する数式の作成方法を理解するのに役立ちます。 創造的である - あなたは、あなたの特定のニーズに合わせて多くの方法でアプリを構築することができます。

DataField プロパティ

カードで最も重要なプロパティは DataField プロパティです。 このプロパティは、検証を制御し、どのフィールドが更新されるかを決定し、カードの他の側面を管理します。

入力される情報

フォームは、コンテナーとして ThisItem をそこに含まれるすべてのカードで利用できるようにします。 このレコードには、現在対象になっているレコードのすべてのフィールドが含まれます。

すべてのカードの Default プロパティを ThisItem に設定します。FieldName。 場合によっては、この値が入ってきたときに変換することがあります。 たとえば、文字列の書式を設定したり、ある言語の値を別の言語に変換したりできます。

カード内の各コントロールは Parent.Default を参照してフィールドの値を取得する必要があります。 この戦略ではカードをカプセル化し、内部式に影響を与えることなくカードの既定のプロパティを変更できるようにします。

既定では、データ ソースのメタデータは、DataField プロパティに基づいて DefaultValue プロパティと Required プロパティを設定します。 これらの数式を独自のロジックで上書きし、DataSourceInfo 関数を使用してデータ ソースのメタデータを統合することができます。

出力される情報

ユーザーによってカード内のコントロールが使用され、レコードが変更されたら、SubmitForm 関数を使用してこれらの変更をデータ ソースに保存します。 この関数が実行されると、フォーム コントロールは、変更するフィールドを識別するために各カードの DataField プロパティの値を読み取ります。

フォーム コントロールは、各カードの Update プロパティの値も読み取ります。 この値は、このフィールドのデータ ソースに格納されます。 これは、カードの 既定 の数式で適用した変換を元に戻すために、別の変換を適用する場所です。

Valid プロパティは、DataField プロパティに基づいて、データ ソースのメタデータから設定されます。 また、Required プロパティと、Update プロパティに値が含まれているかどうかにも基づいています。 Update プロパティの値が有効でない場合、Error プロパティはユーザー フレンドリなエラー メッセージを提供します。

カードの DataField プロパティが空白の場合、カードはコントロールのコンテナーとして機能します。 フォームを送信するとき、その Valid プロパティと Update プロパティは関与しません。

例の解説

基本的なデータ入力カードを構成するコントロールを調べてみましょう。 各コンポーネントがカードの機能にどのように貢献しているかを理解するのに役立つ、コントロール間の領域が増え、より明確に表示されます。

カードを分析します。

この図では、データ カード内のコントロールに次のラベルが付けられます。

カードを分析します。

このカードは、次の 4 つのコントロールで構成されています:

件名 タイプ プロパティ
TextRequiredStar Label コントロール 星印を表示します。この印は、データ入力フォームで必須フィールドを示すためによく使用されます。
TextFieldDisplayName Label コントロール ユーザー フレンドリーなフィールド名を表示します。 この名前は、データ ソースのスキーマに含まれる名前と同じである必要はありません。
InputText 入力テキスト コントロール フィールドの初期値を表示し、ユーザーがその値を変更できるようにします。
TextErrorMessage Label コントロール 検証で問題が発生した場合、ユーザー フレンドリーなエラー メッセージを表示します。 また、必須フィールドにおいて値が入力されることを保証します。

コントロールにデータを設定するため、これらの重要な数式を使用して、そのプロパティをカードのプロパティから実行することができます。 数式は特定のフィールドを参照します。 代わりに、すべての情報がカードから取得されます。

コントロール プロパティ 計算式 プロパティ
TextRequiredStar.Visible Parent.Required 星印は、フィールドが必須フィールドの場合にのみ表示されます。 必須は、設定した数式またはデータ ソースのメタデータです。
TextFieldDisplayName.Text Parent.DisplayName このテキストボックス コントロールには、ユーザー フレンドリ名が表示されます。ユーザー フレンドリ名は、開発者またはデータ ソースのメタデータから提供され、カードの DisplayName プロパティに設定されます。
InputText.Default Parent.Default このテキスト入力コントロールに最初に表示される値は、カードの既定値によって提供されるデータ ソースのフィールドの値です。
TextErrorMessage.Text Parent.Error 検証で問題が発生した場合、カードの Error プロパティによって適切なエラー メッセージが表示されます。

注意

Parent.Error プロパティは出力のみのプロパティであり、数式を使用して設定することはできません。 このプロパティは、左上隅付近のプロパティのリストにも、右端付近のプロパティまたは詳細タブにも表示されません。 プロパティを参照する数式を記述している場合、数式バーはこのプロパティを示唆します。

これらのコントロールから情報を引き出し、データ・ソースに戻すには、次の主要な数式を使用します:

コントロール名 計算式 プロパティ
DataCard.DataField "ApproverEmail" このカードでユーザーが表示して編集できるフィールドの名前。
DataCard.Update InputText.Text SubmitForm が実行されたときに検証され、データ ソースにプッシュ転送される値。