上級冒険者者向けのトラップダンジョンですか
暇つぶし(息抜き)にSharePointでもやってみようと馬鹿なことを考えてしまった、🐸かえるのクーの助手の「井戸中 聖」(いとなか セイ)でございます。
舐めてました。本当に初心者殺しです!ノーコード/ローコードでちょっとしたこと(準備されたレールを外れるようなこと)をしようとすると、間違いなくプログラミング言語よりムズいです。
お題:欲しいパソコンリストをつくろう!
よくあるヘッダデータリストと詳細データリストの組み合わせ(明細伝票みたいなやつ)をやってみます。
ヘッダデータは以下のように定義しました。項目名を英語にするのは、日本語だと気持ち悪い(DB項目名を日本語にすることはまずないので、そのクセでそうします。OfficeのAccessなら日本語にしますが。。。)
定義画面とはいえ本当に「フラットデザイン」でメリハリがまったくありません。
データを入れてみました
明細データは以下のようにしてみました。
データを入れてみました。
AMOUNT(行合計額)は計算で求めています。
これをさらに集計してみます。ビューに集計設定をします。
単価と数量は合計できました。(クラシック表示)合計額(AMOUNT)は集計できませんでした!ネットでは集計値はどうあがいても再計算できない!とのことでした。集計値は表示専用と思ったほうがよさそうです。「SharePointの残酷な掟:集計値は再計算できない。」を発見しました。
どうにか集計できるようにしてみる
集計値がダメなら、通常の金額項目にして、データを登録・更新するときに行の値を計算して実データとして設定してみます。(RDB(リレーショナルデータベース)では絶対こんなことしませんが)
AMOUNTを集計値ではなく、金額に変更します。(この列の情報の種類:属性)はあとから変更できないので、項目定義を削除して改めて設定します。
列名:AMOUNT, 列の種類:通貨, 必須:いいえ, 固有値:いいえ, 小数点以下桁数:0
AMOUNTは空欄になります。
次にInfoPathで入力フォームを作成してみます。
前回やった要領で、InfoPathで入力画面を準備し、登録更新ボタンをつくって、AMOUNT項目に計算結果を代入するように定義しました。
このフォーム画面で登録/更新したときにAMOUNTの値が設定されることになります。
「発行」してサーバにフォームを反映します。
ワークフロー機能でやる方法もありそうですが、まだよくわからないので、とりあえずこれでよしとします。面倒ですが、全行を1つづつ更新します。
リストの定義の集計で、AMOUNT項目を合計する定義をして、メインマシンだけを表示するようヘッダ行でフィルタリングの操作をします。
メインマシン(妄想)の部品明細合計は¥954,000 とちゃんと計算できました!
ちょーめんどくさい!
すこし実用的な参照を含むリストが作成できたので、レベルが1→2にUPしました。
InfoPathで画面をつくってみたのでレベルが2→3にUPしました。
InfoPathでボタンで動作規則を定義してうごかせたのでレベルが3→4にUPしました。
単価×数量=計算額をさらに集計する課題をクリアできたので、レベルが4→5にUPしました。トゥットゥル~。
はたして、明細リストのAMOUNTの合計をヘッダリストのTOTAL_PRICE項目に反映できるでしょうか。(できるとはおもいますが、レベル5初心者のわたくしにできるかどうか)
満身創痍。。。
結局ヘッダリストと明細リストを1つの画面に入れて関連付けする方法がわからないので、今回はここまでとします。(会社ではPower Appsを使うことになりそうなので、無理にすすめないことにします。定義についてはツールの機能にかなり依存し、ここでがんばってもOnline(クラウド系)では役立たないことが多いとわかったので。)
PowerAppsの無料版を使ってみようとしましたが、会社組織アドレスを要求されました。(個人アドレスでは弾かれました)
おとなしく、会社のSharePoint使用が解禁となるまで待ちます。
SharePoint ぱね~
ピースが足りないパズル感が半端ないっす。どこに何があるのかまるで分らない。はまるようではまらない。繋がるようで繋がらない。
息抜きのはずが、ストレスが。。
たまるストレスがたまる 素直な私
たまるストレスがたまる ああとまらない