Page 1 of 1

Problem with oBrowse:aDeleted

Posted: Mon Nov 20, 2023 12:36 pm
by Silvio.Falconi
To delete a record on Array I use this

function del_row( oBrowse )
if ! Empty( oBrowse:aArrayData )
ADel( oBrowse:aArrayData, oBrowse:nArrayAt, .t. )
oBrowse:Refresh()
endif

xbrowser oBrowse:aDeleted <------
return nil

it delete the row but then when I need oBrowse:aDeleted I have the empty array

How it possible ?

Re: Problem with oBrowse:aDeleted

Posted: Mon Nov 20, 2023 7:09 pm
by nageswaragunupudi
Use

Code: Select all | Expand

oBrw:Delete()
to delete rows. Please do not use your own functions to delete.

Re: Problem with oBrowse:aDeleted

Posted: Tue Nov 21, 2023 9:04 am
by Silvio.Falconi
nageswaragunupudi wrote:Use

Code: Select all | Expand

oBrw:Delete()
to delete rows. Please do not use your own functions to delete.
Yes it delete the record but then re-save on archive

There's probably something I don't understand

I have two dbf

Report.dbf (oDbf)
Formati.dbf ( oDbfMod) have 30 fields +1 for recno()

at first for editing I take a record on Report.dbf

Code: Select all | Expand

oRecord := oDbf:record()
create am array from another archive

Code: Select all | Expand

  aDataForm := oDbfMod:DbfToArray( cItemFlds, { ||FIELD->codRep == cCode_Tmp  } )
and work aDataform on Xbrowse


When I go to save I made

Code: Select all | Expand

      // save oDbf Report.dbf

       // delete rows
       
          if ! Empty( oBrowse:aDeleted )
            AEval( oBrowse:aDeleted, { |a| a[ 31 ] := -a[ 31 ] } )
            oDbfMod:SaveArrayToDBF( cItemFlds, oBrowse:aDeleted )
         endif

         AEval( aDataForm, { |a| a[ 1 ] := oRec:codRep } )
         AEval( aDataForm, { |a,i| a[ 29 ] := strzero(i,5) } )
         oDbfMod:SaveArrayToDBF( cItemFlds, aDataForm )

          //Salva Report.dbf ok
        oRec:Save()
 
I tried also with

Code: Select all | Expand

oDbfMod:ArrayToDBF( aDataForm ,  cItemFlds,, .t., .t. )
append a record empty on oDbf
not delete the record on oDbfMod