of_getargs


pfcmain.pbl   >   pfc_u_tv   >   of_getargs   

Full name pfc_u_tv.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_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
//	5.0   Initial version
// 7.0   Changed the li_row datatype to long (ll_row)
//
//////////////////////////////////////////////////////////////////////////////
//
//	Copyright © 1996-1999 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, li_RetrieveArgLevel[]
Long 					ll_row
String				ls_ArgCol, ls_Arg, ls_RetrieveArgColumn[]
Long					ll_Arg
Double				ldb_Arg
Decimal				ldc_Arg
Date					ld_Arg
DateTime			ldt_Arg
Time					lt_Arg
TreeViewItem		ltvi_Item

// Determine if the level is recursive
If ai_Level > UpperBound(inv_ds) Then
	li_Index = UpperBound(inv_ds)
Else
	li_Index = ai_Level
End If

of_ParseArgs(inv_ds[li_Index].s_RetrieveArgs, ai_Level, li_RetrieveArgLevel, ls_RetrieveArgColumn)

li_Limit = UpperBound(li_RetrieveArgLevel)

For li_Cnt = (ai_Level - 1) To 1 Step - 1
	If This.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
			ll_Row = inv_ds[li_ArgIndex].ds_obj.Find("pfc_tvi_key = '" + String(ltvi_Item.Data) + "'", &
																		1, inv_ds[li_ArgIndex].ds_obj.RowCount())
			If ll_Row <= 0 Then Return -1
			
			// Cast the value into the proper data type
			Choose Case Left(inv_ds[li_ArgIndex].ds_obj.Describe(ls_ArgCol + ".coltype"), 7)
				Case "integer", "long"
					ll_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemNumber(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ll_Arg
				Case "double", "number"
					ldb_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemNumber(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldb_Arg
				Case "decimal"
					ldc_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemDecimal(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldc_Arg
				Case "date"
					ld_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemDate(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ld_Arg
				Case "time"
					lt_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemTime(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = lt_Arg
				Case "datetim"
					ldt_Arg = inv_ds[li_ArgIndex].ds_obj.GetItemDateTime(ll_Row, ls_ArgCol)
					aa_Arg[li_ArgItem] = ldt_Arg
				Case Else
					ls_Arg = inv_ds[li_ArgIndex].ds_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 = This.FindItem(ParentTreeItem!, al_Parent)
		If al_Parent = -1 Then Return -1
	End If
Next

Return 1

end function

     
Name Owner
pfc_u_tv.of_populatelevel pfc_u_tv

     
Name Owner
treeview.finditem treeview
treeview.getitem treeview
datastore.describe datastore
datastore.find datastore
datastore.getitemdate datastore
datastore.getitemdatetime datastore
datastore.getitemdecimal datastore
datastore.getitemnumber datastore
datastore.getitemstring datastore
datastore.getitemtime datastore
datastore.rowcount datastore
systemfunctions.left systemfunctions
systemfunctions.string systemfunctions
systemfunctions.upperbound systemfunctions
pfc_u_tv.of_ParseArgs pfc_u_tv

     
Full name
No Data

     
Name Scope
No Data