Estou desenvolvendo uma rotina em MVC, tenho um campo (ZZ5_TIPO) no qual carrega as seguintes opções 1-cliente, 2-Fornecedor,3-CC, no campo ZZ5_CODTP quero colocar uma consulta padrão com relacionamento ao campo ZZ5_TIPO, ou seja, quando o usuário optar pelo cliente a consulta padrão traga o cliente(SA1), quando optar "2" pelo fornecedor (SA2) e opção "3" CC traga o centro de custo (CTT), alguém consegue me ajudar em relação a como fazer essa rotina.
Boa Tarde,
Uma opção seria uma consulta especifica, onde nela é chamada uma função passando como parâmetros o ZZ5_TIPO selecionado e nela seria tratada com IF ou Case o que retornaria no F3, sendo consulta a tabelas diferentes ou dados diferentes, etc...
Referência sobre Consulta específica: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360027506172-MP-ADVPL-CONSULTA-ESPEC%C3%8DFICA-COM-RETORNO-EM-VARI%C3%81VEL
Atenciosamente,
No meu ponto de vista, o melhor cenário para construir esta Consulta Específica é você construir um fonte que valide o tipo:
cType := oModel:GetModel("ZZ5"):GetValue("ZZ5_TIPO")
Do Case
Case (cType == "1")
ConPad1(NIL, NIL, NIL, "SA1")
Case (cType == "2")
ConPad1(NIL, NIL, NIL, "SA2")
Case (cType == "3")
ConPad1(NIL, NIL, NIL, "CTT")
EndCase
Para exibir as Consultas Padrões você pode chamar as já existentes na SXB com a função ConPad1()
:
Ou caso deseje efetuar a montagem da caixa de diálogo, recomendo que utilize as classe MsDialog()
[caixa pai], TButton()
[botão OK], TGrid()
[listagem] e exiba os dados.