我每个人都使用a来调用生成报告的命令,但是我需要的第一个和最后一个报告的数据与其他报告有所不同,在Genexus X v3上是否有办法知道这一点?
答案 0 :(得分:0)
如果只需要将第一个迭代与其余的迭代区分开,则可以使用布尔变量。在上一次迭代中,您需要在之后执行的操作时,也可以使用此方法:
&first = true
for each
if &first
&first = false
// Do whatever you need in the first iteration
else
// Do whatever you need in the remaining iterations
endif
endfor
// Do whatever you need to do after the last iteration
如果您需要在上一次迭代中做一些不同的事情,而不是对其他每次迭代所做的事情,则需要延迟一次迭代并使用缓冲区变量来保存以前的值。
例如,假设您需要使用两个属性CustomerCode
CustomerName
,并且您需要为第一个迭代调用Procedure1
,为其余的减去最后一个调用Procedure2
迭代,最后一个Procedure3
:
&first = true
&rest = false
for each
if &first
&first = false
// Do whatever you need in the first iteration
Procedure1(CustomerCode, CustomerName)
else
if &rest
// Do whatever you need in the remaining iterations, using buffer variables
Procedure2(&CustomerCode, &CustomerName)
else
&rest = true
endif
// Load buffer variables
&CustomerCode = CustomerCode
&CustomerName = CustomerName
endif
endfor
// Do whatever you need in the last iteration, using buffer variables
if &rest
Procedure3(&CustomerCode, &CustomerName)
endif