Files
open-insight/LSL2/STPROC/SVC_SUBCLASS_DROPDOWN.txt
2024-05-22 14:06:46 -07:00

151 lines
5.2 KiB
Plaintext

Function SVC_SubClass_DropDown(Service, Param1, Param2, Param3, Param4)
/********************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to
be copied without written permission from SRP Computer Solutions, Inc.
Name : SVC Subclass Dropdown
Description :
Tags : [SRP]
Parameters :
CtrlId [in] -- Control that contains the dropdown
Type [in] -- Dropdown in (E)dittable or Edit(L)ine
Cell [in] -- Sub-class control if necessary
Params [in] -- Any additional parameters
List [out] -- The full list if needed by the calling program
History (Date, Initials, Notes)
04/11/06 fjt Initial development
11/03/09 fjt Moved to IR/EPI
********************************************************************************************************/
$insert SRP_APP_INSERTS
$insert SERVICE_INSERT
Declare subroutine Btree.Extract, Update_Index
Declare function SRP_Sort_Array, SRP_Rotate_Array, SRP_Reorder_Array
GoSub Init
Begin Case
Case Type EQ "Sched Events" ; GoSub Scheduler_Events
End Case
If Data then GoSub Finalize
Return Ans
!----- INTERNAL ROUTINES --------------------------------------------------------------------------------
Init:
Transfer Service to Type
Transfer Param1 to CtrlId
Transfer Param2 to Cell
Transfer Param3 to Params
Transfer Param4 to List
ProgId = Get_Property(CtrlId, "OLE.ProgID")
Vals = ""
List = ""
Data = ""
LenPos = 1
MasterCol = Params<1>
Cols = Params<2>
AutoFillCol = Params<3>
ResetOnly = Params<4>
If Cols else Cols = "L":@STM:300:@TM:"R":@STM:100
If AutoFillCol else AutoFillCol = 1
If ResetOnly EQ "" then ResetOnly = No$
Show = No$
SortOrder = "AL1":@FM:"AL1"
return
Finalize:
// Sort
!!! Data = SRP_Sort_Array(Data, SortOrder, 0)
List = Data
Swap @VM with @STM in Data
Swap @FM with @TM in Data
Vals<2, 2> = Cols ;// Column Settings
Vals<2, 3> = Data ;// Data
Vals<2, 4> = MasterCol ;// Master Column Number - The column containing the return values
Vals<2, 5> = True$ ;// Autofill - Boolean If true, then autofill is enabled
Vals<2, 6> = False$ ;// Case Sensitive Autofill - Boolean If true, then autofill is case sensitive
Vals<2, 7> = 25 ;// Number of Visible Rows - Integer The number of viewable rows at a time
Vals<2, 8> = False$ ;// Fire OnOptionClick - Boolean If true, fire the OnOptionClick when user presses dropdown button
Vals<2, 9> = True$ ;// Filtered Autofill - Boolean If true, reduce the list to only those items that partially match the current contents
Vals<2,10> = Show ;// Show Dropdown Immediately - Boolean If true, shows the dropdown as soon as user enters edit mode
Vals<2,11> = False$ ;// LIST Format - Boolean If true, then the data is in LIST format and not ARRAY format
Vals<2,12> = AutoFillCol ;// Autofill Column Number - The column against which autofill is performed
Vals<2,13> = True$ ;// Hide When Empty - Boolean If true, then the dropdown hides when the user clears the cell
Vals<2,14> = True$ ;// Normal Navigation - Boolean If true, then the up/down/pgup/pgdown keys navigate to other cells when the drop down is hidden
* Vals<2,15> = "" ;// Show Only When Empty - Boolean If true and Show Immediately is true, then the dropdown only shows immediately when the cell's contents are empty
* Vals<2,16> = "" ;// No Show Autofill - Boolean If true, then the drop down does not appear during autofill
Vals<2,17> = True$ ;// Clear the selection in the popup whenever the user presses backspace or delete during autofill
Begin Case
Case (ProgID _EQC "SRP.EditTable.1")
Vals<1> = "Combo"
Set_Property(CtrlId, "OLE.CellType[":Cell:"]", Vals)
Case (ProgID EQ "" and ResetOnly EQ Yes$)
Convert "." to ";" in CtrlId
Set_Property(@Window:".OLE_SUBCLASS", "OLE.ComboData[":CtrlId:"]", Data)
Case (ProgID EQ "")
Vals<1> = 1
Handle = Get_Property(CtrlId, "HANDLE")
rv = Send_Message(@Window:".OLE_SUBCLASS", "OLE.Subclass", Handle, CtrlID)
Convert "." to ";" in CtrlId
Set_Property(@Window:".OLE_SUBCLASS", "OLE.Combo[":CtrlId:"]", Vals)
End Case
return
!----- DROPDOWN DATA TYPES ------------------------------------------------------------------------------
Scheduler_Events:
Cols = "L":@STM:250
AutoFillCol = 1
MasterCol = 1
SortOrder = "AL1"
Array = ""
Array<-1> = "Annual P.M."
Array<-1> = "Bell Jar Charge"
Array<-1> = "CTC Change"
Array<-1> = "Down for Engineering Testing"
Array<-1> = "Down to Maintenance"
Array<-1> = "Down – No Material"
Array<-1> = "Open"
Array<-1> = "Scrubber Work"
Array<-1> = "Semi Annual PM"
Array<-1> = "Tube Change"
Array<-1> = 'Conversion to 4"'
Array<-1> = 'Conversion to 5"'
Array<-1> = 'Conversion to 6"'
Array<-1> = 'Conversion to 8"'
Array<-1> = 'Conversion to AP'
Array<-1> = 'Conversion to RP'
Convert @FM to @VM in Array
Data = Array
return