![見出し画像](https://assets.st-note.com/production/uploads/images/87636229/rectangle_large_type_2_bd35efac47cfa27e42ba186e6d7eb157.png?width=800)
Power Apps 教えてAkiraせんせー!⑧
@akira_365🐟さんの講習8回目が終了しました!
変数を実際に使っていきます✨
コントロール名が何がなんだかわからなくなってきてます😅
7回目はこちら
変数を使って月を切り替える
今日の日付を表示させるLabel コントロールとして作成したlblCalendarDay
![](https://assets.st-note.com/img/1664103394077-aMPw91JgqE.png?width=800)
「2022年8月28日」と表示されていますが、先月のカレンダーならいくつなのか、来月のカレンダーならいくつなのか、そこさえ定義すれば、今月でも先月でも再来月でもどれでも定義できます。
どこを変えてあげると先月になるのか、どこを変えると来月になるのか、ということで元の式をみていきます。
![](https://assets.st-note.com/img/1664104527331-aOsr9bemWH.png?width=800)
これはどの月だとしても変わらないフェース。
変数はどこかというと・・・
![](https://assets.st-note.com/img/1664105385426-HVh2Lj1QTi.png)
Today() さえ決まれば、他はそのdayを辿るので、Today() をひと月遅らせれば来月のカレンダーになり、Today() をひと月前にすれば先月のカレンダーになる。ということで、Today() を変数として定義する。
UpdateContext関数
📅が置かれている ViewScreen 画⾯に来たらデフォルトで「今⽉」を⽰しておきたいので、 ViewScreen の OnVisible プロパティ(この画面が表示されたときという動的アクション)に変数を宣⾔します。
変数名:locCalendarDay
OnVisible=UpdateContext({locCalendarDay:Today()})
![](https://assets.st-note.com/img/1664107071364-aHxhLIPYNw.png?width=800)
画⾯が切り替わらない限り使⽤が可能
![](https://assets.st-note.com/img/1664108876610-kxW6hSASE9.png?width=800)
ViewScreen が表示された時は必ず locCarendarDay は今⽇の⽇付になる、と⽰すことができます。
![](https://assets.st-note.com/img/1664109399305-ZqaRZbGv27.png?width=800)
Screen を一度別のものに切り替えて、OnVisible を発動させる⭐
検索して置換
lblCalendarDayの中身のToday()を置換していきます。
①数式バーを展開し『検索して置換』をクリック
②左側に検索/置換バーが出てくるので▷をクリック
③上部に「Today()」と⼊⼒、下部に「locCarendarDay」と⼊⼒
④すべて置換
![](https://assets.st-note.com/img/1664110840141-DfFStdvthG.png?width=800)
![](https://assets.st-note.com/img/1664111204993-TteEsFvJYc.png?width=800)
「選択した⽉を表⽰しているラベル」の左右にアイコン配置
月を切り替えるためのアイコンを配置するのですが、オーサリングメニュー→挿入→アイコンの中にはとてもたくさんのアイコンがあります。
最初に適当なアイコンを配置し、後からプロパティで月の切り替えに合うアイコンを検索します。
左のアイコン名:icoBefore
右のアイコン名:coAfter
![](https://assets.st-note.com/img/1664112079682-HUHYZdJtQK.png?width=800)
![](https://assets.st-note.com/img/1664112415490-NxvVqtfNMS.png)
表示月を替える
シェプロンレフトをクリックするとひと月引きたい、シェプロンライトをクリックするとひと月進めたい、ここで UpdateContext を使って変数である⽇付を変更する仕組みを作る。
※Power Appsでは、UpdateContext関数とSet関数の2つの変数があります。
型が異なるので定義し直す場合は、同じ関数を使用する。
icoBefore⭐<
OnSelect=UpdateContext({locCarendarDay:DateAdd(locCarendarDay,-1,Months) })
![](https://assets.st-note.com/img/1664196978733-dyDK62ot8f.png?width=800)
日付の足し引きは DateAdd 関数(マイナスは数値)
シェプロンライトでは、1か月足すので・・・(プラスは演算子)
icoAfter⭐>
OnSelect=UpdateContext({locCarendarDay : DateAdd(locCarendarDay,1,Months) })
🐟良い点は、日付型で足し算・引き算を行うので、年まで追従してくれる
カレンダーの工夫
選択した日付に〇がつくようにする
まず、galCalender の Template を選択した状態で
オーサリングメニュー→挿入→図形から円を選択します。
![](https://assets.st-note.com/img/1664201469487-zaEtIkIQVy.png?width=800)
名前:shpSelect
プロパティを変更していきます。
色:透明
罫線:5 罫線の色:オレンジ
![](https://assets.st-note.com/img/1664202255782-OqQI7EVsfV.png?width=800)
IsSelected
shpSelect の プロパティにある「表示」をオンにすれば表示、オフにすれば非表示となる。
今はすべて「表示」オン・・・選択されているものがTrueとすれば、そのマスを選択したときにちゃんと表示してくれる。
![](https://assets.st-note.com/img/1664289519293-9cg7kCVzYt.png?width=800)
Visible = ThisItem.IsSelected
true か false かですが、IsSelectedとは
それ自身が選択されているなら表示(true) 、そうでないならば非表示(false)
![](https://assets.st-note.com/img/1664290545773-d5QvLTagRl.png?width=800)
Visible = true・・・表示 Visible = false・・・非表示 と繋がる
true 、false の関係が省略されて、クリックしたところに〇がつくようになります。
『○月』と表示
前回、選択されている日付を表示するLabel コントロールを配置しました。
コントロール名を lblSelectedday とし、『2022年9月』と表示したかったのですが、変数を使わないと『○月』という表示にするのは難しいため、日付を表示で進めてきました。
コントロール名を lblVisibleMonth へ変更し、変数から取っていきます。
Text = Text(locCalendarDay,"yyyy年m月")
![](https://assets.st-note.com/img/1664292460123-qlGAVnLgKm.png?width=800)
見ためを整えてプレビュー😊 < と >のクリックで、ちゃんと切り替わりました!!
![](https://assets.st-note.com/img/1664293004969-TBKREU9ZFY.png?width=800)
今回はここまです😊
次回はFilter関数の条件を増やしていき絞り込む機能を追加していく方法を学びます✨
memo
選択したら 〇 がつくが、月が替わっても同じ位置に〇は残る。
月を切り替えると一旦 〇 は消えてほしい。
![](https://assets.st-note.com/img/1671969750199-Tn29MsoYn2.png?width=800)
![](https://assets.st-note.com/img/1671969789463-GWG1hB1AlQ.png?width=800)
![](https://assets.st-note.com/img/1671970005277-n3KeJ0F6Z9.png?width=800)
この記事が気に入ったらサポートをしてみませんか?