WSS の CAML を使用して SPQuery にクエリ設定をするときは、WSS 内部で使われる列名を使わなければいけないとのこと。クエリあってるじゃないのおっ、と CAML とにらめっこしてたんですが・・・
調べてみたら日本語だと列作成時に UTF-16に変換されたものがつけられるとのこと。標準ビューでソートをかけた時に URL に SortField というパラメータがつけられますが、ここに出ているのが内部的な列名ですね。
ASP.NET の HTML エンコーディングみたいなもんか。でも変換されているものをいちいち変換するのはめんどくさい。たぶん変換する便利なメソッドがどこかにあると思いますが、探している時間もないわということで・・・
「はじめは列名を英語表記(例: TargetAmt) にしておいて、作成したら列名を日本語(例:目標額)に戻す」
・・・に落ち着きました。
こうしておけば CAML で記述する時もは英語表記をそのまま使えばいいのでこけません。英語表記でもスペースが入るとそれも変換されるので、戻す処理をするかスペースをいれないか気をつけましょう。
ちなみにリストを作成するときはかってにList1とか名前がつくので要注意。
0 件のコメント:
コメントを投稿