Errorlog com MVC utilizando as tabelas SC5 e SC6

Estou tentando criar um MVC das tabelas SC6 e SC5.

Consigo visualizar os registros no browse, mas quando chamo as funções para alterar ou visualizar algum pedido, recebo um errorlog com a seguinte mensagem: "invalid field name in Alias SC6->C6_CODINF"

Já usei o mesmo código, trocando apenas as tabelas (SF2 e SD2 por exemplo) e funcionou.

Tentei rodar o código em uma outra base e também recebi o mesmo errorlog.

Segue o código que estou utilizando.

#include 'protheus.ch'
#include 'FWMVCDEF.CH'

user function ZMVCSC5()
    //Declarando o browse
    Local oBrowse

    //Setando o browe e apontando para SC5
    oBrowse := FWMBrowse():New()
    oBrowse:SetAlias('SC5')

    //Ativando o browse
    oBrowse:Activate()
return NIL

/*--------------------------------------------------------------------------------------*
| Func:    MenuDef                                                                            |
| Desc:                                                                                    |
*--------------------------------------------------------------------------------------*/
Static Function MenuDef()
    Local aRotina := {}

    aAdd( aRotina, { 'Visualizar'    , 'VIEWDEF.ZMVCSC5', 0, 2, 0, NIL } )     
    aAdd( aRotina, { 'Alterar'       , 'VIEWDEF.ZMVCSC5', 0, 4, 0, NIL } ) 
    aAdd( aRotina, { 'Excluir'         , 'VIEWDEF.ZMVCSC5', 0, 5, 0, NIL } )
    aAdd( aRotina, { 'Imprimir'     , 'VIEWDEF.ZMVCSC5', 0, 8, 0, NIL } )
    aAdd( aRotina, { 'Copiar'         , 'VIEWDEF.ZMVCSC5', 0, 9, 0, NIL } )     
    aAdd( aRotina, { 'Pesquisar'     , 'VIEWDEF.ZMVCSC5', 0, 1, 0, NIL } )    
    aAdd( aRotina, { 'Legenda'       , 'VIEWDEF.ZMVCSC5', 0, 10, 0, NIL } )    

Return aRotina

/*--------------------------------------------------------------------------------------*
| Func:    ModelDef                                                                        |
| Desc:                                                                                    |
*--------------------------------------------------------------------------------------*/

Static Function ModelDef()        
    Local oModel := Nil

    //Estutura da tabela pai a ser utilizada no model -> cabeçalho SC5
    Local oStrSC5 := FWFormStruct(1,"SC5")

    //Estrutura da tabela filha a ser utilizada no model -> linhas SC6
    Local oStrSC6 := FWFormStruct(1,"SC6")

    oModel := MPFormModel():New("MD_PVS") 

    oModel:addFields('SC5MASTER',,oStrSC5)            

    //Adiciona o grid
    oModel:addGrid('SC6DETAIL','SC5MASTER',oStrSC6)        

    //Definindo o relacionamento das linhas com o cabeçalho
    oModel:SetRelation( 'SC6DETAIL', {{'C6_FILIAL', 'xFilial( "SC6" )' }, {'C6_NUM', 'C5_NUM'}} , SC6->(IndexKey(16)))

    //Definindo a chave primária do modelo
    oModel:SetPrimaryKey( { "C5_FILIAL", "C5_NUM" } )

    //Definindo a descrição do modelo de dados
    oModel:SetDescription( "Pedidos de venda" )

    //Definindo a descrição do componente SC5 -> cabeçalho
    oModel:GetModel( "SC5MASTER" ):SetDescription( 'Cabeçalho PV' )    

    //Definindo a descrição do componente SC6 -> linhas
    oModel:GetModel("SC6DETAIL"):SetDescription( "Linhas PV" )

    //Não permite a inserção de uma nova linha no grid, nem a remoção de uma linha existente
    oModel:GetModel("SC6DETAIL"):SetNoInsertLine(.T.)

    //Não permite a inserção de uma nova linha no grid, nem a remoção de uma linha existente
    oModel:GetModel("SC6DETAIL"):SetNoDeleteLine(.T.)

    //Não permite a edição de itens no grid
    oModel:GetModel("SC6DETAIL"):SetNoUpdateLine(.T.)

Return oModel

Static Function ViewDef()
    Local oModel := ModelDef()

    //Definindo a estrutura que será exibida na view para a tabela SC5
    Local oStSC5 := FWFormStruct(2, "SC5",{|cCampo| Alltrim(cCampo)$'C5_NUM'}) 

    //Definindo a estrutura que será exibida na view para a tabela SC6
    Local oStrSC6 := FWFormStruct(2, "SC6",{|cCampo| Alltrim(cCampo)$'C6_PRODUTO'})

    //Definindo a view
    Local oView := Nil

    oView := FWFormView():New()

    //Setando o modelo que será utilizado na view
    oView:SetModel(oModel)        

    //Vinculando o FwFormStruct a view
    oView:AddField("VIEW_SC5", oStSC5, "SC5MASTER")

    //Vinculando o FwFormStruct a view
    oView:AddGrid('VIEW_SC6' , oStrSC6,'SC6DETAIL')

    //Definindo caixa horizontal superior
    oView:CreateHorizontalBox("SUPERIOR",40)

    //Definindo caixa horizontal inferior
    oView:CreateHorizontalBox("INFERIOR",60)

    //Vinculando a view do cabeçalho a caixa superior
    oView:SetOwnerView("VIEW_SC5","SUPERIOR")

    //Vinculando a view com grid a parte inferior
    oView:SetOwnerView("VIEW_SC6","INFERIOR")

    //Definindo o título
    oView:EnableTitleView('VIEW_SC5', 'Ajusta PV')

    oView:SetCloseOnOk({||.T.})    

Return oView
compartilhar
  • Thyago, por favor, coloca o error.log completo pra gente analisar.

    Daniel Mendes   10 de Aug de 2021
  • Olá Daniel, editei o chamado e adicionei o errorlog como anexo.

    Thyago   10 de Aug 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!

2 respostas

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