MVC - Trabalhando com variáveis de memória


Com o novo conceito de desenvolvimento da Totvs, o MVC, algumas coisas mudaram e uma delas é pegar o conteúdo de uma variável de memória de um campo no cabeçalho e utilizá-lo numa célula de um grid, como modelos 2 e 3 por exemplo. Exemplificando: Estou na tabela de preço (OMSA010), rotina que foi convertida para MVC, e quero alimentar um campo no grid com o conteúdo do campo do cabeçalho. Irei utilizar como exemplo o campo DA0_DATDE  (Data Inicial) para alimentar o campo DA1_DATVIG (Vigencia). Posso trabalhar de duas formas

  1. Utilizando uma função padrão Tovts - FWFldGet (http://tdn.totvs.com/display/framework/FWFldGet)
  2. Criando minha própria função
Usando função padrão 1º Passo: Abra o seu configurador ou apsdu e vá no SX3 do campo DA1_DATVIG 2º Passo: Edite o campo DA1_DATVIG e no configurador vá em "inicializador padrão" ao invés de utilizar M->DA0_DATDE escreva agora FWFldGet("DA0_DATDE"), ou seja, quando você inicializar uma nova linha o protheus irá pegar o valor digitado no campo da Data inicial e irá replicar no campo Vigência da linha do item. variavelmemoriamvc Criando sua própria função 1º Passo: Entre no TDS e crie uma função:
User Function SUAFUNCAO(cMaster,cCampo)
    Local oModel := FwModelActive()
    Local _Valor := oModel:GetValue( cMaster, cCampo )
    /*você pode incluir outras validações*/
Return(_Valor)
Onde: cMaster é nome do objeto cCampo é o nome do campo que deseja capturar 2º Passo: Edite o campo DA1_DATVIG e no configurador vá em "inicializador padrão" e escreva U_SUAFUNCAO('DA0MASTER', 'DA0_DATDE') , ou seja, quando você inicializar uma nova linha o Protheus irá pegar o valor digitado no campo da Data inicial e irá replicar no campo Vigência da linha do item. Usando uma função criada, você pode fazer outras validações que não cabem na linha do inicializador padrão. variavelmemoriamvc2   Se tiverem exemplos melhores, não exitem em comentar