Preencher grids mvc

Eu tenho um codigo que faz uma consulta sql e deve retornar mais de 1000 campos diferentes e preencher uma grid com cada campo, como eu faço isso sem usar o oModel:SetValue() para cada um, porque se fosse desse jeito o codigo iria ficar gigante


Local aStruct  := (cAlias)->(DbStruct()) //Irá pegar todo o alias corrente
Local nI       := 0 //contador 

While ! (cAlias)->(EOF()) //Passará por aqui nao enquanto nao for fim de arquivo
  For nI := 1 To Len(aStrunc)   //Contador inicia em 1 ate o fim do array
 oModelPad:SetValue("SB1MASTER",aStruct[nI][1], ALLTRIM( (cAlias)->(&(aStruct[nI][1])) ) )
//                 FuncaoMVC ,Coluna que receberá, Valor que irá receber
Next nI //proximo passada
Enddo

Arrumei aqui.

Mas assim eu teria mais de 1000 linha so de SetValue, não tem nenhum jeito de atualizar todas automaticamente?

A resposta do leandro ficou mais correta, vc seta o alias , o while vai percorrer o alias inteiro, só vai parar quando for fim de arquivo.

Você só vai colocar o setvalue nas colunas que ele vai atualizar.

E se eu quiser atualizar 1000 coluna por exemplo, vou ter que escrever 1000 SetValue?

Não, você terá que usar um vetor Multidimensional, mas não é possivel você ter 1000 colunas em uma tabela do protheus.

Ai você irá trabalhar com posições: verticais e horizontais, mas jamais escreverá 1k de linhas.

Consegui resolver aqui usando um array multidimencional, e a tabela que eu to usando tem mais de 1000 campos, porque é uma tabela temporaria que pega campos de diversas outras

Array e vetor é a mesma coisa, que bom que deu certo.

Arthur, você pode fazer algo assim:


Local aStruct  := (cAlias)->(DbStruct())
Local nI       := 0

While ! (cAlias)->(EOF())
    For nI := 1 To Len(aStrunc)
        oModelPad:SetValue("SB1MASTER",aStruct[ni][1], ALLTRIM( (cAlias)->(&(aStruct[ni][1])) ) )
    Next nI
EndDo

https://tdn.totvs.com.br/display/public/framework/DBStruct