|
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
|
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
|
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
|