ForEachでデータを取得する場合、条件を指定すればその条件に一致するデータだけを取得できますが、条件に一致したデータのN件目からM件だけ取得したい場合はどうすればよいのでしょうか?
(SQLだとOFFSETとかLIMITのイメージ)
そんな質問をいただいたので、備忘録として記載しておきます。
昔はデータプロバイダーを使用しないと出来なかったのですが、GeneXus16からForEachでもできるようになってます。
なのでGeneXus16以上を使っている方は参考にしてください。
やり方は簡単です。
ForEachのSkipとCountを使いましょう。
例えば商品マスタがあって、そこにデータが下記のように100件入っているとします。
その100件の中から、5件目から10件取得する場合は、下記のようにForEachを書きましょう。
5件目からなので、4件スキップして、Countで10件取得。
すると下記のように取得できます。
もちろんSkipもCountも変数が使えるので、画面に変数を置いてユーザーが指定することも可能です。
上記のように記載すれば、実行時に動的に変わります。
使う機会は少ないかもしれないですが、ぜひ使ってみてください。