複数項目でグループ化する際に匿名型を使うときは「Key」と記述しないとグループ化されない。
プログラミング備忘録
都度調べなおすのも面倒なので書き残すことにしました。
2018年7月25日水曜日
2017年9月5日火曜日
2017年8月23日水曜日
【SharePoint】「承認/却下」の既存バグ
リストの設定のバージョン設定でコンテンツの承認を有効にしている場合、リストのアイテムに対して「承認/却下」を設定することになる。
ダイアログで設定する際は[キャンセル]ボタンが動作するが、ページで設定を表示した際に[キャンセル]ボタンが動作しない。
[キャンセル]ボタンをクリックした際に、_cancelButtonOnClick が呼ばれ、 ダイアログ表示の場合は、cancelPopUp メソッドが実行されるので問題ない。
ページとして表示した場合、source 変数に遷移先のURLが設定されていない為に動作しない。
URLパラメータの遷移先を取得するコード1行を追加すると正常に動くようになる。 マスターページにコードを記述したスクリプトファイル(common.js)を埋め込む。
※_script フォルダを作成して common.js を配置した際のパスです。
[キャンセル]ボタンをクリックした際に、_cancelButtonOnClick が呼ばれ、 ダイアログ表示の場合は、cancelPopUp メソッドが実行されるので問題ない。
ページとして表示した場合、source 変数に遷移先のURLが設定されていない為に動作しない。
URLパラメータの遷移先を取得するコード1行を追加すると正常に動くようになる。 マスターページにコードを記述したスクリプトファイル(common.js)を埋め込む。
※_script フォルダを作成して common.js を配置した際のパスです。
【SharePoint】カスタムフォームで文字列の状態で項目の表示・非表示を切り替える
SharePoint Designer 2013 でリストのカスタムフォームを作成した際に、
ある列の状態によって項目の表示/非表示を制御したいという要望は多いと思います。
文字列を XPath で比較する際のサンプルです。[承認状況(ApprovalStatus)]列の文字列を比較し、それぞれ [一次承認]、[二次承認]、[承認済] の時に表示する項目を切り替えます。
前方一致、部分一致、完全一致のサンプルを書きました。
ある列の状態によって項目の表示/非表示を制御したいという要望は多いと思います。
文字列を XPath で比較する際のサンプルです。[承認状況(ApprovalStatus)]列の文字列を比較し、それぞれ [一次承認]、[二次承認]、[承認済] の時に表示する項目を切り替えます。
前方一致、部分一致、完全一致のサンプルを書きました。
サンプルソース
参考サイト
2017年8月18日金曜日
【SharePoint】JSリンクで編集フォームの項目を条件によって読み取り専用にする
既定の編集フォームを JSリンクで表示を切り替えるサンプルソースです。
サンプルではフィールドの種類を設定していますが、固有の列名を指定してもOKです。
サンプルではフィールドの種類を設定していますが、固有の列名を指定してもOKです。
参考サイト
2017年7月25日火曜日
【SharePoint】リボン、アイテムメニューへのユーザー設定のアクション追加
SharePoint Designer 2013 使用してリボンにボタンを作成したり、アイテムメニュー[…]に項目を追加できます。
追加できる場所
- リスト アイテム メニュー
アイテムの編集メニュー[…]の項目にアクションを追加できます。 - フォーム リボンの表示
表示フォーム (DispForm) のリボンにボタンを追加できます。 - フォーム リボンの編集
編集フォーム (EditForm) のリボンにボタンを追加できます。 - フォーム リボンの新規作成
新規作成フォーム (NewForm) のリボンにボタンを追加できます。 - リボンの表示
リストビューのリボンにボタンを追加できます。
<準備>
- 16px、32px のアイコン画像をサイト内にアップロードしておく。
- ワークフローの起動を設定する際は、対象のワークフローを手動起動できるようにしておく。
<設定方法>
- SharePoint Designer 2013 で対象のサイトを開き、[サイト オブジェクト] > [リストとライブラリ] から、対象のリストまたはライブラリを選択します。
- リボンメニューの、[ユーザー設定のアクション] の中から追加したい場所を選びます。
- [ユーザー設定のアクションの作成] ダイアログで、設定を行い [OK] ボタンをクリックします。
- 名前:
任意のメニュー名を指定する。 - 説明:
メニューの説明を入力する。(任意) - アクションの種類:
[フォームへの移動] 移動したいフォームを選択する。
[ワークフローの開始] 関連付けられている手動開始のワークフローを選択する。
[URLへの移動] 移動したいURLを入力する (javaScript 可能)。 - ボタンイメージのURL:
アップロードしておいたアイコン画像を指定する。 - リボンの場所:
Ribbon.<表示したい場所のグループ名>.Controls._children
※グループの場所は 既定のサーバー リボンのカスタマイズの場所 を参照 - 権限マスク:
表示の権限を設定します。 - シーケンス番号:
表示位置を指定します。※規定は "0"
<注意点>
- リボンメニューを表示したいビューの[Web パーツの編集]で[ツール バーの種類]を[ツールバーなし]にしているとアイコンが表示されないようです。
- リストの列設定やコンテンツタイプを変更した際など、ワークフローが正常に呼び出せない状態になると[リスト アイテム メニュー]に追加したリンクが正常に動作しなくなります。現象としては "/" だけのページに遷移するようになります。Designer で再度設定しなおすと正常に動作するようになります。
- [リスト アイテム メニュー]に追加した場合、新しい表示のモダンUIでも表示されますが、アイコンの表示サイズがおかしいので、アイコン画像は設定しないほうがいいです。
参考サイト
登録:
投稿 (Atom)
【LINQ】 VB.NET で GroupBy する。
VB.NET ソースの改修で、どはまりしたのでメモ。 複数項目でグループ化する際に匿名型を使うときは「Key」と記述しないとグループ化されない。 参考サイト: .NET(VB)LINQをVBで使用する際に注意すること VB.NETでもLINQでGroupByしたい...
-
リストの標準のビューでは枠線の表示がないため、表として見づらい。 簡易な対策として、以下のスタイルを当てることで枠線を表示すると見やすくなります。 特定のページだけ反映したい場合は、スクリプトエディタを配置して埋め込む。 サイトコレクション全体に反映したい場合は、代替 CS...
-
VB.NET ソースの改修で、どはまりしたのでメモ。 複数項目でグループ化する際に匿名型を使うときは「Key」と記述しないとグループ化されない。 参考サイト: .NET(VB)LINQをVBで使用する際に注意すること VB.NETでもLINQでGroupByしたい...
-
[JS リンク]を使用する ビューでページの編集から、表示を変更したいリストの [Web パーツの編集] で [JS リンク] に js ファイルを指定します。 [集計値]列を使用する※ [集計値]列を作成して、[数式]を指定します。 例) ="...