Salvar Grid vazia (sem nenhum dado inserido) - MVC.

Bom dia pessoal, preciso de uma ajuda (se possível). Estou trabalhando com quatro grids em MVC e não consigo salvá-la com os dados vazios no Banco. Já verifiquei os campos referentes a Not Null e estão ok. Quando deixo de preencher um Grid, ou dois, etc, ele aponta que os Dados precisam ser preenchidos na Grid para que sejam salvos no Banco. Preciso que quando for preenchido por exemplo uma grid, ou duas, o restante sejam salvas mesmo com os campos não sendo preenchidos.

Segue código e obrigado desde já:

Static Function ModelDef()

Local oModel := Nil

Local oStPai := FWFormStruct(1, 'Z35') //1 PORQUE É MODELDEF

Local oStZ35 := FWFormStruct(1, 'Z35', { |x| ALLTRIM(x) $ 'Z35_GRCLI, Z35_ACAO' })

Local oSt := FWFormStruct(1, 'Z35', { |x| ALLTRIM(x) $ 'Z35_PRODUT, Z35_ACAO' })

oModel := MPFormModel():New('FATTHSKM')

oModel:AddFields('Z35MASTER',/cOwner/,oStPai)

oModel:AddGrid('Z35DETAIL','Z35MASTER',oStZ35,/bLinePre/, /bLinePost/,/bPre - Grid Inteiro/,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/)

oModel:AddGrid('Z35DETAIL__','Z35MASTER',oStZ35,/bLinePre/, /bLinePost/,/bPre - Grid Inteiro/,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/)

oModel:AddGrid('Z35DETAIL_','Z35MASTER',oSt,/bLinePre/, /bLinePost/,/bPre - Grid Inteiro/,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/)

oModel:AddGrid('Z35DETAIL_','Z35MASTER',oSt,/bLinePre/, /bLinePost/,/bPre - Grid Inteiro/,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/) //

oModel:SetPrimaryKey({})

oModel:SetDescription("Campanha de Vendas")

oModel:GetModel('Z35MASTER'):SetDescription('Modelo Campanha de Vendas')

oModel:GetModel('Z35DETAIL'):SetDescription('Campanha de Vendas')

RETURN oModel

Static Function ViewDef()

Local oView := Nil

Local oModel := FWLoadModel('FATTHSK')

Local oStPai := FWFormStruct(2, 'Z35') //2 PORQUE É VIEW

Local oStZ35 := FWFormStruct(2, 'Z35', { |x| ALLTRIM(x) $ 'Z35_GRCLI, Z35_ACAO' })

Local oSt := FWFormStruct(2, 'Z35', { |x| ALLTRIM(x) $ 'Z35_PRODUT, Z35_ACAO' })

//Criando a View

oView := FWFormView():New()

oView:SetModel(oModel)

//Adicionando os campos do cabeçalho e o grid dos filhos

oView:AddField('VIEW_Z35_FLD',oStPai,'Z35MASTER')

oView:AddGrid('VIEW_Z35_GRD',oStZ35,'Z35DETAIL')

oView:AddGrid('VIEWZ35GRD2',oStZ35,'Z35DETAIL')

oView:AddGrid('VIEWZ35_GRD1',oSt,'Z35DETAIL')

oView:AddGrid('VIEWZ35GRD3',oSt,'Z35DETAIL_')

//Setando o dimensionamento de tamanho

oView:CreateHorizontalBox('EMCIMA',20)

oView:CreateHorizontalBox('MEIO', 40)

oView:CreateHorizontalBox('EMBAIXO',40)

oView:CreateVerticalBox( 'CV_1', 50, 'MEIO' )

oView:CreateVerticalBox( 'CV_2', 50, 'MEIO' )

oView:CreateVerticalBox( 'CV_3', 50, 'EMBAIXO') //20

oView:CreateVerticalBox( 'CV_4', 50, 'EMBAIXO')

//oView:CreateVerticalBox( 'CV_5', 20, 'EMBAIXO')

oStPai:RemoveField('Z35_GRCLI')

oStPai:RemoveField('Z35_ACAO')

oStPai:RemoveField('Z35_PRODUT')

//Amarrando a view com as box

oView:SetOwnerView('VIEW_Z35_FLD','EMCIMA')

oView:SetOwnerView('VIEW_Z35_GRD','CV_1')

oView:SetOwnerView('VIEW_Z35_GRD2','CV_2')

oView:SetOwnerView('VIEW_Z35_GRD1','CV_3')

oView:SetOwnerView('VIEW_Z35_GRD3','CV_4')

//Habilitando título oView:EnableTitleView('VIEW_Z35_FLD','CAMPOS')

oView:EnableTitleView('VIEW_Z35_GRD','GRUPO DAR DESCONTO')

oView:EnableTitleView('VIEW_Z35_GRD2','GRUPO RECEBER DESCONTO') //

oView:EnableTitleView('VIEW_Z35_GRD1','PRODUTO DAR DESCONTO')

oView:EnableTitleView('VIEW_Z35_GRD3','PRODUTO RECEBER DESCONTO')

Return oView

compartilhar
Anexos
  • Tela.png
    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 mvc protheus advpl ou faça a sua própria pergunta.