有没有办法知道在Genexus X v3上第一个和最后一个迭代中每个For的时间?

时间:2019-05-09 20:34:36

标签: genexus

我每个人都使用a来调用生成报告的命令,但是我需要的第一个和最后一个报告的数据与其他报告有所不同,在Genexus X v3上是否有办法知道这一点?

1 个答案:

答案 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