PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Duvida com tela em MVC
Versão:
12.1.33
Plataforma:
Microsoft
Complemento:
DB:
Oracle
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 15/03/2023, 16:14 h
Local: SP  Registro: 10/07/2018  Postagens: 52
Boa tarde a todos!

Tenho uma rotina personalizada desenvolvida em MVC e inclui uma validação para "arquivar" os itens da tela.

Para visualizar os itens "arquivados", desenvolvi outra rotina que esta funcionando, porém nessa rotina eu precisaria desabilitar os botões de incluir, alterar e excluir.

Alguém pode me dar uma ajuda?
--------------------------------------------------------------------------------
Fonte da rotina principal

#Include "TOTVS.ch"
#Include "FWMVCDEF.ch"

//ORCCOM
// FUNÇÃO PRINCIPAL
User Function Z42ORC()
    Local oBrowse := FwLoadBrw("Z42ORC")

    oBrowse:Activate()
Return (NIL)

// BROWSEDEF() SERÁ ÚTIL PARA FUTURAS HERANÇAS: FWLOADBRW()
Static Function BrowseDef()
    Local oBrowse := FwMBrowse():New()
    Local cFilter := " Z42_STATUS == ‘1‘ "

    oBrowse:SetAlias("Z42")
    oBrowse:SetDescription("Orçamento Comercial")

    // DEFINE DE ONDE SERÁ RETIRADO O MENUDEF
    oBrowse:SetMenuDef("Z42ORC")
    oBrowse:SetFilterDefault(cFilter)

    // DEFINE O BOTÃO DOS RELATORIOS
    // oBrowse:AddUserButton("Relatorio BA","Itens",{|oBrowse|U_RELORC()})
Return (oBrowse)

// OPERAÇÕES DA ROTINA
Static Function MenuDef()
    // FUNÇÃO PARA CRIAR MENUDEF
    Local aRotina := FwMVCMenu("Z42ORC")

    Add Option aRotina Title ‘Relatorio BA‘       Action ‘U_RELORC()‘ Operation 5 Access 0
    Add Option aRotina Title ‘Relatorio TA‘       Action ‘U_RELORC2()‘ Operation 6 Access 0
    Add Option aRotina Title ‘Relatorio TP e BC‘ Action ‘U_RELORC3()‘ Operation 7 Access 0
    Add Option aRotina Title ‘Arquivar‘           Action ‘U_Z42Arqv()‘ Operation 8 Access 0
    Add Option aRotina Title ‘Mostrar arquivados‘ Action ‘U_Z42ARQ()‘ Operation 9 Access 0

Return (aRotina)

// REGRAS DE NEGÓCIO
Static Function ModelDef()
    // INSTANCIA O MODELO
    Local oModel := MPFormModel():New("COMP021M")

    // INSTANCIA OS SUBMODELOS
    Local oStruZ42 := FwFormStruct(1, "Z42")
    Local oStruZ43 := FwFormStruct(1, "Z43")

    // DEFINE SE OS SUBMODELOS SERÃO FIELD OU GRID
    oModel:AddFields("Z42MASTER", NIL, oStruZ42)
    oModel:AddGrid("Z43DETAIL", "Z42MASTER", oStruZ43)

    // DEFINE A RELAÇÃO ENTRE OS SUBMODELOS
    oModel:SetRelation("Z43DETAIL", {{"Z43_FILIAL", "FwXFilial(‘Z43‘)"}, {"Z43_NUMERO", "Z42_NUMERO"}}, Z43->(IndexKey( 2 )))

    // DEFINE A PRIMARYEY
    oModel:SetPrimaryKey({"Z42_NUMERO"},{"Z43_ITEM"})

    // DESCRIÇÃO DO MODELO
    oModel:SetDescription("Orçamento Comercial" )

    // DESCRIÇÃO DOS SUBMODELOS
    oModel:GetModel("Z42MASTER"):SetDescription("Dados do Orçamento")
    oModel:GetModel("Z43DETAIL"):SetDescription("Dados do produtos")
Return (oModel)

// INTERFACE GRÁFICA
Static Function ViewDef()
    // INSTANCIA A VIEW
    Local oView := FwFormView():New()

    // INSTANCIA AS SUBVIEWS
    Local oStruZ42 := FwFormStruct(2, "Z42")
    Local oStruZ43 := FwFormStruct(2, "Z43")

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

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

    // CRIA ESTRUTURA VISUAL DE CAMPOS
    oView:AddField("VIEW_Z42", oStruZ42, "Z42MASTER")
    oView:AddGrid("VIEW_Z43", oStruZ43, "Z43DETAIL")

    // CRIA BOXES HORIZONTAIS
    oView:CreateHorizontalBox("SUPERIOR", 30)
    oView:CreateHorizontalBox("INFERIOR", 70)

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

    // DEFINE AUTO-INCREMENTO AO CAMPO
    oView:AddIncrementField("VIEW_Z43", "Z43_ITEM")

    // DEFINE OS TÍTULOS DAS SUBVIEWS
    oView:EnableTitleView("VIEW_Z43","Dados")

    // // DEFINE O BOTÃO DOS RELATORIOS
    // oView:addUserButton("Relatorio BA","Itens",{|oView|U_RELORC()})
Return (oView)

//------------------------------------------
//Validação que "arquivos" os itens da tela

User Function Z42Arqv()

     If Z42->Z42_STATUS == "1"
          If MsgYesNo("Deseja arquivar o orçamento comercial?","Arquivar")
               RecLock("Z42", .F.)
               Z42->Z42_STATUS     := "2"
               MsUnLock()
          EndIf
     ElseIf Z36->Z36_STATUS == "2"
          MsgInfo("Orçamento comercial ja arquivado.")
     EndIf

return .T.

-----------------------------------------------------------------------------------------------

Fonte que abre a tela dos itens arquivados e que eu precisaria remover os botões.

#Include "TOTVS.ch"
#Include "FWMVCDEF.ch"

//ORCCOM
// FUNÇÃO PRINCIPAL
User Function Z42ARQ()
    Local oBrowse := FwLoadBrw("Z42ARQ")

    oBrowse:Activate()
Return (NIL)

// BROWSEDEF() SERÁ ÚTIL PARA FUTURAS HERANÇAS: FWLOADBRW()
Static Function BrowseDef()
    Local oBrowse := FwMBrowse():New()
    Local cFilter := " Z42_STATUS == ‘2‘ "

    oBrowse:SetAlias("Z42")
    oBrowse:SetDescription("Orçamento Comercial")

    // DEFINE DE ONDE SERÁ RETIRADO O MENUDEF
    oBrowse:SetMenuDef("Z42ARQ")
    oBrowse:SetFilterDefault(cFilter)

    // DEFINE O BOTÃO DOS RELATORIOS
    // oBrowse:AddUserButton("Relatorio BA","Itens",{|oBrowse|U_RELORC()})
Return (oBrowse)

// OPERAÇÕES DA ROTINA
Static Function MenuDef()
    // FUNÇÃO PARA CRIAR MENUDEF
    Local aRotina := FwMVCMenu("Z42ARQ")

    Add Option aRotina Title ‘Relatorio BA‘       Action ‘U_RELORC()‘ Operation 5 Access 0
    Add Option aRotina Title ‘Relatorio TA‘       Action ‘U_RELORC2()‘ Operation 6 Access 0
    Add Option aRotina Title ‘Relatorio TP e BC‘ Action ‘U_RELORC3()‘ Operation 7 Access 0

Return (aRotina)

// REGRAS DE NEGÓCIO
Static Function ModelDef()
    // INSTANCIA O MODELO
    Local oModel := MPFormModel():New("COMP021M")

    // INSTANCIA OS SUBMODELOS
    Local oStruZ42 := FwFormStruct(1, "Z42")
    Local oStruZ43 := FwFormStruct(1, "Z43")

    // DEFINE SE OS SUBMODELOS SERÃO FIELD OU GRID
    oModel:AddFields("Z42MASTER", NIL, oStruZ42)
    oModel:AddGrid("Z43DETAIL", "Z42MASTER", oStruZ43)

    // DEFINE A RELAÇÃO ENTRE OS SUBMODELOS
    oModel:SetRelation("Z43DETAIL", {{"Z43_FILIAL", "FwXFilial(‘Z43‘)"}, {"Z43_NUMERO", "Z42_NUMERO"}}, Z43->(IndexKey( 2 )))

    // DEFINE A PRIMARYEY
    oModel:SetPrimaryKey({"Z42_NUMERO"},{"Z43_ITEM"})

    // DESCRIÇÃO DO MODELO
    oModel:SetDescription("Orçamento Comercial" )

    // DESCRIÇÃO DOS SUBMODELOS
    oModel:GetModel("Z42MASTER"):SetDescription("Dados do Orçamento")
    oModel:GetModel("Z43DETAIL"):SetDescription("Dados do produtos")
Return (oModel)

// INTERFACE GRÁFICA
Static Function ViewDef()
    // INSTANCIA A VIEW
    Local oView := FwFormView():New()

    // INSTANCIA AS SUBVIEWS
    Local oStruZ42 := FwFormStruct(2, "Z42")
    Local oStruZ43 := FwFormStruct(2, "Z43")

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

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

    // CRIA ESTRUTURA VISUAL DE CAMPOS
    oView:AddField("VIEW_Z42", oStruZ42, "Z42MASTER")
    oView:AddGrid("VIEW_Z43", oStruZ43, "Z43DETAIL")

    // CRIA BOXES HORIZONTAIS
    oView:CreateHorizontalBox("SUPERIOR", 30)
    oView:CreateHorizontalBox("INFERIOR", 70)

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

    // DEFINE AUTO-INCREMENTO AO CAMPO
    oView:AddIncrementField("VIEW_Z43", "Z43_ITEM")

    // DEFINE OS TÍTULOS DAS SUBVIEWS
    oView:EnableTitleView("VIEW_Z43","Dados")

    // // DEFINE O BOTÃO DOS RELATORIOS
    // oView:addUserButton("Relatorio BA","Itens",{|oView|U_RELORC()})
Return (oView)

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 22/03/2023, 14:17 h
Local: SP  Registro: 10/07/2018  Postagens: 52
Ninguém consegue me ajudar?

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário CIRO CIRO em 22/03/2023, 16:16 h
Local: SP  Registro: 27/03/2007  Postagens: 11
Boa tarde,

Tente fazer o seguinte, ao invés de usar a linha:

Local aRotina := FwMVCMenu("Z42ORC")

na Static Function MenuDef, utilize a linha abaixo:

Local aRotina := {}

Até onde sei, os botões de incluir, alterar e excluir são feitos na função MenuDef(), estou achando que essa função FWMVCMenu está criando eles.

At.te,

Ciro.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LEOSSANTOS LEOSSANTOS em 28/03/2023, 11:23 h
Local: SP  Registro: 28/08/2020  Postagens: 21
Se a rotina "U_Z42ARQ()" tambem for em MVC, voce precisa fazer o seguinte:

User Function Z42ARQ()
    Local cFunBkp := FunName()
    SetFunName("Z42ARQ")

    //Seu codigo...

    SetFunName(cFunBkp)

Return

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GUDEFENDI GUDEFENDI em 31/03/2023, 11:04 h
Local: SP  Registro: 10/07/2018  Postagens: 52
Bom dia,

Fiz o procedimento abaixo e funcionou como precisava.

Obrigado.

--------------------------------
Boa tarde,

Tente fazer o seguinte, ao invés de usar a linha:

Local aRotina := FwMVCMenu("Z42ORC")

na Static Function MenuDef, utilize a linha abaixo:

Local aRotina := {}

Até onde sei, os botões de incluir, alterar e excluir são feitos na função MenuDef(), estou achando que essa função FWMVCMenu está criando eles.

At.te,

Ciro.

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal