× Linguagem de Programação ADVPL

Perguntas Variável do Tipo Array/Vetor/Matriz

Mais
11 anos 2 meses atrás #16925 por cintra_daniel
Boa Tarde Pessoal!

Estou precisando de uma variável que seja preenchida da seguinte forma:

_aErro[_nErro][1] := (_cTRB)->TQS_PLACA
_aErro[_nErro][2] := (_cTRB2)->TC_CODBEM
_aErro[_nErro][3] := (_cTRB)->TQS_CODBEM
_aErro[_nErro][4] := (_cTRB2)->TC_COMPONE
_aErro[_nErro][5] := (_cTRB)->TQS_POSIC
_aErro[_nErro][6] := (_cTRB2)->TC_LOCALIZ

_nErro++

Só que não estou sabendo declarar a variável _aErro, sempre que eu rodo o fonte da array out bounds.. ;/

A declaração que eu estou fazendo -> Local _aErro := {{}}

Alguém pode me ajudar?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás - 11 anos 2 meses atrás #16926 por rodrigolparaujo
Boa noite Daniel!

Experimente usar a funcao AADD

While ...
AADD(_aErro,{(_cTRB)->TQS_PLACA},(_cTRB2)->TC_CODBEM,(_cTRB)->TQS_CODBEM})
dbskip()
EndDo

se debugar verá que seu array ficará
_aErro[1,1] >>> conteudo do campo (_cTRB)->TQS_PLACA} do primeiro registro
_aErro[1,2] >>> conteudo do campo (_cTRB2)->TC_CODBEM} do primeiro registro
_aErro[1,3] >>> conteudo do campo (_cTRB)->TQS_CODBEM} do primeiro registro

_aErro[2,1] >>> conteudo do campo (_cTRB)->TQS_PLACA} do segundo registro
_aErro[2,2] >>> conteudo do campo (_cTRB2)->TC_CODBEM} do segundo registro
_aErro[2,3] >>> conteudo do campo (_cTRB)->TQS_CODBEM} do segundo registro

espero ter ajudado, qq coisa poste aí!!!!
Ultima edição: 11 anos 2 meses atrás por rodrigolparaujo. Razão: corrigindo a funcao

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16929 por cintra_daniel
Rodrigo Muito Obrigado!

Sua dica funcionou perfeitamente...

Ficou assim..

Sempre que o while encontra um erro, ele escreve no array:

AADD(_aErro,{(_cTRB)->TQS_PLACA,(_cTRB2)->TC_CODBEM,(_cTRB)->TQS_CODBEM,(_cTRB2)->TC_COMPONE,(_cTRB)->TQS_POSIC,(_cTRB2)->TC_LOCALIZ})

E na hora de exibir coloquei assim:

For nY := 1 to Len(_aErro)
If oReport:Cancel()
Exit
EndIf

oReport:IncMeter(1)

oSection1:Init()

oSection1:Cell("A"):SetValue(_aErro[nY][1])
oSection1:Cell("B"):SetValue(_aErro[nY][2])
oSection1:Cell("C"):SetValue(_aErro[nY][3])
oSection1:Cell("D"):SetValue(_aErro[nY][4])
oSection1:Cell("E"):SetValue(_aErro[nY][5])
oSection1:Cell("F"):SetValue(_aErro[nY][6])

oSection1:PrintLine()

Next nY

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16930 por cintra_daniel
Se alguém quizer utilizar o fonte, ficou uma coisa bem interessante, porque é uma verificação das informações do cadastro do bem pneu (TQS) com as informações que estão cadastradas na tabela de estrutura de bens (STC).

Se aplica ao módulo Manutenção de Ativos.

Estou enviando o arquivo fonte em anexo.
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.131 segundos
Joomla templates by a4joomla