タグ別アーカイブ: PATCH

Power AppsでSharepointリストを扱う時の注意点

【Sharepointリストの参照列、複数行のテキストを扱う時は文法が違ってきます】

Sharepointリストはエクセルのように扱えて手軽で便利なのですが、列の種類に応じて対応の仕方が違ってくるのが少しややこしいです

今回の記事では実際の例を交えて「対応の仕方」を解説していきます

参照列

参照列とは?

こちらはエクセルのワークシートで言えば、VLOOKUP関数で取得した列のような形です

次の画像は今回の解説で使用する参照列です

CustomerName列は他のリストを参照しています

実は参照元のIDを基にして参照が成り立つようになっています

取得

参照列を下の画像のように、そのまま内部名で取得しようとするとエラーになります

この場合は、下の画像のように1つ加えます

CustomerName列「値/Value」を取得する形になります

更新

IDが5の行のCustomerName列を「C001」から「C002」に変更するとします

通常ですとこの場合は、下の画像のようにPatch関数を書きます

これだと実はエラーになりますので、第三引数の{}の中を次のように書き換えます

{}が入れ子になる形になります

ここで「Id」は参照元のIDを指定します

複数行テキスト

複数行テキストとは?

1行テキストの場合は文字数等に255までの制限があります

複数行テキストの場合は「63,999」まで文字が入ります

そして、設定を変えると「HTML」での設定になります

そうすると文字の色なども設定できます

取得/HTML形式にて

複数行テキストを「HTML形式」で設定すると、取得する場合は通常のラベルですと以下のようになってしまいます

ですので、通常のラベルではなくHTMLテキストを指定しています

そうすれば、通常のテキストのように取得できます

この時、プロパティも通常と違いますので注意が必要です

更新

複数行テキストをHTML形式で更新するには、リッチテキストエディターを使用します

リッチテキストエディタ―はPower Apps上にて、通常のエクセルのワークシート上のような操作ができる優れものです

取得はTextプロパティがないので「Default」プロパティで行います

更新は通常の「テキスト入力」と同じ要領で行います

<まとめ>

今回はPower AppsでSharepointリストの参照列、複数行テキストを扱う際の注意点を解説しました

参照列の場合は参照元リストの「ID」の扱い、複数行テキストの場合はHTML形式の扱いがポイントになります

やはりSharepointリストは癖があるので注意が必要ですね

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

Collect関数を使用して画面内でデータを自由に扱う

【今回はデータのコレクション/一式を自由自在に画面内で取り扱えるようにします】

前回はPatch関数を使用して、既存のテーブルにデータの挿入や修正を行いました。今回は変数を組み合わせて画面内でデータのコレクションを新たに生み出して取り扱えるようにします

用意すること

挿入用一式

テキストボックス2つ:txtPrice,txtQuantityとボタン2つを準備します

ギャラリー

変数に格納されたデータ一式を一覧化するギャラリー:Gallery1を準備します

修正用一式

ギャラリーで選択された内容を修正するための一式についても、挿入用一式と同様に準備します

但し、ボタンは1つでいいです

Collect関数によるデータ一式の設定

Collect関数によりテーブルではなく、任意に設定する変数:myCollectにデータ一式を格納します

Collect関数の文法は次の通りです

Collect(変数,{変数内の列1:設定したい値1,変数内の列2:設定したい値2})

今回は変数:myCollect内のmyPriceとmyQuantity列にテキストボックスに設定した値を設定します

Collect(myCollect,{myPrice:txtPrice.Text,myQuantity:txtQuantity.Text})

こちらの関数をボタンの「OnSelect」に設定します

*上記は文字列形式での設定になります。数値形式での設定はValue関数を使用します(myPrice:Value(txtPrice.Text))

事前にギャラリーのItemsには「変数:myCollect」を設定しておきます

これでギャラリーに対して、ボタン一つでデータ一式を挿入する仕組みができました

ギャラリーに設定したデータ一式を一括で消去するには「Clear関数」を使用します

ギャラリーの削除ボタン

Remove関数を使用することで、選択行を削除する機能を作成することができます

ゴミ箱ボタンの「OnSelect」に次の数式を入れることでこの機能を実現できます

Remove(myCollect,ThisItem)

選択行の意味合いで「ThisItem」を使用するのがポイントです

Patch関数によるデータ一式の修正

Patch関数による修正の仕組みを作成するのですが、その前に一工夫を行います

ギャラリーで選択された行の内容が一式に反映されるようにします

テキストボックスの「Default」を「Gallery1.Selected.変数の列名」にします

こうすることで、ギャラリーの内容が反映されます

Patch関数については、ボタンの「OnSelect」に次のように設定します

Patch(myCollect,Gallery1.Selected,{myPrice:txtPrice_1.Text,myQuantity:txtQuantity_1.Text})

2番目の引数、対象データをギャラリーの選択行にするのがポイントです

修正用一式の表示を切り替える

ギャラリーの行を選択した時⇒表示、修正ボタン⇒非表示にする仕組みを解説します

こちらは、変数の値をtrueかfalseにすることで調整します

まず、変数の設定を始める前に修正一式をグループ化します

グループ化は一式を選択した後に、下の画像の「ボタン」を押せばできます

グループ化した内容を選択した上で、Visibleを選択してください

通常はtrueが設定されています

今回は該当のグループのVisibleに変数:showUpを設定します

これで変数:showUpを通じて、表示の切り替えを行う準備ができました

次にギャラリーの「OnSelect」にSet関数を設定します

Set(showUp,true)

これで、変数:showUpがtrueになるので修正用一式が表示されます

一方、前述のようにグループの非表示化は修正ボタンでおこないます

こちらに「変数をfalseに設定するSet関数」を設定します

<まとめ>

今回はCollect関数を使用して画面内でデータ一式を追加、修正する方法を解説しました

Collect関数以外にもClear関数、Remove関数、Patch関数も活用しました

これらの関数を組み合わせれば、データの扱いに関してはかなりの事が行えるようになります

ぜひマスターしておきましょう!

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

Patch関数を使用して、データレコードの追加・修正画面を作成する

【今回はPatch関数を使用して、ギャラリーと併存した便利な追加・修正画面を作成します】

入門で解説したデータ追加・修正画面は一覧と追加・修正画面がわかれていました。今回は一覧から該当データを選択しながら追加・修正できる画面を作成します

上のGIF画像では、右のギャラリー/一覧から選択したデータが左の画面に設定されています

一方、画面左上の+ボタンを押すと左の画面には空欄が設定されます

そして、

SUBMITボタンを押すと、右の画面が「新規用」として設定されている場合には「レコードの新規追加」が行われます

右の画面が「修正用」として設定されている場合にはレコードの修正が行われます

ポイント

変数を使用して、新規と修正とを切り替えます

変数が空白の場合は新規。変数が空白でない場合は修正となります

そして、

前述のようにレコードを追加したり、修正したりするPatch関数の中身も変数が空白かどうかにより変更できるようにします

データソース

今回の記事では、アプリのデータソースはSharePointリストを使用します

テーブル名はIDEAになります

TITLE-1行テキスト

NAME-1行テキスト

DECRIPTION-複数行テキスト

CHOICE-選択肢(NEW,FINISH,STOP)

アプリ画面の用意

「作成」⇒「空のアプリ」からアプリを作成します

アプリの名前を付けたら、まずテキストボックスを3つ用意し、加えてギャラリー*も用意します

*データソースの設定が必要です

加えて「SUBMIT」ボタンも加えます

新規追加の仕組み作成

Patch関数

レコードを追加・修正するPatch関数を作成する前にテキストボックスの名前を整理しておきます

上記のtxtはテキストボックスの意味合いになります

そして、txtの後のTitleはテキストボックスの名称になります

各テキストボックスの内容とCHOICEの内容を、SUBMITボタンの「OnSelect」からPatch関数にて追加することになります

Patch(IDEA,Defaults(IDEA),{Title:txtTitle.Text,NAME:txtNAME.Text,DECRIPTION:txtDESCRIPTION.Text,CHOICE:{Value:”NEW”}})

Patch関数の文法は以下の通りとなります

Patch(データソース,データソース内の対象レコード,{追加及び変更内容/列ベース})

2番目の引数、対象のレコードについては新規の場合は「Defaults(テーブル名)」で設定します

追加する列が「選択肢」の場合には「列名:{Value:“選択肢”}」と設定します

修正の仕組みの作成

選択内容にて変数設定

ギャラリーにて修正をしたい内容を選択した場合には、選択内容が変数/varIdeaに設定されるようにします

こちらは「OnSelect」を選択した上で、SET関数により変数を設定します

各テキストボックスは「Default」を選択した場合、変数に連動して内容が反映されるようにします

新規追加と修正の切り替え

+ボタンを追加し、「OnSelect」にSet関数を設定します

こうすることで+ボタンを押すと、変数:varIDEAに空白が設定されます

変数に空白が設定されると、各テキストボックスも連動して空白が設定されます

ここで前述のSUBMITボタンの「OnSelect」の内容も変更します

対象レコードを指定する引数の箇所を、変数:varIDEAが空白なら新規レコード、空白でない場合はギャラリーで選択したレコードが変数を通じて間接的に反映されるようにします

これで新規追加と修正の切り替えが行えるようになりました

その他

ギャラリーの並び順の変更

レコードの追加や修正があった場合にはSORT関数を使用し、ギャラリーの一番上に表示されるようにして追加と修正内容の確認を行いやすくします

選択箇所の色を変更

ギャラリーの選択箇所の色が変わるようにします

ギャラリーの「TemplateFill」の欄に次のようにIF関数を設定します

If(ThisItem.IsSelected,AliceBlue,RGBA(0, 0, 0, 0))

これで選択箇所がAliceBlue色に変るようになります

複数行テキストの設定

複数行テキストのテキストボックスのモード設定は「複数行」に設定しておきましょう

<まとめ>

今回はPatch関数を使用して、レコードの追加や修正を行う画面を作成しました

変数の内容により、追加と修正を切り替えるのが大きなポイントです

今回の内容は、Patch関数の箇所以外もアプリの内容を充実させるためのヒントが満載です

ぜひ取り組んでみてください

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ