Pessoal antes de qualquer coisa , FELIZ NATAL !! FELIZ ANO NOVO !!! ..
Preciso da ajuda de voces , fiz uma tela modelo2 em MVC , e gostaria de carregar valores em um determinado campo na Grid de acordo com a quantidade de alterações na linha , vejam o trecho do codigo que deveria fazer isso:
User Function CorreGrid(_oView,_oModel)
Local cC2status:= "APTO"
Local nLineAlt := VAL(_oModelD:GetValue('ZR_AJUSTE'))
_oModel:= FWModelActivate()
_oModelD := _oModel:GetModel( 'SZRDETAIL' )
IF _oModelD:GetOperation() == 4
For nLn := 1 To _oModelD:Length()
_oModelD:GoLine(nLn)
If _oModelD:IsUpdated()
nLineAlt++
_oModelD:LoadValue('ZR_AJUSTE', Transform(nLineAlt, "@!" ))
_oView:Refresh()
_oModelD:SetLine(1)
EndIf
Next nLn
Endif
A função acima eu estou chamando na ViewDef na propriedade : _oView:SetViewAction( 'BUTTONOK' ,U_CorreGrid()).
Se vcs olharem a funcão eu preencho o campo ZR_AJUSTE de acordo com a alteração na linha .
Estou com dois problemas aí :
1° após fazer o LoadValue no ZR_AJUSTE , eu faço um refresh na view , no ato da confirmação da alteração eu consigo ver o campo receber o valor da variavel nLineAlt , mais por algum motivo ele não grava o valor do campo no BD , a impressão que tenho é que o campo recebe o valor segundos depois da gravação.
2° o valor da variavel nLineAlt no campo ZR_AJUSTE , está sendo somando em todas as linhas , como faço pra incrementar apenas na linha que foi alterada ?