MVC com uma entidade
MPFormModel():New(); AddFields(); SetPrimaryKey()Define um modelo para uma tabela do dicionário.
Visão geral
Uma entidade é representada por um submodelo Field, criado com AddFields. FWFormStruct(1,alias) fornece os metadados do Model; o tipo 2 serve à View. O exemplo comunitário usa SBM, enquanto esta adaptação mostra uma tabela fictícia ZZ1 com chave ZZ1_FILIAL+ZZ1_COD. A função auxiliar é um esboço de ModelDef, não uma aplicação completa: exige SX2/SX3 preparados e ainda precisa ser ligada à ViewDef e às ações. O bloco não é invocado na demonstração. (Fontes: refs. 1–5.)
Sintaxe
MPFormModel():New(); AddFields(); SetPrimaryKey()Exemplo comentado
#Include "Protheus.ch"
#Include "FWMVCDef.ch"
User Function Ed553()
// Exige dicionario de teste ZZ1.
Local bConstruir := {|| BuildModel()}
ConOut(ValType(bConstruir))
Return Nil
Static Function BuildModel()
Local oModelo := MPFormModel():New("ED553M")
Local oEstrutura := FWFormStruct(1,"ZZ1")
oModelo:AddFields("ZZ1MASTER",Nil,oEstrutura)
oModelo:SetPrimaryKey({"ZZ1_FILIAL","ZZ1_COD"})
Return oModeloImprime B; o helper não é avaliado e não cria nem grava tabelas. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Conferir tipos e tamanhos de campos, chave primária, relação e índice real antes de ativar. Testar validação, cancelamento e persistência separadamente; a View deve apontar para os IDs dos submodelos corretos.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.