Modal com FWViewExec

Senhores, estou tentado criar uma modal com FWViewExec baseado no exemplo do TDN (https://tdn.totvs.com/pages/viewpage.action?pageId=272697628), mas estou com o error log abaixo, o que pode ser?

Cannot find method FWFORMFIELDSMODEL:CANINSERTLINE on FWFORMVIEW:CANINSERTLINE(FWFORMVIEW.PRW)

O erro é na linha:

oExecView:openView(.F.)

segue código completo

Static Function ESTA39NF(oViewPai)
    Local oStruZA3    := FWFormStruct(2,'ZA3')
    Local oView         := Nil
    Local oExecView := FWViewExec():New()
    Local oModel        := oViewPai:GetModel()
    Local lRet             := .T.


    oStruZA3:RemoveField( 'ZA3_NUM' )
    oStruZA3:RemoveField( 'ZA3_VERSAO' )
    oStruZA3:RemoveField( 'ZA3_PEDIDO' )
    oStruZA3:RemoveField( 'ZA3_DATA' )
    oStruZA3:RemoveField( 'ZA3_HORA' )
    oStruZA3:RemoveField( 'ZA3_DTATUA' )
    oStruZA3:RemoveField( 'ZA3_HRATUA' )
    oStruZA3:RemoveField( 'ZA3_SITUA' )
    oStruZA3:RemoveField( 'ZA3_OBS' )


    oView := FWFormView():New(oViewPai)
    oView:SetModel(oModel)
    oView:SetOperation(oViewPai:GetOperation())

    oView:AddGrid('FORM_ZA3' , oStruZA3,'ZA3MASTER')
    oView:CreateHorizontalBox( 'BOXFORM_ZA3', 100)
    oView:SetOwnerView('FORM_ZA3','BOXFORM_ZA3')

    //oView:AddIncrementField('FORM_ZA3' , 'ZL4_ITRAT' )
    oView:EnableTitleView('FORM_ZA3' , 'Nota Fiscal' )

//Proteção para execução com View ativa.
    If oModel != Nil .And. oModel:isActive()
        oExecView:setModel(oModel)
        oExecView:setView(oView)
        oExecView:setTitle('Nota Fiscal')
        oExecView:setOperation(oViewPai:GetOperation())
        oExecView:setReduction(50)
        oExecView:SetCloseOnOk({|| .T.})
        oExecView:openView(.F.)

        If oExecView:getButtonPress() == VIEW_BUTTON_OK
            lRet := .T.
        Endif
    EndIf
*/

Return lRet
Static Function ViewDef()
    // INSTANCIA A VIEW
    Local oView := FwFormView():New()

    // INSTANCIA AS SUBVIEWS
    Local oStruZA3 := FwFormStruct(2, "ZA3",,)
    Local oStruZA4 := FwFormStruct(2, "ZA4",,)

// RECEBE O MODELO DE DADOS
    Local oModel := FwLoadModel("GAESTA39")


// INDICA O MODELO DA VIEW
    oView:SetModel(oModel)

// CRIA ESTRUTURA VISUAL DE CAMPOS
    oView:AddField("VIEW_ZA3", oStruZA3, "ZA3MASTER")
    oView:AddGrid("VIEW_ZA4", oStruZA4, "ZA4DETAIL")



// CRIA BOXES HORIZONTAIS
    oView:CreateHorizontalBox("SUPERIOR", 40)
    oView:CreateHorizontalBox("INFERIOR", 60)

// RELACIONA OS BOXES COM AS ESTRUTURAS VISUAIS
    oView:SetOwnerView("VIEW_ZA3", "SUPERIOR")
    oView:SetOwnerView("VIEW_ZA4", "INFERIOR")


// DEFINE OS TÍTULOS DAS SUBVIEWS
    oView:EnableTitleView("VIEW_ZA4","Itens")

    //Adiciona opção no Outras Ações, dentro do Registro
    oView:AddUserButton("Nota Fiscal","FILTRO",{|oView| ESTA39NF(oView)})//"Condição Filtro"

Return (oView)
compartilhar
  • O modelo pai, no caso o oViewPai, é seu também? Poderia colocar o código dele também, por favor.

    Daniel Mendes   15 de Jan de 2021
  • Olá Daniel, adicionei no post, e estou tentando fazer o modal de um campo do cabeçalho e não do grid, não sei se é problema

    Leandro   15 de Jan de 2021
  • Daniel, te respondi e vi o erro na hora rs,,,,,, oView:AddGrid('FORM_ZA3' , oStruZA3,'ZA3MASTER'), ao invés de usar AddField, obrigado pelo apoio, funcionou aqui

    Leandro   15 de Jan de 2021
  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 modal ou faça a sua própria pergunta.