前回からの続き。ビューの書式設定を使いたいところですが、やりたい事があるのでまずは列の書式設定から。
現在のセミナー画面。ちなみにステータス列は集計列にしています。
=IF([現在の申込人数]=[定員], "受付終了", IF(([定員] - [現在の申込人数]) <= 5, "定員残り僅か", "受付中"))
◆Before
◆After
- 申込人数 / 定員 ⇒1行テキスト、中身は空です。(申込人数 ÷ 定員 × 100)% のWidthでバーを表示します。
- ステータス ⇒上記通り集計列。ステータスに応じて色を変えています。
- 申込み ⇒1行テキスト、中身は空です。セミナーの申込画面を(リストアイテムの登録画面)を別画面で表示するリンクです。
いやーイマイチ。デザインセンスはさておき、後ろの2つの列「現在の申込人数」「定員」。これ本当は非表示にしたいんですけど、これを非表示にすると「xx名 / xx名」が使えなくなるんです。この辺りはJSリンクと一緒でビューに表示しなければ使えないっぽいですね。
あとは申込リンク。押すと登録画面が出る、までは良いんですが、選択したセミナーを選択状態に出来ないんです。こればっかりは書式設定の範囲では無理ですし、スクリプトも使えませんしどうすればいいんでしょうか。PowerApps使えば出来るんでしょうか。
クラシックモードであればリクエストパラメータでアイテムIDを渡せば、選択肢のvalueにアイテムIDが設定されてますし、スクリプトで受けて何とでもなるんですけどねー。
◆申込人数/ 定員
{
"elmType": "div",
"txtContent": {
"operator": "+",
"operands": [
"[$_x73fe__x5728__x306e__x7533__x8f]",
"名 / ",
"[$_x5b9a__x54e1_]",
"名"
]
},
"attributes": {
"class": "sp-field-dataBars"
},
"style": {
"color": "black",
"font-weight": "bold",
"padding-left": "10px",
"white-space": "nowrap",
"width": "=toString(([$_x73fe__x5728__x306e__x7533__x8f] / [$_x5b9a__x54e1_]) * 100) + '%'"
}
}
◆ステータス
{
"elmType": "span",
"style": {
"color": "=if(@currentField == '受付中', 'blue', if(@currentField == '受付終了', 'gray', 'red'))"
},
"txtContent": "@currentField"
}
◆申込み
{
"elmType": "a",
"attributes": {
"target": "_blank",
"href": "/sites/[サイトパス]/Lists/[リストパス]/NewForm.aspx"
},
"style": {
"display": "block",
"border": "1px black solid",
"color": "black",
"width": "80px",
"text-align": "center",
"font-weight": "bold"
},
"txtContent": "申し込む"
}
ちなみにやりたかったのは%のバー表示です。