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

 


Equipe Blog Advpl

Amantes da tecnologia

0 comentário

Deixe uma resposta