視覚的なコレクション、すべてのレコードを取得し、現在グリッドコントロールに表示されているだけでなく

StackOverflow https://stackoverflow.com/questions/9363309

  •  28-10-2019
  •  | 
  •  

質問

私はエクスポートしようとしています 全て 視覚的なコレクションからの記録への記録。

私のコードは次のように見えます:

Imports System.Runtime.InteropServices.Automation

Namespace LightSwitchApplication

    Public Class Assignacions_GR_a_DPT_o_IR_manuals

        Private Sub ExportacioExcel_Execute()
            Try
                ...

                For Each GR In Me.A_LIGHTSWITCH_QUERY
                    rowCount += 1
                    excel.Cells(rowCount, 1).Value = GR.ToString

しかし、現在のみです A_LIGHTSWITCH_QUERY グリッドのレコードがエクスポートされていることを示しました。 すべてのクエリレコードを取得する方法はありますか?

コードは、スクリーンコマンドバー実行コードに書かれています。

編集

あなたのポイントについて1,3ヤンの答え:

画面には2つのクエリがあります:main_queryとlookup_query。

最初の1つ、Main_Queryはグリッドにバインドされています。

Lookup_Queryは、Main_Queryフィールド(オートコンプリートボックスの選択)のルックアップ値のクエリです。

ループごとにlookip_queryを繰り返します:

For Each GR In Me.LOOKUP_QUERY

また、画面に表示されるlooup_queryアイテムのみがループから取得されます。

サンプル:

MAIN_QUERY = ORDER LINE (QTY, Product, Order, ...)
LOOKUP_QUERY = PRODUCT (NAME, ...)

For Each P In Me.PRODUCT

Only retrieve product that appear in selected order, I need ALL products.

ページを無効にできることに注意してください order 各製品の少なくともラインは含まれていません。一部の製品は輸出時に見逃されます。

役に立ちましたか?

解決

回答による マット・エヴァンスVisual Studio Lightswitch-一般的な質問 フォーラム:

サーバー上のデータに対応するエンティティセットを見たいです。 VisualCollectionは、画面上のグリッドのバッキングストアです。

「Customer」という名前のエンティティがある場合、本質的なデータベース(ApplicationData)では、顧客が表示されます。

for each c in Me.Dataworkspace.ApplicationData.Customers

    rowCount += 1
    excel.Cells(rowcount, 1).Value = c.Name

他のヒント

グリッドを入力するためのパラメーターを備えたクエリを使用し、ページングを有効にした場合、グリッドにはいつでもデータの「ページ」のみが1つしかありません。これが、すべてのレコードを取得していない理由です。

  1. 最も簡単な方法は、コレクションのページングを無効にすることですが、もちろん、多数のレコードがある場合は、そうすることは良い考えではないかもしれません。とにかくすべてのレコードをエクスポートしたいので、ページをページするかどうかにかかわらず、それらはすべてクライアントに引き下げられます。

  2. 別の方法は、コード内のページをプログラム的にシーケンスすることです(ただし、メソッド1を実行することもできます)。

  3. または、グリッドを入力する同じクエリを使用することもできますが、グリッドのコレクションを使用する代わりにコードでは(そして、すべてのレコードをクライアントに引き下げます)。

Yann、これはスレッドがしばらくかかったことを知っていますが、私はただ一つのことを明確にしたいだけです。このグリッドクエリのすべてのレコードを反復する必要がある場合(これにはページネーションがあります)、これらのいずれかを実行できます。

  1. 別の画面クエリを作成し(同じフィルターを使用しますが、ページネーションはありません)、反復に使用します
  2. エンティティセット(つまりdataworkspace.applicationdata.tablename)に移動し、そこから適切なフィルターを適用して反復します

LSへの貢献に感謝します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top