Power Appsの使い方

Power AppsとPower Automateの使い方やできることがわかるブログを目指しています。

Power Apps 複数のトグルを一括でオフにする

[コメントでご質問をいただきましたので、記事にしてみました!]

 

複数のトグルの値を一括でOFFにする方法について。

Reset()関数を使用することで実現できます。

 

初期値がfalseの場合

 

トグルのDefaultプロパティがfalseの場合、Reset()関数を実行することで初期値(オフの状態)に戻すことができます。

 

Button.OnSelect

Reset(Toggle1);

Reset(Toggle2);

Reset(Toggle3);

 

 

例えばトグルが3つある場合、こんな感じで一括でリセットをかけることができます。

 

初期値がtrueまたは動的に変わる場合

Defaultfalseの場合はかんたんでしたが、そうでない場合は少し面倒です。

 

こちらの記事

zezeze.hateblo.jp

 

を参考に初期値に変数を割り当て、適切な初期値になるようにScreen.OnVisibleなどを実装します。

リセット時には以下のようにします。

 

Button.OnSelect

UpdateContext({locValue:true});

UpdateContext({locValue:false});

 

感想

上記どちらかで複数トグルの一括OFF操作ができるはず。

初期値がOFFであれば、1つ目の方法が楽でいいですね。

 

今回のようにコメントいただければ記事にするかもしれないので、ご質問があれば気軽にしてみてください!

もしくは最近始めたコミュニティイベントに参加して直接聞いてもらってもOKです!今の所毎週やってます!

込み入ったご質問もお仕事としてお受けできますので、お気軽にご相談ください!

 

参考URL

Power Apps もくもく系コミュニティ #おうじゃさんといっしょ

https://oujasan-to-issho.connpass.com/

 

込み入ったご質問等 Power Apps のお仕事のご相談はこちらから

https://powerapps.zee-citizendevsupport.com/

Power Apps トグルを外部から操作する

[コメントでご質問をいただきましたので、記事にしてみました!]

 

トグルコントロールの値操作を外部から行う方法について。

トグルを直接クリックまたはタップすることなく切り替える方法です。

 

f:id:botherntu:20200909132616g:plain

 

ざっくり手順

ざっと以下のような手順でやっていきます。

 

・トグルはすでにある前提。

切り替え操作用ボタンを設置。

・ボタンで変数を用意、押下で値を切り替える。

・変数をトグルに適用。

 

上記の手順でできるようになります。

 

切り替えボタンを用意する

まずは切り替えに使用するボタンを用意します。

今回はボタンを使用しますが、用途によって他の手段を選べると思います。

適当にボタンを設置してください。

 

変数を用意&値を切り替える

ボタンを設置したら、OnSelect()で変数を切り替えます。

 

Button.OnSelect

UpdateContext({locValue:!locValue})

 

トグルに変数を適用させる

Toggle.Default に上記変数を設定します。

 

Toggle.Default

locValue

 

感想

こんな感じで外部からトグルを操作できます。

 

今回のようにコメントいただければ記事にするかもしれないので、ご質問があれば気軽にしてみてください!

もしくは最近始めたコミュニティイベントに参加して直接聞いてもらってもOKです!今の所毎週やってます!

込み入ったご質問もお仕事としてお受けできますので、お気軽にご相談ください!

 

参考URL

Power Apps もくもく系コミュニティ #おうじゃさんといっしょ

https://oujasan-to-issho.connpass.com/

 

込み入ったご質問等 Power Apps のお仕事のご相談はこちらから

https://powerapps.zee-citizendevsupport.com/

【Power Apps もくもく】おうじゃともくもくしたりする日 #1 を開催しました!

先日、Power Apps もくもく系コミュニティ「おうじゃさんといっしょ」の初回イベントを開催しました!

 

おうじゃともくもくしたりする日 #1

https://oujasan-to-issho.connpass.com/event/186888/

 

内容は概ねもくもく会の様相で、Teamsを利用してOnlineで行いました。

 

イベントの様子

イベント開始時点で2名ほどしかいらっしゃらず結構不安だったんですが続々と集まってきて無事イベントの体をなすことができてよかったです。マンツーマンでコミュニティの説明をしようとしたときはドキドキでしたね。イベント開始~10分ほどで集まってくる説は有力です。

 

作業場所としてもくもくする人用とわいわい雑談しながらやる人用で分けていたのですが、みなさんわいわいルームに集まってました。みんなわいわいやりたいんだね。

会議機能で雑談通話しながらやっていたんですが、思ったよりいい感じにしゃべりながら進められたんじゃないかと思います。次回も同じ感じでやっていきたいところです。

 

この回は私だけ画面映してやっていたんですが、そのうち他の参加者の画面も映したり、会議分けたりしてやっていけたらいいなーと思ってます。自主性に任せたいのでお願いしたりはしないけど。

 

残念なところとしては、Teamsに上手く入れなくて参加できなかった方がいらっしゃったようです。Teamsは無料テナントのものを使用しているのでGmailなどでも参加できますが、フリーメールによってははじかれたり、組織アカウントの場合は制限がされていたりといろいろあるようです。参加される場合は参加申請とともに、事前にTeams参加リンクからチームに繋げられることを確認しておくことをオススメします。

 

次回開催日程

同様のイベントは毎週行う予定です。

次回イベントは今週金曜日 9/4 になります。興味のある方は是非ご参加ください。

https://oujasan-to-issho.connpass.com/event/187394/

 

その次は 9/9 水曜予定。イベントページはそのうち。

※日程は基本的にイベント中で話し合って決めていますが、希望の日程があれば #おうじゃさんといっしょ でツイートすると考慮するかもしれません。

Power Apps 新コミュニティ立ち上げました!

先日予告していたコミュニティを立ち上げました!

 

【予告】Power Apps の新コミュニティを立ち上げます!

https://zezeze.hateblo.jp/entry/2020/08/06/181205

 

コミュニティ名決まりました!

その名も"おうじゃさんといっしょ"に決まりました!

この名前はTwitter上で公募+アンケートでみなさんに決めてもらいました。

 

個人的にも気に入っていた候補だったので、個人的にも嬉しい結果でした。いい名前になってよかった。

全部ひらがなでゆるい雰囲気なのも高評価ポイントですね。僕の目指している方向性とあってる気がします。

 

初回イベントやります!

初回のイベントを今週木曜日に行います!

 

おうじゃともくもくしたりする日 #1

https://oujasan-to-issho.connpass.com/event/186888/

 

ざっくり内容としてはもくもく会をベースに雑談しながら作業したり、流れでなにかするかも・・・?という感じで想定してます。

 

場所は新しく用意したTeamsテナントで、Onlineで参加できます。

※参加の際はConnpassへの参加申請と合わせてFormsからTeamsへの参加申請もお忘れなく!

 

 

実際自分もやってみないとどういう感じになるかわからないですが、ゆるい雰囲気でできたらいいなと。

どなたでも参加できますので、興味のある方は是非ご参加ください!

 

毎週行うので今回参加できない方も次回以降是非ご参加を!

イベント終わったらイベントレポートも書くので、様子見な方も要チェック!です。

Power Apps コレクションにインデックスのフィールドを追加する

以下のようにするとコレクションにインデックスのフィールドを追加することができます。

 

コレクションにインデックスを追加する

 

// 大本のコレクション

ClearCollect (colItems,{ID:101},{ID:102},{ID:103},{ID:104},{ID:105});

// インデックスを含めるコレクションを初期化

Clear (colItems_Indexed);

// ForAll() + Collect() でインデックス付きコレクションを作成。

ForAll(

    colItems,

    Collect(

        colItems_Indexed,

        // Patch() でレコードを連結。インデックスを追加。

        Patch(

            Last (FirstN (colItemsCountRows (colItems_Indexed) + 1)), 

            { Index : CountRows (colItems_Indexed) + 1 }

        )

    )

);

 

という感じでできます。と昔OneNoteまとめていたんですが、少し前に Sequence() 関数と As 演算子が追加されたことでもっといい感じに書けるようになりました。

 

新バージョンは以下の通りです。(ForAllの部分のみ

 

コレクションにインデックスを追加する:新バージョン

 

ForAll(

    Sequence(CountRows(colItems)) As Index,

    Collect(

        colItems_Indexed,

        Patch(

            Last(FirstN(colItems,Index.Value)),

            { Index : Index.Value }

        )

    )

)

 

Sequence() 関数について

Sequence() 関数は1始まりの連番の単一列テーブルを生成する関数です。今回の例でいうと[1,2,3,4,5]が生成される感じです。動的に連番テーブルを生成できるので、これを使うとPower Apps でできることの幅が広がると思います。意外と欲しかった関数。

 

As 演算子について

As 演算子はテーブルに命名する演算子です。今回の例でいうと、Sequence()で生成したものに Index 命名して参照できるようにしています。うまく使ってコードの可読性を向上させたいですね。

 

Patchによるレコードのマージ

Patch()関数は多くの場合レコードの登録、更新に使用しますが、もう一つ機能を持っていて、レコードのマージを行うことができます。今回はその機能を使っています。

 

参考URL

Adding an index column to a collection

https://powerusers.microsoft.com/t5/Building-Power-Apps/Adding-an-index-column-to-a-collection/m-p/394955#M115389

 

Formulas: ThisRecord, As, and Sequence

https://powerapps.microsoft.com/en-us/blog/formulas-thisrecord-as-and-sequence/

 

Patch()関数について

https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-patch

Power Apps / Power Automate の開発技術支援サービスや1日トレーニングコースを提供しています。

Power Apps や Power Automateに関する仕事のご依頼は下記ページからお問い合わせください。
ZEE CitizenDevSupport