あきらです。前回に引き続き、たまったSPO listをPower Appsで閲覧および編集(入金管理)していこうと思います。
作るのはこんなん。
ソースの確認
ソースは前回の記事でためた顧客情報。
こんなん
こんな感じで企業と個人で埋まる列が違い、列数も違ってくるので、
表示するアプリの列もドロップダウンに対して可変にしたい。
gallery header列作成
ドロップダウンが企業なら10行、そうでないなら9行で考える。
全体の構成を考えてみる
galleryの幅は決まっているので、その幅に合わせて横gallery作成して、
均等になるようにtemplate sizeを、企業ならSelf.Width/10、そうでないならSelf.Width/9で中のtemplateを可変にして、ラベルを中に仕込み、そのWidthとHeightを Parent.templateプロパティに合わせる。
これでgalleryサイズが変わっても幅が追従する。
If(
Dropdown1.Selected.Value = "賛助会員(企業)",
[
{name: "名前"},
{name: "会社名"},
{name: "住所"},
{name: "電話"},
{name: "口数"},
{name: "支払方法"},
{name: "領収書"},
{name: "次回更新"},
{name: "総額"},
{name: "支払"}
],
Dropdown1.Selected.Value = "賛助会員(個人)",
[
{name: "名前"},
{name: "住所"},
{name: "電話"},
{name: "口数"},
{name: "支払方法"},
{name: "領収書"},
{name: "次回更新"},
{name: "総額"},
{name: "支払"}
]
)
均等割をしたくなければ、こちらの記事をどーぞ。
galleryのなかのパーツ作成
これも自分はもう既にコンポーネントにしてある(面倒だから)
ラベルを順番に並べて、二つ目はラベル幅×1をxに、三つ目はラベル幅×2をxに、四つ目はラベル幅×3をxに、ってやってって、一つ目のラベルをParent.Width/企業なら10、9で割ったげる。
あとはそれぞれのラベル値を表示したいラベル名にif関数で分岐させれば、ドロップダウンの値に応じて内容が変わったように見える。
Patchで入金フラグ処理
最後の列だけ開けてあげて、ボタンを仕込む。
これで入金があったかどうかを自分たちでチェックする。
リストに入金フラグを仕込み、その値に応じて変更させる。
変更させる対象は、Template.Fillと追加するボタンのテキスト。
If関数で分岐してあげればいいですね。
そしてボタン押したらさっきのフラグ列変えてあげればいいので、
If(
ThisItem.フラグの列名 = 1,
Patch(
データソース,
Parent.Selected,
{フラグの列名: 0}
),
Patch(
データソース,
Parent.Selected,
{フラグの列名: 1}
)
)
これでボタン押すとフラグが1(入金済)になって、背景とかにThiitem.フラグの列名で分岐させれば可変になります。
やってみると簡単な仕組みですね。
デザイン
諸説ありますがワタシはデザインの基本は、「レイアウト」だと思ってます。
例えばsymmetry。
左の余白と右の余白が合っていないならば、合っていないなりの理屈がないとアカン。
それが機能要件ならば、機能が必要か?調整はできないか?と考えるべきだと思う。
何故ならユーザーにはそんなこと関係ないから。
機能が美しく動くことと、アプリが美しく見えること、どちらを優先するかは個人次第だけれど、使う人が毎日見て「楽しい、触りたい」と思えるようなデザインが必要だと思う。
内製が基本となるソリューションだからこそ、デザイナーなんていないわけで、だからこそ設計者にはそこまでこだわって欲しい。
動けばいい、というのは自己要件であってユーザー目線ではない、と考えてしまうワタシがいます。
デザイン一つで職場の雰囲気変わりますんでね。
おわりに
せっかくメインのアプリ作ったんで、これを基盤にいろんな機能入れていきます。
わくわく。
あ、あと年間でフラグリセットさせて、更新のお知らせを自動で送ろうかな。
めんどくさいし。
しめしめ。
また明日。