こんにちは。アーティサン株式会社の小刀稱(ことね)です。
Power Appsのキャンバスアプリで日付を登録する際、「年」と「月」だけ入力し、「日」の入力は省きたいと思ったことはありませんか?
通常このような場合、デートピッカー(DatePicker)を用いることが一般的です。
しかし、デートピッカーは年月日(例:2021年12月7日)までを必ず選択する必要があります。
よって、年月(例:2021年12月)のみで日付を表示・選択したい場合には、デートピッカーでの運用は向いておりません。
そこで本連載では、ドロップダウンを用いて、年月のみで日付の表示・選択を行う方法についてお伝えします。
今回やりたいこと
Power Apps キャンバスアプリを用いて、年月のみで日付を表示・選択する
初めに、今回やりたいことについて説明します。
SharePointリストには、以下の列が含まれています。列名 | データ型 |
---|---|
タイトル | 1行テキスト |
日付 | 日付と時刻 |
Power Appsでは、上記SharePointリストの年と月のみを表示・編集するようにします。
ただ、このままではSharePointリストの日付列とPower Appsで入力する日付のデータ型が異なるため、
Power Appsで入力した年月の1日の日付をSharePointリストへ登録するように設定します。
(例:Power Appsで2021年12月と入力すると、SharePointリストへは2021年12月1日と登録される。)
Power Apps キャンバスアプリを用いて、年月のみで日付選択をする方法
デートピッカーで日付を選択する場合、年月日(例:2021年12月7日)までを必ず選択する必要があります。
そこで、今回はドロップダウンを用いて、年月のみで日付選択を行うよう実装します。
実装の流れを以下に示します。
フォームからデートピッカーを削除
年と月のドロップダウンを作成
データカードのプロパティを修正
データテーブル・ギャラリーを修正
SharePointリストの表示を変更する
フォームからデートピッカーを削除
Power Apps内にて、編集フォームを追加します。
また、編集フォームのデータソースに先程作成したSharePointリストを指定します。
Power Appsでは、SharePointリストのデータ型が日付と時刻となっている列は、デートピッカーが追加されます。
今回デートピッカーは不要ですので、削除します。
年と月のドロップダウンを作成
日付_DataCard配下に、年と月のドロップダウンを追加します。
年のドロップダウン名称:drpYear
月のドロップダウン名称:drpMonth
また、各ドロップダウンのItemsプロパティに以下の式を追加します。
drpYear.Items:Sequence(50,Year(Today())-10)
drpMonth.Items:["01","02","03","04","05","06","07","08","09","10","11","12"]
上記は各ドロップダウンの選択肢を指定しています。
(Sequence(50,Year(Today())-10)は「今年の10年前から開始し、50年後まで」を選択肢として表示するよう設定しています。)
また、Defaultプロパティに以下の式を追加します。
drpYear.Default:Text(Parent.Default, "yyyy")
drpMonth.Default:Text(Parent.Default, "mm")
上記はギャラリーで選択した値から年もしくは月の部分のみを表示させるよう指定しています。
データカードを修正
日付_DataCardのUpdateプロパティを修正します。
Updateプロパティは、SubmitForm()関数実行時、Updateプロパティ内に設定された値をデータソースの該当列に反映させるためのプロパティです。
今回は、Power Appsで入力した年月の1日の日付をSharePointリストへ登録するように設定します。
(例:Power Appsで2021年12月と入力すると、SharePointリストへは2021年12月1日と登録される。)
具体的には、以下の式を追加します。
日付_DataCard.Update:DateTimeValue(drpYear.Selected.Value & drpMonth.Selected.Value & 1)
データテーブル・ギャラリーを修正
続いて、データテーブルやギャラリーの日付列の表示を修正します。
具体的には以下の式を追加します。
※今回の例ではデータテーブルを使用していますが、ギャラリーでも以下の式を使用することで日付列の表示を修正できます。
日付列(_C).Text:Text(ThisItem.日付, "yyyy年mm月")
上記により、SharePointリストのDateTime型を「yyyy年mm月」で表示されます。
以上で実装は完了です!
本日はここまで。
今回までで、Power Apps キャンバスアプリの作成方法についてお伝えしました。
Power Appsで新しい機能を実装する時、関数を組み合わせるなどのアイデアや工夫が必要となる場合があります。
このような内容は、「知っていれば一瞬」ですが「知らなければ多くの時間が必要」となります。
当社では、今回のような実装のアイデアを多く発信していく予定ですので、是非今後ともご覧ください。
次回は、SharePointリストの表示を変更する方法をお伝えします。
【このシリーズの過去回一覧】
【こちらも合わせて読みたい】
地方自治体ローコード導入・運用支援サービス(Power Apps・Power Automate)
Microsoft社が提供するローコード技術であるPower Platformを用いて、自治体様のDX化を支援します。
X-SP | SharePoint デザイン・機能拡張サービス
デザイン×機能を兼ね備えたSharePointを提供いたします。
SharePointの利便性を向上し、操作性と視認性を兼ね備えたデザインでユーザーの業務効率化・ストレス低減を提供します。
内製化支援サービス | Power Platform(Power Apps・Power Automate)
Power Platform(Power Apps・Power Automate)開発や運用をスムーズに内製できるよう支援いたします。
DX人材育成プログラム | Power Apps・Power Automte 教育
Microsoft社が提供するローコード技術であるPower Platformを用いて、社内のDX化を推進するための人材を育成いたします。
Power Apps/Power Automateアプリ開発・導入支援サービス
Microsoft社が提供するPower Apps / Power Automateの導入支援として、高度なアプリも最速で作れる業務アプリ作成支援サービスを提供いたします。
SharePointモダン化コンサルティングサービス
従来のSharePoint から移行・モダン化したい方に向けて、事前調査からサイト作成・活用支援までトータルなコンサルティング・技術支援を提供いたします。
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305