Você está na página 1de 2

Processo ModelDef Basico - 1 Entidade

1 - Criar Variaveis
aModel Cria o objeto do Modelo de Dados
oStruZZ1 Cria a estrutura a ser usada no Modelo de Dados
2 - Instanciar a variabeis Classe
aModel := MPFormModel():New(cIdentificador)
oStruZZ1 := FWFormStruct(1,Alias)
3 - Adiciona ao modelo um componente de formulário
oModel:AddFields( 'ZA0MASTER', /*cOwner*/, oStruZZ1)
4 - Adiciona a descrição do Modelo de Dados
oModel:SetDescription( 'Modelo de dados de Autor/Interprete' )
5 - Adiciona a descrição do Componente do Modelo de Dados
oModel:GetModel( 'ZZ1MASTER' ):SetDescription( 'Dados de Autor/Interprete' )
6 - Definição da chave primária (SetPrimaryKey
oModel:SetPrimaryKey({'CAMPOS'})

Processo ModelDef Pai e Filho - 2 Entidades


1 - Criar Variaveis
aModel Cria o objeto do Modelo de Dados
oStruZZ1 Cria a estrutura a ser usada no Modelo de Dados - Pai
oStruZZ2 Cria a estrutura a ser usada no Modelo de Dados - Filho
2 - Instanciar a variabeis Classe
aModel := MPFormModel():New(cIdentificador)
oStruZZ1 := FWFormStruct(1,Alias)
oStruZZ2 := FWFormStruct(1,Alias)
3 - Adiciona ao modelo um componente de formulário
oModel:AddFields( 'ZZ1MASTER', /*cOwner*/, oStruZZ1)
4 - Adiciona ao modelo uma componente de grid
oModel:AddGrid( 'ZZ2DETAIL', 'ZZ1MASTER', oStruZZ2)
5 - Faz relacionamento entre os componentes do model
oModel:SetRelation('ZZ2DETAIL', { {'ZZ2_FILIAL' , 'xFilial("ZZ2")'} ,
{'ZZ2_CODCOR' , 'ZZ1_CODIGO'}},ZZ2->(IndexKey(1)) )
6 - Adiciona a descrição do Modelo de Dados
oModel:SetDescription('Modelo de Correntista' )
7 - Adiciona a descrição do Componente do Modelo de Dados
oModel:GetModel( 'ZZ1MASTER' ):SetDescription( 'Dados do Correntista' )
oModel:GetModel( 'ZZ2DETAIL' ):SetDescription( 'Dados das Movimentações' )
8 - Retorna o Modelo de dados
Return oModel

1 ) Classes ModelDef
MPFormModel classe utilizada para a construção de um objeto de modelo de dados (Model).
Sintax : MPFORMMODEL():New(< cID >, < bPre >, < bPost >, < bCommit >, < bCancel >)-> NIL
cID Identificador do modelo
Bloco de código que será executado pré-validação do modelo, ao realizar a alteração no campos,
bPre
Retorno : Logico .T. libera alteração e .F. Nao libera alteração. {|oModel| Funcao(oModel)}

Bloco de código de pós-validação do modelo, equivale ao "TUDOOK".O bloco recebe como


parâmetro o objeto de Model e deve retornar um valor lógico.O bloco será invocado antes da
persistência dos dados para validar o model.Se o retorno for verdadeiro e não houver nenhum
bPost
submodelo inválido, será feita a gravação dos dados.Se retornar falso, não será possível realizar a
gravação e um erro será atribuído ao model, sendo necessário indicar a natureza do erro através da
função Help.
Bloco de código de persistência dos dados. Ele é invocado pelo método CommitData. O bloco
bCommit
recebe como parâmetro o objeto do Model e deve realizar a gravação dos dados.

Bloco de código de cancelamento da edição. Ele é invocado pelo método CancelData. O bloco
bCancel recebe como parâmetro o objeto do Model.Quando esse bloco é passado, o tratamento de
numeração automática não é mais realizado, a menos que o bloco chame a função FWFormCancel.

1.1 ) Métodos AddFields


Adiciona ao modelo um submodelo de edição por campo (FormField). Um submodelo do tipo Field permite manipular
somente um registro por vez. Ele tem um relacionamento do tipo 1xN ou 1x1 com outros SubModelos ou então não tem
nenhum relacionamento.
Sintax : oModel:AddFields(<cId >, <cOwner >, <oModelStruct >, <bPre >, <bPost >, <bLoad >)-> NIL
cID Identificador do modelo. O Id será solicitado em diversas operações com este submodelo.
Identificador superior do submodelo, o Owner é o submodelo que se relaciona diretamente com o
cOwner
formfield.
oModelStruct Objeto com a estrutura de dados do tipo FWFormModelStruct.
Bloco de Código de pré-validação do submodelo. Esse bloco é invocado quando há uma tentativa de
atribuição de valores. O bloco recebe por parametro o objeto do FormField(FWFormFieldsModel), a
identificação da ação e a identificação do campo que está sofrendo a atribuição. As identificações
que podem ser passadas são as seguintes: - "CANSETVALUE" : valida se o submodelo pode ou não
bPre receber atribuição de valor. - "SETVALUE" : valida se o campo do submodelo pode receber aquele
valor. Nesse caso o bloco recebe um quarto parametro que contem o valor que está sendo
atribuido ao campo. Para todos os casos o bloco deve retornar um valor lógico, indicando se a ação
pode ou não ser executada. Se o retorno for falso um erro será atribuido no Model, sendo
necessário indicar a natureza do erro através da função Help.

Você também pode gostar