Criando facilmente o Modelo3

Blog Advpl - Share knowledge

Criando facilmente o Modelo3

15 de junho de 2015 Dicas Funções 4

O Modulo3, é uma função pronta que tem o mesmo efeito de uma rotina onde teremos uma janela com um cabeçalho usando a função EnChoice uma grade usando a fução MsGetDados para os itens.

O retorno da função é True quando clicamos no botão Confirmar ou False, quando clicamos no botão Fechar. É possível incluir também novos botões dentro do botão Ações Relacionadas.

Um exemplo de um Modelo3 é a rotina OMSA010 – Manutenção da Tabela de Preço

exemplo_modelo3

Uma grande vantagem de se usar o Modelo3 é a sua simplicidade, sem contar que iremos programar o mínimo possível.

Sintaxe:

Modelo3(cTitulo,cAlias1,cAlias2,aMyEncho,cLinOk,cTudoOk,nOpcE,nOpcG,cFieldOk,lVirtual,nLinhas,aAltEnchoice,nFreeze, aButtons, aCordW, nSizeHeader)

Onde:

Nome

Tipo

Descrição

cTitulo

Caracter

Titulo da janela

cAlias

Caracter

Alias da Enchoice

cAlias2

Caracter

Alias da Getdados

aMyEncho

Vetor

Array com campos da enchoice

cLinhaOk

Caracter

Função para validação da linha

cTudoOk

Caracter

Função para validação na confirmação

nOpcE

Numérico

nOpc da Enchoice

3 = Incluir , 4 = Alterar, 5 = Excluir

nOpcG

Numérico

nOpc da Getdados

3 = Incluir , 4 = Alterar, 5 = Excluir

cFieldOk

Caracter

Validação para todos os campos da GetDados

lVirtual

Lógico

Permite visualizar campos virtuais na enchoice

nLinhas

Numérico

Número máximo de linhas na getdados

aAltEnchoice

Vetor

Array com campos alteráveis da Enchoice

nFreeze

Numérico

Congelamento das colunas.

aButtons

Vetor

Array com botões de usuário na enchoicebar

aCordW

Vetor

Coordenadas da janela

nSizeHeader

Numérico

Altura da enchoice

 

No exemplo abaixo, irei mostrar como montar um modelo3 onde deixarei alguns campos habilitados para que somente estes campos sejam modificados e salvos na hora que confirmar.

Na grade, irei apresentar alguns campos, assim como a enchoice, irei definir quais campos serão salvos na hora em que confirmar a tela.

Irei trabalhar com as tabelas SC5 (Cabeçalho do Pedidos de Venda)  e SC6 (Itens dos Pedidos de Venda)

modelo3

Este fonte é chamado a partir do menu mBrowser do Pedido de Venda

Recomendo também a função do colega Marinado de Jesus, vide URL http://totvs-advpl-naldodj.googlecode.com/svn-history/r2/trunk/templates/P10/ndj_01/Projeto/NDJLib/NDJLib005.prg , a sua função está bem mais completa que a padrão Totvs.

 

Espero que o exemplo tenha sido útil!

 

4 comentários

  1. User Function disse:

    Legal o artigo… realmente se formos fazer ‘na mão’ um modelo3 nós perderíamos um tempinho mesmo…

    E, melhor do que isso seria irmos para o MVC mesmo né?

    Parabéns pelo post!

    Leonardo
    http://www.userfunction.com.br

    • Tanto o modelo2, quanto o modelo3 é uma boa alternativa para quem ainda não conheceu o MVC do Protheus.
      Em breve postarei o modelo2 e mais exemplos de MVC

      • jmfrolim disse:

        Eu sempre acompanho o blog, acho que seria interessante e mais didatico, separar cada trecho e descrever o que cada trecho faz, pois ai quem acompanha e vai fazer os exemplos tem uma explicação do que o trecho de codigo faz, pois quem esta começando muitas vezes não consegue acompanha por não entender algo.
        Mas o artigo esta exelente!

Deixe uma resposta para User FunctionCancelar resposta