× Linguagem de Programação ADVPL

Perguntas Tela Cadastro MVC

Mais
9 anos 10 meses atrás #23365 por adrianap
Tela Cadastro MVC foi criado por adrianap
Boa noite!

Estou tentando utilizar o MVC para criar uma Tela de Cadastro do tipo modelo 2 quando for a mesma tabela, ex: SC7.

Mas está apresentando o erro:

TOTVS Build 7.00.120420A-20120726
THREAD ERROR ([2768], admin_ti, EST_TI007) 23/06/2014 11:01:15
variable is not an object on MODELDEF(CADZZ1.PRW) 23/06/2014 00:04:51 line : 41

Abaixo segue o meu fonte... alguém poderia me ajudar?? Eu copiei do exemplo que tem o manual sobre o MVC.

Desde já agradeço a todos!!

//
#INCLUDE ‘PROTHEUS.CH‘
#INCLUDE ‘FWMVCDEF.CH‘

//
User Function CADZZ1()
Local oBrowse

oBrowse := FWMBrowse():New()
oBrowse:SetAlias(‘ZZ1‘)
oBrowse:SetFilterDefault( "ZZ1_SEQ==‘001‘" )
oBrowse:SetDescription( ‘Cadastro de Leadtime‘ )
oBrowse:AddLegend( "ZZ1_TP_IMP==‘1‘", "WHITE", "Aero" )
oBrowse:AddLegend( "ZZ1_TP_IMP==‘2‘", "BLUE" , "Maritimo" )
oBrowse:Activate()

Return NIL

//
Static Function MenuDef()
Local aRotina := {}

ADD OPTION aRotina TITLE ‘Visualizar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 2 ACCESS 0
ADD OPTION aRotina TITLE ‘Incluir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 3 ACCESS 0
ADD OPTION aRotina TITLE ‘Alterar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 4 ACCESS 0
ADD OPTION aRotina TITLE ‘Excluir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 5 ACCESS 0
ADD OPTION aRotina TITLE ‘Imprimir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 8 ACCESS 0
//ADD OPTION aRotina TITLE ‘Copiar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 9 ACCESS 0

Return aRotina

//
Static Function ModelDef()

// Cria a estrutura a ser acrescentada no Modelo de Dados
Local oStruZZ1 := FWFormStruct( 1, ‘ZZ1‘, /*bAvalCampo*/,/*lViewUsado*/ )

// Inicia o Model com um Model ja existente
Local oModel := FWLoadModel( ‘VIEWZZ1_MVC‘ )

// Adiciona a nova FORMFIELD
oModel:AddFields( ‘ZZ1MASTER‘, ‘ZZ1MASTER‘, oStruZZ1 )

// Faz relacionamento entre os compomentes do model
oModel:SetRelation( ‘ZZ1MASTER‘, { { ‘ZZ1_FILIAL‘, ‘xFilial( "ZZ1" )‘ }, { ‘ZZ1_CODIGO‘, ‘ZZ1_CODIGO‘ } }, ZZ1->( IndexKey( 1 ) ) )

// Adiciona a descricao do novo componente
oModel:GetModel( ‘ZZ1MASTER‘ ):SetDescription( ‘STATUS‘ )

Return oModel

//
Static Function ViewDef()

// Cria um objeto de Modelo de Dados baseado no ModelDef do fonte informado
Local oModel := FWLoadModel( ‘CADZZ1‘ )

// Cria a estrutura a ser acrescentada na View
Local oStruZZ1 := FWFormStruct( 2, ‘ZZ1‘ )

// Inicia a View com uma View ja existente
Local oView := FWLoadView( ‘VIEWZZ1_MVC‘ )

// Altera o Modelo de dados quer será utilizado
oView:SetModel( oModel )

// Adiciona no nosso View um controle do tipo FormFields(antiga enchoice)
oView:AddField( ‘VIEW_ZZ1‘, oStruZZ1, ‘ZZ1MASTER‘ )

// É preciso criar sempre um box vertical dentro de um horizontal e vice-versa
// como na VIEWZZ1_MVC o box é horizontal, cria-se um vertical primeiro
// Box existente na interface original
oView:CreateVerticallBox( ‘TELANOVA‘ , 100, ‘TELA‘ )

// Novos Boxes
oView:CreateHorizontalBox( ‘SUPERIOR‘ , 20, ‘TELANOVA‘ )
oView:CreateHorizontalBox( ‘INFERIOR‘ , 80, ‘TELANOVA‘ )

// Relaciona o identificador (ID) da View com o "box" para exibicao
oView:SetOwnerView( ‘VIEW_ZZ1‘, ‘SUPERIOR‘ )
oView:SetOwnerView( ‘VIEW_ZZ1‘, ‘INFERIOR‘ )

Return oView

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #23399 por adrianap
Respondido por adrianap no tópico Tela Cadastro MVC
:unsure: Alguém??

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás - 9 anos 10 meses atrás #23400 por andrelanzieri
Respondido por andrelanzieri no tópico Tela Cadastro MVC
Testa ai,.....


#INCLUDE ‘PROTHEUS.CH‘
#INCLUDE ‘FWMVCDEF.CH‘

//
User Function CADZZ1()
Local oBrowse

oBrowse := FWMBrowse():New()
oBrowse:SetAlias(‘ZZ1‘)
oBrowse:SetFilterDefault( "ZZ1_SEQ==‘001‘" )
oBrowse:SetDescription( ‘Cadastro de Leadtime‘ )
oBrowse:AddLegend( "ZZ1_TP_IMP==‘1‘", "WHITE", "Aero" )
oBrowse:AddLegend( "ZZ1_TP_IMP==‘2‘", "BLUE" , "Maritimo" )
oBrowse:Activate()

Return NIL

//
Static Function MenuDef()
Local aRotina := {}

ADD OPTION aRotina TITLE ‘Visualizar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 2 ACCESS 0
ADD OPTION aRotina TITLE ‘Incluir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 3 ACCESS 0
ADD OPTION aRotina TITLE ‘Alterar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 4 ACCESS 0
ADD OPTION aRotina TITLE ‘Excluir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 5 ACCESS 0
ADD OPTION aRotina TITLE ‘Imprimir‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 8 ACCESS 0
//ADD OPTION aRotina TITLE ‘Copiar‘ ACTION ‘VIEWDEF.CADZZ1‘ OPERATION 9 ACCESS 0

Return aRotina

//
Static Function ModelDef()

// Cria a estrutura a ser acrescentada no Modelo de Dados
Local oStruZZ1 := FWFormStruct( 1, ‘ZZ1‘, /*bAvalCampo*/,/*lViewUsado*/ )

// Inicia o Model com um Model ja existente
Local oModel := FWLoadModel( ‘VIEWZZ1_MVC‘ )

// Adiciona a nova FORMFIELD
oModel:AddFields( ‘ZZ1MASTER‘,, oStruZZ1 )

oModel:AddGrid( ‘ZZ1DETAIL‘, ‘ZZ1MASTER‘, oStruZZ1 )

// Faz relacionamento entre os compomentes do model
oModel:SetRelation( ‘ZZ1DETAIL‘, { { ‘ZZ1_FILIAL‘, ‘xFilial( "ZZ1" )‘ }, { ‘ZZ1_CODIGO‘, ‘ZZ1_CODIGO‘ } }, ZZ1->( IndexKey( 1 ) ) )

// Adiciona a descricao do novo componente
oModel:GetModel( ‘ZZ1MASTER‘ ):SetDescription( ‘STATUS‘ )
oModel:GetModel( ‘ZZ1DETAIL‘ ):SetDescription( ‘ITENS‘ )

Return oModel

//
Static Function ViewDef()

// Cria um objeto de Modelo de Dados baseado no ModelDef do fonte informado
Local oModel := FWLoadModel( ‘CADZZ1‘ )

// Cria a estrutura a ser acrescentada na View
Local oStruZZ1 := FWFormStruct( 2, ‘ZZ1‘ )

// Inicia a View com uma View ja existente
Local oView := FWLoadView( ‘VIEWZZ1_MVC‘ )

// Altera o Modelo de dados quer será utilizado
oView:SetModel( oModel )

// Adiciona no nosso View um controle do tipo FormFields(antiga enchoice)
oView:AddField( ‘VIEW_ZZ1‘, oStruZZ1, ‘ZZ1MASTER‘ )
oView:AddField( ‘VIEW_ZZ1D‘, oStruZZ1, ‘ZZ1DETAIL‘ )

// É preciso criar sempre um box vertical dentro de um horizontal e vice-versa
// como na VIEWZZ1_MVC o box é horizontal, cria-se um vertical primeiro
// Box existente na interface original
oView:CreateVerticallBox( ‘TELANOVA‘ , 100, ‘TELA‘ )

// Novos Boxes
oView:CreateHorizontalBox( ‘SUPERIOR‘ , 20, ‘TELANOVA‘ )
oView:CreateHorizontalBox( ‘INFERIOR‘ , 80, ‘TELANOVA‘ )

// Relaciona o identificador (ID) da View com o "box" para exibicao
oView:SetOwnerView( ‘VIEW_ZZ1‘, ‘SUPERIOR‘ )
oView:SetOwnerView( ‘VIEW_ZZ1D‘, ‘INFERIOR‘ )

Return oView
Ultima edição: 9 anos 10 meses atrás por andrelanzieri.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #23402 por adrianap
Respondido por adrianap no tópico Tela Cadastro MVC
Oi André!

Não deu certo... ainda persiste o mesmo erro.
A tela da rotina abre, mas dai qualquer botão que eu clique, Incluir, Alterar, Visualizar... apresenta esse erro...

THREAD ERROR (admin_ti, EST_TI007) 25/06/2014 19:04:26
variable is not an object on MODELDEF(CADZZ1.PRW) 25/06/2014 19:02:49 line : 41

:-(

A linha 41 do erro é essa aqui, agora atualizada segundo o seu exemplo...

oModel:AddFields( 'ZZ1MASTER', , oStruZZ1 )

Alguma outra ideia?? :-(

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #23408 por andrelanzieri
Respondido por andrelanzieri no tópico Tela Cadastro MVC
Bom dia Adriana,
Se não me engano o FWLoadView apenas é usado, quando voce deseja abrir uma View de um outro fonte MVC.
Nunca utilizei ele.

Tenta trocar a Linha no ViewDef

Local oView := FWLoadView( ‘VIEWZZ1_MVC‘ )

POR

oView := FWFormView():New()

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.097 segundos
Joomla templates by a4joomla