- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Variável do Tipo Array/Vetor/Matriz
×
Linguagem de Programação ADVPL
Perguntas Variável do Tipo Array/Vetor/Matriz
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16925
por cintra_daniel
Variável do Tipo Array/Vetor/Matriz foi criado 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?
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.
- rodrigolparaujo
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
11 anos 2 meses atrás - 11 anos 2 meses atrás #16926
por rodrigolparaujo
Respondido por rodrigolparaujo no tópico Variável do Tipo Array/Vetor/Matriz
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í!!!!
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.
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16929
por cintra_daniel
Respondido por cintra_daniel no tópico Variável do Tipo Array/Vetor/Matriz
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
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.
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16930
por cintra_daniel
Respondido por cintra_daniel no tópico Variável do Tipo Array/Vetor/Matriz
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.
Se aplica ao módulo Manutenção de Ativos.
Estou enviando o arquivo fonte em anexo.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Variável do Tipo Array/Vetor/Matriz
Tempo para a criação da página:0.131 segundos