Bom dia,
estou fazendo um botao que faca uma alteracao do grid e atualice a tela, mais cuando tente salvar, tenho erro de insert duplicate no banco de dados, nao sei porque intenta salvar duas veces o primer modelo (SEH)
botao
oView:AddUserButton("Recalculo Mágico", 'PROBAR', {|oModel,oView| linePostGrid(oModel,oView) } ) //Recalcula la grid
Funcao
static function linePostGrid(oModel,oView)
local oModelGrid := nil
local nLin
aCuotas := {}
SaveInter() // Salva as variaveis publicas
oModelGrid := oModel:GetModel( "FLYDETAIL" ) // obtener el modelo del grid
nTotLin := oModelGrid:Length( .F. ) // obtenes el TOTAL de lineas del grid
nInicial := 1
nTotTot := 0// valor total saldo capital
nAntJuros := 0// valor interés
nAntAmorti := 0// valor amortización
nAntValor := 0
nTotImpuest := 0
nTotalAmort := 0
For nLin := 1 To nTotLin - 1
oModelGrid:SetLine( nLin ) // le das el total
if nInicial <> nLin // si es que no es el primero
oModelGrid:SetValue( "VALOR",nAntValor - nAntAmorti ) // calcula el valor de nuevo
endif
oModelGrid:SetValue( "JUROS",oModelGrid:GetValue("VALOR" ) * (M->EH_TAXA /100) / (360/M->EH_UINTDIA))
oModelGrid:SetValue( "PRESTACAO", oModelGrid:GetValue("JUROS") + oModelGrid:GetValue("AMORTIZA" ) ) // modificas el VALOR
oModelGrid:SetValue( "VCORRIGIDO", oModelGrid:GetValue("VALOR") + oModelGrid:GetValue("JUROS" ) ) // modificas el VALOR
nAntValor := oModelGrid:GetValue("VALOR" )// valor total saldo capital
nAntJuros := oModelGrid:GetValue("JUROS" ) // VALOR impuestos
nAntAmorti := oModelGrid:GetValue("AMORTIZA" )// valor amortización
NvECORRE := oModelGrid:GetValue("VCORRIGIDO" )
nTotTot += oModelGrid:GetValue("PRESTACAO" )
nTotImpuest += nAntJuros
nTotalAmort += oModelGrid:GetValue("AMORTIZA" )
aAdd(aCuotas,{oModelGrid:GetValue("PARCELA" ),nAntValor, nAntJuros,NvECORRE,nAntAmorti ,oModelGrid:GetValue("PRESTACAO" ) })
Next
oModelGrid:SetLine( nLin ) // le das el total
oModelGrid:SetValue( "JUROS",nTotImpuest)
oModelGrid:SetValue( "PRESTACAO", nTotTot ) // modificas el VALOR
oModelGrid:SetValue( "AMORTIZA", nTotalAmort ) // modificas el VALOR
oModelGrid:SetLine( 1 ) //
oView:Refresh() // haces un refresh a la VIEW
RestInter() // Restaura as variavis publicas
return
Agradeço desde já pela atenção.