Yahoo!ショッピング

2020年03月18日

SharePoint Online カスタムリストをJSONで書式設定(例)

いやあ難しいね。SharePointのカスタムリスト。書式設定をカスタマイズできることは分かったが、記述はJSONとは。
とりあえず現在の時刻と営業時間設定を比較してテキストを「営業終了」に差し替える方法をメモ。

{
"schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
"elmType": "div",
"attributes": {
"class": "=if((@currentField <= @now, 'sp-field-severity--severeWarning', '')"
},
"children": [
{
"elmType": "span",
"style": {
"display": "inline-block",
"padding": "0 4px"
},
"attributes": {
"iconName": "=if(@currentField <= @now,'Error', '')"
}
},
{
"elmType": "span",
"txtContent": "営業終了"
}
]
}


参考サイトはこの辺
https://docs.microsoft.com/ja-jp/sharepoint/dev/declarative-customization/view-formatting
https://docs.microsoft.com/ja-jp/sharepoint/dev/declarative-customization/column-formatting
https://qiita.com/Momomo_ai/items/58bf768fb83bddfbdca1
posted by 秘構竜 at 23:18 | Comment(0) | Office365

2020年03月07日

SharePoint カスタムリストの列が削除できない

SharePoint Online で列の削除ができずにはまったので備忘録。
<経緯>
・ShrePointでカスタムリストを作成
・その内、1つのフィールド(列)の型を「ハイパーリンク型」に設定
・さらに「リッチテキスト型」のフィールドも作成
・ACCESS からカスタムリストにリンクテーブルを張る
・上記「ハイパーリンク型」「リッチテキスト型」のフィールドにデータを書き込めることを確認した。
・なお、このカスタムリストには24000件のレコードを追加している。
−−−−−−−−−
ここまでは良かった。
・しかし、その後上記の「ハイパーリンク型」「リッチテキスト型」のフィールドが「読み取り専用」になってしまい更新できなくなった。
・「1行テキスト型」や「書式なしテキスト型」は問題なく書き込みできている。
−−−−−−−−−
仕様の違いだろうか。
ACCESSからのリンクテーブルでは「リッチテキスト型」「ハイパーリンク型」は正常に動作しないのだろうか。検証している時間もないので、ここはさっさと諦めて「1行テキスト型」「書式なしテキスト型」で統一することにした。
−−−−−−−−−
ここで別の問題発生
「リッチテキスト型」→「書式なしテキスト」への変更はすぐに終わった。
「ハイパーリンク型」→「1行テキスト」への変更ができない。選択肢が出ない。
そこで「ハイパーリンク型」のフィールドを削除して、「1行テキスト型」のフィールドを作り直すことにした。
→削除できない。以下のメッセージが出る。(クラッシック表示の場合)
sharepointしきい値超え.png

モダンUIからフィールド削除を試してみた。
sharepointモダンUIで列の削除1.png
sharepointモダンUIで列の削除2.png
sharepointモダンUIで列の削除3.png
やっぱりできない。
この原因はSharePoint特有の「しきい値5000」縛りのようだ。
レコード5000件以上の同時処理は禁止されている。
でも、フィールドの削除もできないのかよ。クソ仕様。
−−−−−−−
結論としては
@このフィールドは放棄して新たにフィールドを作る
Aレコード削除して5000以下にする(これは業務システムでは無理だろ)
どちらかしかなさそうだ。


posted by 秘構竜 at 11:07 | Comment(0) | HTML

2020年03月03日

ACCESSのフォームでVBAで検索(Ctrl+F)する

ACCESSの帳票フォームで検索を実行する。フィルタではなく検索。
キーワードを入れるテキストボックス[txtFind]を設置。イベントログは以下。
Private Sub txtFind_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyReturn:
Me.cmdFind.SetFocus
Call cmdFind_Click
End Select
End Sub


検索ボタン[cmdFind]を設置。イベントログは以下。
Private Sub cmdFind_Click()
If IsNull(Me.txtFind) Or Me.txtFind = "" Then Exit Sub
Me.Recordset.FindFirst "[フィールド名] = '" & Me.txtFind & "'"
If Me.Recordset.NoMatch = True Then
MsgBox "見つかりませんでした。", vbokonly+vbExclamation
End If
End Sub

posted by 秘構竜 at 22:05 | Comment(0) | 技術系

【温泉】ホテル・旅館ランキング(全国)
秘構竜の日記」の先頭へ