- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
×
Linguagem de Programação ADVPL
Perguntas FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
- raphaelf
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
10 anos 2 meses atrás - 10 anos 2 meses atrás #25316
por raphaelf
FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO foi criado por raphaelf
Boa tarde Senhores,
Gostaria de uma ajuda de vocês, a situação é a seguinte:
No Contas a Receber(SE1) criei um campo (E1_JUSTIF) com uma Lista de opções com 04 escolhas, para o usuário Justificar a Prorrogação do vencimento do título...
Preciso FORÇAR o usuário a preencher este campo APENAS no caso dele prorrogar o vencimento, notificando-o na tela disso, ou se possível, abrindo uma caixa de texto para ele preencher e armazenar neste campo.
Existe uma condição que está no fonte que é para apenas um usuário específico poder prorrogar acima de 150 dias.
Desde já agradeço a todos.
Segue fonte:
User Function URBG040()
nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias >= 150
IF __CUSERID$'000109' .AND. Empty(Alltrim(M->E1_JUSTIF))
ELSE
APMSGALERT("DESCULPE, VOCÊ NÃO TEM AUTORIZAÇÃO PARA PRORROGAR ACIMA DE 150 DIAS.","SEM ACESSO-"+ALLTRIM(ProcName())+"-URBG040")
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
ENDIF
ENDIF
IF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("JUSTIFIQUE O MOTIVO DA PRORROGAÇÃO NO CAMPO - 'Jus.Prorroga' -")
ENDIF
Return
Gostaria de uma ajuda de vocês, a situação é a seguinte:
No Contas a Receber(SE1) criei um campo (E1_JUSTIF) com uma Lista de opções com 04 escolhas, para o usuário Justificar a Prorrogação do vencimento do título...
Preciso FORÇAR o usuário a preencher este campo APENAS no caso dele prorrogar o vencimento, notificando-o na tela disso, ou se possível, abrindo uma caixa de texto para ele preencher e armazenar neste campo.
Existe uma condição que está no fonte que é para apenas um usuário específico poder prorrogar acima de 150 dias.
Desde já agradeço a todos.
Segue fonte:
User Function URBG040()
nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias >= 150
IF __CUSERID$'000109' .AND. Empty(Alltrim(M->E1_JUSTIF))
ELSE
APMSGALERT("DESCULPE, VOCÊ NÃO TEM AUTORIZAÇÃO PARA PRORROGAR ACIMA DE 150 DIAS.","SEM ACESSO-"+ALLTRIM(ProcName())+"-URBG040")
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
ENDIF
ENDIF
IF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("JUSTIFIQUE O MOTIVO DA PRORROGAÇÃO NO CAMPO - 'Jus.Prorroga' -")
ENDIF
Return
Ultima edição: 10 anos 2 meses atrás por raphaelf.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 2 meses atrás #25328
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
Não testei veja se funfa.
User Function URBG040()
nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias >= 150
IF __CUSERID$'000109' .AND. Empty(Alltrim(M->E1_JUSTIF))
M->E1_JUSTIF := fJustif()
ELSE
APMSGALERT("DESCULPE, VOCÊ NÃO TEM AUTORIZAÇÃO PARA PRORROGAR ACIMA DE 150 DIAS.","SEM ACESSO-"+ALLTRIM(ProcName())+"-URBG040")
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
ENDIF
ENDIF
IF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("JUSTIFIQUE O MOTIVO DA PRORROGAÇÃO NO CAMPO - 'Jus.Prorroga' -")
ENDIF
Return
Static Function fJustif()
Local nOpc := 0
Local cRet := ""
Local cMemo:= ""
Local oDlg1
Local oFont
cMemo :=M->E1_JUSTIF
DEFINE FONT oFont NAME "Courier New" SIZE 7,14
@ 3,0 TO 340,550 DIALOG oDlg1 TITLE OemToAnsi("MOTIVO DA PRORROGACAO")
@ 5,5 Get cMemo MEMO OBJECT oMemo SIZE 267,145
oMemo:bRClicked := {||AllwaysTrue()}
oMemo:oFont:=oFont
@ 153,240 BMPBUTTON TYPE 1 ACTION ( nOpc := 1 , oDlg1:End() )
ACTIVATE DIALOG oDlg1 CENTER
Return(AllTrim(cMemo))
User Function URBG040()
nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias >= 150
IF __CUSERID$'000109' .AND. Empty(Alltrim(M->E1_JUSTIF))
M->E1_JUSTIF := fJustif()
ELSE
APMSGALERT("DESCULPE, VOCÊ NÃO TEM AUTORIZAÇÃO PARA PRORROGAR ACIMA DE 150 DIAS.","SEM ACESSO-"+ALLTRIM(ProcName())+"-URBG040")
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
ENDIF
ENDIF
IF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("JUSTIFIQUE O MOTIVO DA PRORROGAÇÃO NO CAMPO - 'Jus.Prorroga' -")
ENDIF
Return
Static Function fJustif()
Local nOpc := 0
Local cRet := ""
Local cMemo:= ""
Local oDlg1
Local oFont
cMemo :=M->E1_JUSTIF
DEFINE FONT oFont NAME "Courier New" SIZE 7,14
@ 3,0 TO 340,550 DIALOG oDlg1 TITLE OemToAnsi("MOTIVO DA PRORROGACAO")
@ 5,5 Get cMemo MEMO OBJECT oMemo SIZE 267,145
oMemo:bRClicked := {||AllwaysTrue()}
oMemo:oFont:=oFont
@ 153,240 BMPBUTTON TYPE 1 ACTION ( nOpc := 1 , oDlg1:End() )
ACTIVATE DIALOG oDlg1 CENTER
Return(AllTrim(cMemo))
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- raphaelf
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
- raphaelf
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
10 anos 1 mês atrás - 10 anos 1 mês atrás #25408
por raphaelf
Respondido por raphaelf no tópico FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
Bom dia Luiz Alberto,
Vou ter que eliminar esta ideia de caixa de texto... Vou deixar apenas o campo com as opções mesmo.
Só queria uma ajuda para obrigar o preenchimento deste campo (E1_JUSTIF) quando o usuário prorrogar o vencimento do título.
Desde já agradeço a atenção.
Vou ter que eliminar esta ideia de caixa de texto... Vou deixar apenas o campo com as opções mesmo.
Só queria uma ajuda para obrigar o preenchimento deste campo (E1_JUSTIF) quando o usuário prorrogar o vencimento do título.
Desde já agradeço a atenção.
Ultima edição: 10 anos 1 mês atrás por raphaelf.
Por favor Acessar ou Registrar para participar da conversa.
- raphaelf
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
10 anos 1 mês atrás - 10 anos 1 mês atrás #25558
por raphaelf
Respondido por raphaelf no tópico FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
Boa tarde Senhores,
Consegui resolver este caso, arrumei um ponto de entrada que é ativado no OK do Título no contas a receber...
Espero poder ajudar alguém com o fonte abaixo que bloqueia prorrogações acima de 150 para usuários que não estão no parâmetro, e abaixo disso , solicita Justificativa no campo que criei.
USER FUNCTION FA040ALT()
Local cUser := RETCODUSR()
Local nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias < 0
M->E1_JUSTIF := ""
Return .T.
ENDIF
IF nQtDias >= 150 .AND. !cUser$GETMV("MU_LIBPRO")
APMSGALERT("DESCULPE. Você não está autorizado a prorrogar data acima de 150 dias.","SEM ACESSO-"+ALLTRIM(ProcName()))
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
Return .F.
ELSEIF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("Justifique o motivo da prorrogação no campo - 'JUS.PRORROGA'","SEM ACESSO-"+ALLTRIM(ProcName()))
Return .F.
ENDIF
Return .T.
Consegui resolver este caso, arrumei um ponto de entrada que é ativado no OK do Título no contas a receber...
Espero poder ajudar alguém com o fonte abaixo que bloqueia prorrogações acima de 150 para usuários que não estão no parâmetro, e abaixo disso , solicita Justificativa no campo que criei.
USER FUNCTION FA040ALT()
Local cUser := RETCODUSR()
Local nQtDias := M->E1_VENCTO - SE1->E1_VENCTO
IF nQtDias < 0
M->E1_JUSTIF := ""
Return .T.
ENDIF
IF nQtDias >= 150 .AND. !cUser$GETMV("MU_LIBPRO")
APMSGALERT("DESCULPE. Você não está autorizado a prorrogar data acima de 150 dias.","SEM ACESSO-"+ALLTRIM(ProcName()))
M->E1_VENCTO := SE1->E1_VENCTO
M->E1_VENCREA := SE1->E1_VENCREA
M->E1_JUSTIF := SE1->E1_JUSTIF
Return .F.
ELSEIF nQtDias <> 0 .AND. Empty(Alltrim(M->E1_JUSTIF))
APMSGALERT("Justifique o motivo da prorrogação no campo - 'JUS.PRORROGA'","SEM ACESSO-"+ALLTRIM(ProcName()))
Return .F.
ENDIF
Return .T.
Ultima edição: 10 anos 1 mês atrás por raphaelf.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- FORÇAR PREENCHIMENTO DE CAMPO MEDIANTE CONDIÇÃO
Tempo para a criação da página:0.108 segundos