「キャンバスアプリを使ってリストにアイテムを追加したい!」
思春期の高校生ならだれもが一度は思うこの憧れ。とてもよくわかります。
僕も当時は親にも言えず、ひとり悶々としていたのを思い出します。
今回はそんな若者の悩みを解消すべく、アラフォーのおじさんが立ち上がりました。
というしょーもない前置きはさておき、Patch関数に苦戦しました、という話。
関数の説明はいたってシンプル。
Patch(データソース, Defaults(データソース), {列1: 値1, 列2: 値2, ...})
これだけ。
なんだけど、第3引数が非常に曲者でして、キャンバスアプリ上の値の型と
リストのアイテム上の値の型を意識しないと上手くいかないので
そのあたりを整理しておこうと思います。
とりあえず基本はこんな感じ。
Patch(
data_source,
Defaults(data_source),
{
列名:値
})
ここの 列名:値 のパターンをいくつかあげていきます。
1.アイテム(テキスト型) ← フォーム(テキスト入力)
列名:txt_torihiki_naiyou.Text
2.アイテム(日付と時刻) ← フォーム(日付の選択)
列名:DatePicker1.SelectedDate
3.アイテム(選択肢) ← フォーム(ラジオボタン)
列名:Radio1_2.Selected
アイテム側がRecord型なのでValueの指定は不要。(へー、って感じ)
4.アイテム(テキスト型) ← フォーム(ラジオボタン)
列名:Radio1_2.Selected.Value
アイテム側がText型なのでValueの指定が必要。
5.アイテム(選択肢) ← フォーム(ドロップダウン)
列名:Dropdown1.Selected
アイテム側がRecord型なのでValueの指定は不要。(理屈はわからん)
6.アイテム(テキスト型) ← フォーム(ドロップダウン)
列名:Dropdown1.Selected.Value
アイテム側がText型なのでValueの指定が必要。
7.アイテム(数値) ← フォーム(テキスト入力)
列名:Value(TextInput1_5.Text)
アイテム側が数値型なのでValue関数で数値化が必要。
8.アイテム(参照) ← フォーム(参照)
列名:{
Id:1,
Value:TextInput1_3.Text
}
IdとValueの両方を指定する必要があるが、Idに紐づく情報が優先されるため、Valueに何を指定しても意味がない。
アイテムの参照項目に値を入れたい場合は、フォーム上でも参照項目であれば割と容易な感じだが、そうでない場合も需要としてはある程度はありそう。
マスタの参照は使う頻度も高いので、もう少し詳しく挙動を理解しておきたいところ。
別のTipsでまた言及するかもしれません。
特にいまやっている業務的にここはかなり重要なポイントだったりする。
部門マスタ、勘定科目マスタ、取引先マスタと連動させる必要があるので。
弊社は取引先マスタが数万Recあるので果たしてリストで運用上耐えうるのかは非常に不安。
リストの5,000件問題もあるし…。Dataverseの使用も視野に入れないとな、って感じ。
データベースとして長く使うのにリストはやはりやや弱い印象。
世の中の活用事例を色々と見てみたいところ。
とはいえまずは足元の紙運用から脱却すべくスモールスタートでやるのには申し分ないと思うのでスピード感を持って推進していきたい。
9.アイテム(添付ファイル) ← フォーム(添付ファイル)
to be continued...
現在進行形で試行錯誤中なのでまた更新します。
また、次回はフォーム上での入力制御について整理したいと思っています。
以上