×
Linguagem de Programação ADVPL
Perguntas Validação de Campo
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31371
por diegoo_martins
Validação de Campo foi criado por diegoo_martins
Estou fazendo uma validação no campo C6_CLASFIS para não permitir Situação Tributária diferente do cadastro de TES.
Porém, não está posicionando no campo F4_SITTRIB.
ERRO: variable does not exist C6_TES
Alguém pode me ajudar?
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
DbSelectArea ("SC6")
DbSetOrder(1)
DbSeek(xfilial("SC6")+ nPosSit)
_SitTRB := Posicione("SF4",1,xFilial("SF4")+M->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
Porém, não está posicionando no campo F4_SITTRIB.
ERRO: variable does not exist C6_TES
Alguém pode me ajudar?
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
DbSelectArea ("SC6")
DbSetOrder(1)
DbSeek(xfilial("SC6")+ nPosSit)
_SitTRB := Posicione("SF4",1,xFilial("SF4")+M->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
Por favor Acessar ou Registrar para participar da conversa.
- will
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31374
por will
Respondido por will no tópico Validação de Campo
Bom dia!
Você está tentando usar uma variavel de memoria dentro de um dbselectArea.
Ou você debuga e verifica se existe o M->C6_TES que já vem da tela, e aí vc pode retirar todo esse DbSelect Area e tal
ou você usa SC6->C6_TES
EXEMPLO 1:
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
_SitTRB := Posicione("SF4",1,xFilial("SF4")+M->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
EXEMPLO 2:
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
DbSelectArea ("SC6")
DbSetOrder(1)
DbSeek(xfilial("SC6")+ nPosSit)
_SitTRB := Posicione("SF4",1,xFilial("SF4")+SC6->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
verifique qual é o melhor.
Você está tentando usar uma variavel de memoria dentro de um dbselectArea.
Ou você debuga e verifica se existe o M->C6_TES que já vem da tela, e aí vc pode retirar todo esse DbSelect Area e tal
ou você usa SC6->C6_TES
EXEMPLO 1:
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
_SitTRB := Posicione("SF4",1,xFilial("SF4")+M->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
EXEMPLO 2:
User Function VL_SIT_TRB()
Local lRet := .T.
Local nPosSit := aCols[n,AScan(aHeader,{|x| AllTrim(x[2]) == "C6_CLASFIS" })]
Local _cSitTRB := ""
DbSelectArea ("SC6")
DbSetOrder(1)
DbSeek(xfilial("SC6")+ nPosSit)
_SitTRB := Posicione("SF4",1,xFilial("SF4")+SC6->C6_TES,"F4_SITTRIB")
If AllTrim(Subst(aCols[N][nPosSit],2,3)) <> _cSitTRB
Aviso("Classificação Fiscal","Situação Trinutária inválida.",{"OK"},1)
lRet := .F.
EndIf
Return (lRet)
verifique qual é o melhor.
Por favor Acessar ou Registrar para participar da conversa.
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31375
por diegoo_martins
Respondido por diegoo_martins no tópico Validação de Campo
William, bom dia.
Se colocar a validação no campo C6_TES, o erro não ocorre. Mas, o objetivo é ter a validação ao mudar de linha.
Pensei em utilizar o PE M410LIOK, mas dá este erro de variável de memória no C6_TES...
Se colocar a validação no campo C6_TES, o erro não ocorre. Mas, o objetivo é ter a validação ao mudar de linha.
Pensei em utilizar o PE M410LIOK, mas dá este erro de variável de memória no C6_TES...
Por favor Acessar ou Registrar para participar da conversa.
- will
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31380
por will
Respondido por will no tópico Validação de Campo
Boa Tarde!
Para usar o ponto de entrada M410LIOK, ele está dentro do Acols ainda, então você tem que ver o vetor Acols e não o cmapo, se precisar de um exemplo me avise.
Para usar o ponto de entrada M410LIOK, ele está dentro do Acols ainda, então você tem que ver o vetor Acols e não o cmapo, se precisar de um exemplo me avise.
Por favor Acessar ou Registrar para participar da conversa.
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31382
por diegoo_martins
Respondido por diegoo_martins no tópico Validação de Campo
William, bom dia.
Vou precisar de um exemplo do PE M410LIOK.
Poderia me enviar, por favor?
Obrigado.
Vou precisar de um exemplo do PE M410LIOK.
Poderia me enviar, por favor?
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 1 semana atrás #31392
por diegoo_martins
Respondido por diegoo_martins no tópico Validação de Campo
Willian, boa tarde.
Consegue me enviar um exemplo do PE M410LIOK.
Att,
Consegue me enviar um exemplo do PE M410LIOK.
Att,
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.138 segundos