Dúvida para entender If aCols

Olá pessoal, sou iniciante em ADVPL.

Estou com uma dúvida no seguinte código:

For nI := 1 To Len(aCols)

If aCols[nI,Len(aCols[nI])]//--> no caso aqui não entendo direito o que essa parte está validando.

Loop

Endif

aCols[nI,GdFieldPos("D1_PEDIDO")] := CriaVar("D1_PEDIDO",.F.)

aCols[nI,GdFieldPos("D1_ITEMPC")] := CriaVar("D1_ITEMPC",.F.)

Next nI

Agradeço a quem ajudar!

Eduarda,

A variável aCols tem como padrão ser uma matriz.

Cada posição da aCols é uma linha do grid. E cada linha do grid possui suas colunas (dados), a último posição da linha do aCols é reservada para informar se a linha está deletada.

Portanto esse condição, está avaliando se a linha corrente está deletada:


aCols[nI,Len(aCols[nI])]


O for no começo, é para iterar em cada linha do aCols:


For nI := 1 To Len(aCols)

   If aCols[nI,Len(aCols[nI])]
      Loop
   Endif

   aCols[nI,GdFieldPos("D1_PEDIDO")] := CriaVar("D1_PEDIDO",.F.)
   aCols[nI,GdFieldPos("D1_ITEMPC")] := CriaVar("D1_ITEMPC",.F.)
Next

E a condição, verifica se a linha está deletada, caso esteja, ela será ignorada, pois é chamado o comando Loop que volta diretamente para o começo do for fazendo o incremento da variável nI. Caso a linha não esteja deletada, o aCols vai receber os valores do CriaVar para dois de seus campos.