早朝は数学教師!午前中はアプリ作成師!午後は施工管理技士!夕方は電気工事士!夜はコンサル!深夜はブロガー!
その名もあきらです!
そろそろ後継育てたほうがいいよ?ってよく言われたので、
上記全部出来る人募集してます!
さて、本日はTwitterで質問いただきましたので、
とおおおおおおおおおおい昔にこんなの作ったなぁ…と思ったので復習がてら書こうかと思います。
内容はこんな感じです↓↓↓
結構抽象的でもイメージいただけると凄く作りやすいので、質問するときはなんかタイトルつけるとわかりやすいですよ!!!!(大声)
んじゃ作ってみます。
けどまぁコンボボックス使う必要があんまりないかなぁと思います。
完成形
#PowerApps
— Akira_365 (@akira_365) January 20, 2022
昔はこんなんよく徹夜で検証しまくったなぁ…
ってのを今更もう一度作ってみた。
ドロップボックスの選択肢を使った分だけ成長させる、みたいなやつ pic.twitter.com/RgMSqHsxMc
ドロップボックスの選択肢がどんどん増えていくような仕様ですね
準備とコントロール追加
ぶっちゃけ特にないんですよね(おわり
てわけにもいかないですね、なんかワタシなんぞにわざわざDMくれたのでね
とりあえず今回SPOLだったので下のようなリスト作ります。
今回選択肢にするCategory列は一行テキストにしておいてください。
そんでPower Appsの編集フォームまでの軌跡とSubmitFormでボタン作ります。
そんでまぁ
CategoryっていうカードのところのDatacardを下にどかして
もともとあったところにドロップダウンコントロールを置きます。
プロパティの解除を忘れずに。
そのドロップダウンに重なるように、さっきどかしたDatacardを置きます。
必要なコントロールはこれで以上です。
関数の記述
あとはSPOリストから
- Category列を重複しないように持ってくる
- Collectionにぶち込む
- 作ったCollectionに「新しく入力する」という項目を追加する
- ドロップダウンのアイテムプロパティにCollectionぶち込む
- 「新しく入力する」という選択肢を選んだ時のみDatacardが現れるようにする
って手順を踏めばできます。
Category列を重複しないように持ってきてCollectionにぶちこむ
これはDistinct使えばできますね。
この画面が出た瞬間にCollectionにぶち込んであげましょう。
OnVisibleプロパティに
ClearCollect(
colDrp,
Distinct(
進化するdropdown,
Category
).Result
)
Distinct(データソース , 列名).Result
でデータソースの列名の重複を嫌って取ってきてくれます。
作ったCollectionに「新しく追加する」っていう選択肢を加える
今回はPatchでわざわざデータ増やしちゃってます。
まぁ別にやれればなんでもいいじゃん!の精神です。
以下を先ほどのOnVisibleの記述の後に加えてあげます。
;←これ忘れずに!
Patch(
colDrp,
Defaults(colDrp),
{Result: "新しく入力する"}
)
)
これで選択肢になるCollectionができました。
drop downのItemsコントロールにCollectionをぶち込む
上の画像の通りです。
ドロップダウンコントロールのItemsプロパティに先ほど生成したcolDrpをいれてあげましょう。
そして、画面を切り替えてプレビューしてみると、選択肢を生成してることがわかります。
あとは「新しく入力する」をえらんだ時に、Datacardが表示されればオッケーですね。
Datacardにリンクさせて、表示非表示を設定する
あとはDatacardを編集してあげれば完了です。
まず表示/非表示の切り替えを、
ドロップダウンで選択した値が「新しく入力」だった場合は直打ちできるように表示に、そうでない場合は非表示にします。
DateCardValue.Visible
=If(
Dropdown2.Selected.Result = "新しく入力する",
true,
false
)
そして、Defaultプロパティに
ドロップダウンで選択した値が「新しく入力」だった場合はblank、そうでない場合はドロップダウンコントロールの選択値にしてあげます。
(今回はNewFormだけ作っているので例ではParent.Defaultを使用しています)
DateCardValue.Default
=If(
Dropdown2.Selected.Result = "新しく入力する",
Parent.Default,
Dropdown2.Selected.Result
)
これで新規作成も出来るドロップダウンっぽくなりました。
#PowerApps
— Akira_365 (@akira_365) January 20, 2022
昔はこんなんよく徹夜で検証しまくったなぁ…
ってのを今更もう一度作ってみた。
ドロップボックスの選択肢を使った分だけ成長させる、みたいなやつ pic.twitter.com/RgMSqHsxMc
検証するときちんと入っていることがわかると思います。
こんな感じで似非comboboxみたいなもの作ってみました。
なんか質問あるときは暇ならブログかなんかで答えますので、じゃんじゃんどうぞー