- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar GET após retorno de consulta padrão
×
Linguagem de Programação ADVPL
Perguntas Atualizar GET após retorno de consulta padrão
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17672
por Rstrozi
Atualizar GET após retorno de consulta padrão foi criado por Rstrozi
Boa tarde pessoal,
Gostaria de saber como atualizar um GET de um DIALOG após o preenchimento de um campo com uma consulta padrão no código abaixo:
No caso, que quando o usuário preenchesse o campo "Cod. Motivo", o campo "Descr. Motivo" fosse atualizado.
Alguém poderia me dar uma luz?
Gostaria de saber como atualizar um GET de um DIALOG após o preenchimento de um campo com uma consulta padrão no código abaixo:
Static Function NWMOTDEV()
Local oCliente
Local cCliente := SF1->F1_FORNECE
Local oCodMot
Local cCodMot := Space(6)
Local oDescMot
Local cDescMot := Posicione("ZA2",1,xFilial("ZA2")+cCodMot,"ZA2_NWDESC")
Local oLoja
Local cLoja := SF1->F1_LOJA
Local oNF
Local cNF := SF1->F1_DOC
Local oNFOri
Local cNFOri := Posicione("SD1",1,xFilial("SD1")+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA,"D1_NFORI")
Local oPesBru
Local nPesBru := SF2->F2_PBRUTO
Local oQtdCx
Local nQtdCx := SF2->F2_VOLUME1
Local oRazSoc
Local cRazSoc := Posicione("SA1",1,xFilial("SA1")+F1_FORNECE+F1_LOJA,"A1_NREDUZ")
Local oSerNF
Local cSerNF := SF1->F1_SERIE
Local oSerOri
Local cSerOri := Posicione("SD1",1,xFilial("SD1")+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA,"D1_SERIORI")
Local oVlrNF
Local nVlrNF := SF1->F1_VALBRUT
Local lOk := .F.
Local cNum := GetSX8Num("ZA1","ZA1_NWCOD")
Local cObserv := Space(80)
Local oSay1
Local oSay10
Local oSay11
Local oSay12
Local oSay13
Local oSay2
Local oSay3
Local oSay4
Local oSay5
Local oSay6
Local oSay7
Local oSay8
Local oSay9
Local oBtnOk
Local oBtnCan
Static oDlg
DEFINE MSDIALOG oDlg TITLE "Motivação NF Devolução" FROM 000,000 TO 500,500 COLORS 0,16777215 PIXEL
@013,011 SAY oSay1 PROMPT "Serie" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@025,011 SAY oSay2 PROMPT "NF" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@042,011 SAY oSay3 PROMPT "Serie NF Orig" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@058,011 SAY oSay4 PROMPT "NF Original" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@074,011 SAY oSay5 PROMPT "Cliente" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@086,011 SAY oSay6 PROMPT "Loja" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@102,011 SAY oSay7 PROMPT "Razao Social" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@118,011 SAY oSay8 PROMPT "Cod. Motivo" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@132,011 SAY oSay9 PROMPT "Descr. Motivo" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@146,011 SAY oSay10 PROMPT "Peso Bruto" SIZE 045,012 OF oDlg COLORS 0,16777215 PIXEL
@158,011 SAY oSay11 PROMPT "Qtd Caixas" SIZE 045,013 OF oDlg COLORS 0,16777215 PIXEL
@173,011 SAY oSay12 PROMPT "Valor NF" SIZE 045,010 OF oDlg COLORS 0,16777215 PIXEL
@185,011 SAY oSay13 PROMPT "Observação" SIZE 045,010 OF oDlg COLORS 0,16777215 PIXEL
@013,058 MSGET oSerNF VAR cSerNF SIZE 016,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@025,058 MSGET oNF VAR cNF SIZE 029,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@042,058 MSGET oSerOri VAR cSerOri SIZE 016,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@058,058 MSGET oNFOri VAR cNFOri SIZE 029,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@074,058 MSGET oCliente VAR cCliente SIZE 023,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@086,058 MSGET oLoja VAR cLoja SIZE 017,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@102,058 MSGET oRazSoc VAR cRazSoc SIZE 183,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@118,058 MSGET oCodMot VAR cCodMot SIZE 027,010 OF oDlg COLORS 0,16777215 F3 "ZA2150" PIXEL
@132,058 MSGET oDescMot VAR cDescMot SIZE 183,010 OF oDlg COLORS 0,16777215 PIXEL
@146,058 MSGET oPesBru VAR nPesBru SIZE 070,010 OF oDlg PICTURE "99999.99" COLORS 0,16777215 READONLY PIXEL
@158,058 MSGET oQtdCx VAR nQtdCx SIZE 070,010 OF oDlg PICTURE "99999.99" COLORS 0,16777215 READONLY PIXEL
@173,058 MSGET oVlrNF VAR nVlrNF SIZE 073,010 OF oDlg PICTURE "9999999.99" COLORS 0,16777215 READONLY PIXEL
@185,058 MSGET oObserv VAR cObserv SIZE 188,010 OF oDlg COLORS 0,16777215 PIXEL
DEFINE SBUTTON oBtnOk FROM 205,077 TYPE 01 Action(lOk:=.T.,oDlg:End()) OF oDlg ENABLE
DEFINE SBUTTON oBtnCan FROM 205,140 TYPE 02 Action(lOk:=.F.,oDlg:End()) OF oDlg ENABLE
oDlg:Refresh()
ACTIVATE MSDIALOG oDlg CENTERED
If lOk
RecLock("ZA1",.T.)
ZA1->ZA1_FILIAL := xFilial("ZA1")
ZA1->ZA1_NWCOD := cNum
ZA1->ZA1_NWDEVO := cNF
ZA1->ZA1_NWSERD := cSerie
ZA1->ZA1_NWCLIE := cCliente
ZA1->ZA1_NWLOJA := cLoja
ZA1->ZA1_NWNOME := cRazSoc
ZA1->ZA1_NWNFOR := cNFOri
ZA1->ZA1_NWSERO := cSerOri
ZA1->ZA1_NWMOTI := cCodMot
ZA1->ZA1_NWDESC := cDescMot
ZA1->ZA1_NWRCLI := cObserv
ZA1->ZA1_PESBRU := nPesBru
ZA1->ZA1_QTDCX := nQtdCx
ZA1->ZA1_VLRNF := nVlrNF
MsUnlock()
Else
Alert("Cancelado pelo usuário!")
EndIf
Return
No caso, que quando o usuário preenchesse o campo "Cod. Motivo", o campo "Descr. Motivo" fosse atualizado.
Alguém poderia me dar uma luz?
Por favor Acessar ou Registrar para participar da conversa.
- cintra_daniel
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17673
por cintra_daniel
Respondido por cintra_daniel no tópico Atualizar GET após retorno de consulta padrão
Ola Rafael!
Você pode usar a propriedade ON CHANGE ou VALID do campo "Cod. Motivo"
e chamar uma função que faça o preenchimento do campo "Descr. Motivo"
de acordo com o valor que for preenchido no "Cod. Motivo"...
Exemplo:
@ (nLinCB += nLinDif), nColCB MSGET oCodMot VAR cCodMot SIZE 060, 010 OF oDlg PIXEL VALID PreencheDescr(cCodMot)
@ (nLinCB += nLinDif), nColCB MSGET oDescMot VAR cDescMot SIZE 060, 010 OF oDlg PIXEL
Ai dentro da função:
Static Function PreencheDescr()
local cValor := ""
//Faça a consulta e preencha o valor dessa variável
com o que vc deseja preencher no campo.
cDescMot := cValor
oDescMot:Refresh()
Return
Você pode usar a propriedade ON CHANGE ou VALID do campo "Cod. Motivo"
e chamar uma função que faça o preenchimento do campo "Descr. Motivo"
de acordo com o valor que for preenchido no "Cod. Motivo"...
Exemplo:
@ (nLinCB += nLinDif), nColCB MSGET oCodMot VAR cCodMot SIZE 060, 010 OF oDlg PIXEL VALID PreencheDescr(cCodMot)
@ (nLinCB += nLinDif), nColCB MSGET oDescMot VAR cDescMot SIZE 060, 010 OF oDlg PIXEL
Ai dentro da função:
Static Function PreencheDescr()
local cValor := ""
//Faça a consulta e preencha o valor dessa variável
com o que vc deseja preencher no campo.
cDescMot := cValor
oDescMot:Refresh()
Return
Por favor Acessar ou Registrar para participar da conversa.
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 1 mês atrás #17679
por Rstrozi
Respondido por Rstrozi no tópico Atualizar GET após retorno de consulta padrão
Obrigado Daniel.
Havia pensado em utilizar uma função, só não tinha idéia de como. Já fiz isso utilizando um botão em uma outra rotina.
Tive que fazer algumas alterações, jogando algumas variáveis para tipo public.
Segue abaixo o resultado final:
Esta rotina é parte do meu ponto de Entrada GQREENTR, na gravação da NF de entrada (MATA103), para que o usuário possa especificar o motivo de uma NF de Devolução.
Havia pensado em utilizar uma função, só não tinha idéia de como. Já fiz isso utilizando um botão em uma outra rotina.
Tive que fazer algumas alterações, jogando algumas variáveis para tipo public.
Segue abaixo o resultado final:
Static Function NWMOTDEV()
Local oCliente
Local cCliente := SF1->F1_FORNECE
Local oCodMot
Local cCodMot := Space(6)
Local oLoja
Local cLoja := SF1->F1_LOJA
Local oNF
Local cNF := SF1->F1_DOC
Local oNFOri
Local cNFOri := Posicione("SD1",1,xFilial("SD1")+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA,"D1_NFORI")
Local oPesBru
Local nPesBru := SF2->F2_PBRUTO
Local oQtdCx
Local nQtdCx := SF2->F2_VOLUME1
Local oRazSoc
Local cRazSoc := Posicione("SA1",1,xFilial("SA1")+F1_FORNECE+F1_LOJA,"A1_NREDUZ")
Local oSerNF
Local cSerNF := SF1->F1_SERIE
Local oSerOri
Local cSerOri := Posicione("SD1",1,xFilial("SD1")+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA,"D1_SERIORI")
Local oVlrNF
Local nVlrNF := SF1->F1_VALBRUT
Local lOk := .F.
Local cNum := GetSX8Num("ZA1","ZA1_NWCOD")
Local cObserv := Space(80)
Local oSay1
Local oSay10
Local oSay11
Local oSay12
Local oSay13
Local oSay2
Local oSay3
Local oSay4
Local oSay5
Local oSay6
Local oSay7
Local oSay8
Local oSay9
Local oBtnOk
Local oBtnCan
Public _oDescMot
Public _cDescMot := Space(240)
Static oDlg
DEFINE MSDIALOG oDlg TITLE "Motivação NF Devolução" FROM 000,000 TO 500,500 COLORS 0,16777215 PIXEL
@013,011 SAY oSay1 PROMPT "Serie" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@025,011 SAY oSay2 PROMPT "NF" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@042,011 SAY oSay3 PROMPT "Serie NF Orig" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@058,011 SAY oSay4 PROMPT "NF Original" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@074,011 SAY oSay5 PROMPT "Cliente" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@086,011 SAY oSay6 PROMPT "Loja" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@102,011 SAY oSay7 PROMPT "Razao Social" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@118,011 SAY oSay8 PROMPT "Cod. Motivo" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@132,011 SAY oSay9 PROMPT "Descr. Motivo" SIZE 045,011 OF oDlg COLORS 0,16777215 PIXEL
@146,011 SAY oSay10 PROMPT "Peso Bruto" SIZE 045,012 OF oDlg COLORS 0,16777215 PIXEL
@158,011 SAY oSay11 PROMPT "Qtd Caixas" SIZE 045,013 OF oDlg COLORS 0,16777215 PIXEL
@173,011 SAY oSay12 PROMPT "Valor NF" SIZE 045,010 OF oDlg COLORS 0,16777215 PIXEL
@185,011 SAY oSay13 PROMPT "Observação" SIZE 045,010 OF oDlg COLORS 0,16777215 PIXEL
@013,058 MSGET oSerNF VAR cSerNF SIZE 016,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@025,058 MSGET oNF VAR cNF SIZE 029,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@042,058 MSGET oSerOri VAR cSerOri SIZE 016,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@058,058 MSGET oNFOri VAR cNFOri SIZE 029,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@074,058 MSGET oCliente VAR cCliente SIZE 023,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@086,058 MSGET oLoja VAR cLoja SIZE 017,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@102,058 MSGET oRazSoc VAR cRazSoc SIZE 183,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@118,058 MSGET oCodMot VAR cCodMot SIZE 027,010 OF oDlg COLORS 0,16777215 F3 "ZA2150" PIXEL VALID PrDescr(cCodMot)
@132,058 MSGET _oDescMot VAR _cDescMot SIZE 183,010 OF oDlg COLORS 0,16777215 READONLY PIXEL
@146,058 MSGET oPesBru VAR nPesBru SIZE 070,010 OF oDlg PICTURE "99999.99" COLORS 0,16777215 READONLY PIXEL
@158,058 MSGET oQtdCx VAR nQtdCx SIZE 070,010 OF oDlg PICTURE "99999.99" COLORS 0,16777215 READONLY PIXEL
@173,058 MSGET oVlrNF VAR nVlrNF SIZE 073,010 OF oDlg PICTURE "9999999.99" COLORS 0,16777215 READONLY PIXEL
@185,058 MSGET oObserv VAR cObserv SIZE 188,010 OF oDlg PICTURE "@!" COLORS 0,16777215 PIXEL
DEFINE SBUTTON oBtnOk FROM 205,077 TYPE 01 Action(lOk:=.T.,oDlg:End()) OF oDlg ENABLE
DEFINE SBUTTON oBtnCan FROM 205,140 TYPE 02 Action(lOk:=.F.,oDlg:End()) OF oDlg ENABLE
oDlg:Refresh()
ACTIVATE MSDIALOG oDlg CENTERED
If lOk
RecLock("ZA1",.T.)
ZA1->ZA1_FILIAL := xFilial("ZA1")
ZA1->ZA1_NWCOD := cNum
ZA1->ZA1_NWDEVO := cNF
ZA1->ZA1_NWSERD := cSerie
ZA1->ZA1_NWCLIE := cCliente
ZA1->ZA1_NWLOJA := cLoja
ZA1->ZA1_NWNOME := cRazSoc
ZA1->ZA1_NWNFOR := cNFOri
ZA1->ZA1_NWSERO := cSerOri
ZA1->ZA1_NWMOTI := cCodMot
ZA1->ZA1_NWDESC := _cDescMot
ZA1->ZA1_NWRCLI := cObserv
ZA1->ZA1_PESBRU := nPesBru
ZA1->ZA1_QTDCX := nQtdCx
ZA1->ZA1_VLRNF := nVlrNF
MsUnlock()
Else
Alert("Cancelado pelo usuário!")
EndIf
Return
Static Function PrDescr(cCodMot)
Local cMot := cCodMot
Local cDesc := Posicione("ZA2",1,xFilial("ZA2")+cMot,"ZA2_NWDESC")
_cDescMot := cDesc
_oDescMot:Refresh()
Return
Esta rotina é parte do meu ponto de Entrada GQREENTR, na gravação da NF de entrada (MATA103), para que o usuário possa especificar o motivo de uma NF de Devolução.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar GET após retorno de consulta padrão
Tempo para a criação da página:0.086 segundos