- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao criar campos aheader
×
Linguagem de Programação ADVPL
Perguntas Erro ao criar campos aheader
- barater
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 126
- Obrigados Recebidos: 0
10 anos 3 meses atrás #24117
por barater
Erro ao criar campos aheader foi criado por barater
Boa tarde
Estou precisando criar um aheader a partir do SX3, porem, no final, adicionar um aheader que nao faz parte do dicionario de dados:
Segue parte do fonte:
DbSelectArea("SX3")
DbSetOrder(1)
DbSeek("ZB5")
While !EOF() .And. X3_ARQUIVO == "ZB5"
If TRIM(sx3->x3_campo)=="ZB5_FILIAL" .or. TRIM(sx3->x3_campo)=="ZB5_FORNEC" .or. TRIM(sx3->x3_campo) == "ZB5_LOJA" .or.;
TRIM(sx3->x3_campo)=="ZB5_DESC" .Or. TRIM(sx3->x3_campo)=="ZB5_ALERT1" .Or. TRIM(sx3->x3_campo)=="ZB5_ALERT2" .Or.;
TRIM(sx3->x3_campo)=="ZB5_ALERT3" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA1" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA2" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA3"
dbSelectArea("SX3")
dbSkip()
loop
EndIf
If X3Uso(X3_USADO) .And. cNivel >= X3_NIVEL
nUsado++
AADD( aHeader, { Trim( X3Titulo() ),;
X3_CAMPO,;
X3_PICTURE,;
X3_TAMANHO,;
X3_DECIMAL,;
X3_VALID,;
X3_USADO,;
X3_TIPO,;
X3_ARQUIVO,;
X3_CONTEXT})
Endif
dbSkip()
End
nUsado++
AADD(aHeader,{ "RECNO", "RECZB5", "@E999999999999999",;
15, 0 ,"",;
"", "N", "", "" } )
If Empty(len(aCols))
aCols:={Array(nUsado+1)}
aCols[1][nUsado+1]:=.F.
For _c:=1 to nUsado
aCols[1][_c]:=CriaVar(aHeader[_c][2])
Next
Endif
.......
Acontece que ao executar o programa aparece a seguinte mensagem cfe anexo.
Obrigado pela ajuda
Estou precisando criar um aheader a partir do SX3, porem, no final, adicionar um aheader que nao faz parte do dicionario de dados:
Segue parte do fonte:
DbSelectArea("SX3")
DbSetOrder(1)
DbSeek("ZB5")
While !EOF() .And. X3_ARQUIVO == "ZB5"
If TRIM(sx3->x3_campo)=="ZB5_FILIAL" .or. TRIM(sx3->x3_campo)=="ZB5_FORNEC" .or. TRIM(sx3->x3_campo) == "ZB5_LOJA" .or.;
TRIM(sx3->x3_campo)=="ZB5_DESC" .Or. TRIM(sx3->x3_campo)=="ZB5_ALERT1" .Or. TRIM(sx3->x3_campo)=="ZB5_ALERT2" .Or.;
TRIM(sx3->x3_campo)=="ZB5_ALERT3" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA1" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA2" .Or. TRIM(sx3->x3_campo)=="ZB5_DATA3"
dbSelectArea("SX3")
dbSkip()
loop
EndIf
If X3Uso(X3_USADO) .And. cNivel >= X3_NIVEL
nUsado++
AADD( aHeader, { Trim( X3Titulo() ),;
X3_CAMPO,;
X3_PICTURE,;
X3_TAMANHO,;
X3_DECIMAL,;
X3_VALID,;
X3_USADO,;
X3_TIPO,;
X3_ARQUIVO,;
X3_CONTEXT})
Endif
dbSkip()
End
nUsado++
AADD(aHeader,{ "RECNO", "RECZB5", "@E999999999999999",;
15, 0 ,"",;
"", "N", "", "" } )
If Empty(len(aCols))
aCols:={Array(nUsado+1)}
aCols[1][nUsado+1]:=.F.
For _c:=1 to nUsado
aCols[1][_c]:=CriaVar(aHeader[_c][2])
Next
Endif
.......
Acontece que ao executar o programa aparece a seguinte mensagem cfe anexo.
Obrigado pela ajuda
Por favor Acessar ou Registrar para participar da conversa.
- AndersonBR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 108
- Obrigados Recebidos: 0
10 anos 3 meses atrás #24120
por AndersonBR
Respondido por AndersonBR no tópico Erro ao criar campos aheader
Bom Dia Cezar, o problema está neste trecho:
A função criavar procura dados na SX3 para criar então da mesma forma que você cria o aHeader na unha faça o mesmo com o aCols, se não você não consegue, vai ficar mais ou menos assim:
For _c:=1 to nUsado
aCols[1][_c]:=CriaVar(aHeader[_c][2])
Next
Endif
A função criavar procura dados na SX3 para criar então da mesma forma que você cria o aHeader na unha faça o mesmo com o aCols, se não você não consegue, vai ficar mais ou menos assim:
dbSkip()
End
nUsado++
AADD(aHeader,{ "RECNO", "RECZB5", "@E999999999999999",;
15, 0 ,"",;
"", "N", "", "" } )
If Empty(len(aCols))
aCols:={Array(nUsado+1)}
aCols[1][nUsado+1]:=.F.
For _c:=1 to nUsado
If _C <> nUsado
aCols[1][_c]:=CriaVar(aHeader[_c][2])
Else
aCols[1][_c] := 0
EndIf
Next
Endif
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao criar campos aheader
Tempo para a criação da página:0.179 segundos