SharePoint の集計値列で ASC 関数が正しく動作しない

現象

SharePoint の集計値列で ASC 関数を使用した場合、全角文字 (2 バイト文字) が半角文字 (1 バイト文字) に変換されません。

原因

この現象は SharePoint の集計値列で ASC 関数が実装されていないために発生します。

再現手順
  1. SharePoint リスト、またはライブラリに 1 行テキスト列 (列A) と集計値列 (列B) を追加します。
  2. 列B (集計値列) の数式に "ASC([列A])" を設定します。
  3. 新規にアイテムを作成し、列A (1 行テキスト列) に "アイウエオ" (全角) を設定します。
  4. 列B の値が半角 ("アイウエオ") に変換されません。

回避策

該当のリスト、ライブラリにあらたに 1 行テキスト列 (列C) を作成します。
下記のコード例のように、列A の値を半角文字に変換して 列C に設定するイベント レシーバーを作成します。

Windows SharePoint Services 3.0 / SharePoint Server 2007
の場合
public override void ItemUpdated(SPItemEventProperties properties) 
{
DisableEventFiring();

SPListItem item = properties.ListItem;
item["列C"] = Microsoft.VisualBasic.Strings.StrConv(item["列A"].ToString(),Microsoft.VisualBasic.VbStrConv.Narrow, 0);
item.Update();

EnableEventFiring();
}

SharePoint Foundation 2010 / SharePoint Server 2010 の場合
public override void ItemUpdated(SPItemEventProperties properties) 
{
EventFiringEnabled = false;

SPListItem item = properties.ListItem;
item["列C"] = Microsoft.VisualBasic.Strings.StrConv(item["列A"].ToString(),Microsoft.VisualBasic.VbStrConv.Narrow, 0);
item.Update();

EventFiringEnabled = true;
}

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
プロパティ

文書番号:2727966 - 最終更新日: 2016/09/29 - リビジョン: 1

Microsoft Windows SharePoint Services 3.0, Microsoft Office SharePoint Server 2007, Microsoft SharePoint Foundation 2010, Microsoft SharePoint Server 2010

フィードバック