カテゴリー別アーカイブ: 中級

コンボボックスを使いこなす~検索、フィルター他~

【Power Appsとエクセルとの違いの一つがこのコンボボックスです】

今回は、Power Appsをうまく使いこなすの一つである「コンボボックス」について深堀し、幾つかコンボボックスの便利機能を紹介します

Power Appsのコンボボックスの機能は多岐にわたるので、知っているか知っていないかで使い方で大きな差がでてきます

特にコンボボックスはマスターデータと組み合わせて使うと大きな効果を生みます

コンボボックスの表示設定

コンボボックスは「挿入」から設定します

コンボボックスの中身は「Item」から設定します

コンボボックスで中身を選択する際は、参照データも表示することができます

上の画像のように、2列のデータを「Item」に設定します

次に「フィールド」をクリックします

次に表示される画面では「二重線」を選択します

そして「副次的なテキスト」にて選択する列とは別の列を指定します

するとコンボボックス内で2列分の内容が表示されます

ただし、表示は2列でもあくまでコンボボックスで設定されるのは「主要なテキスト」の内容です

2列で表示できるようにすることで、顧客マスターなどのマスターデータをコンボボックスで設定する際にとても便利です

「A001・・・」などのコードが表示されても該当のコードがよくわかりませんので、顧客名も同時に表示するといいでしょう!

検索

コンボボックス内で表示される内容が大量になる場合には、検索が行えるようにするのがいいです

まずはプロパティ画面で「検索の許可」をオンにします

その後「SearchField」を設定します

これでコンボボックス内で検索できるようになります

フィルター

マスターデータをコンボボックスで選択する際、使っていないコードは表示したくない場合があります

例えば、下の画像の「Active」列にてFALSEのコードをコンボボックスに表示したくない場合などです

この場合はコンボボックス「Item」にFilter関数を使います

数式は次の通りとなります

Filter(myCustomer,Active=”TRUE”)

これで、マスターの中で「TRUE」のもののみが表示されます

<まとめ>

今回はコンボボックスの便利機能について解説しました

上記の便利機能を使えると、アプリ内でマスターデータをうまく活用できるようになります

ところで、ドロップダウンリストとコンボボックスはどう違うのでしょうか?

ドロップダウンリスト

一見、違いはありません

ドロップダウンリストの場合は、コンボボックスと違い「複数選択」「検索」などの機能がありません

このコンボボックスとドロップダウンリストの違いはぜひ押さえておきましょう

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

にほんブログ村

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

Update関数とUpdateIf関数について~レコードの置き換え~

【今回はレコードの置き換えを行うUpdate関数とUpdateIf関数について解説を行います】

過去に解説したPatch関数と今回解説するUpdate関数とUpdateIf関数を組み合わせて活用できるようになると、レコードの扱い格段に強くなれます

Update関数

レコードの全体を置き換える関数になります

この全体の意味合いは、特定の列だけ「置き換えないということがない」といことになります

myCollect

今回はデータソース:myCollect*内で価格が100のもののうち、最初のレコードを置き換えます

*myCollectはGalleryのItemsになり、列は価格:myPriceと数量:myQuantityになります

Update関数の文法は次のようになります

Update(データソース,対象レコード,{列1:値1,列2:値2・・・})

価格が100のもののうち、最初のレコードを対象にするにはFilter関数とFirst関数を使用します

First(Filter(myCollect,myPrice=100))

上記の関数を組み合わせると、今回の関数は次のようになります

Update(myCollect,First(Filter(myCollect,myPrice=100)),{myPrice:0,myQuantity:0})

これで価格が100の最初の行が価格も数量も0に置き換えることができました

UpdateIf関数

UpdateIf関数はエクセルワークシート関数のSumIfs関数と同じように、条件に合うものを一括で処理します

文法は次の通りとなります

UpdateIf(データソース,対象レコード(条件式),{列1:値1,列2:値2・・・})

Update関数とは違い、特定の列だけ置き換えることもできます

今回は価格が100未満のものを一括で0にします

UpdateIf(myCollect,myPrice<100,{myPrice:0,myQuantity:0})

下のGIF画像内で価格が100未満のものが置き換えられています

もちろん、置き換える数量をテキストボックスで指定することもできます

テキストボックス:txtModifyを組み入れたUpdateIf関数の式は次の通りとなります

UpdateIf(myCollect,myPrice<100,{myPrice:0,myQuantity:Value(txtModify.Text)})

価格が100未満のデータがテキストボックスの数字で置き換えられます

<まとめ>

今回はUpdate関数とUpdateIf関数について解説させて頂きました

Patch関数、Update関数、UpdateIf関数はそれぞれ機能が似ているようでそれぞれ違いがあるので注意が必要です

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

にほんブログ村

にほんブログ村 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へ