migrated from OI 9

This commit is contained in:
Infineon\StieberD
2024-09-10 12:03:26 -07:00
parent 3cdb08d0fd
commit f9f296fa5e
26 changed files with 55036 additions and 8195 deletions

View File

@ -38,8 +38,8 @@ $insert EVENT_SETUP
$insert WO_MAT_EQUATES
$insert MSG_EQUATES
Declare subroutine SRP_Show_Window, ErrMsg, Error_Services
Declare function Database_Services, WM_Out_Services, RGB, SRP_Array, MemberOf, Error_Services
Declare subroutine SRP_Show_Window, ErrMsg, Error_Services, Hold_Services
Declare function Database_Services, WM_Out_Services, RGB, SRP_Array, MemberOf, Error_Services, Hold_Services
SubclassInfo = Form_Services('FindSubclassControl')
Subclass = SubclassInfo<1>
@ -76,6 +76,7 @@ Event WINDOW.CREATE(CreateParam)
WMOColumns<0, 5> = 'EPI_REACT_NO'
WMOColumns<0, 6> = 'SUP_VER_SIG_DTM'
WMOColumns<0, 7> = 'PART_NO'
WMOColumns<0, 8> = 'HOLD'
Swap @VM with @FM in CreateParam
Begin Case
@ -137,6 +138,88 @@ Event PUB_OK.CLICK()
end event
Event PUB_ON_HOLD.CLICK()
SelPos = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelPos')
SelCount = Dcount(SelPos, @VM)
* SelWMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelList')
* SelWMOList = SRP_Array('Rotate', SelWMOList, @FM, @VM)
WMOutKeys = ''
SelWMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelList')
SelWMOList = SRP_Array('Rotate', SelWMOList, @FM, @VM)
SelWO = SelWMOList<2>
SelStep = SelWMOList<3>
SelCass = SelWMOList<4>
WOMatKeys = ''
If SelWO NE '' then
For each WONo in SelWO using @VM setting vPos
WOMatKeys<0, -1> = WONo:'*':SelCass<0 , vPos>
WMOutKeys<0, -1> = WONo:'*':SelStep<0 , vPos> :'*': SelCass<0 , vPos>
Next WONo
end
Swap @VM with @FM in WMOutKeys
Swap @VM with @FM in WOMAtKeys
SelCount = DCount(WMOutKeys, @FM)
* WOMatKeys = Xlate('WM_OUT', WMOutKeys, 'WO_MAT_KEY', 'X', '')
Transition = True$
HoldType = 'HOLD'
HoldData = ''
HoldData = Dialog_Box('DIALOG_HOLD',@WINDOW,Transition:@FM:@FM:HoldType)
If HoldData NE 'Cancel' then
Hold_Services('EnableMultipleHolds', WOMatKeys, 'WM_OUT', WMOutKeys, 'NDW_WM_OUT_QUICK_QUERY', '', HoldData)
For L = 1 to SelCount
ThisPos = SelPos<L>
Set_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.ItemValue[8;' : ThisPos : ']', 'On Hold')
Next L
HoldOffFlag = True$
HoldOnFlag = False$
Gosub CheckSelectedForHolds
end
end event
Event PUB_OFF_HOLD.CLICK()
SelPos = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelPos')
SelCount = Dcount(SelPos, @VM)
* SelWMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelList')
* SelWMOList = SRP_Array('Rotate', SelWMOList, @FM, @VM)
WMOutKeys = ''
SelWMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelList')
SelWMOList = SRP_Array('Rotate', SelWMOList, @FM, @VM)
SelWO = SelWMOList<2>
SelStep = SelWMOList<3>
SelCass = SelWMOList<4>
WOMatKeys = ''
If SelWO NE '' then
For each WONo in SelWO using @VM setting vPos
WOMatKeys<0, -1> = WONo:'*':SelCass<0 , vPos>
WMOutKeys<0, -1> = WONo:'*':SelStep<0 , vPos> :'*': SelCass<0 , vPos>
Next WONo
end
Swap @VM with @FM in WMOutKeys
Swap @VM with @FM in WOMAtKeys
SelCount = DCount(WMOutKeys, @FM)
* WOMatKeys = Xlate('WM_OUT', WMOutKeys, 'WO_MAT_KEY', 'X', '')
Transition = True$
HoldType = 'HOLD'
HoldData = ''
HoldData = Dialog_Box('DIALOG_HOLD',@WINDOW,Transition:@FM:@FM:HoldType)
If HoldData NE 'Cancel' then
Hold_Services('DisableMultipleHolds', WOMatKeys, 'WM_OUT', WMOutKeys, 'NDW_WM_OUT_QUICK_QUERY', '', HoldData)
For L = 1 to SelCount
ThisPos = SelPos<L>
Set_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.ItemValue[8;' : ThisPos : ']', 'Off Hold')
Next L
HoldOffFlag = False$
HoldOnFlag = True$
Gosub CheckSelectedForHolds
end
end event
Event PUB_CANCEL.CLICK()
@ -251,6 +334,9 @@ Event OLE_RPT_WM_OUT_LIST.OnSelChange()
Enabled = (SelWMOList NE '')
Set_Property(@Window:'.PUB_ENG_OPTIONS', 'ENABLED', Enabled)
end
HoldOnFlag = False$
HoldOffFlag = False$
Gosub CheckSelectedForHolds
end event
@ -281,6 +367,7 @@ Setup_OLE_Controls:
ColumnList<5> = 'Rx' : @VM : 'NUMBER' : @VM : 10 : @VM : @VM : @VM : @VM : @VM : @VM : 10 : @VM : 'Center' : @VM : @VM : '#######' : @VM : @VM : 'Segoe UI,9'
ColumnList<6> = 'FQA Sig' : @VM : 'TEXT' : @VM : 30 : @VM : @VM : @VM : @VM : @VM : @VM : 20 : @VM : 'Center' : @VM : @VM : @VM : @VM : 'Segoe UI,9'
ColumnList<7> = 'Cust Part No' : @VM : 'TEXT' : @VM : 30 : @VM : @VM : @VM : @VM : @VM : @VM : 20 : @VM : 'Center' : @VM : @VM : @VM : @VM : 'Segoe UI,9'
ColumnList<8> = 'Hold Status' : @VM : 'TEXT' : @VM : 30 : @VM : @VM : @VM : @VM : @VM : @VM : 20 : @VM : 'Center' : @VM : @VM : @VM : @VM : 'Segoe UI,9'
Set_Property(WMORptCtrl, 'OLE.ColumnList', ColumnList)
Set_Property(WMORptCtrl, 'OLE.MultiSelect', 2) ; // 2 = Multiselect Toggle Mode
@ -312,7 +399,8 @@ Setup_OLE_Controls:
If FormSize<3> > MaxClientWidth then
FormSize<3> = Oconv(MaxClientWidth * '0.9', 'MD0')
end
Set_Property(@Window, '@ORIGSIZE', FormSize)
Set_Property(@Window, '@ORIGSIZE', FormSize)
Gosub CheckSelectedForHolds
// Pull then save original list after formatting for savewarn purposes
Set_Property(WMORptCtrl, 'OLE.List', WMOList)
WMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.List')
@ -344,3 +432,48 @@ RefreshRowColors:
Set_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelPos', SelPos)
return
CheckSelectedForHolds:
If Unassigned(HoldOnFlag) then HoldOnFlag = False$
If Unassigned(HoldOffFlag) then HoldOffFlag = False$
SelWMOList = Get_Property(@Window : '.OLE_RPT_WM_OUT_LIST', 'OLE.SelList')
If SelWMOList NE '' then
SelWMOList = SRP_Array('Rotate', SelWMOList, @FM, @VM)
* WMOutKeys = SelWMOList<4>
HoldStatuses = SelWMOList<8>
* Swap @VM with @FM in WMOutKeys
* SelCount = DCount(WMOutKeys, @FM)
Swap @VM with @FM in HoldStatuses
SelCount = DCount(HoldStatuses, @FM)
For K = 1 to SelCount
* WOMatKey = Xlate('WM_OUT', WMOutKeys<K>, 'WO_MAT_KEY', 'X', '')
* HoldCheck = Hold_Services('CheckForHold', WOMatKey, '')
HoldText = HoldStatuses<K>
If HoldText = 'On Hold' then
HoldCheck = True$
end else
HoldCheck = False$
end
If HoldCheck EQ True$ AND HoldOffFlag EQ False$ then
HoldOffFlag = True$
end
If HoldCheck EQ False$ AND HoldOnFlag EQ False$ then
HoldOnFlag = True$
end
Until HoldOnFlag EQ True$ and HoldOffFlag EQ True$
Next K
end
if MemberOf(@USER4, 'ENG_TECH') OR MemberOf(@USER4, 'LEAD') OR MemberOf(@USER4, 'SUPERVISOR') then
// IF ANY SELECTED LOTS ARE ON HOLD, ENABLE PUB_OFF_HOLD
Set_Property(@Window:'.PUB_OFF_HOLD', 'ENABLED', HoldOffFlag)
end else
Set_Property(@Window:'.PUB_OFF_HOLD', 'ENABLED', False$)
end
// IF ANY SELECTED LOTS ARE NOT ON HOLD, ENABLE PUB_ON_HOLD
Set_Property(@Window:'.PUB_ON_HOLD', 'ENABLED', HoldOnFlag)
return