Criar consulta padrão para trocar o F3

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():

Conpad1 - Consulta padrão


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.