2

リストのタイトル列には年のみが含まれています。過去3年しか表示しないビューを作りたいです。

リスト定義でCAMLクエリを使用しようとしています:

<Query>
  <Where>
    <Geq>
      <FieldRef Name="Year" />
      <Value Type="Number"> ???? </Value>
    </Geq>
  </Where>
</Query>

<Today>属性付きの要素を使用してここで何かを取得しようとしましたOffsetが、運がありませんでした。これはDateTime値ではなく、数値のみです。

ここにフィルタリング条件を書く方法は?

4

2 に答える 2

2

これは日時値ではないため、機能しません。<Today>またoffset、これらの要素は、クエリが実行された瞬間に基づいてSQLDateTime値に内部的に変換されるためです。

2009年以降のエントリを探しているビューを作成することもできますが(2012年現在)、それに適応するには毎年追加のマイナーな作業が必要になります。

可能であれば、実際の日付のみのフィールドを作成して操作することをお勧めします(おそらく、その値に基づいて計算されたフィールドのみを表示します)。

于 2012-06-18T18:34:36.067 に答える
1

これを2つのステップで行うことをお勧めします。

  1. http://msdn.microsoft.com/en-us/library/bb862071.aspxで説明されている数式を使用して、DateTime(時間なし)タイプの計算フィールドを作成します。次のようになります=DATE(Year-3,0,0)
  2. この新しい列を使用してクエリを実行します。何かのようなもの
<Geq>
        <FieldRef Name="YearCalculated" />
        <Value Type="DateTime" IncludeTimeValue="FALSE"><Today /></Value>    
</Geq>

Offset = "-1095"を使用したアプローチも機能する可能性がありますが、計算フィールドの年の値を差し引く方が適切だと思います。さらに、必要に応じて、計算フィールドをビューフォームでいつでも非表示にすることができます。

于 2012-06-18T17:53:04.957 に答える