open-insight/LSL2/STPROC/SVC_SUBCLASS_DROPDOWN.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

150 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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