Inicializar campo MVC

    oStDetail:SetProperty('B1_DESC' , MODEL_FIELD_INIT ,{|| CADZE2():fPegadescri('B1_DESC', oModel:GetOperation())})
    oStDetail:AddTrigger('ZE2_PRODUT','B1_DESC',{||.T.},{|| CADZE2():fPegadescri('B1_DESC', oModel:GetOperation())})

a função:

METHOD fPegadescri(cCampo,cOp) CLASS CADZE2
Local oModel := FWModelActive()
Local cRet := ''
Local cCod := ''

    if cCampo == "B1_DESC"
        if valtype(oModel) = 'O' 
            cCod := oModel:GetValue( 'GRIDDETAIL', 'ZE2_PRODUT' ) 
            cRet :=  POSICIONE("SB1",1,xFilial('SB1') + cCod,"B1_DESC")
        else
            cCod := ZE2->ZE2_PRODUT
            cRet :=  POSICIONE("SB1",1,xFilial('SB1') + cCod,"B1_DESC")
         endif      
    endif


Return cRet

Quando é executado pela trgger ok, mas se for uma inclusão no Browse, ele pegar o valor do cadigo da linha de cima.

Capturar.PNG

compartilhar
  • Silfar, uma observação quanto ao seu processo, para os blocos de inicializador, when e validação precisa usar a função FwBuildFeature para que o sistema padrão monte o bloco com todos os tratamentos MVC corretamente. No seu caso ficaria assim: oStDetail:SetProperty('B1_DESC',MODEL_FIELD_INIT,FwBuildFeature(STRUCT_FEATURE_INIPAD,"CADZE2():fPegadescri('B1_DESC',oModel:GetOperation())")) Tentei testar usando o inicializador padrão da forma que você colocou e só deu erros, infelizmente não vi como corrigir para lhe ajudar, pelo menos fica a dica do FwBuildFeature.

    Cirilo Rocha   13 de Feb de 2023
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mvc ou faça a sua própria pergunta.