Árvore de páginas

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 e CNTA301


Nomenclaturas de forms e grids do modelo:

  • CN9MASTER - Cabeçalho do contrato;
  • CNCDETAIL - Grid de fornecedor / cliente;
  • CN8DETAIL - Grid de cauções;
  • CNIDETAIL - Grid de notas fiscais de caução;
  • CNADETAIL - Grid de planilhas;
  • CNBDETAIL - Grid de itens das Planilhas;
  • CXMDETAIL - Grid de agrupadores de estoque por planilha;
  • CNFDETAIL - Grid de cronograma financeiro;
  • CXIDETAIL - Grid de partes envolvidas do contrato;
  • CNHDETAIL - Grid de multas;
  • CNKDETAIL - Grid de documentos contratuais;
  • CNXDETAIL - Grid de adiantamentos;
  • CNUDETAIL - Grid de vendedores;
  • CPDDETAIL - Grid de filial x contrato;
  • CNZDETAIL - Grid de rateio de itens;
  • CNSDETAIL - Grid de cronograma físico;
  • CNNDETAIL - Grid de usuário x contrato;
  • CNVDETAIL - Grid de cronograma contábil;
  • CNWDETAIL - Grid de parcelas do cronograma contábil;
  • CNTDETAIL - Grid de cauções retidas;
  • CNGDETAIL - Grid de histórico do contrato;
  • AGWDETAIL - Grid de localizações físicas;
  • CXLDETAIL - Grid de itens do reajuste automático;
  • CNDDETAIL - Grid de medição do contrato;


Nomenclaturas das estruturas de interface (view):

  • FLDCNT - Folder inferior da manutenção de contrato:


  • FLDPLAN - Folder inferior da aba "Planilhas":