Olá pessoa, Boa tarde!
Estou invocando o método IsDeleted() para testar o estado de uma linha ao percorrer o grid através de um For. Segue abaixo trecho do código...
Static function lDocPreGrid(oGridModel, nLine, cAction, cIDField, xValue, xCurrentValue) Local lRet := .T.Local oModelMain := FWModelActive() Local oNotasGrid := oModelMain:GetModel('SZDDETAIL') Local nItens := oNotasGrid:Length() Local oObjSZA := oGridModel:GetModel("SZADETAIL") Local aSaveLines := FWSaveRows()
For nNF := 1 To oNotasGrid:Length() //nItens oNotasGrid:GoLine(nNF) If oNotasGrid:IsDeleted(nNF) <======== O PROBLEMA OCORRE AQUI O MÉTODO IsDeleted() ESTÁ RETORNANDO .F. QUANDO A LINHA ESTÁ DELETADA
O bloco de código lDocPreGrid está declarada na variável bDocLine e está sendo disparada do seguinte local:
oModel:AddGrid( 'SZDDETAIL', 'SZADETAIL', oStruSZD, bDocLine, /bLinePost/, /bPreVal/, /bPosVal/, )
Build 7.00.191205sp-20200424 - 64 bits Versão da lib: 20200504 Release do RPO: 12.1.025
Alguém tem alguma informação que possa ser útil na solução desta inconsistência?
Um erro similar temos nossos, já que necessitabamos totalizar os valores da certas colunas no grid MVC mais quando era feito o delete da linha, o resultado do evaluar IsDeleted() para issa linha nao confería, e si voltaba a linha para ativa, o IsDeleted() indicaba como deletada. Terminamos usando um flag adicional cuando mudaba o status da linha para poder avaliar si estaba deletada o nao. Acho que pode ser um erro do metodo IsDeleted()
— Alejandro Medina 02 de Sep de 2020