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
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. Se tiverem exemplos melhores, não exitem em comentar