2012-04-09 12 views
2

ので、私私は(このクエリは、指定した検索条件のために、すべての金融取引を取得します)LightSwitchの中でカスタム検索画面用のカスタム計算フィールドを追加

クエリに基づいて、簡単な検索画面を作成する必要があり、このアプリケーションを持っていますだから私が望むのは、検索結果の合計をとした計算されたフィールドを画面に追加することです。 すべてのレコードの合計ではありません。

私は金融取引テーブルに計算フィールドを追加しようとしましたが、それはどんな意味がありません。..

私は状況のこれらの種類に何をすべき?

ありがとうございます。

よろしく、

答えて

1

私は、ユーザーが検索画面上のデフォルトの検索ボックスに自分の条件を入力し、検索して意味することを想定しています。組み込みの検索は、実際にはデータベース上の検索ではなく、すでに検索したクエリのフィルタであることに注意してください。ユーザーが何か「検索」すると、実際には画面から行が除外されますが、依然としてグリッドにバインドされている基礎となるデータ・コレクション上にあります。
私は組み込みの検索ボックスの動作をインターセプトする方法について知らない。

私が望むと思うものを実装する方法の1つは、クエリを作成し、それを必要な検索条件でパラメータ化し、その周囲に検索画面を構築することです。デフォルトの検索ボックスを非表示にして、より明瞭にすることができます。

たとえば、私はHoursフィールドを持つProjectsテーブルを持っているとします。最初に、Projectsに基づいて「Name contains NameParam」のようなフィルタを追加するクエリを作成します。このパラメータを画面に表示させる(この記事はガイドとして使用してください:http://blogs.msdn.com/b/bethmassi/archive/2010/11/09/creating-a-custom-search-screen-in-visual-studio-lightswitch.aspx
これは私が見たテクニックです。私はそれを100%快適にしているわけではありません。現時点では、画面クエリが実行された後にクエリパラメータにバインドされたテキストボックスのChangedイベントが発生しますが、現在のバージョンのLSでは機能します。 デザイナーで、(画面の左側にある)クエリパラメータを選択し、 "変更された"イベントのコードを追加します。そのイベントハンドラでは、必要なフィールドを計算できます。例えば、私はこの2つの変数(既にデータ項目として定義)を持っている:

RecordsCount = ProjectsByName.Count.ToString() 
TotalHours = ProjectsByName.Sum(Function(project) project.Hours) 

(VBコード)
[名前]テキストボックスに何かを入力してヒットするたびに入力するか、またはタブが出て、クエリがで実行されます変更されたイベントハンドラが起動し、プロパティが値をリフレッシュします。
これを実行するには、ページングをオフにする必要があります。それ以外の場合は、現在のページの結果が計算されます。
ページングが必要な場合は、常に2番目のクエリを実行して合計結果を得ることができます。

関連する問題