×
Linguagem de Programação ADVPL
Perguntas Erro SA1 e SE1
- Vinicius_Morais
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13622
por Vinicius_Morais
Erro SA1 e SE1 foi criado por Vinicius_Morais
Sou novo no ADVPL e no meu código não está funcionando no seguinte trecho que coloquei abaixo.
O problema está no campo A1_ZZDUPLI do SA1, dá um erro de variavel nao existe para o E1_NUM, ou seja, não consigo usar o SA1 e o SE1 juntos.
dbSelectArea("SE1")
dbSetOrder(1)
dbSeek(xfilial("SE1")+mv_par03+mv_par01)
If Found()
Set Print On
Set Device to Print
dbSelectArea("SA1")
While E1_NUM >= mv_par01 .and. E1_NUM <= mv_par02 .And. E1_PREFIXO == mv_par03 .and. A1_ZZDUPLI == "S" .AND. !Eof()
If SE1->E1_TIPO == "NCC"
dbSelectArea("SE1")
Dbskip()
Loop
EndIf...
O problema está no campo A1_ZZDUPLI do SA1, dá um erro de variavel nao existe para o E1_NUM, ou seja, não consigo usar o SA1 e o SE1 juntos.
dbSelectArea("SE1")
dbSetOrder(1)
dbSeek(xfilial("SE1")+mv_par03+mv_par01)
If Found()
Set Print On
Set Device to Print
dbSelectArea("SA1")
While E1_NUM >= mv_par01 .and. E1_NUM <= mv_par02 .And. E1_PREFIXO == mv_par03 .and. A1_ZZDUPLI == "S" .AND. !Eof()
If SE1->E1_TIPO == "NCC"
dbSelectArea("SE1")
Dbskip()
Loop
EndIf...
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #13624
por kanaamlrr
Respondido por kanaamlrr no tópico Erro SA1 e SE1
Vinicius, como você está setando outro alias, você deve fazer uma referência para o campo que não é o alias que está em uso atualmente.
No caso, ficaria assim:
While SE1->E1_NUM >= mv_par01 .and. SE1->E1_NUM <= mv_par02 .And. SE1->E1_PREFIXO == mv_par03 .and. A1_ZZDUPLI == "S" .AND. !Eof()
da mesma forma que você referenciou logo abaixo em:
If SE1->E1_TIPO == "NCC"
porém, não recomento que use essa estrutura:
If SE1->E1_TIPO == "NCC"
dbSelectArea("SE1")
Dbskip()
Loop
EndIf
e sim essa:
If SE1->E1_TIPO == "NCC"
SE1->(Dbskip())
Loop
EndIf
No caso, ficaria assim:
While SE1->E1_NUM >= mv_par01 .and. SE1->E1_NUM <= mv_par02 .And. SE1->E1_PREFIXO == mv_par03 .and. A1_ZZDUPLI == "S" .AND. !Eof()
da mesma forma que você referenciou logo abaixo em:
If SE1->E1_TIPO == "NCC"
porém, não recomento que use essa estrutura:
If SE1->E1_TIPO == "NCC"
dbSelectArea("SE1")
Dbskip()
Loop
EndIf
e sim essa:
If SE1->E1_TIPO == "NCC"
SE1->(Dbskip())
Loop
EndIf
Por favor Acessar ou Registrar para participar da conversa.
- Vinicius_Morais
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13625
por Vinicius_Morais
Respondido por Vinicius_Morais no tópico Erro SA1 e SE1
Obrigado pelo retorno Kanaam vou testar e já retorno, também farei a alteração que você recomendou..vlw
Por favor Acessar ou Registrar para participar da conversa.
- Vinicius_Morais
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13626
por Vinicius_Morais
Respondido por Vinicius_Morais no tópico Erro SA1 e SE1
Funcionou conforme você me passou, obrigado Kanaam!
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.086 segundos