GeneXusのForEachで取得件数の指定について

ForEachでデータを取得する場合、条件を指定すればその条件に一致するデータだけを取得できますが、条件に一致したデータのN件目からM件だけ取得したい場合はどうすればよいのでしょうか?
(SQLだとOFFSETとかLIMITのイメージ)

そんな質問をいただいたので、備忘録として記載しておきます。

昔はデータプロバイダーを使用しないと出来なかったのですが、GeneXus16からForEachでもできるようになってます。
なのでGeneXus16以上を使っている方は参考にしてください。

やり方は簡単です。
ForEachのSkipとCountを使いましょう。

例えば商品マスタがあって、そこにデータが下記のように100件入っているとします。

その100件の中から、5件目から10件取得する場合は、下記のようにForEachを書きましょう。

5件目からなので、4件スキップして、Countで10件取得。

すると下記のように取得できます。

もちろんSkipもCountも変数が使えるので、画面に変数を置いてユーザーが指定することも可能です。

上記のように記載すれば、実行時に動的に変わります。

使う機会は少ないかもしれないですが、ぜひ使ってみてください。

Blog一覧へ