Salve a todos,
Estou com um problema em uma tela de MVC Modelo 2 onde ele nao esta executando a gravação da Grid (Registro Filho).
Objetivo: esta tela deve ser chamada na tela de cliente onde possa amarrar o cadastro de gastos adicionais nas vendas para estes clientes com seus respectivos valores.
Como pode ver ja estou trazendo a tela, e ao clicar em confirmar ele ate traz a mensagem de sucesso, no entanto os dados nao sao salvos no banco.
Fonte usado:
#Include 'Protheus.ch'
#Include 'FWMVCDEF.CH'
#INCLUDE 'FWEDITPANEL.CH'
#DEFINE CPROG "Cli_x_Vlr"
User Function Cli_x_Vlr()
Local lRet := .F.
Local aEnableButtons := {{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.T.,Nil},{.T.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil},{.F.,Nil}}
If SA1->A1_MSBLQL == '1'
lOk := ( FWExecView('Despesas Comerciais - Visualizar', CPROG, MODEL_OPERATION_VIEW ,/**/,/* */,/**/,,aEnableButtons ) == 0 ) //"Valores Acessórios"###"Alteração"
Else
lOk := ( FWExecView('Despesas Comerciais - Editar' , CPROG, MODEL_OPERATION_UPDATE,/**/,/* */,/**/,,aEnableButtons ) == 0 ) //"Valores Acessórios"###"Alteração"
EndIf
Return lRet
Static Function ModelDef()
Local oModel := MPFormModel():New( "CLIXVLRM",/*Pre*/,/*Pos*/, {|oModel| fGRV( oModel )} /*Commit*/ )
Local oSA1 := FWFormStruct(1, 'SA1')
Local oZ21 := FWFormStruct(1, 'Z21')
//Local bInitDesc := FWBuildFeature( STRUCT_FEATURE_INIPAD, 'IIF(!INCLUI,Posicione("Z20",1, xFilial("Z20") + Z20->Z20_CODIGO,"Z20_DESC"),"")')
Local aAuxChv := {}
oZ21:AddField( "Desc Despesas" ,; // [01] Titulo do campo
"Desc Despesas" ,; // [02] ToolTip do campo
"Z21_NDESP" ,; // [03] Id do Field
"C" ,; // [04] Tipo do campo
30 ,; // [05] Tamanho do campo
0 ,; // [06] Decimal do campo
{ || .T. } ,; // [07] Code-block de validação do campo
{ || .F. } ,; // [08] Code-block de validação When do campo
,; // [09] Lista de valores permitido do campo
.F. ,; // [10] Indica se o campo tem preenchimento obrigatório
,; // [11] Inicializador Padrão do campo
,; // [12]
,; // [13]
.T.) // [14] Virtual
oZ21:AddTrigger( "Z21_CODZ20", "Z21_NDESP" , {|| .T. },{|oModel| Posicione("Z20",1,xFilial("Z20")+oModel:GetValue("Z21_CODZ20"),"Z20_DESC")})
oSA1:SetProperty('*',MODEL_FIELD_OBRIGAT, .F.)
oModel:AddFields("SA1MASTER",/*cOwner*/ , oSA1)
oModel:AddGrid("Z21DETAIL" ,"SA1MASTER", oZ21)
oModel:SetPrimaryKey({'A1_FILIAL','A1_COD','A1_LOJA'})
oModel:GetModel( 'Z21DETAIL' ):SetUniqueLine( { 'Z21_CODZ20' } )
aAdd( aAuxChv, {"Z21_FILIAL","FwXFilial('Z21')"} )
aAdd( aAuxChv, {"Z21_CODSA1","A1_COD"})
aAdd( aAuxChv, {"Z21_LOJA","A1_LOJA"})
oModel:SetRelation("Z21DETAIL", aAuxChv , Z21->(IndexKey(2) ) )
Return oModel
Static Function ViewDef()
Local oView := FWFormView():New()
Local oModel := FWLoadModel( CPROG )
Local oSA1 := FWFormStruct( 2, 'SA1', { |x| ALLTRIM(x) $ 'A1_COD, A1_LOJA, A1_NOME, A1_EST, A1_MUN' })
Local oZ21 := FWFormStruct( 2, 'Z21', { |x| ALLTRIM(x) $ 'Z21_CODZ20, Z21_VALOR' })
oSA1:SetNoFolder()
oZ21:AddField("Z21_NDESP", "30", "Desc Despesa", "Desc Despesa", {}, "G", "@!",/*bPictVar*/,/*cLookUp*/,/*lCanChange*/,/*cFolder*/)//"Descricao da despesa"
oZ21:SetProperty( 'Z21_CODZ20' , MVC_VIEW_ORDEM, '1')
oZ21:SetProperty( 'Z21_NDESP' , MVC_VIEW_ORDEM, '2')
oZ21:SetProperty( 'Z21_VALOR' , MVC_VIEW_ORDEM, '3')
oView:SetModel( oModel )
oView:AddField( 'VIEW_SA1', oSA1, 'SA1MASTER' )
oView:AddGrid("VIEW_Z21" ,oZ21,"Z21DETAIL")
oView:SetOnlyView('VIEW_SA1')
oView:CreateHorizontalBox( 'BOXSA1', 027 )
oView:CreateHorizontalBox( 'BOXZ21', 073 )
oView:SetOwnerView('VIEW_SA1', 'BOXSA1')
oView:SetOwnerView('VIEW_Z21', 'BOXZ21')
//oView:EnableTitleView('VIEW_SA1' , 'Cliente')
oView:EnableTitleView('VIEW_Z21' , 'Despesas')
Return oView
Static Function fGRV(oModel)
Return .t.