Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
A300STRU - Manipulação do ModelDef e ViewDef na rotina de manutenção de contratos
A300STRU - Manipulação do ModelDef e ViewDef na rotina de manutenção de contratos

Ponto-de-Entrada: A300STRU - Manipulação do ModelDef e ViewDef na rotina de manutenção de contratos.


Abrangências:Microsiga Protheus 12
Versões:Microsiga Protheus 12
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todas TotvsDbAccess
Idiomas:Português (Brasil)


Descrição:
Ponto de entrada chamado nas definições de model e view da manutenção de contratos de compras e de vendas (após todas as definições padrões da rotina). Esse ponto de entrada permite a manipulação do modelo de dados e da interface, no intuito de adicionar abas e campos personalizados.
Programa Fonte
CNTA300
CNTA301
Parâmetros:
OrdemTipoDescriçãoReferência
1Caractere

Local de chamada do ponto de entrada. Valores possíveis:

  • "MODELDEF" - Se chamado do ModelDef do CNTA300 ou CNTA301;
  • "VIEWDEF" - Se chamado da ViewDef do CNTA300 ou CNTA301.
Não
2Caractere

Tipo de contrato que está sendo manipulado. Valores possíveis:

  • "C" - Contrato de compra (chamado do CNTA300);
  • "V" - Contrato de venda (chamado do CNTA301).
Não
3Objeto

Objeto com as definições do model ou da view, conforme local de chamada do ponto de entrada.

  • Se chamado do "MODELDEF", será um objeto da classe MPFormModel;
  • Se chamado da "VIEWDEF", será um objeto da classe FWFormView.

Esse parâmetro é informado por referência, então basta realizar as alterações no mesmo, que essas serão aplicadas na rotina padrão.

Sim


Retorno
Não há um retorno esperado para esse ponto de entrada. A personalização do modelo de dados e interface deverá ser aplicada diretamente no terceiro parâmetro recebido, que são objetos informados por referência. Dessa forma, as alterações já serão aplicadas na rotina padrão.
Exemplos
#include "protheus.ch"
#include "parmtype.ch"

User Function A300STRU()
    
    Local aParam := PARAMIXB
    Local cIdPonto := ""
    Local cCompVend := ""        
    Local oModel := ""
    Local oView := ""
    Local oStruZZZ := Nil
    
    If aParam <> NIL
    
        cIdPonto := aParam[1]
        cCompVend := aParam[2]
        
        If cIdPonto == "MODELDEF"
            
            oModel := aParam[3]
            oStruZZZ := FWFormStruct( 1, "ZZZ" )
            
            oModel:AddFields( "ZZZDETAIL", "CN9MASTER", oStruZZZ,,, )
            oModel:SetRelation( "ZZZDETAIL", { { "ZZZ_FILIAL", "FWxFilial('ZZZ')" }, { "ZZZ_NUMCTR", "CN9_NUMERO" }, { "ZZZ_REVISA", "CN9_REVISA" } }, ZZZ->( IndexKey( 1 ) ) )
            
        ElseIf cIdPonto == "VIEWDEF"
            
            oView := aParam[3]
            oStruZZZ := FWFormStruct( 2, "ZZZ" )
            
            oView:AddField( "VIEW_ZZZ", oStruZZZ, "ZZZDETAIL" )
            
            oView:AddSheet( "FLDCNT", "Custom1", "TitleTeste" )
            oView:CreateHorizontalBox( "TitleTeste2", 100,,, "FLDCNT", "Custom1" )
            oView:SetOwnerView( "VIEW_ZZZ", "TitleTeste2" )
            
        EndIf

    EndIf
    
Return Nil

Informações complementares sobre o Model e a View do CNTA300

Estruturas do modelo:
Estruturas de interface (view):