2011年9月24日土曜日

◆クエリでグローバルな定数を使う

クエリデザイナでフィルターを定義する際、日付型に対しては「グローバル」という種類が指定できる。(多分日付型に限った仕掛けでは無いと思うが、さしあたってデフォルトで文字列型や数値型には存在していないようだ)
image

これは予めシステムで定義された定数ということで、以下のようなものが用意されている。
image

これらを使うことでコードを書かなくてもある程度の条件が指定できることになる。

また、これらは独自に追加することも可能であり、以下のような手順になる。

    1. 「ソリューションエクスプローラー」で「論理ビュー」から「ファイル表示」に切り替える。
      image
    2. 「DATA」フォルダにある「ApplicationDefinition.lsml」ファイルを右クリックして「開く」を選択する。
      image
    3. 表示されたXMLファイルに以下のような定義を追加する。
      image
      ここで、「GlobalDates」は任意の名前であるが次に追加するクラス名と同期している必要がある。
      その次の行の「ThreeDaysAgo」がメソッド名になる。
    4. XMLで定義したクラス(メソッド)を「Common」プロジェクトに実装する。
          public class GlobalDates
      {
      public static DateTime ThreeDaysAgo()
      {
      return DateTime.Today.AddDays(-3);
      }

    5. 実装が済んだらVisualStudioを再起動。(デザイナのみを再起動する機能があるような記述もあったが、自分の環境では見当たらなかった)

以上で、クエリ画面を開いてみると以下のように追加した値が表示されるはずだ。
image

0 件のコメント:

コメントを投稿