Boa tarde, galera!
Tranquilos?
Tentei criar um campo virtual na rotina de Solicitação ao Armazém (MATA105)para mostrar a descrição do Centro de Custo.
O problema é que no browser a função posicione funcionou, mas na hora de realizar o cadastro de uma nova solicitação, a função da erro e não puxa a descrição do campo que ainda está em memoria.
A função que utilizei é:
Iniciar:
POSICIONE(“CTT”,1,XFILIAL(“CTT”)+M->CP_CC,“CTT_DESC01”)
Browser:
POSICIONE(“CTT”,1,XFILIAL(“CTT”)+SCP->CP_CC,“CTT_DESC01”)
Alguém consegue me dar um apoio?
Sabem me dizer se a busca do campo na memoria do PC mudou?
Boa tarde,
Se entendi corretamente, você deverá usar um IF ternário: IIF(INCLUI, ‘’, POSICIONE(“CTT”,1,XFILIAL(“CTT”)+M->CP_CC,“CTT_DESC01”) )
Para que ele possa executar com o contexto correto, nesse caso se for uma inclusão trará vazio, senão ele deverá alimentar conforme esperado.
Abraço!
1 curtida
Deu foi erro, kkkk
Segue:
THREAD ERROR ([1864432], USUARIO, PC-05-TI) 09/01/2026 13:30:11
invalid macro source (SSLex0105e: Invalid token, Line 1, Offset 47, ‘):({|a,b,c| FWInitCpo(a,b,c),xRet:=(IIF(INCLUI, ‘’, POSICIONE(“CTT”,1,XFILIAL(“CTT”)+M->CP_CC,“CTT_DESC01”) )),FWCloseCpo(a,b,c,.T.),FwSetVarMem(a,b,xRet),xRet }) on FWBUILDFEATURE(PROTHEUSFUNCTIONMVC.PRX) 06/10/2025 16:18:51 line : 5564
Bom dia!
Melhor criar um gatilho para preencher a descrição e na inicialização padrão desta forma: IF(!INCLUI;SUA REGAR,“”).
Bom dia,
Meu amigo, esse campo está num FORM ou num GRID ?
Se for GRID voce precisará implementar a linha com o FWFLDGET no lugar do acesso com variável de memória ‘M->’.
Por exemplo:
POSICIONE(‘CB3’,1,XFILIAL(‘CB3’)+FwFldGet(‘ZVT_CONTEN’),‘CB3_STIPO’)