refactored codebase to not rely on WO_LOG calculated column indexes

This commit is contained in:
Infineon\StieberD
2025-07-11 13:27:14 -07:00
parent b53e805929
commit 2a6c0afddf
23 changed files with 2697 additions and 39059 deletions

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "declare function set_printer, Get_Property\r\ndeclare subroutine record_lock, Set_Property\r\n$insert msg_equates\r\n$insert lsl_users_equ\r\n\r\n*Void = Set_Property('SYSTSEM','IDLEPROC','')\r\nVoid = Set_Property(@WINDOW,'TIMER','')\r\n\r\n\r\nUNLOCK All\r\n/*\r\nDEAD - 1/27/2005 JCH\r\n* will write out the x and y coords for the user, so the menu comes up at the last used\r\n* location\r\nWinSize = get_property( @window, 'SIZE' )\r\nX = WinSize<1>\r\nY = WinSize<2>\r\nXsize = WinSize<3>\r\nYsize = WinSize<4>\r\n\r\nIF @USERNAME = 'BRYCE_BARB' THEN DEBUG\r\n\r\nopen 'LSL_USERS' to LSLUsersTableVar else\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'Unable to open LSL_USERS...'\r\n MsgInfo<mcol$> = -2\r\n MsgInfo<mrow$> = -2\r\n Void = msg( '', MsgInfo )\r\nend\r\n\r\nread UserRec from LSLUsersTableVar, @user4 then\r\n\t \r\n\t*UserRec = xlate( 'LSL_USERS', @user4, '', 'X' )\r\n\tUserRec<lsl_users_menu_xpos$> = X\r\n\tUserRec<lsl_users_menu_ypos$> = Y\r\n\tUserRec<lsl_users_menu_xsize$> = Xsize\r\n\tUserRec<lsl_users_menu_ysize$> = Ysize\r\n\twrite UserRec on LSLUsersTableVar, @user4 else Null\r\n\r\nEND;* End of User Rec Read\r\n*/\r\n\r\nRETURN 1\r\n"
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "DECLARE FUNCTION Start_Window\r\n\r\nvoid = Start_Window('REACT_STATUS_EVEN',@WINDOW,'')\r\nvoid = Start_Window('REACT_STATUS_ODD',@WINDOW,'')\r\n\r\nvoid = Start_Window('TOOL_STATUS',@WINDOW,'')\r\n\r\n\r\nRETURN 1"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "DECLARE subroutine Print_Barcode_Label, ErrMsg\r\nDECLARE function Popup\r\n\r\nUserIDs = Popup(@WINDOW,TypeOver,'USER_ID')\t;* Popup uses active select list created with MAKE.LIST\r\n\r\nIF UserIDs = '' THEN\r\n\tErrMsg('No users selected...')\r\n\tRETURN\r\nEND\r\n\r\nUserCnt = COUNT(UserIDs,@VM) + (UserIDs NE '')\r\n\r\n\r\nIDList = ''\r\nFOR I = 1 TO UserCnt\r\n\tUserID = UserIDs<1,I>\r\nNEXT I\r\n\r\nPrint_Barcode_Label ('EmployeeBadge', UserIDs)\r\n\r\nRETURN 0"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "DECLARE subroutine Print_Barcode_Label, ErrMsg\r\nDECLARE function Popup\r\n\r\nUserIDs = Popup(@WINDOW,TypeOver,'USER_ID')\t;* Popup uses active select list created with MAKE.LIST\r\n\r\nIF UserIDs = '' THEN\r\n\tErrMsg('No users selected...')\r\n\tRETURN\r\nEND\r\n\r\nUserCnt = COUNT(UserIDs,@VM) + (UserIDs NE '')\r\n\r\n\r\nIDList = ''\r\nFOR I = 1 TO UserCnt\r\n\tUserID = UserIDs<1,I>\r\nNEXT I\r\n\r\nPrint_Barcode_Label ('EmployeeBadge', UserIDs)\r\n\r\nRETURN 0"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "DECLARE subroutine Print_Barcode_Label, ErrMsg\r\nDECLARE function Popup\r\n\r\nUserIDs = Popup(@WINDOW,TypeOver,'USER_ID')\t;* Popup uses active select list created with MAKE.LIST\r\n\r\nIF UserIDs = '' THEN\r\n\tErrMsg('No users selected...')\r\n\tRETURN\r\nEND\r\n\r\nUserCnt = COUNT(UserIDs,@VM) + (UserIDs NE '')\r\n\r\n\r\nIDList = ''\r\nFOR I = 1 TO UserCnt\r\n\tUserID = UserIDs<1,I>\r\nNEXT I\r\n\r\nPrint_Barcode_Label ('EmployeeBadge', UserIDs)\r\n\r\nRETURN 0"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "DECLARE subroutine Print_Barcode_Label, ErrMsg\r\nDECLARE function Popup\r\n\r\nUserIDs = Popup(@WINDOW,TypeOver,'USER_ID')\t;* Popup uses active select list created with MAKE.LIST\r\n\r\nIF UserIDs = '' THEN\r\n\tErrMsg('No users selected...')\r\n\tRETURN\r\nEND\r\n\r\nUserCnt = COUNT(UserIDs,@VM) + (UserIDs NE '')\r\n\r\n\r\nIDList = ''\r\nFOR I = 1 TO UserCnt\r\n\tUserID = UserIDs<1,I>\r\nNEXT I\r\n\r\nPrint_Barcode_Label ('EmployeeBadge', UserIDs)\r\n\r\nRETURN 0"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "declare subroutine forward_event\r\n\r\nforward_event( x, y, Width, Height )\r\n*.group_1->size = -10:@fm:-10:@fm:Width:@fm:Height\r\nRETURN 0"
}
}
}

View File

@ -1,11 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "\r\nDeclare subroutine Post_Event, Set_Property\r\n\r\n*If @User4 EQ 'ERIK_L' then Set_Property(@Window, '@CLOSE', 1)\r\n\r\nClose = Get_Property(@Window, '@CLOSE')\r\n\r\nCurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')\r\n\r\nOPEN 'SYSLISTS' TO ListsFile THEN\r\n\tStation = @STATION\r\n\tStation = Station[1,'_']\t\t\r\n\tListKey = Station:'*KEEP_ALIVE'\r\n\tListRec = @USERNAME:@FM:CurrDTM\r\n\tWRITE ListRec ON ListsFile,ListKey ELSE NULL\r\nEND \r\n\r\n\r\nRETURN 1"
}
}
}

View File

@ -1,402 +0,0 @@
{
"header": {
"version": 1,
"type": "record"
},
"body": {
"record1": {
"<1>": "1010",
"<2>": "1",
"<3>": ""
},
"record2": {
"<1>": {
"<1,1>": "LSL_MAIN",
"<1,2>": "",
"<1,3>": "WINDOW",
"<1,4>": "",
"<1,5>": "147",
"<1,6>": "181",
"<1,7>": "-631",
"<1,8>": "-427",
"<1,9>": "Infineon Technologies",
"<1,10>": {
"<1,10,1>": "0x92C70000",
"<1,10,2>": "0x0"
},
"<1,11>": {
"<1,11,1>": "0x100",
"<1,11,2>": "0x80000000"
},
"<1,12>": "0",
"<1,13>": "-2",
"<1,14>": "0",
"<1,15>": "",
"<1,16>": "",
"<1,17>": "",
"<1,18>": "",
"<1,19>": "",
"<1,20>": "",
"<1,21>": "",
"<1,22>": "",
"<1,23>": "",
"<1,24>": {
"<1,24,1>": "0",
"<1,24,2>": "0",
"<1,24,3>": "0",
"<1,24,4>": "0",
"<1,24,5>": "0",
"<1,24,6>": "0"
},
"<1,25>": "0",
"<1,26>": "0",
"<1,27>": "",
"<1,28>": "",
"<1,29>": "",
"<1,30>": "",
"<1,31>": "",
"<1,32>": {
"<1,32,1>": "0x7FFFE",
"<1,32,2>": "0xF001E988"
},
"<1,33>": "",
"<1,34>": "LSL2*IMAGE*ICO*DATASET",
"<1,35>": "",
"<1,36>": "",
"<1,37>": {
"<1,37,1>": "0x10001",
"<1,37,2>": "0x10001"
},
"<1,38>": {
"<1,38,1>": "1",
"<1,38,2>": "1"
},
"<1,39>": "",
"<1,40>": "0",
"<1,41>": "",
"<1,42>": "",
"<1,43>": "",
"<1,44>": "",
"<1,45>": "",
"<1,46>": "",
"<1,47>": "",
"<1,48>": "",
"<1,49>": "",
"<1,50>": "",
"<1,51>": "",
"<1,52>": ""
}
},
"record3": {
"<1>": {
"<1,1>": "MDICLIENT",
"<1,2>": "RTIMDICLIENT",
"<1,3>": "MDICLIENT",
"<1,4>": "LSL_MAIN",
"<1,5>": "3",
"<1,6>": "7",
"<1,7>": "-625",
"<1,8>": "-607",
"<1,9>": "",
"<1,10>": {
"<1,10,1>": "0x56B00000",
"<1,10,2>": "0x0"
},
"<1,11>": {
"<1,11,1>": "0xC000",
"<1,11,2>": "0x80000000"
},
"<1,12>": "1",
"<1,13>": "-2",
"<1,14>": "0",
"<1,15>": "",
"<1,16>": "",
"<1,17>": "",
"<1,18>": "",
"<1,19>": "",
"<1,20>": "",
"<1,21>": "",
"<1,22>": "",
"<1,23>": "",
"<1,24>": "",
"<1,25>": "0",
"<1,26>": "0",
"<1,27>": "",
"<1,28>": "",
"<1,29>": "",
"<1,30>": "",
"<1,31>": "",
"<1,32>": {
"<1,32,1>": "0x7fffc",
"<1,32,2>": "0xf001c808"
},
"<1,33>": "",
"<1,34>": "",
"<1,35>": "",
"<1,36>": "",
"<1,37>": "",
"<1,38>": "",
"<1,39>": "",
"<1,40>": "1"
},
"<2>": ""
},
"record4": {
"<1>": {
"<1,1>": {
"<1,1,1>": "MENU",
"<1,1,2>": "4",
"<1,1,3>": "",
"<1,1,4>": "",
"<1,1,5>": "0",
"<1,1,6>": "0",
"<1,1,7>": "0",
"<1,1,8>": "0",
"<1,1,9>": "12",
"<1,1,10>": "",
"<1,1,11>": "0",
"<1,1,12>": ""
},
"<1,2>": {
"<1,2,1>": "POPUP",
"<1,2,2>": "1",
"<1,2,3>": "",
"<1,2,4>": "&File",
"<1,2,5>": "0",
"<1,2,6>": "0",
"<1,2,7>": "0",
"<1,2,8>": "0",
"<1,2,9>": "",
"<1,2,10>": "",
"<1,2,11>": "0",
"<1,2,12>": ""
},
"<1,3>": {
"<1,3,1>": "ITEM",
"<1,3,2>": "",
"<1,3,3>": "",
"<1,3,4>": "E&xit\tAlt+F4",
"<1,3,5>": "0",
"<1,3,6>": "0",
"<1,3,7>": "0",
"<1,3,8>": "1139",
"<1,3,9>": "",
"<1,3,10>": "",
"<1,3,11>": "0",
"<1,3,12>": ""
},
"<1,4>": {
"<1,4,1>": "POPUP",
"<1,4,2>": "2",
"<1,4,3>": "",
"<1,4,4>": "&DataWindows",
"<1,4,5>": "0",
"<1,4,6>": "0",
"<1,4,7>": "0",
"<1,4,8>": "0",
"<1,4,9>": "",
"<1,4,10>": "",
"<1,4,11>": "0",
"<1,4,12>": ""
},
"<1,5>": {
"<1,5,1>": "ITEM",
"<1,5,2>": "",
"<1,5,3>": "",
"<1,5,4>": "&Company",
"<1,5,5>": "0",
"<1,5,6>": "0",
"<1,5,7>": "0",
"<1,5,8>": "0",
"<1,5,9>": "",
"<1,5,10>": "",
"<1,5,11>": "0",
"<1,5,12>": ""
},
"<1,6>": {
"<1,6,1>": "ITEM",
"<1,6,2>": "",
"<1,6,3>": "",
"<1,6,4>": "&Personal Names",
"<1,6,5>": "0",
"<1,6,6>": "0",
"<1,6,7>": "0",
"<1,6,8>": "0",
"<1,6,9>": "",
"<1,6,10>": "",
"<1,6,11>": "0",
"<1,6,12>": ""
},
"<1,7>": {
"<1,7,1>": "POPUP",
"<1,7,2>": "2",
"<1,7,3>": "",
"<1,7,4>": "&Messages",
"<1,7,5>": "0",
"<1,7,6>": "0",
"<1,7,7>": "0",
"<1,7,8>": "0",
"<1,7,9>": "",
"<1,7,10>": "",
"<1,7,11>": "0",
"<1,7,12>": ""
},
"<1,8>": {
"<1,8,1>": "ITEM",
"<1,8,2>": "",
"<1,8,3>": "",
"<1,8,4>": "&New",
"<1,8,5>": "0",
"<1,8,6>": "0",
"<1,8,7>": "0",
"<1,8,8>": "0",
"<1,8,9>": "",
"<1,8,10>": "",
"<1,8,11>": "0",
"<1,8,12>": ""
},
"<1,9>": {
"<1,9,1>": "ITEM",
"<1,9,2>": "",
"<1,9,3>": "",
"<1,9,4>": "&Check/View",
"<1,9,5>": "0",
"<1,9,6>": "0",
"<1,9,7>": "0",
"<1,9,8>": "0",
"<1,9,9>": "",
"<1,9,10>": "",
"<1,9,11>": "0",
"<1,9,12>": ""
},
"<1,10>": {
"<1,10,1>": "POPUP",
"<1,10,2>": "2",
"<1,10,3>": "",
"<1,10,4>": "&Help",
"<1,10,5>": "0",
"<1,10,6>": "0",
"<1,10,7>": "0",
"<1,10,8>": "0",
"<1,10,9>": "",
"<1,10,10>": "",
"<1,10,11>": "0",
"<1,10,12>": ""
},
"<1,11>": {
"<1,11,1>": "ITEM",
"<1,11,2>": "",
"<1,11,3>": "",
"<1,11,4>": "&Help\tF1",
"<1,11,5>": "0",
"<1,11,6>": "0",
"<1,11,7>": "0",
"<1,11,8>": "112",
"<1,11,9>": "",
"<1,11,10>": "",
"<1,11,11>": "0",
"<1,11,12>": ""
},
"<1,12>": {
"<1,12,1>": "ITEM",
"<1,12,2>": "",
"<1,12,3>": "",
"<1,12,4>": "&About\tCtrl+F1",
"<1,12,5>": "0",
"<1,12,6>": "0",
"<1,12,7>": "0",
"<1,12,8>": "624",
"<1,12,9>": "",
"<1,12,10>": "",
"<1,12,11>": "0",
"<1,12,12>": ""
}
},
"<2>": {
"<2,1>": "",
"<2,2>": {
"<2,2,1>": {
"<2,2,1,1>": "E",
"<2,2,1,2>": "CLOSE",
"<2,2,1,3>": "@WINDOW",
"<2,2,1,4>": "",
"<2,2,1,5>": "",
"<2,2,1,6>": ""
},
"<2,2,2>": {
"<2,2,2,1>": "R",
"<2,2,2,2>": "EXECUTE",
"<2,2,2,3>": "LSL2*OIWINEXE**COMPANY",
"<2,2,2,4>": {
"<2,2,2,4,1>": "CreateParam",
"<2,2,2,4,2>": "LSL_MAIN"
},
"<2,2,2,5>": "",
"<2,2,2,6>": ""
},
"<2,2,3>": {
"<2,2,3,1>": "R",
"<2,2,3,2>": "EXECUTE",
"<2,2,3,3>": "LSL2*OIWINEXE**P_NAMES",
"<2,2,3,4>": {
"<2,2,3,4,1>": "CreateParam",
"<2,2,3,4,2>": "LSL_MAIN"
},
"<2,2,3,5>": "",
"<2,2,3,6>": ""
},
"<2,2,4>": {
"<2,2,4,1>": "R",
"<2,2,4,2>": "EXECUTE",
"<2,2,4,3>": "LSL2*OIWINEXE**NOTES",
"<2,2,4,4>": {
"<2,2,4,4,1>": "CreateParam",
"<2,2,4,4,2>": "LSL_MAIN"
},
"<2,2,4,5>": "",
"<2,2,4,6>": ""
},
"<2,2,5>": {
"<2,2,5,1>": "R",
"<2,2,5,2>": "EXECUTE",
"<2,2,5,3>": "LSL2*OIWINEXE**NOTE_PTRS",
"<2,2,5,4>": {
"<2,2,5,4,1>": "CreateParam",
"<2,2,5,4,2>": "LSL_MAIN"
},
"<2,2,5,5>": "",
"<2,2,5,6>": ""
},
"<2,2,6>": {
"<2,2,6,1>": "E",
"<2,2,6,2>": "HELP",
"<2,2,6,3>": "@FOCUS",
"<2,2,6,4>": "",
"<2,2,6,5>": "",
"<2,2,6,6>": ""
},
"<2,2,7>": {
"<2,2,7,1>": "E",
"<2,2,7,2>": "NOTES",
"<2,2,7,3>": "@FOCUS",
"<2,2,7,4>": "",
"<2,2,7,5>": "",
"<2,2,7,6>": ""
},
"<2,2,8>": ""
},
"<2,3>": {
"<2,3,1>": "FILE.EXIT",
"<2,3,2>": "DATAWINDOWS.COMPANY",
"<2,3,3>": "DATAWINDOWS.PERSONAL_NAMES",
"<2,3,4>": "MESSAGES.NEW",
"<2,3,5>": "MESSAGES.CHECK/VIEW",
"<2,3,6>": "HELP.HELP",
"<2,3,7>": "HELP.ABOUT",
"<2,3,8>": ""
},
"<2,4>": "0"
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
"<2>": "-2", "<2>": "-2",
"<3>": "-1", "<3>": "-1",
"<4>": "-1", "<4>": "-1",
"<5>": "16777215", "<5>": "-2",
"<6>": { "<6>": {
"<6,1>": { "<6,1>": {
"<6,1,1>": "MS Sans Serif", "<6,1,1>": "MS Sans Serif",
@ -143,11 +143,21 @@
"<28>": "", "<28>": "",
"<29>": "0", "<29>": "0",
"<30>": "0", "<30>": "0",
"<31>": "0", "<31>": "1",
"<32>": "0", "<32>": "0",
"<33>": "0", "<33>": "1",
"<34>": "16777215", "<34>": "-2",
"<35>": "16777215" "<35>": "-2",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
} }
} }
} }

View File

@ -6,17 +6,22 @@ COMPILE FUNCTION Comm_Dialog_Cass_Met_Export(Method, Parm1)
10/28/2005 - John C. Henry, J.C. Henry & Co., Inc. 10/28/2005 - John C. Henry, J.C. Henry & Co., Inc.
*/ */
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg $INSERT LOGICAL
DECLARE SUBROUTINE obj_Appwindow, Start_Window, Btree.Extract, Msg, Send_Info $INSERT WM_OUT_EQUATES
$INSERT PS_EQUATES
$INSERT POPUP_EQUATES
$INSERT MSG_EQUATES
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg, Btree.Extract, Msg, Send_Info
DECLARE SUBROUTINE obj_Appwindow, Start_Window
DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg
DECLARE FUNCTION SRP_Array
EQU CRLF$ TO \0D0A\ EQU CRLF$ TO \0D0A\
EQU COL$CUST_NO TO 1 ;* Customer edit table column equates EQU COL$CUST_NO TO 1 ;* Customer edit table column equates
EQU COL$CUST_NAME TO 2 EQU COL$CUST_NAME TO 2
EQU LTGREY$ TO 229 + (229*256) + (229*65536) ;* JCH standard colors for edittable backgrounds EQU LTGREY$ TO 229 + (229*256) + (229*65536) ;* JCH standard colors for edittable backgrounds
EQU GREY$ TO 192 + (192*256) + (192*65536) EQU GREY$ TO 192 + (192*256) + (192*65536)
EQU GREEN$ TO 192 + (220*256) + (192*65536) EQU GREEN$ TO 192 + (220*256) + (192*65536)
@ -30,11 +35,6 @@ EQU PURPLE$ TO 225 + (181*256) + (255*65536)
EQU DTS_MULTIROW$ TO 512 EQU DTS_MULTIROW$ TO 512
EQU DTS_LARGEDATA$ TO 4096 EQU DTS_LARGEDATA$ TO 4096
$INSERT WM_OUT_EQUATES
$INSERT PS_EQUATES
$INSERT POPUP_EQUATES
$INSERT MSG_EQUATES
ErrTitle = 'Error in Comm_Dialog_Order_Find' ErrTitle = 'Error in Comm_Dialog_Order_Find'
ErrorMsg = '' ErrorMsg = ''
@ -66,12 +66,9 @@ RETURN Result
Create: Create:
* * * * * * * * * * * * * *
obj_AppWindow('Create')
obj_AppWindow('Create') Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
GOSUB Refresh
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
GOSUB Refresh
RETURN RETURN
@ -80,9 +77,8 @@ RETURN
Refresh: Refresh:
* * * * * * * * * * * * * *
* Turn edit table symbolic column backgrounds to green * Turn edit table symbolic column backgrounds to green
stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$)
stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$) ;* Turn names column all rows green
RETURN RETURN
@ -91,25 +87,19 @@ RETURN
CustChar: CustChar:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustArray = Get_Property(CtrlName,'ARRAY') ;* Customer Information table
CustArray = Get_Property(CtrlName,'ARRAY') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
DataIn = CustArray<COL$CUST_NO,CurrRow>
CurrRow = CurrPos<2> IF LEN(DataIn) > 2 THEN
DataIn = CustArray<COL$CUST_NO,CurrRow>
IF LEN(DataIn) > 2 THEN
ReturnToCtrl = CtrlName ReturnToCtrl = CtrlName
ReturnToPos = CurrPos ReturnToPos = CurrPos
IF NOT(NUM(DataIn)) THEN IF NOT(NUM(DataIn)) THEN
Set_Property(CtrlName,'CELLPOS','',CurrPos) ;* Clear characters input Set_Property(CtrlName,'CELLPOS','',CurrPos) ;* Clear characters input
Start_Window('COMP_LOOKUP',@WINDOW,DataIn:@VM:'C':@FM:ReturnToCtrl:@FM:ReturnToPos,'','') Start_Window('COMP_LOOKUP',@WINDOW,DataIn:@VM:'C':@FM:ReturnToCtrl:@FM:ReturnToPos,'','')
END END
END END
RETURN RETURN
@ -118,18 +108,15 @@ RETURN
CustPC: CustPC:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrCol = CurrPos<1>
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
CurrCol = CurrPos<1> CustNo = CustList<CurrRow,COL$CUST_NO>
CurrRow = CurrPos<2> IF CustNo NE '' THEN
CustNo = CustList<CurrRow,COL$CUST_NO>
IF CustNo NE '' THEN
Set_Property(CtrlName,'CELLPOS',XLATE('COMPANY',CustNo,4,'X'),COL$CUST_NAME:@FM:CurrRow) Set_Property(CtrlName,'CELLPOS',XLATE('COMPANY',CustNo,4,'X'),COL$CUST_NAME:@FM:CurrRow)
END END
RETURN RETURN
@ -138,17 +125,14 @@ RETURN
CustDC: CustDC:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrCol = CurrPos<1>
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
CurrCol = CurrPos<1> CustNo = CustList<CurrRow,COL$CUST_NO>
CurrRow = CurrPos<2> LineCnt = COUNT(CustList,@FM) + (CustList NE '')
IF CustNo = '' THEN
CustNo = CustList<CurrRow,COL$CUST_NO>
LineCnt = COUNT(CustList,@FM) + (CustList NE '')
IF CustNo = '' THEN
CustNos = Popup(@WINDOW,'','CUSTOMER') CustNos = Popup(@WINDOW,'','CUSTOMER')
CustCnt = COUNT(CustNos,@VM) + (CustNos NE '') CustCnt = COUNT(CustNos,@VM) + (CustNos NE '')
IF CustCnt > LineCnt THEN IF CustCnt > LineCnt THEN
@ -156,7 +140,6 @@ IF CustNo = '' THEN
stat = Send_Message(CtrlName,'INSERT',-1,@VM:@FM) ; * Add blank lines stat = Send_Message(CtrlName,'INSERT',-1,@VM:@FM) ; * Add blank lines
NEXT I NEXT I
END END
FOR I = CurrRow TO CurrRow + CustCnt FOR I = CurrRow TO CurrRow + CustCnt
CustNo = CustNos<1,I> CustNo = CustNos<1,I>
CustName = XLATE('COMPANY',CustNo,4,'X') CustName = XLATE('COMPANY',CustNo,4,'X')
@ -164,10 +147,10 @@ IF CustNo = '' THEN
Set_Property(CtrlName,'CELLPOS',CustName,COL$CUST_NAME:@FM:I) Set_Property(CtrlName,'CELLPOS',CustName,COL$CUST_NAME:@FM:I)
Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1) Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1)
NEXT I NEXT I
END ELSE
END ELSE
ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers') ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers')
END END
RETURN RETURN
@ -175,79 +158,52 @@ RETURN
SubPNDC: SubPNDC:
* * * * * * * * * * * * * *
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO> CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO> LOOP
LOOP
LastCustNo = CustNos[-1,'B':@VM] LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = '' UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks CustNos[COL1(),99] = ''
REPEAT REPEAT
IF CustNos NE '' then
IF CustNos = '' THEN RETURN OPEN 'DICT.WO_LOG' TO DictVar THEN
* display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Substrate Part Numbers..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'SUB_PART_NO':@VM:'#':@FM SearchString := 'ORD_SUB_PART_NO':@VM:'#':@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag) Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Get_Status(errCode) THEN IF Not(Get_Status(errCode)) THEN
Msg(@WINDOW,MsgUp)
ErrMsg(errCode)
RETURN
END
IF WOKeys NE '' THEN
RawPartNos = XLATE('WO_LOG',WOKeys,'SUB_PART_NO','X') ;* Calculated field
IF Get_Status(errCode) THEN DEBUG
PartNos = '' PartNos = ''
IF WOKeys NE '' THEN
RawPartNos = XLATE('WO_LOG',WOKeys,'ORD_SUB_PART_NO','X')
IF Get_Status(errCode) THEN ErrMsg(errCode)
FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '') FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '')
RawPartNo = RawPartNos<1,I> RawPartNo = RawPartNos<1,I>
LOCATE RawPartNo IN PartNos BY 'AL' USING @VM SETTING Pos ELSE LOCATE RawPartNo IN PartNos BY 'AL' USING @VM SETTING Pos ELSE
PartNos = INSERT(PartNos,1,Pos,0,RawPartNo) PartNos = INSERT(PartNos,1,Pos,0,RawPartNo)
END END
NEXT I NEXT I
END ELSE
PartNos = ''
END END
IF PartNos NE '' THEN
Msg(@WINDOW,MsgUp)
IF PartNos = '' THEN
ErrMsg('No Substrate Part Numbers on file for specified customer.')
RETURN
END
PartNos := @VM PartNos := @VM
CONVERT @VM TO @RM IN PartNos CONVERT @VM TO @RM IN PartNos
CALL V119('S','','D','R',PartNos,'') CALL V119('S','','D','R',PartNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PartNos CONVERT @RM TO @VM IN PartNos
PartNos[-1,1] = '' ;* Strip trailing delimiter PartNos[-1,1] = ''
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PartNos TypeOver<PDISPLAY$> = PartNos
PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup PartNos = Popup(@WINDow,TypeOver,'CUST_PO')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PartNos NE '' THEN Set_Property(@WINDOW:'.SUB_PART_NO','DEFPROP',PartNos)
IF PartNos NE '' THEN END else
Set_Property(@WINDOW:'.SUB_PART_NO','DEFPROP',PartNos) ErrMsg('No Substrate Part Numbers on file for specified customer.')
END end
end else
ErrMsg(errCode)
END ELSE end
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') end else
END ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_CASS_MET_EXPORT.')
end
end
RETURN RETURN
@ -256,172 +212,144 @@ RETURN
LotNoDC: LotNoDC:
* * * * * * * * * * * * * *
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
LOOP
LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustNos = '' THEN RETURN
* display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Lot Numbers..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'LOT_NO':@VM:'#':@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Get_Status(errCode) THEN
Msg(@WINDOW,MsgUp)
ErrMsg(errCode)
RETURN
END
IF WOKeys NE '' THEN
RawLotNos = XLATE('WO_LOG',WOKeys,'LOT_NO','X') ;* Calculated field
IF Get_Status(errCode) THEN DEBUG
LotNos = '' LotNos = ''
WOKeys = ''
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = SRP_Array('Clean', CustNos, 'TrimAndMakeUnique', @VM)
IF CustNos NE '' then
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Not(Get_Status(errCode)) THEN
Query = 'LOT_NO':@VM:'#':@FM
dWoMat = ''
WOMatWONos = ''
Open 'DICT.WO_MAT' to dWoMat then
Flag = ''
WOMatKeys = ''
Btree.Extract(Query, 'WO_MAT', dWoMat, WOMatKeys, 'E', Flag)
If Not(Get_status(errCode)) then
If WOMatKeys NE '' then
WOMatWONos = SRP_Array('Rotate', WOMatKeys, @VM, '*')
WOMatWONos = Delete(WOMatWONos, 0, 2, 0)
Convert '*' to @VM in WOMatWONos
WOMatWONos = SRP_Array('Clean', WOMatWONos, 'TrimAndMakeUnique', @VM)
WOKeys = SRP_Array('Join', WOKeys, WOMatWONos, 'OR', @VM)
end
end else
ErrMsg('Error querying LOT_NO field of the WO_MAT table.')
end
end else
ErrMsg('Error opening DICT.WO_MAT table in order to query on LOT_NO field')
end
end else
ErrMsg(errCode)
end
IF WOKeys NE '' THEN
RawLotNos = XLATE('WO_LOG',WOKeys,'LOT_NO','X')
IF Get_Status(errCode) THEN ErrMsg(errCode)
FOR I = 1 TO COUNT(RawLotNos,@VM) + (RawLotNos NE '') FOR I = 1 TO COUNT(RawLotNos,@VM) + (RawLotNos NE '')
RawLotNo = RawLotNos<1,I> RawLotNo = RawLotNos<1,I>
LOCATE RawLotNo IN LotNos BY 'AL' USING @VM SETTING Pos ELSE LOCATE RawLotNo IN LotNos BY 'AL' USING @VM SETTING Pos ELSE
LotNos = INSERT(LotNos,1,Pos,0,RawLotNo) LotNos = INSERT(LotNos,1,Pos,0,RawLotNo)
END END
NEXT I NEXT I
END ELSE
LotNos = ''
END END
IF LotNos NE '' THEN
Msg(@WINDOW,MsgUp)
IF LotNos = '' THEN
ErrMsg('No Lot Numbers on file for specified customer.')
RETURN
END
LotNos := @VM LotNos := @VM
CONVERT @VM TO @RM IN LotNos CONVERT @VM TO @RM IN LotNos
CALL V119('S','','D','R',LotNos,'') CALL V119('S','','D','R',LotNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN LotNos CONVERT @RM TO @VM IN LotNos
LotNos[-1,1] = '' ;* Strip trailing delimiter LotNos[-1,1] = ''
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = LotNos TypeOver<PDISPLAY$> = LotNos
LotNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup LotNos = Popup(@WINDow,TypeOver,'CUST_PO')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF LotNos NE '' THEN Set_Property(@WINDOW:'.LOT_NO','DEFPROP',LotNos)
IF LotNos NE '' THEN END else
Set_Property(@WINDOW:'.LOT_NO','DEFPROP',LotNos) ErrMsg('No Lot Numbers on file for specified customer.')
end
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_CASS_MET_EXPORT.')
END END
end
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END
RETURN RETURN
* * * * * * * * * * * * * *
PSNoDC: PSNoDC:
* * * * * * * * * * * * * *
WOKeys = ''
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
CustNos = CustArray<COL$CUST_NO>
LOOP
LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustNos = '' THEN RETURN
* display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Product Specifications..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'PS_NO':@VM:'#':@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Get_Status(errCode) THEN
Msg(@WINDOW,MsgUp)
ErrMsg(errCode)
RETURN
END
IF WOKeys NE '' THEN
PSNs = '' PSNs = ''
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
CustNos = CustArray<COL$CUST_NO>
CustNos = SRP_Array('Clean', CustNos, 'TrimAndMakeUnique', @VM)
If CustNos NE '' then
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Not(Get_Status(errCode)) THEN
Query = 'PROD_SPEC_ID':@VM:'#':@FM
dWOStep = ''
WOStepWONos = ''
Open 'DICT.WO_STEP' to dWOStep then
Flag = ''
WOStepKeys = ''
Btree.Extract(Query, 'WO_STEP', dWOStep, WOStepKeys, 'E', Flag)
If Not(Get_Status(ErrCode)) then
If WOStepKeys NE '' then
WOStepWONos = SRP_Array('Rotate', WOStepKeys, @VM, '*')
WOStepWONos = Delete(WOStepWONos, 0, 2, 0)
Convert '*' to @VM in WOStepWONos
WOStepWONos = SRP_Array('Clean', WOStepWONos, 'TrimAndMakeUnique', @VM)
WOKeys = SRP_Array('Join', WOKeys, WOStepWONos, 'OR', @VM)
end
end else
ErrorMsg = 'Error querying PROD_SPEC_ID field in WO_STEP table.'
end
end else
ErrorMsg = 'Error opening DICT.WO_STEP table in order to query on PROD_SPEC_ID field. Error code: ':ErrCode
end
END else
ErrMsg(errCode)
end
IF WOKeys NE '' THEN
FOR N = 1 TO COUNT(WOKeys,@VM) + (WOKeys NE '') FOR N = 1 TO COUNT(WOKeys,@VM) + (WOKeys NE '')
WOKey = WOKeys<1,N> WOKey = WOKeys<1,N>
RawPSNs = XLATE('WO_LOG',WOKey,'PS_NO','X') RawPSNs = XLATE('WO_LOG',WOKey,'PS_NO','X')
FOR I = 1 TO COUNT(RawPSNs,@VM) + (RawPSNs NE '') FOR I = 1 TO COUNT(RawPSNs,@VM) + (RawPSNs NE '')
RawPSN = RawPSNs<1,I> RawPSN = RawPSNs<1,I>
LOCATE RawPSN IN PSNs BY 'AL' USING @VM SETTING Pos ELSE LOCATE RawPSN IN PSNs BY 'AL' USING @VM SETTING Pos ELSE
PSNs = INSERT(PSNs,1,Pos,0,RawPSN) PSNs = INSERT(PSNs,1,Pos,0,RawPSN)
END END
NEXT I NEXT I
NEXT N NEXT N
END ELSE
PSNs = ''
END END
IF PSNs NE '' THEN
Msg(@WINDOW,MsgUp)
IF PSNs = '' THEN
ErrMsg('No Product Specifications on file for specified customer.')
RETURN
END
PSNs := @VM PSNs := @VM
CONVERT @VM TO @RM IN PSNs CONVERT @VM TO @RM IN PSNs
CALL V119('S','','D','R',PSNs,'') CALL V119('S','','D','R',PSNs,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PSNs CONVERT @RM TO @VM IN PSNs
PSNs[-1,1] = '' ;* Strip trailing delimiter PSNs[-1,1] = '' ;* Strip trailing delimiter
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PSNs TypeOver<PDISPLAY$> = PSNs
PSNs = Popup(@WINDow,TypeOver,'CUST_PO') PSNs = Popup(@WINDow,TypeOver,'CUST_PO')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PSNs NE '' THEN IF PSNs NE '' THEN
CONVERT @VM TO @FM IN PSNs CONVERT @VM TO @FM IN PSNs
Set_Property(@WINDOW:'.PS_NO','LIST',PSNs) Set_Property(@WINDOW:'.PS_NO','LIST',PSNs)
END END
END else
ErrMsg('No Product Specifications on file for specified customer.')
END ELSE end
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
end
RETURN RETURN
@ -430,65 +358,43 @@ RETURN
WONoDC: WONoDC:
* * * * * * * * * * * * * *
WOKeys = Collect.IXVals('WM_OUT', 'WO_NO') WOKeys = Collect.IXVals('WM_OUT', 'WO_NO')
CONVERT @FM TO @VM IN WOKeys
CONVERT @FM TO @VM IN WOKeys IF Not(Get_Status(errCode)) THEN
IF WOKeys NE '' THEN
IF Get_Status(errCode) THEN ErrMsg(ErrCode)
IF WOKeys NE '' THEN
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = WOKeys TypeOver<PDISPLAY$> = WOKeys
TypeOver<PMODE$> = 'K' TypeOver<PMODE$> = 'K'
WOKeys = Popup(@WINDOW,TypeOver,'WO_LOG_QUERY') WOKeys = Popup(@WINDOW,TypeOver,'WO_LOG_QUERY')
IF Get_Status(errCode) THEN IF Not(Get_Status(errCode)) THEN
ErrMsg(errCode)
END
IF WOKeys NE '' THEN IF WOKeys NE '' THEN
CONVERT @VM TO @FM IN WOKeys CONVERT @VM TO @FM IN WOKeys
Set_Property(@WINDOW:'.WO_NO','LIST',WOKeys) Set_Property(@WINDOW:'.WO_NO','LIST',WOKeys)
END END
END END else
RETURN ErrMsg(errCode)
end
END
end else
ErrMsg(ErrCode)
end
RETURN
* * * * * * * * * * * * * *
CustPNDC: CustPNDC:
* * * * * * * * * * * * * *
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY') CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
CustNos = CustArray<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO> CustNos = SRP_Array('Clean', CustNos, 'TrimAndMakeUnique', @VM)
IF CustNos NE '' then
LOOP OPEN 'DICT.WO_LOG' TO DictVar THEN
LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustNos = '' THEN RETURN
* display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Part Numbers..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'CUST_PART_NO':@VM:'#':@FM SearchString := 'CUST_PART_NO':@VM:'#':@FM
Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag) Btree.Extract(SearchString, 'WO_LOG', DictVar, WOKeys, '', Flag)
IF Get_Status(errCode) THEN IF Not(Get_Status(errCode)) THEN
Msg(@WINDOW,MsgUp)
ErrMsg(errCode)
RETURN
END
IF WOKeys NE '' THEN IF WOKeys NE '' THEN
PartNos = '' PartNos = ''
FOR N = 1 TO COUNT(WOKeys,@VM) + (WOKeys NE '') FOR N = 1 TO COUNT(WOKeys,@VM) + (WOKeys NE '')
@ -496,64 +402,49 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
RawPartNos = XLATE('WO_LOG',WOKey,'PART_NO','X') RawPartNos = XLATE('WO_LOG',WOKey,'PART_NO','X')
FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '') FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '')
RawPartNo = RawPartNos<1,I> RawPartNo = RawPartNos<1,I>
LOCATE RawPartNo IN PartNos BY 'AL' USING @VM SETTING Pos ELSE LOCATE RawPartNo IN PartNos BY 'AL' USING @VM SETTING Pos ELSE
PartNos = INSERT(PartNos,1,Pos,0,RawPartNo) PartNos = INSERT(PartNos,1,Pos,0,RawPartNo)
END END
NEXT I NEXT I
NEXT N NEXT N
END ELSE END ELSE
PartNos = '' PartNos = ''
END END
IF PartNos NE '' THEN
Msg(@WINDOW,MsgUp)
IF PartNos = '' THEN
ErrMsg('No Customer Part Numbers on file for specified customer.')
RETURN
END
PartNos := @VM PartNos := @VM
CONVERT @VM TO @RM IN PartNos CONVERT @VM TO @RM IN PartNos
CALL V119('S','','D','R',PartNos,'') CALL V119('S','','D','R',PartNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PartNos CONVERT @RM TO @VM IN PartNos
PartNos[-1,1] = '' ;* Strip trailing delimiter PartNos[-1,1] = ''
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PartNos TypeOver<PDISPLAY$> = PartNos
PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;* Needs a popup PartNos = Popup(@WINDow,TypeOver,'CUST_PO')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PartNos NE '' THEN Set_Property(@WINDOW:'.CUST_PART_NO','DEFPROP',PartNos)
IF PartNos NE '' THEN END else
Set_Property(@WINDOW:'.CUST_PART_NO','DEFPROP',PartNos) ErrMsg('No Customer Part Numbers on file for specified customer.')
END end
END else
END ELSE ErrMsg(errCode)
end
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
end
RETURN RETURN
* * * * * * * * * * * * * *
LUDate: LUDate:
* * * * * * * * * * * * * *
ReturnCtrl = Parm1[1,@RM] ReturnCtrl = Parm1[1,@RM]
IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS')
IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS') DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW)
RetVal = OCONV(DateSelected, 'D4/')
DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW) IF RetVal NE '' THEN obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
RetVal = OCONV(DateSelected, 'D4/')
IF RetVal NE '' THEN
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
END
RETURN RETURN
@ -565,93 +456,40 @@ Cancel:
RETURN RETURN
* * * * * * * * * * * * * *
PerformQuery: PerformQuery:
* * * * * * * * * * * * * *
* Customer numbers * SearchString = 'MAKEUP_BOX':@VM:'0':@VM:'':@FM
SearchString = 'MAKEUP_BOX':@VM:'0':@VM:'':@FM CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = SRP_Array('Clean', CustNos, 'TrimAndMakeUnique', @VM)
IF CustNos NE '' THEN SearchString := 'CUST_NO':@VM:CustNos:@FM
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO> LotNos = Get_Property(@WINDOW:'.LOT_NO','ARRAY')<1>
LotNos = SRP_Array('Clean', LotNos, 'TrimAndMakeUnique', @VM)
IF LotNos NE '' THEN SearchString := 'LOT_NO':@VM:LotNos:@FM
LOOP CustPNs = Get_Property(@WINDOW:'.CUST_PART_NO','ARRAY')<1>
LastVar = CustNos[-1,'B':@VM] CustPNs = SRP_Array('Clean', CustPNs, 'TrimAndMakeUnique', @VM)
UNTIL LastVar NE '' OR CustNos = '' IF CustPNs NE '' THEN SearchString := 'CUST_PART_NO':@VM:CustPNs:@FM
CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustNos NE '' THEN SearchString := 'CUST_NO':@VM:CustNos:@FM SubPartNos = Get_Property(@WINDOW:'.SUB_PART_NO','ARRAY')<1>
SubPartNos = SRP_Array('Clean', SubPartNos, 'TrimAndMakeUnique', @VM)
IF SubPartNos NE '' THEN SearchString := 'SUB_PART_NO':@VM:SubPartNos:@FM
* LotNumbers * PS_NOs = Get_Property(@WINDOW:'.PS_NO','ARRAY')<1>
PS_NOs = SRP_Array('Clean', PS_NOs, 'TrimAndMakeUnique', @VM)
IF PS_NOs NE '' THEN SearchString := 'SHIP_PSN':@VM:PS_NOs:@FM
LotNos = Get_Property(@WINDOW:'.LOT_NO','ARRAY')<1> WO_NOs = Get_Property(@WINDOW:'.WO_NO','ARRAY')<1>
WO_NOs = SRP_Array('Clean', WO_NOs, 'TrimAndMakeUnique', @VM)
IF WO_NOs NE '' THEN SearchString := 'WO_NO':@VM:WO_NOs:@FM
LOOP StartDt = ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D')
LastVal = LotNos[-1,'B':@VM] EndDt = ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D')
UNTIL LastVal NE '' OR LotNos = ''
LotNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF LotNos NE '' THEN SearchString := 'LOT_NO':@VM:LotNos:@FM BEGIN CASE
* Cust Part Number *
CustPNs = Get_Property(@WINDOW:'.CUST_PART_NO','ARRAY')<1>
LOOP
LastVal = CustPNs[-1,'B':@VM]
UNTIL LastVal NE '' OR CustPNs = ''
CustPNS[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustPNs NE '' THEN SearchString := 'CUST_PART_NO':@VM:CustPNs:@FM
* Substrate Part Numbers *
SubPartNos = Get_Property(@WINDOW:'.SUB_PART_NO','ARRAY')<1>
LOOP
LastVal = SubPartNos[-1,'B':@VM]
UNTIL LastVal NE '' OR SubPartNos = ''
SubPartNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF SubPartNos NE '' THEN SearchString := 'SUB_PART_NO':@VM:SubPartNos:@FM
* PSN Nos *
PS_NOs = Get_Property(@WINDOW:'.PS_NO','ARRAY')<1>
LOOP
LastVal = PS_NOs[-1,'B':@VM]
UNTIL LastVal NE '' OR PS_NOs = ''
PS_NOs[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF PS_NOs NE '' THEN SearchString := 'SHIP_PSN':@VM:PS_NOs:@FM
* WO Nos *
WO_NOs = Get_Property(@WINDOW:'.WO_NO','ARRAY')<1>
LOOP
LastVal = WO_NOs[-1,'B':@VM]
UNTIL LastVal NE '' OR WO_NOs = ''
WO_NOs[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF WO_NOs NE '' THEN SearchString := 'WO_NO':@VM:WO_NOs:@FM
* Entry Dates *
StartDt = ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D')
EndDt = ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D')
BEGIN CASE
CASE StartDt NE '' AND EndDt = '' CASE StartDt NE '' AND EndDt = ''
SearchString := 'RDS_FINAL_SIG_DT':@VM:'>=':OConv(StartDt, 'D4/'):@FM SearchString := 'RDS_FINAL_SIG_DT':@VM:'>=':OConv(StartDt, 'D4/'):@FM
@ -664,36 +502,21 @@ BEGIN CASE
EndDt += 1 EndDt += 1
SearchString := 'RDS_FINAL_SIG_DT':@VM:OConv(StartDt, 'D4/'):'~':OConv(EndDt, 'D4/'):@FM SearchString := 'RDS_FINAL_SIG_DT':@VM:OConv(StartDt, 'D4/'):'~':OConv(EndDt, 'D4/'):@FM
CASE 1 CASE Otherwise$
NULL NULL
END CASE END CASE
OPEN 'DICT.WO_MAT' TO DictVar THEN OPEN 'DICT.WO_MAT' TO DictVar THEN
Def = ""
Def<MTEXT$> = "Selecting WO_MAT Recrods..."
Def<MTYPE$> = "U"
* display the processing message and do the processing
MsgUp = Msg(@window, Def)
Btree.Extract(SearchString,'WO_MAT',DictVar,WMOKeys,'',flag) Btree.Extract(SearchString,'WO_MAT',DictVar,WMOKeys,'',flag)
IF Get_Status(errCode) THEN ErrMsg(errCode) IF Not(Get_Status(errCode)) THEN
Msg(@window, MsgUp)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
End_Dialog(@WINDOW,WMOKeys) End_Dialog(@WINDOW,WMOKeys)
end else
END ELSE ErrMsg(errCode)
end
END ELSE
ErrMsg('Unable to open DICT.WO_MAT in routine COMM_DIALOG_CASS_MET_EXPORT') ErrMsg('Unable to open DICT.WO_MAT in routine COMM_DIALOG_CASS_MET_EXPORT')
END END
RETURN RETURN

View File

@ -1,24 +1,30 @@
COMPILE FUNCTION Comm_Dialog_WO_Find(Method, Parm1) COMPILE FUNCTION Comm_Dialog_WO_Find(Method, Parm1)
/* /*
Commuter module for Dialog_WO_Find window. Commuter module for Dialog_WO_Find window.
01/14/2005 - John C. Henry, J.C. Henry & Co., Inc. 01/14/2005 - John C. Henry, J.C. Henry & Co., Inc.
*/ */
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg, Btree.Extract, Msg, Send_Info
DECLARE SUBROUTINE obj_Appwindow, Start_Window, Btree.Extract, Msg, Send_Info DECLARE SUBROUTINE obj_Appwindow, Start_Window
DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg
DECLARE FUNCTION SRP_Array
$INSERT LOGICAL
$INSERT PS_EQUATES
$INSERT POPUP_EQUATES
$INSERT MSG_EQUATES
$INSERT WO_LOG_EQUATES
$INSERT WO_STEP_EQUATES
$INSERT WO_MAT_EQUATES
EQU CRLF$ TO \0D0A\ EQU CRLF$ TO \0D0A\
EQU COL$CUST_NO TO 1 ;* Customer edit table column equates EQU COL$CUST_NO TO 1 ;* Customer edit table column equates
EQU COL$CUST_NAME TO 2 EQU COL$CUST_NAME TO 2
EQU COL$REACT_TYPE TO 1 EQU COL$REACT_TYPE TO 1
EQU LTGREY$ TO 229 + (229*256) + (229*65536) ;* JCH standard colors for edittable backgrounds EQU LTGREY$ TO 229 + (229*256) + (229*65536) ;* JCH standard colors for edittable backgrounds
EQU GREY$ TO 192 + (192*256) + (192*65536) EQU GREY$ TO 192 + (192*256) + (192*65536)
EQU GREEN$ TO 192 + (220*256) + (192*65536) EQU GREEN$ TO 192 + (220*256) + (192*65536)
@ -32,17 +38,13 @@ EQU PURPLE$ TO 225 + (181*256) + (255*65536)
EQU DTS_MULTIROW$ TO 512 EQU DTS_MULTIROW$ TO 512
EQU DTS_LARGEDATA$ TO 4096 EQU DTS_LARGEDATA$ TO 4096
$INSERT WO_LOG_EQU
$INSERT PS_EQUATES
$INSERT POPUP_EQUATES
$INSERT MSG_EQUATES
ErrTitle = 'Error in Comm_Dialog_Order_Find' ErrTitle = 'Error in Comm_Dialog_Order_Find'
ErrorMsg = '' ErrorMsg = ''
Result = '' Result = ''
BEGIN CASE BEGIN CASE
CASE Method = 'Create' ; GOSUB Create CASE Method = 'Create' ; GOSUB Create
CASE Method = 'CustChar' ; GOSUB CustChar CASE Method = 'CustChar' ; GOSUB CustChar
CASE Method = 'CustPC' ; GOSUB CustPC CASE Method = 'CustPC' ; GOSUB CustPC
@ -56,7 +58,7 @@ BEGIN CASE
CASE Method = 'Cancel' ; GOSUB Cancel CASE Method = 'Cancel' ; GOSUB Cancel
CASE Method = 'Refresh' ; GOSUB Refresh CASE Method = 'Refresh' ; GOSUB Refresh
CASE Method = 'PerformQuery' ; GOSUB PerformQuery CASE Method = 'PerformQuery' ; GOSUB PerformQuery
CASE 1 CASE Otherwise$
ErrMsg(ErrTitle:@SVM:'Unknown method ':QUOTE(Method):' passed to routine.') ErrMsg(ErrTitle:@SVM:'Unknown method ':QUOTE(Method):' passed to routine.')
END CASE END CASE
@ -68,12 +70,11 @@ RETURN Result
Create: Create:
* * * * * * * * * * * * * *
obj_AppWindow('Create')
obj_AppWindow('Create') Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX')
Set_Property(@WINDOW,'STATUSLINE',@WINDOW:'.STATUSLINE_FIX') GOSUB Refresh
GOSUB Refresh
RETURN RETURN
@ -82,9 +83,9 @@ RETURN
Refresh: Refresh:
* * * * * * * * * * * * * *
* Turn edit table symbolic column backgrounds to green * Turn edit table symbolic column backgrounds to green
stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$) ;* Turn names column all rows green stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$) ;* Turn names column all rows green
RETURN RETURN
@ -93,25 +94,20 @@ RETURN
CustChar: CustChar:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustArray = Get_Property(CtrlName,'ARRAY') ;* Customer Information table
CustArray = Get_Property(CtrlName,'ARRAY') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
DataIn = CustArray<COL$CUST_NO,CurrRow>
CurrRow = CurrPos<2>
DataIn = CustArray<COL$CUST_NO,CurrRow>
IF LEN(DataIn) > 2 THEN
IF LEN(DataIn) > 2 THEN
ReturnToCtrl = CtrlName ReturnToCtrl = CtrlName
ReturnToPos = CurrPos ReturnToPos = CurrPos
IF NOT(NUM(DataIn)) THEN IF NOT(NUM(DataIn)) THEN
Set_Property(CtrlName,'CELLPOS','',CurrPos) ;* Clear characters input Set_Property(CtrlName,'CELLPOS','',CurrPos) ;* Clear characters input
Start_Window('COMP_LOOKUP',@WINDOW,DataIn:@VM:'C':@FM:ReturnToCtrl:@FM:ReturnToPos,'','') Start_Window('COMP_LOOKUP',@WINDOW,DataIn:@VM:'C':@FM:ReturnToCtrl:@FM:ReturnToPos,'','')
END END
END END
RETURN RETURN
@ -120,18 +116,15 @@ RETURN
CustPC: CustPC:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrCol = CurrPos<1>
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
CurrCol = CurrPos<1> CustNo = CustList<CurrRow,COL$CUST_NO>
CurrRow = CurrPos<2> IF CustNo NE '' THEN
CustNo = CustList<CurrRow,COL$CUST_NO>
IF CustNo NE '' THEN
Set_Property(CtrlName,'CELLPOS',XLATE('COMPANY',CustNo,4,'X'),COL$CUST_NAME:@FM:CurrRow) Set_Property(CtrlName,'CELLPOS',XLATE('COMPANY',CustNo,4,'X'),COL$CUST_NAME:@FM:CurrRow)
END END
RETURN RETURN
@ -140,17 +133,14 @@ RETURN
CustDC: CustDC:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.CUST_INFO' CtrlName = @WINDOW:'.CUST_INFO'
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table
CustList = Get_Property(CtrlName,'LIST') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrCol = CurrPos<1>
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
CurrCol = CurrPos<1> CustNo = CustList<CurrRow,COL$CUST_NO>
CurrRow = CurrPos<2> LineCnt = COUNT(CustList,@FM) + (CustList NE '')
IF CustNo = '' THEN
CustNo = CustList<CurrRow,COL$CUST_NO>
LineCnt = COUNT(CustList,@FM) + (CustList NE '')
IF CustNo = '' THEN
CustNos = Popup(@WINDOW,'','CUSTOMER') CustNos = Popup(@WINDOW,'','CUSTOMER')
CustCnt = COUNT(CustNos,@VM) + (CustNos NE '') CustCnt = COUNT(CustNos,@VM) + (CustNos NE '')
IF CustCnt > LineCnt THEN IF CustCnt > LineCnt THEN
@ -167,9 +157,10 @@ IF CustNo = '' THEN
Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1) Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1)
NEXT I NEXT I
END ELSE END ELSE
ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers') ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers')
END END
RETURN RETURN
@ -177,26 +168,23 @@ RETURN
SubPNDC: SubPNDC:
* * * * * * * * * * * * * *
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO> CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO> LOOP
LOOP
LastCustNo = CustNos[-1,'B':@VM] LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = '' UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT REPEAT
IF CustNos = '' THEN RETURN IF CustNos = '' THEN RETURN
* display the processing message and do the processing * display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Substrate Part Numbers..."
Def<MTYPE$> = "U"
Def = "" MsgUp = Msg(@window, Def)
Def<MTEXT$> = "Selecting Substrate Part Numbers..." OPEN 'DICT.WO_LOG' TO DictVar THEN
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'SUB_PART_NO':@VM:'#':@FM SearchString := 'SUB_PART_NO':@VM:'#':@FM
@ -209,7 +197,7 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
IF WOKeys NE '' THEN IF WOKeys NE '' THEN
RawPartNos = XLATE('WO_LOG',WOKeys,'SUB_PART_NO','X') ;* Calculated field RawPartNos = XLATE('WO_LOG',WOKeys,'SUB_PART_NO','X') ;* Calculated field
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
PartNos = '' PartNos = ''
FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '') FOR I = 1 TO COUNT(RawPartNos,@VM) + (RawPartNos NE '')
RawPartNo = RawPartNos<1,I> RawPartNo = RawPartNos<1,I>
@ -232,24 +220,22 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
PartNos := @VM PartNos := @VM
CONVERT @VM TO @RM IN PartNos CONVERT @VM TO @RM IN PartNos
CALL V119('S','','D','R',PartNos,'') CALL V119('S','','D','R',PartNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PartNos CONVERT @RM TO @VM IN PartNos
PartNos[-1,1] = '' ;* Strip trailing delimiter PartNos[-1,1] = '' ;* Strip trailing delimiter
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PartNos TypeOver<PDISPLAY$> = PartNos
PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PartNos NE '' THEN IF PartNos NE '' THEN
Set_Property(@WINDOW:'.SUB_PART_NO','DEFPROP',PartNos) Set_Property(@WINDOW:'.SUB_PART_NO','DEFPROP',PartNos)
END END
END ELSE
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
RETURN RETURN
@ -258,25 +244,22 @@ RETURN
LotNoDC: LotNoDC:
* * * * * * * * * * * * * *
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO> LOOP
LOOP
LastCustNo = CustNos[-1,'B':@VM] LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = '' UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT REPEAT
IF CustNos = '' THEN RETURN IF CustNos = '' THEN RETURN
* display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Lot Numbers..."
Def<MTYPE$> = "U"
* display the processing message and do the processing MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
Def = ""
Def<MTEXT$> = "Selecting Lot Numbers..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'LOT_NO':@VM:'#':@FM SearchString := 'LOT_NO':@VM:'#':@FM
@ -289,7 +272,7 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
IF WOKeys NE '' THEN IF WOKeys NE '' THEN
RawLotNos = XLATE('WO_LOG',WOKeys,'LOT_NO','X') ;* Calculated field RawLotNos = XLATE('WO_LOG',WOKeys,'LOT_NO','X') ;* Calculated field
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
LotNos = '' LotNos = ''
FOR I = 1 TO COUNT(RawLotNos,@VM) + (RawLotNos NE '') FOR I = 1 TO COUNT(RawLotNos,@VM) + (RawLotNos NE '')
RawLotNo = RawLotNos<1,I> RawLotNo = RawLotNos<1,I>
@ -312,57 +295,49 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
LotNos := @VM LotNos := @VM
CONVERT @VM TO @RM IN LotNos CONVERT @VM TO @RM IN LotNos
CALL V119('S','','D','R',LotNos,'') CALL V119('S','','D','R',LotNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN LotNos CONVERT @RM TO @VM IN LotNos
LotNos[-1,1] = '' ;* Strip trailing delimiter LotNos[-1,1] = '' ;* Strip trailing delimiter
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = LotNos TypeOver<PDISPLAY$> = LotNos
LotNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup LotNos = Popup(@WINDow,TypeOver,'CUST_PO') ;****** Need a popup
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF LotNos NE '' THEN IF LotNos NE '' THEN
Set_Property(@WINDOW:'.LOT_NO','DEFPROP',LotNos) Set_Property(@WINDOW:'.LOT_NO','DEFPROP',LotNos)
END END
END ELSE
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
RETURN RETURN
* * * * * * * * * * * * * *
PSNoDC: PSNoDC:
* * * * * * * * * * * * * *
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY') CustNos = CustArray<COL$CUST_NO>
CustNos = CustArray<COL$CUST_NO> LOOP
LOOP
LastCustNo = CustNos[-1,'B':@VM] LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = '' UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT REPEAT
IF CustNos = '' THEN RETURN IF CustNos = '' THEN RETURN
* display the processing message and do the processing * display the processing message and do the processing
Def = ""
Def<MTEXT$> = "Selecting Product Specifications..."
Def<MTYPE$> = "U"
Def = "" MsgUp = Msg(@window, Def)
Def<MTEXT$> = "Selecting Product Specifications..." OPEN 'DICT.WO_LOG' TO DictVar THEN
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'PS_NO':@VM:'#':@FM SearchString := 'PS_NO':@VM:'#':@FM
@ -405,45 +380,39 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
PSNs := @VM PSNs := @VM
CONVERT @VM TO @RM IN PSNs CONVERT @VM TO @RM IN PSNs
CALL V119('S','','D','R',PSNs,'') CALL V119('S','','D','R',PSNs,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PSNs CONVERT @RM TO @VM IN PSNs
PSNs[-1,1] = '' ;* Strip trailing delimiter PSNs[-1,1] = '' ;* Strip trailing delimiter
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PSNs TypeOver<PDISPLAY$> = PSNs
PSNs = Popup(@WINDow,TypeOver,'CUST_PO') PSNs = Popup(@WINDow,TypeOver,'CUST_PO')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PSNs NE '' THEN IF PSNs NE '' THEN
CONVERT @VM TO @FM IN PSNs CONVERT @VM TO @FM IN PSNs
Set_Property(@WINDOW:'.PS_NO','LIST',PSNs) Set_Property(@WINDOW:'.PS_NO','LIST',PSNs)
END END
END ELSE
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
RETURN RETURN
* * * * * * * * * * * * * *
ReactTypeDC: ReactTypeDC:
* * * * * * * * * * * * * *
CtrlName = @WINDOW:'.REACT_TYPE' CtrlName = @WINDOW:'.REACT_TYPE'
RTypeList = Get_Property(CtrlName,'LIST') ;* Customer Information table
RTypeList = Get_Property(CtrlName,'LIST') ;* Customer Information table CurrPos = Get_Property(CtrlName,'SELPOS')
CurrCol = CurrPos<1>
CurrPos = Get_Property(CtrlName,'SELPOS') CurrRow = CurrPos<2>
CurrCol = CurrPos<1> RType = RTypeList<CurrRow,COL$REACT_TYPE>
CurrRow = CurrPos<2> LineCnt = COUNT(RTypeList,@FM) + (RTypeList NE '')
IF RType = '' THEN
RType = RTypeList<CurrRow,COL$REACT_TYPE>
LineCnt = COUNT(RTypeList,@FM) + (RTypeList NE '')
IF RType = '' THEN
RTypes = Popup(@WINDOW,'','REACTOR_TYPE') RTypes = Popup(@WINDOW,'','REACTOR_TYPE')
rCnt = COUNT(RTypes,@VM) + (RTypes NE '') rCnt = COUNT(RTypes,@VM) + (RTypes NE '')
IF rCnt > LineCnt THEN IF rCnt > LineCnt THEN
@ -454,50 +423,40 @@ IF RType = '' THEN
FOR I = CurrRow TO CurrRow + rCnt FOR I = CurrRow TO CurrRow + rCnt
RType = RTypes<1,I> RType = RTypes<1,I>
*CustName = XLATE('COMPANY',CustNo,4,'X')
Set_Property(CtrlName,'CELLPOS',RType,COL$REACT_TYPE:@FM:I) Set_Property(CtrlName,'CELLPOS',RType,COL$REACT_TYPE:@FM:I)
*Set_Property(CtrlName,'CELLPOS',CustName,COL$CUST_NAME:@FM:I)
*Set_Property(CtrlName,'SELPOS',COL$CUST_NO:@FM:I+1)
NEXT I NEXT I
END ELSE
END ELSE
ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers') ErrMsg('DoubleClick on the first empty Cust No field to view a popup of all Customers')
END END
RETURN RETURN
* * * * * * * * * * * * * *
CustPNDC: CustPNDC:
* * * * * * * * * * * * * *
CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY') CustArray = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')
CustNos = CustArray<COL$CUST_NO> CustNos = CustArray<COL$CUST_NO>
LOOP LOOP
LastCustNo = CustNos[-1,'B':@VM] LastCustNo = CustNos[-1,'B':@VM]
UNTIL LastCustNo NE '' OR CustNos = '' UNTIL LastCustNo NE '' OR CustNos = ''
CustNos[COL1(),99] = '' ;* Trim trailing blanks CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT REPEAT
IF CustNos = '' THEN RETURN IF CustNos = '' THEN RETURN
* display the processing message and do the processing * display the processing message and do the processing
Def = "" Def = ""
Def<MTEXT$> = "Selecting Part Numbers..." Def<MTEXT$> = "Selecting Part Numbers..."
Def<MTYPE$> = "U" Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def) MsgUp = Msg(@window, Def)
OPEN 'DICT.WO_LOG' TO DictVar THEN OPEN 'DICT.WO_LOG' TO DictVar THEN
SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM SearchString = 'CUST_NO':@VM:CustNos:@VM:@FM
SearchString := 'CUST_PART_NO':@VM:'#':@FM SearchString := 'CUST_PART_NO':@VM:'#':@FM
@ -520,7 +479,6 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
PartNos = INSERT(PartNos,1,Pos,0,RawPartNo) PartNos = INSERT(PartNos,1,Pos,0,RawPartNo)
END END
NEXT I NEXT I
NEXT N NEXT N
END ELSE END ELSE
PartNos = '' PartNos = ''
@ -536,7 +494,7 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
PartNos := @VM PartNos := @VM
CONVERT @VM TO @RM IN PartNos CONVERT @VM TO @RM IN PartNos
CALL V119('S','','D','R',PartNos,'') CALL V119('S','','D','R',PartNos,'')
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
CONVERT @RM TO @VM IN PartNos CONVERT @RM TO @VM IN PartNos
PartNos[-1,1] = '' ;* Strip trailing delimiter PartNos[-1,1] = '' ;* Strip trailing delimiter
@ -544,36 +502,32 @@ OPEN 'DICT.WO_LOG' TO DictVar THEN
TypeOver = '' TypeOver = ''
TypeOver<PDISPLAY$> = PartNos TypeOver<PDISPLAY$> = PartNos
PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;* Needs a popup PartNos = Popup(@WINDow,TypeOver,'CUST_PO') ;* Needs a popup
IF Get_Status(errCode) THEN DEBUG IF Get_Status(errCode) THEN ErrMsg(errCode)
IF PartNos NE '' THEN IF PartNos NE '' THEN
Set_Property(@WINDOW:'.CUST_PART_NO','DEFPROP',PartNos) Set_Property(@WINDOW:'.CUST_PART_NO','DEFPROP',PartNos)
END END
END ELSE END ELSE
ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.') ErrMsg('Unable to open DICT.WO_LOG in COMM_DIALOG_WO_LOG_FIND.')
END END
RETURN RETURN
* * * * * * * * * * * * * *
LUDate: LUDate:
* * * * * * * * * * * * * *
ReturnCtrl = Parm1[1,@RM] ReturnCtrl = Parm1[1,@RM]
IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS') IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS')
DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW) DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW)
RetVal = OCONV(DateSelected, 'D4/')
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
RetVal = OCONV(DateSelected, 'D4/')
obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl)
RETURN RETURN
@ -585,96 +539,33 @@ Cancel:
RETURN RETURN
* * * * * * * * * * * * * *
PerformQuery: PerformQuery:
* * * * * * * * * * * * * *
* Customer numbers * SearchString = ''
SearchString = '' CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO>
CustNos = SRP_Array('Clean', CustNos, 'TrimAndMakeUnique', @VM)
CustNos = Get_Property(@WINDOW:'.CUST_INFO','ARRAY')<COL$CUST_NO> IF CustNos NE '' THEN SearchString := 'CUST_NO':@VM:CustNos:@FM
LOOP CustPNs = Get_Property(@WINDOW:'.CUST_PART_NO','ARRAY')<1>
LastVar = CustNos[-1,'B':@VM] CustPNs = SRP_Array('Clean', CustPNs, 'TrimAndMakeUnique', @VM)
UNTIL LastVar NE '' OR CustNos = '' IF CustPNs NE '' THEN SearchString := 'CUST_PART_NO':@VM:CustPNs:@FM
CustNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustNos NE '' THEN SearchString := 'CUST_NO':@VM:CustNos:@FM SubPartNos = Get_Property(@WINDOW:'.SUB_PART_NO','ARRAY')<1>
SubPartNos = SRP_Array('Clean', SubPartNos, 'TrimAndMakeUnique', @VM)
IF SubPartNos NE '' THEN SearchString := 'ORD_SUB_PART_NO':@VM:SubPartNos:@FM
* LotNumbers * ReactTypes = Get_Property(@WINDOW:'.REACT_TYPE','ARRAY')<COL$REACT_TYPE>
ReactTypes = SRP_Array('Clean', ReactTypes, 'TrimAndMakeUnique', @VM)
IF ReactTypes NE '' THEN SearchString := 'REACT_TYPE':@VM:ReactTypes:@FM
LotNos = Get_Property(@WINDOW:'.LOT_NO','ARRAY')<1> StartDt = ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D')
EndDt = ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D')
LOOP BEGIN CASE
LastVal = LotNos[-1,'B':@VM]
UNTIL LastVal NE '' OR LotNos = ''
LotNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF LotNos NE '' THEN SearchString := 'LOT_NO':@VM:LotNos:@FM
* Cust Part Number *
CustPNs = Get_Property(@WINDOW:'.CUST_PART_NO','ARRAY')<1>
LOOP
LastVal = CustPNs[-1,'B':@VM]
UNTIL LastVal NE '' OR CustPNs = ''
CustPNS[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF CustPNs NE '' THEN SearchString := 'CUST_PART_NO':@VM:CustPNs:@FM
* Substrate Part Numbers *
SubPartNos = Get_Property(@WINDOW:'.SUB_PART_NO','ARRAY')<1>
LOOP
LastVal = SubPartNos[-1,'B':@VM]
UNTIL LastVal NE '' OR SubPartNos = ''
SubPartNos[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF SubPartNos NE '' THEN SearchString := 'SUB_PART_NO':@VM:SubPartNos:@FM
* * * * * Reactor Type * * * * *
ReactTypes = Get_Property(@WINDOW:'.REACT_TYPE','ARRAY')<COL$REACT_TYPE>
LOOP
LastVal = ReactTypes[-1,'B':@VM]
UNTIL LastVal NE '' OR ReactTypes = ''
ReactTypes[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF ReactTypes NE '' THEN SearchString := 'REACT_TYPE':@VM:ReactTypes:@FM
* PSN Nos *
PS_NOs = Get_Property(@WINDOW:'.PS_NO','ARRAY')<1>
LOOP
LastVal = PS_NOs[-1,'B':@VM]
UNTIL LastVal NE '' OR PS_NOs = ''
PS_NOs[COL1(),99] = '' ;* Trim trailing blanks
REPEAT
IF PS_NOs NE '' THEN SearchString := 'PS_NO':@VM:PS_NOs:@FM
* Entry Dates *
StartDt = ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D')
EndDt = ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D')
BEGIN CASE
CASE StartDt NE '' AND EndDt = '' CASE StartDt NE '' AND EndDt = ''
SearchString := 'ENTRY_DATE':@VM:'>=':StartDt:@FM SearchString := 'ENTRY_DATE':@VM:'>=':StartDt:@FM
@ -682,73 +573,134 @@ BEGIN CASE
SearchString := 'ENTRY_DATE':@VM:'<=':EndDt:@FM SearchString := 'ENTRY_DATE':@VM:'<=':EndDt:@FM
CASE StartDt NE '' AND EndDt NE '' CASE StartDt NE '' AND EndDt NE ''
* Fudge the dates - '~' is not inclusive of the end dates // Modify the dates by one day. The '~' operator is not inclusive of the end dates.
StartDt -= 1 StartDt -= 1
EndDt += 1 EndDt += 1
SearchString := 'ENTRY_DATE':@VM:StartDt:'~':EndDt:@FM SearchString := 'ENTRY_DATE':@VM:StartDt:'~':EndDt:@FM
CASE 1 CASE Otherwise$
NULL NULL
END CASE END CASE
StartDt = ICONV(Get_Property(@WINDOW:'.MTL_RX_START_DT','TEXT'),'D')
EndDt = ICONV(Get_Property(@WINDOW:'.MTL_RX_END_DT','TEXT'),'D')
* RX Dates * OrdStatus = Get_Property(@WINDOW:'.STATUS','VALUE')
StartDt = ICONV(Get_Property(@WINDOW:'.MTL_RX_START_DT','TEXT'),'D') IF OrdStatus NE 'I' THEN
EndDt = ICONV(Get_Property(@WINDOW:'.MTL_RX_END_DT','TEXT'),'D')
BEGIN CASE
CASE StartDt NE '' AND EndDt = ''
SearchString := 'RX_DT':@VM:'>=':OConv(StartDt, 'D4/'):@FM
CASE StartDt = '' AND EndDt NE ''
SearchString := 'RX_DT':@VM:'<=':OConv(EndDt, 'D4/'):@FM
CASE StartDt NE '' AND EndDt NE ''
* Fudge the dates - '~' is not inclusive of the end dates
StartDt -= 1
EndDt += 1
SearchString := 'RX_DT':@VM:OConv(StartDt, 'D4/'):'~':OConv(EndDt, 'D4/'):@FM
CASE 1
NULL
END CASE
OrdStatus = Get_Property(@WINDOW:'.STATUS','VALUE')
IF OrdStatus NE 'I' THEN
IF OrdStatus = 1 THEN IF OrdStatus = 1 THEN
SearchString := 'CLOSE_DATE':@VM:'#':@FM SearchString := 'CLOSE_DATE':@VM:'#':@FM
END ELSE END ELSE
SearchString := 'CLOSE_DATE':@VM:'=':@FM SearchString := 'CLOSE_DATE':@VM:'=':@FM
END END
END
OPEN 'DICT.WO_LOG' TO DictVar THEN
Def = ""
Def<MTEXT$> = "Selecting Orders..."
Def<MTYPE$> = "U"
* display the processing message and do the processing
MsgUp = Msg(@window, Def)
Btree.Extract(SearchString,'WO_LOG',DictVar,WOKeys,'',flag)
IF Get_Status(errCode) THEN ErrMsg(errCode)
Msg(@window, MsgUp)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END END
End_Dialog(@WINDOW,WOKeys) WONos = ''
END ELSE If SearchString NE '' then
OPEN 'DICT.WO_LOG' TO DictVar THEN
Btree.Extract(SearchString,'WO_LOG',DictVar,WOKeys,'',flag)
IF Get_Status(errCode) THEN
ErrorMsg = 'Error querying WO_LOG table with supplied fields.'
end
END ELSE
ErrMsg('Unable to open DICT.WO_LOG in routine COMM_DIALOG_WO_LOG_FIND') ErrMsg('Unable to open DICT.WO_LOG in routine COMM_DIALOG_WO_LOG_FIND')
END END
end
LotNos = Get_Property(@WINDOW:'.LOT_NO','ARRAY')<1>
LotNos = SRP_Array('Clean', LotNos, 'TrimAndMakeUnique', @VM)
If LotNos NE '' then
Query = 'LOT_NO':@VM:LotNos:@FM
dWoMat = ''
WOMatWONos = ''
Open 'DICT.WO_MAT' to dWoMat then
Flag = ''
WOMatKeys = ''
Btree.Extract(Query, 'WO_MAT', dWoMat, WOMatKeys, 'E', Flag)
If Not(Get_status(errCode)) then
If WOMatKeys NE '' then
WOMatWONos = SRP_Array('Rotate', WOMatKeys, @VM, '*')
WOMatWONos = Delete(WOMatWONos, 0, 2, 0)
Convert '*' to @VM in WOMatWONos
WOMatWONos = SRP_Array('Clean', WOMatWONos, 'TrimAndMakeUnique', @VM)
WOKeys = SRP_Array('Join', WOKeys, WOMatWONos, 'OR', @VM)
end
end else
ErrorMsg = 'Error querying LOT_NO field of the WO_MAT table.'
end
end else
ErrorMsg = 'Error opening DICT.WO_MAT table in order to query on LOT_NO field'
end
end
PSNos = Get_Property(@WINDOW:'.PS_NO','ARRAY')<1>
PSNos = SRP_Array('Clean', PSNos, 'TrimAndMakeUnique', @VM)
If PSNos NE '' then
Query = 'PROD_SPEC_ID':@VM:PSNos:@FM
dWOStep = ''
WOStepWONos = ''
Open 'DICT.WO_STEP' to dWOStep then
Flag = ''
WOStepKeys = ''
Btree.Extract(Query, 'WO_STEP', dWOStep, WOStepKeys, 'E', Flag)
If Not(Get_Status(ErrCode)) then
If WOStepKeys NE '' then
WOStepWONos = SRP_Array('Rotate', WOStepKeys, @VM, '*')
WOStepWONos = Delete(WOStepWONos, 0, 2, 0)
Convert '*' to @VM in WOStepWONos
WOStepWONos = SRP_Array('Clean', WOStepWONos, 'TrimAndMakeUnique', @VM)
WOKeys = SRP_Array('Join', WOKeys, WOStepWONos, 'OR', @VM)
end
end else
ErrorMsg = 'Error querying PROD_SPEC_ID field in WO_STEP table.'
end
end else
ErrorMsg = 'Error opening DICT.WO_STEP table in order to query on PROD_SPEC_ID field. Error code: ':ErrCode
end
end
If ( (StartDt NE '') or (EndDt NE '') ) then
Begin Case
Case ( (StartDt NE '') and (EndDt EQ '') )
Query = 'RX_DT':@VM:'>=':OConv(StartDt, 'D4/'):@FM
Case ( (StartDt EQ '') and (EndDt NE '') )
Query = 'RX_DT':@VM:'<=':OConv(EndDt, 'D4/'):@FM
Case ( (StartDt NE '') and (EndDt NE '') )
// Modify the dates by one day. The '~' operator is not inclusive of the end dates.
StartDt -= 1
EndDt += 1
Query = 'RX_DT':@VM:OConv(StartDt, 'D4/'):'~':OConv(EndDt, 'D4/'):@FM
End case
dWOMat = ''
WOMatWONos = ''
Open 'DICT.WO_MAT' to dWOMat then
Flag = ''
WOMatKeys = ''
Btree.Extract(Query, 'WO_MAT', dWOMat, WOMatKeys, 'E', Flag)
If Not(Get_Status(ErrCode)) then
If WOMatKeys NE '' then
WOMatWONos = SRP_Array('Rotate', WOMatKeys, @VM, '*')
WOMatWONos = Delete(WOMatWONos, 0, 2, 0)
Convert '*' to @VM in WOMatWONos
WOMatWONos = SRP_Array('Clean', WOMatWONos, 'TrimAndMakeUnique', @VM)
WOKeys = SRP_Array('Join', WOKeys, WOMatWONos, 'OR', @VM)
end
end else
ErrorMsg = 'Error querying on RX_DT field in WO_MAT table.'
end
end else
ErrorMsg = 'Error opening DICT.WO_MAT table in order to query on RX_DT field.'
end
end
If ErrorMsg EQ '' then
WOKeys = SRP_Array('SortSimpleList', WOKeys, 'DescendingNumbers', @VM)
End_Dialog(@WINDOW,WOKeys)
end else
Msg(@Window, '', 'OK', '', 'Process Error':@FM:ErrorMsg)
end
RETURN RETURN

View File

@ -312,7 +312,7 @@ MsgUp = Msg(@WINDOW,'','SELECT_OPEN_WO')
WOKeys = '' WOKeys = ''
SelectStatement = 'CURR_STATUS':@VM:'ASN':@VM:'AWM':@VM:'RTP':@FM SelectStatement = 'CURR_STATUS_STATIC':@VM:'ASN':@VM:'AWM':@VM:'RTP':@FM
Btree.Extract(SelectStatement,'WO_LOG',DictWOLogTable,WOKeys,'','') Btree.Extract(SelectStatement,'WO_LOG',DictWOLogTable,WOKeys,'','')
@ -715,10 +715,10 @@ END ELSE
Def<MTYPE$> = 'G' Def<MTYPE$> = 'G'
Def<MEXTENT$> = NewCassetteCnt Def<MEXTENT$> = NewCassetteCnt
Def<MTEXTWIDTH$> = 600 Def<MTEXTWIDTH$> = 600
Def<MCOL$> = -2
Def<MROW$> = -2
MsgUp = Msg(@WINDOW,Def) MsgUp = Msg(@WINDOW,Def)
FOR I = 1 TO NewCassetteCnt FOR I = 1 TO NewCassetteCnt
Msg(@WINDOW, MsgUp, I, MSGINSTUPDATE$) Msg(@WINDOW, MsgUp, I, MSGINSTUPDATE$)
@ -1128,3 +1128,4 @@ AddLeftover:
RETURN RETURN

View File

@ -1,272 +0,0 @@
COMPILE SUBROUTINE Export_WO_Log( Dummy )
DECLARE FUNCTION Msg, Dialog_Box, Utility, obj_Export, obj_WO_Log
DECLARE FUNCTION Set_Printer, Get_Printer, obj_Install, Utility, obj_MUWafers, Database_Services
DECLARE SUBROUTINE Btree.Extract, RList, END_Dialog, Make.List, Msg, ErrMsg, SetInitDirOptions
$INSERT LSL_USERS_EQU
$INSERT MSG_EQUATES
$INSERT RLIST_EQUATES
$INSERT OIPRINT_EQUATES
$INSERT WO_LOG_EQUATES
$INSERT WO_STEP_EQU
$INSERT WO_MAT_EQUATES
$INSERT COMPANY_EQU
$INSERT QUOTE_EQU
$INSERT QUOTE_SPEC_EQU
$INSERT RECIPE_EQU
$INSERT ORDER_DET_EQU
$INSERT PROD_SPEC_EQUATES
$insert PROD_VER_EQUATES
$INSERT EXCEL_EQU
CRLF$ = \0D0A\
OPEN 'WO_STEP' TO WOStepTable ELSE
ErrMsg('Unable to open "WO_STEP" table in EXPORT_WO_LOG routine.')
RETURN
END
OPEN 'DICT.WO_STEP' TO DictWOStep ELSE
ErrMsg('Unable to open "DICT.WO_STEP" table in EXPORT_WO_LOG routine.')
RETURN
END
Def = ""
Def<MTEXT$> = "Selecting Uncheduled Work Orders..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
* SelectSent = 'SELECT WO_STEP WITH SCHEDULED NE "Yes" '
Declare subroutine SRP_Stopwatch
SRP_Stopwatch('Reset')
SRP_Stopwatch('Start', 'StartDate')
StartDate = Oconv(Date() - 182, 'D4/')
SelectSent = 'SELECT WO_LOG WITH ENTRY_DATE GE ' : Quote(StartDate)
RList(SelectSent,TARGET_ACTIVELIST$,'','','')
SRP_Stopwatch('Stop', 'StartDate')
SRP_Stopwatch('Start', 'Schedule')
SelectSent = 'SELECT WO_LOG WITH SCHEDULED NE "Yes" '
RList(SelectSent,TARGET_ACTIVELIST$,'','','')
SRP_Stopwatch('Stop', 'Schedule')
* SRP_Stopwatch('ShowAll')
*SelectSent = 'SELECT WO_STEP WITH CURR_STATUS NE "CL" "COMP" '
*SelectSent = 'SELECT WO_STEP WITH CURR_STATUS = "NEW" "RTP" "RTS" "RX" "INPR" '
*RList(SelectSent,TARGET_ACTIVELIST$,'','','')
WOLogKeys = ''
Done = 0
LOOP
READNEXT WOLogKey ELSE Done = 1
UNTIL Done
WOLogKeys<-1> = WOLogKey
REPEAT
CONVERT @VM TO @FM IN WOLogKeys
IF WOLogKeys = '' THEN
Msg(@window, MsgUp)
ErrMsg('No Work Orders remain unscheduled.')
RETURN
END
Make.List('',WOLogKeys,'','')
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
Results = ''
Results<1,1> = 'Spec Type'
Results<1,2> = 'WO'
Results<1,3> = 'Customer'
Results<1,4> = 'Qty'
Results<1,5> = 'PSN'
Results<1,6> = 'Cust Part Numbers'
Results<1,7> = 'Reactor Type'
Results<1,8> = 'Sched Reacts'
Results<1,9> = 'Inch'
Results<1,10> = 'Tube Press Type'
Results<1,11> = 'Epi Gases'
Results<1,12> = 'Dopant L1'
Results<1,13> = 'Cap/Burst Gases'
Results<1,14> = 'Thick Target'
Results<1,15> = 'Res Target'
Results<1,16> = 'Expected Rx Dt'
Results<1,17> = 'Received Date'
Results<1,18> = 'Promised Ship'
Results<1,19> = 'Qual'
Results<1,20> = 'Blkd'
Results<1,21> = 'MU Wfrs'
Done = 0
LineCnt = 1
LOOP
READNEXT WOLogKey ELSE Done = 1
UNTIL Done
WONo = WOLogKey
WORec = XLATE('WO_LOG',WONo,'','X')
WOMatKeys = WORec<WO_LOG_WO_MAT_KEY$>
CassCustPNs = XLATE('WO_MAT',WOMatKeys,WO_MAT_CUST_PART_NO$,'X')
CustPNs = ''
FOR I = 1 TO COUNT(CassCustPNs,@VM) + (CassCustPNs NE '')
LOCATE CassCustPNs<1,I> IN CustPNs USING @VM SETTING POS ELSE
CustPNs = INSERT(CustPNs,1,Pos,0,CassCustPNs<1,I>)
END
NEXT I
CompanyName = XLATE( 'COMPANY', WORec<WO_LOG_CUST_NO$>,COMPANY_CO_NAME$,'X')
SWAP ',' WITH '-' IN CompanyName
WaferQty = SUM(XLATE('WO_MAT',WOMatKeys,WO_MAT_WAFER_QTY$,'X'))
IF WaferQty > 0 THEN
ExpectedRxDts = ''
END ELSE
OrderNo = WORec<WO_LOG_ORDER_NO$>
OrderItems = WORec<WO_LOG_ORDER_ITEM$>
OrderDetKeys = ''
FOR N = 1 TO COUNT(OrderItems,@VM) + (OrderItems NE '')
OrderDetKeys<1,N> = OrderNo:'*':OrderItems<1,N>
NEXT N
WaferQty = SUM(XLATE('ORDER_DET',OrderDetKeys,ORDER_DET_ITEM_QTY$,'X'))
ExpectedRxDts = XLATE('ORDER_DET',OrderDetKeys,ORDER_DET_EXP_RX_DT$,'X')
END
MUWafers = obj_MUWafers('AvailWafers',WONo:@RM:WORec:@RM:0:@RM:1)
ShipThickTarget = XLATE('WO_LOG',WONo,'SHIP_THICK_TARGET','X')
ShipResTarget = XLATE('WO_LOG',WONo,'SHIP_RES_TARGET','X')
CustPSNs = XLATE('WO_STEP',WORec<34>,1,'X')
SWAP @VM WITH '\' IN CustPNs
* PSNo = WOStepRec<WO_STEP_PROD_SPEC_ID$>
ProdVerNo = WORec<WO_LOG_PROD_VER_NO$>
ProdVerRow = Database_Services('ReadDataRow', 'PROD_VER', ProdVerNo)
PSNo = ProdVerRow<PROD_VER_PROC_STEP_PSN$>
PSReactType = OCONV(XLATE('PROD_SPEC',PSNo,PROD_SPEC_REACTOR_TYPE$,'X'),'[REACT_TYPE_CONV]')
WaferSize = xlate( 'PROD_SPEC', PSNo, 'SUB_WAFER_SIZE', 'X' )
SWAP 75 WITH '' IN WaferSize
SWAP 100 WITH '' IN WaferSize
SWAP 125 WITH '' IN WaferSize
SWAP 150 WITH '' IN WaferSize
SWAP 200 WITH '' IN WaferSize
SWAP 'mm' WITH '' IN WaferSize
WaferSize = trim( WaferSize )
RecipeId = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' )
EPIGases = XLATE( 'RECIPE', RecipeId, RECIPE_EPI_GASES$, 'X' )
* Reactors = WOStepRec<WO_STEP_REACTORS$>
Reactors = Xlate('PROD_SPEC', PSNo, PROD_SPEC_QUAL_REACTS$, 'X')
* BlockedReactors = WOStepRec<WO_STEP_BLOCKED_REACTORS$>
BlockedReactors = Xlate('PROD_SPEC', PSNo, PROD_SPEC_BLOCKED_REACTS$, 'X')
SchedReactors = XLATE('WO_LOG',WONo,'SCHED_REACTS','X')
CONVERT @VM TO ',' IN Reactors
CONVERT @VM TO ',' IN BlockedReactors
IF WaferQty > 0 THEN
LineCnt += 1
Results<LineCnt,1> = OCONV(XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ),'[SPEC_TYPE_CONV]') ;* Spec Type
Results<LineCnt,2> = OCONV(WONo,'MD0') ;* WO
Results<LineCnt,3> = CompanyName ;* Company Name
Results<LineCnt,4> = OCONV(WaferQty,'MDO') ;* Wafer Qty
Results<LineCnt,5> = OCONV(PSNo,'MD0') ;* Prod Spec ID
Results<LineCnt,6> = CustPNs ;* Customer Part Numbers
Results<LineCnt,7> = PSReactType ;* Reactor type for Prod Spec
Results<LineCnt,8> = SchedReactors
Results<LineCnt,9> = WaferSize ;* Wafer Size
Results<LineCnt,10> = XLATE( 'PROD_SPEC', PSNo, 'TUBE_PRESSURE_TYPE', 'X' ) ;* Tube Pressure Type
Results<LineCnt,11> = EPIGases
Results<LineCnt,12> = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) ;* Dopant L1
Results<LineCnt,13> = XLATE( 'RECIPE', RecipeId, RECIPE_CAP_BURST_GASES$, 'X' ) ;* Cap Burst Gases
Results<LineCnt,14> = ShipThickTarget
Results<LineCnt,15> = ShipResTarget
Results<LineCnt,16> = OCONV(ExpectedRxDts<1,1>,'D4/')
Results<LineCnt,17> = OCONV(XLATE('WO_MAT',WONo:'*1',WO_MAT_RX_DTM$,'X')[1,'.'],'D4/')
Results<LineCnt,18> = OCONV(WORec<WO_LOG_PROMISE_SHIP_DT$>,'D4/')
Results<LineCnt,19> = Reactors
Results<LineCnt,20> = BlockedReactors
Results<LineCnt,21> = MUWafers
TempLine = Results<LineCnt>
CONVERT '"' TO '' IN TempLine
Results<LineCnt> = TempLine
END
REPEAT
PasteBlob = Results
* * * * * *
SWAP @VM WITH CHAR(9) IN PasteBlob
SWAP @FM WITH CRLF$ IN PasteBlob
CALL Set_Property('CLIPBOARD', 'TEXT', PasteBlob)
ExportColCnt = 20
* * * Paste it into a blank Excel Sheet
xlApp = OleCreateInstance("excel.Application")
IF OleStatus() THEN
Msg(@window, MsgUp)
ErrorMsg = 'Excel failed to start.':CRLF$:CRLF$
ErrorMsg := 'The data from this export is on your clipboard and can be pasted into Excel on your local machine using <Ctrl><V> .'
ErrMsg(ErrorMsg)
RETURN
END
xlWorkBooks = OleGetProperty(xlApp, "Workbooks")
xlWorkBook = OleCallMethod(xlWorkBooks,'Add')
* * * wait a second
Now = Time()
LOOP
CALL Yield()
WHILE Time() EQ Now
REPEAT
OlePutProperty(XlApp, 'Visible', xlSheetVisible)
void = OleCallMethod(xlWorkBook,'Activate')
xlActiveSheet = OleGetProperty(xlWorkBook,'ActiveSheet')
void = OleCallMethod(xlActiveSheet,'Paste')
eXcelCols = obj_Export('ExcelCol',TextColNos) ;* Returns alpha Excel columns from numeric columns
FirstLastCols = obj_Export('ExcelCol',1:@VM:ExportColCnt)
FirstColumn = FirstLastCols[1,@VM]
LastColumn = FirstLastCols[COL2()+1,@VM]
range = OleGetProperty(xlActiveSheet,'Range',FirstColumn:'1:':LastColumn:'1')
font = OleGetProperty(range,'Font')
OlePutProperty(font,'FontStyle','Bold')
OlePutProperty(font,'UnderLine',xlUnderlineStyleSingle)
column = OleGetProperty(xlActiveSheet,'Columns',FirstColumn:':':LastColumn)
void = OleCallMethod(column,'AutoFit')
Msg(@window, MsgUp)
RETURN

View File

@ -1,263 +0,0 @@
COMPILE SUBROUTINE Export_WO_Log_Orig( Dummy )
DECLARE FUNCTION Msg, Dialog_Box, Utility, obj_Export, obj_WO_Log
DECLARE FUNCTION Set_Printer, Get_Printer, obj_Install, Utility, obj_MUWafers
DECLARE SUBROUTINE Btree.Extract, RList, END_Dialog, Make.List, Msg, ErrMsg, SetInitDirOptions
$INSERT LSL_USERS_EQU
$INSERT MSG_EQUATES
$INSERT RLIST_EQUATES
$INSERT OIPRINT_EQUATES
$INSERT WO_LOG_EQU
$INSERT WO_STEP_EQU
$INSERT WO_MAT_EQUATES
$INSERT COMPANY_EQU
$INSERT QUOTE_EQU
$INSERT QUOTE_SPEC_EQU
$INSERT RECIPE_EQU
$INSERT ORDER_DET_EQU
$INSERT PROD_SPEC_EQUATES
$INSERT EXCEL_EQU
CRLF$ = \0D0A\
OPEN 'WO_STEP' TO WOStepTable ELSE
ErrMsg('Unable to open "WO_STEP" table in EXPORT_WO_LOG routine.')
RETURN
END
OPEN 'DICT.WO_STEP' TO DictWOStep ELSE
ErrMsg('Unable to open "DICT.WO_STEP" table in EXPORT_WO_LOG routine.')
RETURN
END
Def = ""
Def<MTEXT$> = "Selecting Uncheduled Work Orders..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
SelectSent = 'SELECT WO_STEP WITH SCHEDULED NE "Yes" '
RList(SelectSent,TARGET_ACTIVELIST$,'','','')
*SelectSent = 'SELECT WO_STEP WITH CURR_STATUS NE "CL" "COMP" '
*SelectSent = 'SELECT WO_STEP WITH CURR_STATUS = "NEW" "RTP" "RTS" "RX" "INPR" '
*RList(SelectSent,TARGET_ACTIVELIST$,'','','')
WOStepKeys = ''
Done = 0
LOOP
READNEXT WOStepKey ELSE Done = 1
UNTIL Done
WOStepKeys<-1> = WOStepKey
REPEAT
CONVERT @VM TO @FM IN WOStepKeys
IF WOStepKeys = '' THEN
Msg(@window, MsgUp)
ErrMsg('No Work Orders remain unscheduled.')
RETURN
END
Make.List('',WOStepKeys,WOStepTable,DictWOStep)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
END
Results = ''
Results<1,1> = 'Spec Type'
Results<1,2> = 'WO'
Results<1,3> = 'Customer'
Results<1,4> = 'Qty'
Results<1,5> = 'PSN'
Results<1,6> = 'Cust Part Numbers'
Results<1,7> = 'Reactor Type'
Results<1,8> = 'Sched Reacts'
Results<1,9> = 'Inch'
Results<1,10> = 'Tube Press Type'
Results<1,11> = 'Epi Gases'
Results<1,12> = 'Dopant L1'
Results<1,13> = 'Cap/Burst Gases'
Results<1,14> = 'Thick Target'
Results<1,15> = 'Res Target'
Results<1,16> = 'Expected Rx Dt'
Results<1,17> = 'Received Date'
Results<1,18> = 'Promised Ship'
Results<1,19> = 'Qual'
Results<1,20> = 'Blkd'
Results<1,21> = 'MU Wfrs'
Done = 0
LineCnt = 1
LOOP
READNEXT WOStepKey ELSE Done = 1
UNTIL Done
READ WOStepRec FROM WOStepTable,WOStepKey THEN
IF WOStepRec<WO_STEP_SCHEDULED$> NE '1' THEN
WONo = WOStepKey[1,'*']
WORec = XLATE('WO_LOG',WONo,'','X')
WOMatKeys = WORec<WO_LOG_WO_MAT_KEY$>
CassCustPNs = XLATE('WO_MAT',WOMatKeys,WO_MAT_CUST_PART_NO$,'X')
CustPNs = ''
FOR I = 1 TO COUNT(CassCustPNs,@VM) + (CassCustPNs NE '')
LOCATE CassCustPNs<1,I> IN CustPNs USING @VM SETTING POS ELSE
CustPNs = INSERT(CustPNs,1,Pos,0,CassCustPNs<1,I>)
END
NEXT I
CompanyName = XLATE( 'COMPANY', WORec<WO_LOG_CUST_NO$>,COMPANY_CO_NAME$,'X')
SWAP ',' WITH '-' IN CompanyName
WaferQty = SUM(XLATE('WO_MAT',WOMatKeys,WO_MAT_WAFER_QTY$,'X'))
IF WaferQty > 0 THEN
ExpectedRxDts = ''
END ELSE
OrderNo = WORec<WO_LOG_ORDER_NO$>
OrderItems = WORec<WO_LOG_ORDER_ITEM$>
OrderDetKeys = ''
FOR N = 1 TO COUNT(OrderItems,@VM) + (OrderItems NE '')
OrderDetKeys<1,N> = OrderNo:'*':OrderItems<1,N>
NEXT N
WaferQty = SUM(XLATE('ORDER_DET',OrderDetKeys,ORDER_DET_ITEM_QTY$,'X'))
ExpectedRxDts = XLATE('ORDER_DET',OrderDetKeys,ORDER_DET_EXP_RX_DT$,'X')
END
MUWafers = obj_MUWafers('AvailWafers',WONo:@RM:WORec:@RM:0:@RM:1)
ShipThickTarget = XLATE('WO_LOG',WONo,'SHIP_THICK_TARGET','X')
ShipResTarget = XLATE('WO_LOG',WONo,'SHIP_RES_TARGET','X')
CustPSNs = XLATE('WO_STEP',@RECORD<34>,1,'X')
SWAP @VM WITH '\' IN CustPNs
PSNo = WOStepRec<WO_STEP_PROD_SPEC_ID$>
PSReactType = OCONV(XLATE('PROD_SPEC',PSNo,PROD_SPEC_REACTOR_TYPE$,'X'),'[REACT_TYPE_CONV]')
WaferSize = xlate( 'PROD_SPEC', PSNo, 'SUB_WAFER_SIZE', 'X' )
SWAP 75 WITH '' IN WaferSize
SWAP 100 WITH '' IN WaferSize
SWAP 125 WITH '' IN WaferSize
SWAP 150 WITH '' IN WaferSize
SWAP 200 WITH '' IN WaferSize
SWAP 'mm' WITH '' IN WaferSize
WaferSize = trim( WaferSize )
RecipeId = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' )
EPIGases = XLATE( 'RECIPE', RecipeId, RECIPE_EPI_GASES$, 'X' )
Reactors = WOStepRec<WO_STEP_REACTORS$>
BlockedReactors = WOStepRec<WO_STEP_BLOCKED_REACTORS$>
SchedReactors = XLATE('WO_LOG',WONo,'SCHED_REACTS','X')
CONVERT @VM TO ',' IN Reactors
CONVERT @VM TO ',' IN BlockedReactors
IF WaferQty > 0 THEN
LineCnt += 1
Results<LineCnt,1> = OCONV(XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ),'[SPEC_TYPE_CONV]') ;* Spec Type
Results<LineCnt,2> = OCONV(WONo,'MD0') ;* WO
Results<LineCnt,3> = CompanyName ;* Company Name
Results<LineCnt,4> = OCONV(WaferQty,'MDO') ;* Wafer Qty
Results<LineCnt,5> = OCONV(PSNo,'MD0') ;* Prod Spec ID
Results<LineCnt,6> = CustPNs ;* Customer Part Numbers
Results<LineCnt,7> = PSReactType ;* Reactor type for Prod Spec
Results<LineCnt,8> = SchedReactors
Results<LineCnt,9> = WaferSize ;* Wafer Size
Results<LineCnt,10> = XLATE( 'PROD_SPEC', PSNo, 'TUBE_PRESSURE_TYPE', 'X' ) ;* Tube Pressure Type
Results<LineCnt,11> = EPIGases
Results<LineCnt,12> = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) ;* Dopant L1
Results<LineCnt,13> = XLATE( 'RECIPE', RecipeId, RECIPE_CAP_BURST_GASES$, 'X' ) ;* Cap Burst Gases
Results<LineCnt,14> = ShipThickTarget
Results<LineCnt,15> = ShipResTarget
Results<LineCnt,16> = OCONV(ExpectedRxDts<1,1>,'D4/')
Results<LineCnt,17> = OCONV(XLATE('WO_MAT',WONo:'*1',WO_MAT_RX_DTM$,'X')[1,'.'],'D4/')
Results<LineCnt,18> = OCONV(WORec<WO_LOG_PROMISE_SHIP_DT$>,'D4/')
Results<LineCnt,19> = Reactors
Results<LineCnt,20> = BlockedReactors
Results<LineCnt,21> = MUWafers
TempLine = Results<LineCnt>
CONVERT '"' TO '' IN TempLine
Results<LineCnt> = TempLine
END
END
END
REPEAT
PasteBlob = Results
* * * * * *
SWAP @VM WITH CHAR(9) IN PasteBlob
SWAP @FM WITH CRLF$ IN PasteBlob
CALL Set_Property('CLIPBOARD', 'TEXT', PasteBlob)
ExportColCnt = 20
* * * Paste it into a blank Excel Sheet
xlApp = OleCreateInstance("excel.Application")
IF OleStatus() THEN
Msg(@window, MsgUp)
ErrorMsg = 'Excel failed to start.':CRLF$:CRLF$
ErrorMsg := 'The data from this export is on your clipboard and can be pasted into Excel on your local machine using <Ctrl><V> .'
ErrMsg(ErrorMsg)
RETURN
END
xlWorkBooks = OleGetProperty(xlApp, "Workbooks")
xlWorkBook = OleCallMethod(xlWorkBooks,'Add')
* * * wait a second
Now = Time()
LOOP
CALL Yield()
WHILE Time() EQ Now
REPEAT
OlePutProperty(XlApp, 'Visible', xlSheetVisible)
void = OleCallMethod(xlWorkBook,'Activate')
xlActiveSheet = OleGetProperty(xlWorkBook,'ActiveSheet')
void = OleCallMethod(xlActiveSheet,'Paste')
eXcelCols = obj_Export('ExcelCol',TextColNos) ;* Returns alpha Excel columns from numeric columns
FirstLastCols = obj_Export('ExcelCol',1:@VM:ExportColCnt)
FirstColumn = FirstLastCols[1,@VM]
LastColumn = FirstLastCols[COL2()+1,@VM]
range = OleGetProperty(xlActiveSheet,'Range',FirstColumn:'1:':LastColumn:'1')
font = OleGetProperty(range,'Font')
OlePutProperty(font,'FontStyle','Bold')
OlePutProperty(font,'UnderLine',xlUnderlineStyleSingle)
column = OleGetProperty(xlActiveSheet,'Columns',FirstColumn:':':LastColumn)
void = OleCallMethod(column,'AutoFit')
Msg(@window, MsgUp)
RETURN

View File

@ -118,7 +118,7 @@ EQU COL$STEP_SCHED_DTM TO 11
EQU COMMA$ to ',' EQU COMMA$ to ','
Declare subroutine Errmsg, Btree.Extract, Set_Status, Logging_Services, Work_Order_Services, Start_Window, obj_WO_Log Declare subroutine Errmsg, Btree.Extract, Set_Status, Logging_Services, Work_Order_Services, Start_Window, obj_WO_Log
Declare subroutine obj_Notes, Comm_Customer_Epi, Print_WO, obj_WO_Mat, obj_WM_In, obj_WO_Mat, obj_RDS, Msg Declare subroutine obj_Notes, Comm_Customer_Epi, Print_WO, obj_WO_Mat, obj_WM_In, obj_WO_Mat, obj_RDS, Msg, PlaceDialog
Declare subroutine Security_Err_Msg, obj_WM_Out, Database_Services, End_Window, Print_Shelf_Label, Signature_Services Declare subroutine Security_Err_Msg, obj_WM_Out, Database_Services, End_Window, Print_Shelf_Label, Signature_Services
Declare Subroutine Service_Services Declare Subroutine Service_Services
Declare function obj_WO_Log, Work_Order_Services, Environment_Services, Logging_Services, Memberof, NextKey Declare function obj_WO_Log, Work_Order_Services, Environment_Services, Logging_Services, Memberof, NextKey
@ -127,14 +127,9 @@ Declare function Database_Services, Unassigned, obj_WO_Mat, obj_RDS, Security_
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_LOG' LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\WO_LOG'
LogDate = Oconv(Date(), 'D4/') LogDate = Oconv(Date(), 'D4/')
LogTime = Oconv(Time(), 'MTS') LogTime = Oconv(Time(), 'MTS')
* LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Ctrl Performance Log.csv'
* Headers = 'Logging DTM':@FM:'Ctrl':@FM:'Load/Calculate Time'
* objCtrlLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, COMMA$, Headers, '', False$, False$)
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Release Log.csv' LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Release Log.csv'
Headers = 'Logging DTM' : @FM : 'User' : @FM : 'Notes' Headers = 'Logging DTM' : @FM : 'User' : @FM : 'Notes'
objReleaseLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, COMMA$, Headers, '', False$, False$) objReleaseLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, COMMA$, Headers, '', False$, False$)
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
// Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler. // Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler.
@ -167,8 +162,7 @@ Event WINDOW.CREATE(CreateParam)
Set_Property(@Window:'.EDL_WO_NO', 'TEXT', CreateParam) Set_Property(@Window:'.EDL_WO_NO', 'TEXT', CreateParam)
Post_Event(@Window, 'READ') Post_Event(@Window, 'READ')
end end
FormSize = '' PlaceDialog(-2, -2)
SRP_Show_Window(@Window, '', 'C', 'C', 1, '', False$, False$, FormSize)
End Event End Event
@ -537,7 +531,7 @@ Event PUB_DUE_IN_WO.CLICK()
MsgUp = Msg(@WINDOW,'','SELECT_OPEN_WO') MsgUp = Msg(@WINDOW,'','SELECT_OPEN_WO')
WOKeys = '' WOKeys = ''
SelectStatement = 'CURR_STATUS':@VM:'ASN':@VM:'AWM':@VM:'RTP':@FM SelectStatement = 'CURR_STATUS_STATIC':@VM:'ASN':@VM:'AWM':@VM:'RTP':@FM
Btree.Extract(SelectStatement, 'WO_LOG', DictWOLogTable, WOKeys, '', '') Btree.Extract(SelectStatement, 'WO_LOG', DictWOLogTable, WOKeys, '', '')
@ -1310,7 +1304,9 @@ Event PUB_REM_CASS.CLICK()
end event end event
Event PUB_REM_WM_OUT.CLICK() Event PUB_REM_WM_OUT.CLICK()
ErrorMessage = '' ErrorMessage = ''
WONo = Get_Property(@WINDOW:'.EDL_WO_NO','TEXT') WONo = Get_Property(@WINDOW:'.EDL_WO_NO','TEXT')
@ -1367,7 +1363,7 @@ Event PUB_REM_WM_OUT.CLICK()
end end
end end
If ErrorMessage EQ '' then If ErrorMessage EQ '' then
//Now send a message // Now send a message
Recipients = XLATE('NOTIFICATION','WO_ENTRY',NOTIFICATION_USER_ID$,'X') Recipients = XLATE('NOTIFICATION','WO_ENTRY',NOTIFICATION_USER_ID$,'X')
SentFrom = @USER4 SentFrom = @USER4
Subject = 'Cassettes removed from WO ':WONo Subject = 'Cassettes removed from WO ':WONo
@ -1390,80 +1386,8 @@ Event PUB_REM_WM_OUT.CLICK()
Msg('Error in voiding lots process : ' : ErrorMessage) Msg('Error in voiding lots process : ' : ErrorMessage)
end end
GoSub PopulateControls GoSub PopulateControls
end event
* Event PUB_REM_WM_OUT.CLICK() end event
* WONo = Get_Property(@WINDOW:'.EDL_WO_NO','TEXT')
* WOStepKey = XLATE('WO_LOG', WONo, WO_LOG_WO_STEP_KEY$, 'X')
* IF WONo NE '' then
*
* WORec = XLATE('WO_LOG',WONo,'','X')
* WOMatKeys = WORec<WO_LOG_WO_MAT_KEY$>
* WMOutKeys = Database_Services('ReadDataColumn', 'WO_STEP', WOStepKey, WO_STEP_WM_OUT_KEYS$, True$, 0, False$)
* WMOutCnt = COUNT(WMOutKeys,@VM) + (WMOutKeys NE '')
*
* Display = ''
* DispLine = 1
*
* IF WMOutCnt > 0 THEN
*
* FOR I = WMOutCnt TO 1 STEP -1
* WMORec = XLATE('WM_OUT',WMOutKeys<1,I>,'','X')
* WMO_RdsNos = WMORec<WM_OUT_RDS$>
* WMO_NCRNos = WMORec<WM_OUT_SLOT_NCR$>
* WMO_UMWCassIDs = WMORec<WM_OUT_UMW_CASS_ID$>
* CONVERT @VM TO '' IN WMO_RdsNos
* CONVERT @VM TO '' IN WMO_NCRNos
* CONVERT @VM TO '' IN WMO_UMWCassIDs
*
* UNTIL WMO_RdsNos NE '' OR WMO_NCRNos NE '' OR WMO_UMWCassIDs NE ''
* Display<1,DispLine,1> = FIELD(WOMatKeys<1,I>,'*',2)
* Display<1,DispLine,2> = OCONV(obj_WM_Out('CurrStatus',WOMatKeys<1,I>:@RM:WMORec),'[WO_MAT_CURR_STATUS_CONV]')
* Display<1,DispLine,3> = WMOutKeys<1,I>
* DispLine += 1
* NEXT I
*
* IF Display NE '' THEN
* TypeOver = ''
* TypeOver<PDISPLAY$> = Display
* TypeOver<PTITLE$> = 'Unused WM_OUT Cassettes'
* WMOData = Popup(@WINDOW,TypeOver,'UNUSED_WM_OUT')
* IF WMOData = '' OR WMOData = CHAR(27) THEN RETURN ;* Cancelled out
* END ELSE
* ErrMsg('All cassettes on this Work Order have started processing.')
* RETURN
* END
*
* DelWMOutKeys = ''
* FOR I = 1 TO COUNT(WMOData,@FM) + (WMOData NE '')
* DelWMOutKeys<1,I> = WMOData<I,3>
* NEXT I
*
* TestWMOutKeys = DelWMOutKeys
*
* IF TestWMOutKeys NE '' THEN
* for each WMOutKey in TestWMOutKeys using @VM
* Work_Order_Services('SignVoidWMO', WMOutKey, @USER4)
* Next WMOutKey
* If Error_Services('HasError') then
* Msg(@Window, Error_Services('GetMessage'))
* end
* END
* END
*
* IF Display = '' THEN
* ErrMsg('All cassettes on this Work Order have had wafers placed in them.')
* RETURN
* END
*
* IF Get_Status(errCode) THEN
* ErrMsg(errCode)
* END
*
* GoSub PopulateControls
* end
*
* end event
Event PUB_RECALL.CLICK() Event PUB_RECALL.CLICK()
@ -1897,15 +1821,7 @@ return
GetColumnData: GetColumnData:
* LoadTimeStart = GetTickCount()
Val = Xlate('WO_LOG', WONo, Col, 'X') Val = Xlate('WO_LOG', WONo, Col, 'X')
// Logging for optimization purposes
* LoadTimeStop = GetTickCount()
* LoadTimeDuration = LoadTimeStop - LoadTimeStart
* LogData<2> = Col
* LogData<3> = LoadTimeDuration
* Logging_Services('AppendLog', objCtrlLog, LogData, @RM, @FM)
If Unassigned(CtrlConv) then CtrlConv = '' If Unassigned(CtrlConv) then CtrlConv = ''
If CtrlConv EQ '' then If CtrlConv EQ '' then
Locate Col in WOLogFields using @VM setting ConvPos then Locate Col in WOLogFields using @VM setting ConvPos then

View File

@ -916,8 +916,7 @@ OpenWONos:
WOKeys = '' WOKeys = ''
* SelectStatement = 'CURR_STATUS':@VM:'RX':@VM:'INPR':@VM:'RTS':@VM:'SHIP':@VM:'HOLD':@FM ;* Inactivated by dkk 4/3/14 SelectStatement = 'CLOSE_DATE':@VM:'':@FM ;* Added by dkk 4/3/14
SelectStatement = 'WO_STATUS':@VM:'OPEN':@FM ;* Added by dkk 4/3/14
Btree.Extract(SelectStatement,'WO_LOG',DictWOLogTable,WOKeys,'','') Btree.Extract(SelectStatement,'WO_LOG',DictWOLogTable,WOKeys,'','')
@ -957,13 +956,12 @@ ShipWONos:
IF Get_Status(errCode) THEN RETURN IF Get_Status(errCode) THEN RETURN
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "INPR" ' SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "INPR" '
SelectStatement := ' OR WITH CURR_STATUS = "RTS"' SelectStatement := ' OR WITH CURR_STATUS_STATIC = "RTS"'
SelectStatement := ' OR WITH CURR_STATUS = "SHIP"' SelectStatement := ' OR WITH CURR_STATUS_STATIC = "SHIP"'
SelectStatement := ' OR WITH CURR_STATUS = "HOLD"' SelectStatement := ' OR WITH CURR_STATUS_STATIC = "HOLD"'
SelectStatement := ' BY COMMIT_DATE' SelectStatement := ' BY COMMIT_DATE'
RList(SelectStatement, TARGET_ACTIVELIST$, '','','') RList(SelectStatement, TARGET_ACTIVELIST$, '','','')
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
@ -1033,13 +1031,8 @@ ReleaseCassettes:
IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').' IF WONo = '' THEN ErrorMsg = 'Null parameter WONo passed to routine (':Method:').'
IF ErrorMsg NE '' THEN RETURN IF ErrorMsg NE '' THEN RETURN
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
If NewForm then
Form = 'NDW_WO_LOG' Form = 'NDW_WO_LOG'
end else OrgColor = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',YELLOW$)
Form = 'WO_LOG2'
end
OrgColor = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',YELLOW$) ;* //////// Messaging
TableVar = '' TableVar = ''
OtParms = 'WO_LOG':@RM:WONo:@RM:TableVar OtParms = 'WO_LOG':@RM:WONo:@RM:TableVar
@ -1067,19 +1060,14 @@ ReleaseCassettes:
IF ErrorMsg NE '' THEN IF ErrorMsg NE '' THEN
obj_Tables('UnlockRec',OtParms) obj_Tables('UnlockRec',OtParms)
RETURN RETURN
END END
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
IF ProdVerNo NE '' THEN IF ProdVerNo NE '' THEN
ReactorType = XLATE('PROD_VER',ProdVerNo,PROD_VER_REACT_TYPE$,'X') ReactorType = XLATE('PROD_VER',ProdVerNo,PROD_VER_REACT_TYPE$,'X')
IF ReactorType NE 'EPP' THEN IF ReactorType NE 'EPP' THEN
IF WORec<WO_LOG_WO_START_DTM$> = '' THEN IF WORec<WO_LOG_WO_START_DTM$> = '' THEN
CurrDTM = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS'),'DT') CurrDTM = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS'),'DT')
WORec<WO_LOG_WO_START_DTM$> = CurrDTM WORec<WO_LOG_WO_START_DTM$> = CurrDTM
@ -1089,7 +1077,7 @@ ReleaseCassettes:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Send_Info("Collecting Data for release...") ;* //////// Messaging Send_Info("Collecting Data for release...")
IF OrderNo = '' THEN IF OrderNo = '' THEN
OrderWaferQty = WORec<WO_LOG_WO_QTY$> OrderWaferQty = WORec<WO_LOG_WO_QTY$>
@ -1097,9 +1085,7 @@ ReleaseCassettes:
VisionOrderNo = WORec<WO_LOG_PROD_ORD_NO$> ;* SAP Production Order Number VisionOrderNo = WORec<WO_LOG_PROD_ORD_NO$> ;* SAP Production Order Number
VisionLineNos = '' VisionLineNos = ''
WMOLoadQty = XLATE('CUST_EPI_PART',CustNo:'*':EPIPartNo,CUST_EPI_PART_WMO_LOAD_CNT$,'X') WMOLoadQty = XLATE('CUST_EPI_PART',CustNo:'*':EPIPartNo,CUST_EPI_PART_WMO_LOAD_CNT$,'X')
END ELSE END ELSE
OrderRec = XLATE('ORDER',OrderNo,'','X') OrderRec = XLATE('ORDER',OrderNo,'','X')
OrderWaferQty = 0 OrderWaferQty = 0
@ -1126,22 +1112,12 @@ ReleaseCassettes:
Send_Info('Locking WOMat records for update...') Send_Info('Locking WOMat records for update...')
* WOMTableVar = obj_WO_Mat('LockSet',WOMKeys)
WOMTableVar = Database_Services('GetTableHandle', 'WO_MAT') WOMTableVar = Database_Services('GetTableHandle', 'WO_MAT')
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
obj_Tables('UnlockRec',OtParms) ;* Unlock WO_LOG record obj_Tables('UnlockRec',OtParms)
Send_Info(STR(' ',60))
Send_Info(STR(' ',60)) ;** - Messaging - ** Dummy = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',OrgColor)
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
If NewForm then
Form = 'NDW_WO_LOG'
end else
Form = 'WO_LOG2'
end
Dummy = Set_Property(Form:'.STATUSLINE_FIX','BACKCOLOR',OrgColor) ;** - Messaging - **
RETURN RETURN
END END
@ -1149,19 +1125,13 @@ ReleaseCassettes:
LogData<4> = 'Trace 1' LogData<4> = 'Trace 1'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM) Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
* At this point the WO_LOG is locked and the WO_MAT (cassettes) are all locked for update
EpiPN = WORec<WO_LOG_EPI_PART_NO$> EpiPN = WORec<WO_LOG_EPI_PART_NO$>
EpiPartRec = XLATE('EPI_PART',EpiPN,'','X') EpiPartRec = XLATE('EPI_PART',EpiPN,'','X')
SubSupplyBy = EpiPartRec<EPI_PART_SUB_SUPP_BY$> SubSupplyBy = EpiPartRec<EPI_PART_SUB_SUPP_BY$>
ProdVerRec = XLATE('PROD_VER',ProdVerNo,'','X') ProdVerRec = XLATE('PROD_VER',ProdVerNo,'','X')
ProcStepNos = ProdVerRec<PROD_VER_PROC_STEP_NO$> ProcStepNos = ProdVerRec<PROD_VER_PROC_STEP_NO$>
ProcPSNs = ProdVerRec<PROD_VER_PROC_STEP_PSN$> ProcPSNs = ProdVerRec<PROD_VER_PROC_STEP_PSN$>
ReactorType = ProdVerRec<PROD_VER_REACT_TYPE$> ReactorType = ProdVerRec<PROD_VER_REACT_TYPE$>
WOStepCnt = COUNT(ProcPSNs,@VM) + (ProcPSNs NE '') WOStepCnt = COUNT(ProcPSNs,@VM) + (ProcPSNs NE '')
TableVar = '' TableVar = ''
@ -1185,11 +1155,8 @@ ReleaseCassettes:
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM) Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
IF ReactorType = 'EPP' THEN IF ReactorType = 'EPP' THEN
Send_Info('Creating WM_OUT records for WOStep ':WOStep:'...')
Send_Info('Creating WM_OUT records for WOStep ':WOStep:'...') ;** - Messaging - ** OutOnlyCassIDS = obj_WM_Out('Create',WONO:@RM:WOStep:@RM:CassNos:@RM:WMOLoadQty)
OutOnlyCassIDS = obj_WM_Out('Create',WONO:@RM:WOStep:@RM:CassNos:@RM:WMOLoadQty) ;* Changed WMOLoadQty 9/14/2012 JCH *********
END ELSE END ELSE
OutOnlyCassIDs = '' OutOnlyCassIDs = ''
END END
@ -1208,6 +1175,8 @@ ReleaseCassettes:
Def<MTYPE$> = "G" Def<MTYPE$> = "G"
Def<MEXTENT$> = CassCnt Def<MEXTENT$> = CassCnt
Def<MTEXTWIDTH$> = 600 Def<MTEXTWIDTH$> = 600
Def<MCOL$> = -2
Def<MROW$> = -2
MsgUp = Msg(@WINDOW, Def) MsgUp = Msg(@WINDOW, Def)
@ -1231,9 +1200,9 @@ ReleaseCassettes:
CassWaferQty = XLATE('WO_MAT',WONo:'*':CassNo,WO_MAT_WAFER_QTY$,'X') CassWaferQty = XLATE('WO_MAT',WONo:'*':CassNo,WO_MAT_WAFER_QTY$,'X')
WMIKey = WONo:'*':WOStep:'*':CassNo WMIKey = WONo:'*':WOStep:'*':CassNo
Send_Info('Creating WM_IN record "':WMIKey:'"...') ;** - Messaging - ** Send_Info('Creating WM_IN record "':WMIKey:'"...')
obj_WM_IN('Create',WONo:@RM:WOStep:@RM:CassNo:@RM:CassWaferQty) ;* ******************************** EpiPro 5000 Reactor -> create WM_IN records obj_WM_IN('Create',WONo:@RM:WOStep:@RM:CassNo:@RM:CassWaferQty)
END ELSE END ELSE
@ -1276,7 +1245,7 @@ ReleaseCassettes:
Parms := '':@RM ;* QXJ Flag Parms := '':@RM ;* QXJ Flag
Parms := CassSubVendCd Parms := CassSubVendCd
Send_Info('Creating RDS for Cass No: ':CassNo:'...') ;** - Messaging - ** Send_Info('Creating RDS for Cass No: ':CassNo:'...')
IF ReactorType = 'GAN' THEN IF ReactorType = 'GAN' THEN
@ -1319,9 +1288,8 @@ ReleaseCassettes:
ErrorMsg = "RDS '" : NewRDSNo : "' Create Failure - Check for missing data on Work Order" ErrorMsg = "RDS '" : NewRDSNo : "' Create Failure - Check for missing data on Work Order"
If Error_Services('HasError') then If Error_Services('HasError') then
ErrMsg = Error_Services('GetMessage') ErrMsg = Error_Services('GetMessage')
EmailAddr = 'dstieber@srpcs.com,Dan.Crisp@infineon.com,jonathan.ouellette@infineon.com'
LogData = LoggingDTM : ',' : @USER4 : ',' : WONo : ',' : ErrMsg LogData = LoggingDTM : ',' : @USER4 : ',' : WONo : ',' : ErrMsg
Logging_Services('AppendLog', objLog, LogData, CRLF$, COMMA$, False$, EmailAddr, LogData) Logging_Services('AppendLog', objLog, LogData, CRLF$, COMMA$, False$, '', LogData)
end end
RTParms = 'RDS' RTParms = 'RDS'
@ -1339,7 +1307,7 @@ ReleaseCassettes:
IF ReprocessedMat THEN IF ReprocessedMat THEN
OrgRDSNo = CassLotNo OrgRDSNo = CassLotNo
obj_Reprocess('FixUp',OrgRDSNo:@RM:NewRDSNo) ;**************************************************** obj_Reprocess('FixUp',OrgRDSNo:@RM:NewRDSNo)
END END
END ;* End of check for GAN reactor END ;* End of check for GAN reactor
@ -1358,12 +1326,8 @@ ReleaseCassettes:
RelDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') ;* 12/31/2014 JCH & DKK moved to prevent time incrementing time during release RelDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') ;* 12/31/2014 JCH & DKK moved to prevent time incrementing time during release
PtiDTM = OCONV(Date(),'D4/'):' ':OCONV(Time()+5,'MTHS') PtiDTM = OCONV(Date(),'D4/'):' ':OCONV(Time()+5,'MTHS')
WOLogRec = Database_Services('ReadDataRow', 'WO_LOG', WONo)
* AvailOutSlots = WOLogRec<WO_LOG_AVAIL_OUT_SLOTS$>
MaxShipQty = Xlate('WO_LOG', WONo, 'CUST_EPI_PART_SHIP_QTY', 'X') MaxShipQty = Xlate('WO_LOG', WONo, 'CUST_EPI_PART_SHIP_QTY', 'X')
IF WOLogRec<WO_LOG_NEXT_OUT_SLOT$> EQ '' then WOLogRec<WO_LOG_NEXT_OUT_SLOT$> = '1*1'
FOR N = 1 TO CassCnt FOR N = 1 TO CassCnt
WOMKey = WOMKeys<1,N> WOMKey = WOMKeys<1,N>
CassNo = FIELD(WOMKey,'*',2) CassNo = FIELD(WOMKey,'*',2)
@ -1424,23 +1388,12 @@ ReleaseCassettes:
NEXT N NEXT N
Database_Services('WriteDataRow', 'WO_LOG', WONo, WOLogRec, True$, False$, True$)
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Trace 4' LogData<4> = 'Trace 4'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM) Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
Send_Info(STR(' ',60)) ;** - Messaging - ** Send_Info(STR(' ',60))
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X') Dummy = Set_Property(Form:'.STATUS_LINE_FIX','BACKCOLOR',OrgColor)
If NewForm then
Form = 'NDW_WO_LOG'
end else
Form = 'WO_LOG2'
end
Dummy = Set_Property(Form:'.STATUS_LINE_FIX','BACKCOLOR',OrgColor) ;** - Messaging - **
* * * * * * WO_LOG record write was here
OutOnlyCnt = COUNT(OutOnlyCassIDs,@VM) + (OutOnlyCassIDs NE '') OutOnlyCnt = COUNT(OutOnlyCassIDs,@VM) + (OutOnlyCassIDs NE '')
@ -1453,21 +1406,20 @@ ReleaseCassettes:
END END
NEXT I NEXT I
WORec<WO_LOG_WO_MAT_KEY$> = ExistingWOMatKeys ;* Add OutOnly Cassettetes to list inWO_LOG record. IF WORec<WO_LOG_NEXT_OUT_SLOT$> EQ '' then WORec<WO_LOG_NEXT_OUT_SLOT$> = '1*1'
WORec<WO_LOG_WO_MAT_KEY$> = ExistingWOMatKeys
Send_Info('Saving WO_LOG record...') Send_Info('Saving WO_LOG record...')
OtParms = FieldStore(OtParms,@RM,4,1,WORec) OtParms = FieldStore(OtParms,@RM,4,1,WORec)
obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record It only has one value updated obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Trace 5' LogData<4> = 'Trace 5'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM) Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
Send_Info(STR(' ',60)) ;** - Messaging - ** Send_Info(STR(' ',60))
* * * * * * * * * *
ReactNos = obj_Sched('GetReactNos',WONo) ;************************ 5/26/2-15 JCH Added schedule ReactNos and check for WO_START_DTM$ ReactNos = obj_Sched('GetReactNos',WONo) ;************************ 5/26/2-15 JCH Added schedule ReactNos and check for WO_START_DTM$
@ -1491,33 +1443,25 @@ ReleaseCassettes:
END CASE END CASE
IF WORec<WO_LOG_WO_START_DTM$> NE '' THEN IF WORec<WO_LOG_WO_START_DTM$> NE '' THEN
Recipients = XLATE('NOTIFICATION','WO_RELEASE',NOTIFICATION_USER_ID$,'X') Recipients = XLATE('NOTIFICATION','WO_RELEASE',NOTIFICATION_USER_ID$,'X')
SentFrom = @USER4 SentFrom = @USER4
Subject = 'Work Order Release on ':WONo Subject = 'Work Order Release on ':WONo
IF ReactorType = 'EPP' THEN IF ReactorType = 'EPP' THEN
AttachWindow = 'WO_PROD_EPI' AttachWindow = 'WO_PROD_EPI'
END ELSE END ELSE
AttachWindow = 'WO_PROD' AttachWindow = 'WO_PROD'
END END
AttachKey = WONo:'*':1 AttachKey = WONo:'*':1
SendToGroup = '' SendToGroup = ''
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
obj_Notes('Create',Parms) obj_Notes('Create',Parms)
IF Get_Status(errCode) THEN IF Get_Status(errCode) THEN
ErrMsg(errCode) ErrMsg(errCode)
END END
END END
END ;* WO is not on the schedule END ;* WO is not on the schedule
* * * * * * * * * *
LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS') LogData<1> = Oconv(Date(), 'D4/') : ' ' : Oconv(Time(), 'MTS')
LogData<4> = 'Ending ReleaseCassettes routine' LogData<4> = 'Ending ReleaseCassettes routine'
Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM) Logging_Services('AppendLog', objReleaseLog, LogData, @RM, @FM)
@ -1525,8 +1469,6 @@ ReleaseCassettes:
RETURN RETURN
* * * * * * * * * * * * * *
RecallWO: RecallWO:
* * * * * * * * * * * * * *
@ -2517,9 +2459,9 @@ CloseComp:
IF Get_Status(errCode) THEN RETURN IF Get_Status(errCode) THEN RETURN
IF CompOrShipShort = 'Comp' THEN IF CompOrShipShort = 'Comp' THEN
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "COMP" AND WITHOUT CLOSE_DATE ' SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "COMP" AND WITHOUT CLOSE_DATE '
END ELSE END ELSE
SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS = "INPR" "SHIP" AND WITHOUT CLOSE_DATE ' SelectStatement = 'SELECT WO_LOG WITH CURR_STATUS_STATIC = "INPR" "SHIP" AND WITHOUT CLOSE_DATE '
END END
RList(SelectStatement, TARGET_ACTIVELIST$, '','','') RList(SelectStatement, TARGET_ACTIVELIST$, '','','')
@ -3107,4 +3049,3 @@ SchedReacts:
RETURN RETURN