Salvando apenas 02 Grids ao invés das 04. - MVC

Boa tarde, preciso de ajuda novamente por favor (se puderem).

Estou com 04 Grids na tela, porém, quando clico em Confirmar, ele salva no Banco somente de 02 Grids (independentemente de qual Grid eu insiro os Dados). Quando preencho as 04 com as informações, é salvo no banco os dados de 02 grids (as grids da direita). Gostaria que salvasse os Dados no banco das 04 quando eu inserir as informações das 04 ou de 03 caso eu insira os dados em 03 Grids. OBS: Estou utilizando SOMENTE uma tabela para salvar os Dados.

No caso, quando conseguir salvar as informações das 04 Grids ou das 03, salvar no Banco essas informações (Replicando o Z35_CV) com as informações inseridas nas Grids.

Segue o código e obrigado desde já:

Static Function ModelDef()

Local oModel := Nil

Local oStPai := FWFormStruct(1, 'Z35')

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

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

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

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

oModel := MPFormModel():New('FATTHSKM', , , , /bCancel/ )

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',oSt,/bLinePre/, /bLinePost/,/bPre - Grid Inteiro/,/bPos - Grid Inteiro/,/bLoad - Carga do modelo manualmente/)

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

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

oModel:SetPrimaryKey({})

oModel:SetDescription("Campanha de Vendas")

oModel:GetModel('Z35MASTER')

oModel:GetModel('Z35DETAIL'):SetOptional(.T.)

oModel:GetModel('Z35DETAIL_'):SetOptional(.T.)

oModel:GetModel('Z35DETAIL__'):SetOptional(.T.)

oModel:GetModel('Z35DETAIL_'):SetOptional(.T.)

RETURN oModel

Static Function ViewDef() Local oView := Nil

Local oModel := FWLoadModel('FATTHSK')

Local oStPai := FWFormStruct(2, 'Z35')

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

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

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

Local oSt1 := FWFormStruct(2, 'Z35', { |e| ALLTRIM(e) $ '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('VIEWZ35_GRD1',oSt,'Z35DETAIL')

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

oView:AddGrid('VIEWZ35GRD3',oSt1,'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')

oView:CreateVerticalBox( 'CV_4', 50, '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_GRD1','CV_3')

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

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_GRD1','PRODUTO DAR DESCONTO')

oView:EnableTitleView('VIEW_Z35_GRD2','GRUPO RECEBER DESCONTO') // ESSA GRID ESTÁ CADASTRANDO

oView:EnableTitleView('VIEW_Z35_GRD3','PRODUTO RECEBER DESCONTO') // ESSA GRID ESTÁ CADASTRANDO

Return oView

compartilhar
  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!

0 resposta

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