of_getargs


pfcapsrv.pbl   >   pfc_n_cst_tvsrv_levelsource   >   of_getargs   

Full name pfc_n_cst_tvsrv_levelsource.of_getargs
Access public
Extend of integer
Return value integer
Prototype public function integer of_getargs(long,integer,ref any[20])

Name Datatype
No Data

Name Datatype
ld_Arg Date
ldb_Arg Double
ldc_Arg Decimal
ldt_Arg DateTime
li_ArgIndex Integer
li_ArgItem Integer
li_Cnt Integer
li_Cnt2 Integer
li_Index Integer
li_Limit Integer
li_RetrieveArgLevel Integer[]
ll_Arg Long
ll_row Long
ls_Arg String
ls_ArgCol String
ls_key String
ls_RetrieveArgColumn String[]
lt_Arg Time
ltvi_Item TreeViewItem

public function integer of_getargs (long al_parent, integer ai_level, ref any aa_arg[20]);//////////////////////////////////////////////////////////////////////////////
//
//	Function:	of_GetArgs
//
//	Access:		public
//
//	Arguments:
//	al_Parent	The handle of the parent of the current TreeView item
//	ai_Level		The current TreeView level.
//	aa_Arg[20]	An array of type Any that will contain the retrieval
//						argument values.  Passed by reference.
//
//	Returns:		Integer
//					Returns 1 if the for success, -1 if an error occurrs.
//
//	Description:	Get the values for the retrieval arguments for a level of the TreeView
//
//////////////////////////////////////////////////////////////////////////////
//
//	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_Limit, li_Cnt, li_Cnt2, li_ArgItem, li_Index, li_ArgIndex
Integer				li_RetrieveArgLevel[]
String				ls_ArgCol, ls_Arg, ls_key
String				ls_RetrieveArgColumn[]
Long					ll_Arg, ll_row
Double				ldb_Arg
Decimal				ldc_Arg
Date					ld_Arg
DateTime				ldt_Arg
Time					lt_Arg
TreeViewItem		ltvi_Item

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

// check arguments
If (al_parent < 0) or IsNull(al_parent) Then Return -1
If (ai_level < 1) or IsNull(ai_level) Then Return -1

// Determine if the level is recursive
li_Index = UpperBound(inv_attrib)
If ai_Level > li_Index Then
	// Allow for recursion
	If Not inv_attrib[li_Index].ib_Recursive Then Return -1
Else
	li_Index = ai_Level
End If

of_ParseArgs(inv_attrib[li_Index].is_RetrieveArgs, ai_Level, li_RetrieveArgLevel, ls_RetrieveArgColumn)

li_Limit = UpperBound(li_RetrieveArgLevel)

For li_Cnt = (ai_Level - 1) To 1 Step - 1
	If itv_requestor.GetItem(al_Parent, ltvi_Item) = -1 Then Return -1
	
	// Determine if there an argument is needed from this level
	For li_Cnt2 = 1 To li_Limit
		If li_RetrieveArgLevel[li_Cnt2] = li_Cnt Then
			li_ArgItem = li_Cnt2
		
			// Determine the proper DataStore to use (in case the level is recursive)
			If li_Cnt > li_Index Then
				li_ArgIndex = li_Index
			Else
				li_ArgIndex = li_Cnt
			End If
		
			ls_ArgCol = ls_RetrieveArgColumn[li_ArgItem]
			
			// Find proper row in datastore
			ls_key = of_decodekey( string(ltvi_item.data) )
			ll_row = inv_attrib[li_ArgIndex].ids_obj.GetRowFromRowID( long(ls_key) )
//			ll_row = inv_attrib[li_ArgIndex].ids_obj.Find("pfc_tvi_key = '" + String(ltvi_Item.Data) + "'", &
//																		1, inv_attrib[li_ArgIndex].ids_obj.RowCount())
			If ll_row <= 0 Then Return -1
			
			// Cast the value into the proper data type
			Choose Case Left(inv_attrib[li_ArgIndex].ids_obj.Describe(ls_ArgCol + ".coltype"), 7)
				Case "integer", "long"
					ll_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemNumber(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ll_Arg
				Case "double", "number"
					ldb_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemNumber(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldb_Arg
				Case "decimal"
					ldc_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemDecimal(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldc_Arg
				Case "date"
					ld_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemDate(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ld_Arg
				Case "time"
					lt_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemTime(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = lt_Arg
				Case "datetim"
					ldt_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemDateTime(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldt_Arg
				Case Else
					ls_Arg = inv_attrib[li_ArgIndex].ids_obj.GetItemString(ll_row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ls_Arg
			End Choose
		End If
	Next
	
	If li_Cnt > 1 Then
		// Move up one level
		al_Parent = itv_requestor.FindItem(ParentTreeItem!, al_Parent)
		If al_Parent = -1 Then Return -1
	End If
Next

Return 1

end function

     
Name Owner
No Data

     
Name Owner
treeview.finditem treeview
treeview.getitem treeview
datastore.describe datastore
datastore.getitemdate datastore
datastore.getitemdatetime datastore
datastore.getitemdecimal datastore
datastore.getitemnumber datastore
datastore.getitemstring datastore
datastore.getitemtime datastore
datastore.getrowfromrowid datastore
systemfunctions.isnull systemfunctions
systemfunctions.isvalid systemfunctions
systemfunctions.left systemfunctions
systemfunctions.long systemfunctions
systemfunctions.string systemfunctions
systemfunctions.upperbound systemfunctions
pfc_n_cst_tvsrv_levelsource.of_parseargs pfc_n_cst_tvsrv_levelsource
pfc_n_cst_tvsrv_levelsource.of_decodekey pfc_n_cst_tvsrv_levelsource

     
Full name
No Data

     
Name Scope
No Data