×
Linguagem de Programação ADVPL
Perguntas Tela Cadastro MVC
- adrianap
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
10 anos 4 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
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.
- adrianap
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
- andrelanzieri
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
10 anos 4 meses atrás - 10 anos 4 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
#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: 10 anos 4 meses atrás por andrelanzieri.
Por favor Acessar ou Registrar para participar da conversa.
- adrianap
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
10 anos 4 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??
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.
- andrelanzieri
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
10 anos 4 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()
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.132 segundos