pfc_undodelete


pfcapsrv.pbl   >   pfc_n_cst_tvsrv_levelsource   >   pfc_undodelete   

Full name pfc_n_cst_tvsrv_levelsource.pfc_undodelete
Access public
Extend of integer
Return value integer
Prototype event integer pfc_undodelete()

Name Datatype
No Data

Name Datatype
lds_undo n_ds
li_undolevel integer
ll_deleterowid long
ll_newhandle long
ll_row long
ll_rowcount long
ll_undoafterhandle long
ll_undoparenthandle long
ls_key string
ls_undokey string
ltvi_empty treeviewitem
ltvi_undo treeviewitem

event pfc_undodelete;call super::pfc_undodelete;//////////////////////////////////////////////////////////////////////////////
//
//	Event:		pfc_UndoDelete
//
//	Arguments:	None
//
//	Returns:		integer
//	 1 = success; last delete was undone
//	 0 = nothing to undo
//	-1 = error
//
//	Description:	Restore the last deleted item of the treeview.  Will not undelete children
//		items deleted in the delete process. 
//
//////////////////////////////////////////////////////////////////////////////
//	
//	Revision History
//
//	Version
//	6.0   Initial version
//
//////////////////////////////////////////////////////////////////////////////
//
//	Copyright © 1996-1997 Sybase, Inc. and its subsidiaries.  All rights reserved.
//	Any distribution of the PowerBuilder Foundation Classes (PFC)
//	source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//
//////////////////////////////////////////////////////////////////////////////
integer			li_undolevel
long				ll_row, ll_rowcount
long				ll_undoparenthandle, ll_undoafterhandle, ll_newhandle, ll_deleterowid
string			ls_undokey, ls_key
treeviewitem	ltvi_undo, ltvi_empty
n_ds				lds_undo

// check reference variables
If IsNull(itv_requestor) or Not IsValid(itv_requestor) Then Return -1

// do not undo if undo is not set
If Not ib_undo Then Return -1

// Check to see if we have an delete to undo
If il_UndoDeleteParentHandle < 1 then Return 0

itv_requestor.SetRedraw(False)

ll_undoparenthandle = il_UndoDeleteParentHandle
ll_undoafterhandle = il_UndoDeleteHandle
//ls_undokey = string( itvi_UndoDeleteItem.Data )
li_undolevel = itvi_UndoDeleteItem.Level
ltvi_undo = itvi_UndoDeleteItem
	
// Reset the undo delete variables (here if there are problems so we don't try to undelete the wrong thing)
il_UndoDeleteParentHandle = 0
il_UndoDeleteHandle = 0
itvi_UndoDeleteItem = ltvi_empty
is_UndoType = ""

lds_undo = inv_attrib[li_undolevel].ids_obj

// The last row in the DataStore Delete! buffer is the one last deleted.
ll_row = lds_undo.DeletedCount()
If ll_row < 1 Then Return -1

// Compare the keys to see if we really have the right row
ll_deleterowid = lds_undo.GetRowIDFromRow(ll_row, Delete!)
ls_undokey = of_DecodeKey( string(ltvi_undo.data) )
If ll_deleterowid = long(ls_undokey) Then
	// Move row back to primary buffer
	ll_rowcount = lds_undo.RowCount()
	lds_undo.RowsMove(ll_row, ll_row, Delete!, lds_undo, (ll_rowcount + 1), Primary!)
Else
	Return 0
End If

// Insert row back under parent
ltvi_undo.selected = False
ll_newhandle = itv_requestor.InsertItem(ll_undoparenthandle, ll_undoafterhandle, ltvi_undo)
if ll_newhandle < 1 then Return -1

// reset again so inserteditem is not current undo
is_UndoType = ""

itv_requestor.SetRedraw(True)

return 1
end event

     
Name Owner
pfc_n_cst_tvsrv_levelsource.pfc_undo pfc_n_cst_tvsrv_levelsource

     
Name Owner
dragobject.setredraw dragobject
treeview.insertitem treeview
datastore.deletedcount datastore
datastore.getrowidfromrow datastore
datastore.rowcount datastore
datastore.rowsmove datastore
systemfunctions.isnull systemfunctions
systemfunctions.isvalid systemfunctions
systemfunctions.long systemfunctions
systemfunctions.string systemfunctions
pfc_n_cst_tvsrv_levelsource.of_decodekey pfc_n_cst_tvsrv_levelsource

     
Full name
No Data

     
Name Scope
No Data