diff --git a/LSL2/OIWIN/NDW_FQA_MAT_SCAN.json b/LSL2/OIWIN/NDW_FQA_MAT_SCAN.json index ad41e25..4d6876b 100644 --- a/LSL2/OIWIN/NDW_FQA_MAT_SCAN.json +++ b/LSL2/OIWIN/NDW_FQA_MAT_SCAN.json @@ -21,16 +21,20 @@ "<1,8>": "-448", "<1,9>": "FQA Material Scan", "<1,10>": { - "<1,10,1>": "0x82CF0000", - "<1,10,2>": "0x0" + "<1,10,1>": "0x82CE0000", + "<1,10,2>": "0x100" }, "<1,11>": { - "<1,11,1>": "0x0", + "<1,11,1>": "0x8000", "<1,11,2>": "0x80000000" }, - "<1,12>": "0", - "<1,13>": "-2", - "<1,14>": "0", + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", "<1,15>": "", "<1,16>": "", "<1,17>": "", @@ -50,51 +54,61 @@ "<1,18,1,4,8>": "@PARAM6" }, "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "CREATE", - "<1,19,2>": "" + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC" + } }, + "<1,19>": "CREATE", "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "", "<1,24>": { - "<1,24,1>": "0", + "<1,24,1>": "", "<1,24,2>": "0", "<1,24,3>": "0", "<1,24,4>": "0", - "<1,24,5>": "0", - "<1,24,6>": "0" + "<1,24,5>": "", + "<1,24,6>": "0", + "<1,24,7>": "", + "<1,24,8>": "", + "<1,24,9>": "", + "<1,24,10>": "0", + "<1,24,11>": "0", + "<1,24,12>": "0", + "<1,24,13>": "0", + "<1,24,14>": "0", + "<1,24,15>": "0", + "<1,24,16>": "0", + "<1,24,17>": "0" }, - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "", "<1,29>": "", "<1,30>": "", "<1,31>": "", - "<1,32>": { - "<1,32,1>": "0x7FFFE", - "<1,32,2>": "0xF001E808" - }, + "<1,32>": "", "<1,33>": "", "<1,34>": "LSL2*IMAGE*ICO*INFINEON", "<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,37,1>": "0X10001", + "<1,37,2>": "0X10001" }, + "<1,38>": "", "<1,39>": "", - "<1,40>": "0", + "<1,40>": "", "<1,41>": "", "<1,42>": "", "<1,43>": "", @@ -106,7 +120,74 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": { + "<1,62,1>": "0", + "<1,62,2>": "", + "<1,62,3>": "", + "<1,62,4>": "0", + "<1,62,5>": "0", + "<1,62,6>": "0", + "<1,62,7>": "", + "<1,62,8>": "0.50", + "<1,62,9>": "5.00", + "<1,62,10>": "0.00" + }, + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" } }, "record3": { @@ -121,7 +202,7 @@ "<1,8>": "28", "<1,9>": "", "<1,10>": { - "<1,10,1>": "0x5E000080", + "<1,10,1>": "0x5E000088", "<1,10,2>": "0x200" }, "<1,11>": { @@ -129,7 +210,11 @@ "<1,11,2>": "0x80000000" }, "<1,12>": "1", - "<1,13>": "-2", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, "<1,14>": "0", "<1,15>": { "<1,15,1>": { @@ -167,34 +252,39 @@ "<1,18,1,4,8>": "@PARAM6" }, "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "LOSTFOCUS", - "<1,19,2>": "" + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC" + } }, + "<1,19>": "LOSTFOCUS", "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "", "<1,24>": "", - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "<>", "<1,29>": "<>", "<1,30>": "<>", "<1,31>": "0", - "<1,32>": { - "<1,32,1>": "0x7fffe", - "<1,32,2>": "0xf0016008" - }, + "<1,32>": "", "<1,33>": "", "<1,34>": "", "<1,35>": "", - "<1,36>": "", + "<1,36>": { + "<1,36,1>": "0", + "<1,36,2>": "0" + }, "<1,37>": "", "<1,38>": "", "<1,39>": "", @@ -210,7 +300,63 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": "0", + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" }, "<2>": { "<2,1>": "EDL_CASSETTE2_SCAN", @@ -223,7 +369,7 @@ "<2,8>": "28", "<2,9>": "", "<2,10>": { - "<2,10,1>": "0x5E000080", + "<2,10,1>": "0x5E000088", "<2,10,2>": "0x200" }, "<2,11>": { @@ -231,7 +377,11 @@ "<2,11,2>": "0x80000000" }, "<2,12>": "2", - "<2,13>": "-2", + "<2,13>": { + "<2,13,1>": "-2", + "<2,13,2>": "-2", + "<2,13,3>": "" + }, "<2,14>": "0", "<2,15>": { "<2,15,1>": { @@ -269,34 +419,39 @@ "<2,18,1,4,8>": "@PARAM6" }, "<2,18,1,5>": "", - "<2,18,1,6>": "" - }, - "<2,18,2>": "" - }, - "<2,19>": { - "<2,19,1>": "LOSTFOCUS", - "<2,19,2>": "" + "<2,18,1,6>": "", + "<2,18,1,7>": "", + "<2,18,1,8>": "", + "<2,18,1,9>": "", + "<2,18,1,10>": "", + "<2,18,1,11>": "", + "<2,18,1,12>": "", + "<2,18,1,13>": "", + "<2,18,1,14>": "", + "<2,18,1,15>": "STPROC" + } }, + "<2,19>": "LOSTFOCUS", "<2,20>": "", "<2,21>": "", "<2,22>": "", "<2,23>": "", "<2,24>": "", - "<2,25>": "0", - "<2,26>": "0", + "<2,25>": "", + "<2,26>": "", "<2,27>": "", "<2,28>": "<>", "<2,29>": "<>", "<2,30>": "<>", "<2,31>": "0", - "<2,32>": { - "<2,32,1>": "0x7fffe", - "<2,32,2>": "0xf0016008" - }, + "<2,32>": "", "<2,33>": "", "<2,34>": "", "<2,35>": "", - "<2,36>": "", + "<2,36>": { + "<2,36,1>": "0", + "<2,36,2>": "0" + }, "<2,37>": "", "<2,38>": "", "<2,39>": "", @@ -312,7 +467,63 @@ "<2,49>": "", "<2,50>": "", "<2,51>": "", - "<2,52>": "" + "<2,52>": "", + "<2,53>": "", + "<2,54>": "", + "<2,55>": "", + "<2,56>": "", + "<2,57>": "", + "<2,58>": "", + "<2,59>": "", + "<2,60>": "", + "<2,61>": "", + "<2,62>": "0", + "<2,63>": "", + "<2,64>": "", + "<2,65>": "", + "<2,66>": "", + "<2,67>": "", + "<2,68>": "", + "<2,69>": "", + "<2,70>": "", + "<2,71>": "", + "<2,72>": "", + "<2,73>": "", + "<2,74>": "", + "<2,75>": "", + "<2,76>": "", + "<2,77>": "", + "<2,78>": "", + "<2,79>": "", + "<2,80>": "", + "<2,81>": "", + "<2,82>": "", + "<2,83>": "", + "<2,84>": "", + "<2,85>": "", + "<2,86>": "", + "<2,87>": "", + "<2,88>": "", + "<2,89>": "", + "<2,90>": "", + "<2,91>": "", + "<2,92>": "", + "<2,93>": "", + "<2,94>": "", + "<2,95>": "", + "<2,96>": "", + "<2,97>": "", + "<2,98>": "", + "<2,99>": "", + "<2,100>": "", + "<2,101>": "", + "<2,102>": "", + "<2,103>": "", + "<2,104>": "", + "<2,105>": "", + "<2,106>": "", + "<2,107>": "", + "<2,108>": "" }, "<3>": { "<3,1>": "EDL_SUPPLIER_SCAN", @@ -325,7 +536,7 @@ "<3,8>": "28", "<3,9>": "", "<3,10>": { - "<3,10,1>": "0x5E000080", + "<3,10,1>": "0x5E000088", "<3,10,2>": "0x200" }, "<3,11>": { @@ -333,7 +544,11 @@ "<3,11,2>": "0x80000000" }, "<3,12>": "3", - "<3,13>": "-2", + "<3,13>": { + "<3,13,1>": "-2", + "<3,13,2>": "-2", + "<3,13,3>": "" + }, "<3,14>": "0", "<3,15>": { "<3,15,1>": { @@ -371,34 +586,39 @@ "<3,18,1,4,8>": "@PARAM6" }, "<3,18,1,5>": "", - "<3,18,1,6>": "" - }, - "<3,18,2>": "" - }, - "<3,19>": { - "<3,19,1>": "LOSTFOCUS", - "<3,19,2>": "" + "<3,18,1,6>": "", + "<3,18,1,7>": "", + "<3,18,1,8>": "", + "<3,18,1,9>": "", + "<3,18,1,10>": "", + "<3,18,1,11>": "", + "<3,18,1,12>": "", + "<3,18,1,13>": "", + "<3,18,1,14>": "", + "<3,18,1,15>": "STPROC" + } }, + "<3,19>": "LOSTFOCUS", "<3,20>": "", "<3,21>": "", "<3,22>": "", "<3,23>": "", "<3,24>": "", - "<3,25>": "0", - "<3,26>": "0", + "<3,25>": "", + "<3,26>": "", "<3,27>": "", "<3,28>": "<>", "<3,29>": "<>", "<3,30>": "<>", "<3,31>": "0", - "<3,32>": { - "<3,32,1>": "0x7fffe", - "<3,32,2>": "0xf0016008" - }, + "<3,32>": "", "<3,33>": "", "<3,34>": "", "<3,35>": "", - "<3,36>": "", + "<3,36>": { + "<3,36,1>": "0", + "<3,36,2>": "0" + }, "<3,37>": "", "<3,38>": "", "<3,39>": "", @@ -414,7 +634,63 @@ "<3,49>": "", "<3,50>": "", "<3,51>": "", - "<3,52>": "" + "<3,52>": "", + "<3,53>": "", + "<3,54>": "", + "<3,55>": "", + "<3,56>": "", + "<3,57>": "", + "<3,58>": "", + "<3,59>": "", + "<3,60>": "", + "<3,61>": "", + "<3,62>": "0", + "<3,63>": "", + "<3,64>": "", + "<3,65>": "", + "<3,66>": "", + "<3,67>": "", + "<3,68>": "", + "<3,69>": "", + "<3,70>": "", + "<3,71>": "", + "<3,72>": "", + "<3,73>": "", + "<3,74>": "", + "<3,75>": "", + "<3,76>": "", + "<3,77>": "", + "<3,78>": "", + "<3,79>": "", + "<3,80>": "", + "<3,81>": "", + "<3,82>": "", + "<3,83>": "", + "<3,84>": "", + "<3,85>": "", + "<3,86>": "", + "<3,87>": "", + "<3,88>": "", + "<3,89>": "", + "<3,90>": "", + "<3,91>": "", + "<3,92>": "", + "<3,93>": "", + "<3,94>": "", + "<3,95>": "", + "<3,96>": "", + "<3,97>": "", + "<3,98>": "", + "<3,99>": "", + "<3,100>": "", + "<3,101>": "", + "<3,102>": "", + "<3,103>": "", + "<3,104>": "", + "<3,105>": "", + "<3,106>": "", + "<3,107>": "", + "<3,108>": "" }, "<4>": { "<4,1>": "WINDOW_LABEL", @@ -427,7 +703,7 @@ "<4,8>": "30", "<4,9>": "FQA Material Scan", "<4,10>": { - "<4,10,1>": "0x56000001", + "<4,10,1>": "0x56000020", "<4,10,2>": "0x0" }, "<4,11>": { @@ -435,7 +711,11 @@ "<4,11,2>": "0x80000000" }, "<4,12>": "4", - "<4,13>": "-1", + "<4,13>": { + "<4,13,1>": "-1", + "<4,13,2>": "-1", + "<4,13,3>": "" + }, "<4,14>": "8388608", "<4,15>": { "<4,15,1>": { @@ -464,17 +744,14 @@ "<4,22>": "", "<4,23>": "", "<4,24>": "", - "<4,25>": "0", - "<4,26>": "0", + "<4,25>": "", + "<4,26>": "", "<4,27>": "", - "<4,28>": "<>", - "<4,29>": "<>", - "<4,30>": "<>", - "<4,31>": "0", - "<4,32>": { - "<4,32,1>": "0x7fffe", - "<4,32,2>": "0xf0012808" - }, + "<4,28>": "", + "<4,29>": "", + "<4,30>": "", + "<4,31>": "", + "<4,32>": "", "<4,33>": "", "<4,34>": "", "<4,35>": "", @@ -494,7 +771,76 @@ "<4,49>": "", "<4,50>": "", "<4,51>": "", - "<4,52>": "" + "<4,52>": "", + "<4,53>": "", + "<4,54>": "", + "<4,55>": "", + "<4,56>": "", + "<4,57>": "", + "<4,58>": "", + "<4,59>": "", + "<4,60>": "", + "<4,61>": "", + "<4,62>": "0", + "<4,63>": { + "<4,63,1>": "", + "<4,63,2>": "", + "<4,63,3>": "", + "<4,63,4>": "", + "<4,63,5>": "", + "<4,63,6>": "", + "<4,63,7>": "", + "<4,63,8>": "" + }, + "<4,64>": { + "<4,64,1>": "", + "<4,64,2>": "", + "<4,64,3>": "" + }, + "<4,65>": "-2", + "<4,66>": "", + "<4,67>": "", + "<4,68>": "", + "<4,69>": "", + "<4,70>": "", + "<4,71>": "", + "<4,72>": "", + "<4,73>": "", + "<4,74>": "", + "<4,75>": "", + "<4,76>": "", + "<4,77>": "", + "<4,78>": "", + "<4,79>": "", + "<4,80>": "", + "<4,81>": "", + "<4,82>": "", + "<4,83>": "", + "<4,84>": "", + "<4,85>": "", + "<4,86>": "", + "<4,87>": "", + "<4,88>": "", + "<4,89>": "", + "<4,90>": "0", + "<4,91>": "0", + "<4,92>": "", + "<4,93>": "", + "<4,94>": "", + "<4,95>": "", + "<4,96>": "", + "<4,97>": "", + "<4,98>": "", + "<4,99>": "", + "<4,100>": "", + "<4,101>": "", + "<4,102>": "", + "<4,103>": "", + "<4,104>": "", + "<4,105>": "", + "<4,106>": "", + "<4,107>": "", + "<4,108>": "" }, "<5>": { "<5,1>": "TXT_TOPLABEL", @@ -507,7 +853,7 @@ "<5,8>": "28", "<5,9>": "Top Label:", "<5,10>": { - "<5,10,1>": "0x56000002", + "<5,10,1>": "0x56000800", "<5,10,2>": "0x0" }, "<5,11>": { @@ -515,7 +861,11 @@ "<5,11,2>": "0x80000000" }, "<5,12>": "5", - "<5,13>": "-1", + "<5,13>": { + "<5,13,1>": "-1", + "<5,13,2>": "-1", + "<5,13,3>": "" + }, "<5,14>": "0", "<5,15>": { "<5,15,1>": { @@ -544,17 +894,14 @@ "<5,22>": "", "<5,23>": "", "<5,24>": "", - "<5,25>": "0", - "<5,26>": "0", + "<5,25>": "", + "<5,26>": "", "<5,27>": "", - "<5,28>": "<>", - "<5,29>": "<>", - "<5,30>": "<>", - "<5,31>": "0", - "<5,32>": { - "<5,32,1>": "0x7fffe", - "<5,32,2>": "0xf0016808" - }, + "<5,28>": "", + "<5,29>": "", + "<5,30>": "", + "<5,31>": "", + "<5,32>": "", "<5,33>": "", "<5,34>": "", "<5,35>": "", @@ -574,7 +921,76 @@ "<5,49>": "", "<5,50>": "", "<5,51>": "", - "<5,52>": "" + "<5,52>": "", + "<5,53>": "", + "<5,54>": "", + "<5,55>": "", + "<5,56>": "", + "<5,57>": "", + "<5,58>": "", + "<5,59>": "", + "<5,60>": "", + "<5,61>": "", + "<5,62>": "0", + "<5,63>": { + "<5,63,1>": "", + "<5,63,2>": "", + "<5,63,3>": "", + "<5,63,4>": "", + "<5,63,5>": "", + "<5,63,6>": "", + "<5,63,7>": "", + "<5,63,8>": "" + }, + "<5,64>": { + "<5,64,1>": "", + "<5,64,2>": "", + "<5,64,3>": "" + }, + "<5,65>": "-2", + "<5,66>": "", + "<5,67>": "", + "<5,68>": "", + "<5,69>": "", + "<5,70>": "", + "<5,71>": "", + "<5,72>": "", + "<5,73>": "", + "<5,74>": "", + "<5,75>": "", + "<5,76>": "", + "<5,77>": "", + "<5,78>": "", + "<5,79>": "", + "<5,80>": "", + "<5,81>": "", + "<5,82>": "", + "<5,83>": "", + "<5,84>": "", + "<5,85>": "", + "<5,86>": "", + "<5,87>": "", + "<5,88>": "", + "<5,89>": "", + "<5,90>": "0", + "<5,91>": "0", + "<5,92>": "", + "<5,93>": "", + "<5,94>": "", + "<5,95>": "", + "<5,96>": "", + "<5,97>": "", + "<5,98>": "", + "<5,99>": "", + "<5,100>": "", + "<5,101>": "", + "<5,102>": "", + "<5,103>": "", + "<5,104>": "", + "<5,105>": "", + "<5,106>": "", + "<5,107>": "", + "<5,108>": "" }, "<6>": { "<6,1>": "TXT_BOTTOMLABEL", @@ -587,7 +1003,7 @@ "<6,8>": "28", "<6,9>": "Bottom Label:", "<6,10>": { - "<6,10,1>": "0x56000002", + "<6,10,1>": "0x56000800", "<6,10,2>": "0x0" }, "<6,11>": { @@ -595,7 +1011,11 @@ "<6,11,2>": "0x80000000" }, "<6,12>": "6", - "<6,13>": "-1", + "<6,13>": { + "<6,13,1>": "-1", + "<6,13,2>": "-1", + "<6,13,3>": "" + }, "<6,14>": "0", "<6,15>": { "<6,15,1>": { @@ -624,17 +1044,14 @@ "<6,22>": "", "<6,23>": "", "<6,24>": "", - "<6,25>": "0", - "<6,26>": "0", + "<6,25>": "", + "<6,26>": "", "<6,27>": "", - "<6,28>": "<>", - "<6,29>": "<>", - "<6,30>": "<>", - "<6,31>": "0", - "<6,32>": { - "<6,32,1>": "0x7fffe", - "<6,32,2>": "0xf0016808" - }, + "<6,28>": "", + "<6,29>": "", + "<6,30>": "", + "<6,31>": "", + "<6,32>": "", "<6,33>": "", "<6,34>": "", "<6,35>": "", @@ -654,7 +1071,76 @@ "<6,49>": "", "<6,50>": "", "<6,51>": "", - "<6,52>": "" + "<6,52>": "", + "<6,53>": "", + "<6,54>": "", + "<6,55>": "", + "<6,56>": "", + "<6,57>": "", + "<6,58>": "", + "<6,59>": "", + "<6,60>": "", + "<6,61>": "", + "<6,62>": "0", + "<6,63>": { + "<6,63,1>": "", + "<6,63,2>": "", + "<6,63,3>": "", + "<6,63,4>": "", + "<6,63,5>": "", + "<6,63,6>": "", + "<6,63,7>": "", + "<6,63,8>": "" + }, + "<6,64>": { + "<6,64,1>": "", + "<6,64,2>": "", + "<6,64,3>": "" + }, + "<6,65>": "-2", + "<6,66>": "", + "<6,67>": "", + "<6,68>": "", + "<6,69>": "", + "<6,70>": "", + "<6,71>": "", + "<6,72>": "", + "<6,73>": "", + "<6,74>": "", + "<6,75>": "", + "<6,76>": "", + "<6,77>": "", + "<6,78>": "", + "<6,79>": "", + "<6,80>": "", + "<6,81>": "", + "<6,82>": "", + "<6,83>": "", + "<6,84>": "", + "<6,85>": "", + "<6,86>": "", + "<6,87>": "", + "<6,88>": "", + "<6,89>": "", + "<6,90>": "0", + "<6,91>": "0", + "<6,92>": "", + "<6,93>": "", + "<6,94>": "", + "<6,95>": "", + "<6,96>": "", + "<6,97>": "", + "<6,98>": "", + "<6,99>": "", + "<6,100>": "", + "<6,101>": "", + "<6,102>": "", + "<6,103>": "", + "<6,104>": "", + "<6,105>": "", + "<6,106>": "", + "<6,107>": "", + "<6,108>": "" }, "<7>": { "<7,1>": "TXT_SUBLOT", @@ -667,7 +1153,7 @@ "<7,8>": "28", "<7,9>": "Sub Lot:", "<7,10>": { - "<7,10,1>": "0x56000002", + "<7,10,1>": "0x56000800", "<7,10,2>": "0x0" }, "<7,11>": { @@ -675,7 +1161,11 @@ "<7,11,2>": "0x80000000" }, "<7,12>": "7", - "<7,13>": "-1", + "<7,13>": { + "<7,13,1>": "-1", + "<7,13,2>": "-1", + "<7,13,3>": "" + }, "<7,14>": "0", "<7,15>": { "<7,15,1>": { @@ -704,17 +1194,14 @@ "<7,22>": "", "<7,23>": "", "<7,24>": "", - "<7,25>": "0", - "<7,26>": "0", + "<7,25>": "", + "<7,26>": "", "<7,27>": "", - "<7,28>": "<>", - "<7,29>": "<>", - "<7,30>": "<>", - "<7,31>": "0", - "<7,32>": { - "<7,32,1>": "0x7fffe", - "<7,32,2>": "0xf0016808" - }, + "<7,28>": "", + "<7,29>": "", + "<7,30>": "", + "<7,31>": "", + "<7,32>": "", "<7,33>": "", "<7,34>": "", "<7,35>": "", @@ -734,7 +1221,76 @@ "<7,49>": "", "<7,50>": "", "<7,51>": "", - "<7,52>": "" + "<7,52>": "", + "<7,53>": "", + "<7,54>": "", + "<7,55>": "", + "<7,56>": "", + "<7,57>": "", + "<7,58>": "", + "<7,59>": "", + "<7,60>": "", + "<7,61>": "", + "<7,62>": "0", + "<7,63>": { + "<7,63,1>": "", + "<7,63,2>": "", + "<7,63,3>": "", + "<7,63,4>": "", + "<7,63,5>": "", + "<7,63,6>": "", + "<7,63,7>": "", + "<7,63,8>": "" + }, + "<7,64>": { + "<7,64,1>": "", + "<7,64,2>": "", + "<7,64,3>": "" + }, + "<7,65>": "-2", + "<7,66>": "", + "<7,67>": "", + "<7,68>": "", + "<7,69>": "", + "<7,70>": "", + "<7,71>": "", + "<7,72>": "", + "<7,73>": "", + "<7,74>": "", + "<7,75>": "", + "<7,76>": "", + "<7,77>": "", + "<7,78>": "", + "<7,79>": "", + "<7,80>": "", + "<7,81>": "", + "<7,82>": "", + "<7,83>": "", + "<7,84>": "", + "<7,85>": "", + "<7,86>": "", + "<7,87>": "", + "<7,88>": "", + "<7,89>": "", + "<7,90>": "0", + "<7,91>": "0", + "<7,92>": "", + "<7,93>": "", + "<7,94>": "", + "<7,95>": "", + "<7,96>": "", + "<7,97>": "", + "<7,98>": "", + "<7,99>": "", + "<7,100>": "", + "<7,101>": "", + "<7,102>": "", + "<7,103>": "", + "<7,104>": "", + "<7,105>": "", + "<7,106>": "", + "<7,107>": "", + "<7,108>": "" }, "<8>": { "<8,1>": "OLE_BTN_CLEAR", @@ -747,7 +1303,7 @@ "<8,8>": "27", "<8,9>": "SRP.Button.1", "<8,10>": { - "<8,10,1>": "0x56800000", + "<8,10,1>": "0x56000000", "<8,10,2>": "0x0" }, "<8,11>": { @@ -755,7 +1311,11 @@ "<8,11,2>": "0x80000000" }, "<8,12>": "8", - "<8,13>": "-2", + "<8,13>": { + "<8,13,1>": "-2", + "<8,13,2>": "-2", + "<8,13,3>": "" + }, "<8,14>": "0", "<8,15>": { "<8,15,1>": { @@ -793,35 +1353,148 @@ "<8,18,1,4,8>": "@PARAM6" }, "<8,18,1,5>": "@SELF", - "<8,18,1,6>": "" - }, - "<8,18,2>": "" - }, - "<8,19>": { - "<8,19,1>": "OLE", - "<8,19,2>": "" + "<8,18,1,6>": "", + "<8,18,1,7>": "", + "<8,18,1,8>": "", + "<8,18,1,9>": "", + "<8,18,1,10>": "", + "<8,18,1,11>": "", + "<8,18,1,12>": "", + "<8,18,1,13>": "", + "<8,18,1,14>": "", + "<8,18,1,15>": "STPROC" + } }, + "<8,19>": "OLE", "<8,20>": "", "<8,21>": "", "<8,22>": "", "<8,23>": "", "<8,24>": "", - "<8,25>": "0", - "<8,26>": "0", + "<8,25>": "", + "<8,26>": "", "<8,27>": "", - "<8,28>": "<>", - "<8,29>": "<>", - "<8,30>": "<>", - "<8,31>": "0", - "<8,32>": { - "<8,32,1>": "0x7fffe", - "<8,32,2>": "0xf0016000" - }, + "<8,28>": "", + "<8,29>": "", + "<8,30>": "", + "<8,31>": "", + "<8,32>": "", "<8,33>": "", "<8,34>": "", "<8,35>": "", - "<8,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF0B260043006C006500610072002000470072006900640000000000FFFEFF225300650067006F006500200055004900FCF02D0031003300FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF21520065006D006F00760065007300200061006C006C0020007200650063006F007200640073002000660072006F006D00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", - "<8,37>": "" + "<8,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF0B260043006C006500610072002000470072006900640000000000FFFEFF225300650067006F006500200055004900FCF02D0031003100FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF21520065006D006F00760065007300200061006C006C0020007200650063006F007200640073002000660072006F006D00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", + "<8,37>": "", + "<8,38>": "", + "<8,39>": "", + "<8,40>": "", + "<8,41>": "", + "<8,42>": "", + "<8,43>": "", + "<8,44>": "", + "<8,45>": "", + "<8,46>": "", + "<8,47>": "", + "<8,48>": "", + "<8,49>": "", + "<8,50>": "", + "<8,51>": "", + "<8,52>": "", + "<8,53>": "", + "<8,54>": "", + "<8,55>": { + "<8,55,1>": "OLE.ButtonType", + "<8,55,2>": "OLE.Cancel", + "<8,55,3>": "OLE.Caption", + "<8,55,4>": "OLE.Default", + "<8,55,5>": "OLE.FontBold", + "<8,55,6>": "OLE.FontItalic", + "<8,55,7>": "OLE.FontName", + "<8,55,8>": "OLE.FontSize", + "<8,55,9>": "OLE.FontUnderlined", + "<8,55,10>": "OLE.IconFrameCount", + "<8,55,11>": "OLE.IconHeight", + "<8,55,12>": "OLE.IconPath", + "<8,55,13>": "OLE.IconSizeToFit", + "<8,55,14>": "OLE.IconWidth", + "<8,55,15>": "OLE.State", + "<8,55,16>": "OLE.StatusBarText", + "<8,55,17>": "OLE.Style", + "<8,55,18>": "OLE.ToolTip", + "<8,55,19>": "OLE.TransparentColor" + }, + "<8,56>": { + "<8,56,1>": "Normal", + "<8,56,2>": "0", + "<8,56,3>": "&Clear Grid", + "<8,56,4>": "0", + "<8,56,5>": "0", + "<8,56,6>": "0", + "<8,56,7>": "Segoe UI", + "<8,56,8>": "8", + "<8,56,9>": "0", + "<8,56,10>": "1", + "<8,56,11>": "0", + "<8,56,12>": "", + "<8,56,13>": "0", + "<8,56,14>": "0", + "<8,56,15>": "0", + "<8,56,16>": "", + "<8,56,17>": "Standard Toolbar", + "<8,56,18>": "Removes all records from the grid", + "<8,56,19>": "Auto" + }, + "<8,57>": "", + "<8,58>": "", + "<8,59>": "", + "<8,60>": "", + "<8,61>": "", + "<8,62>": "", + "<8,63>": "", + "<8,64>": "", + "<8,65>": "", + "<8,66>": "", + "<8,67>": "", + "<8,68>": "", + "<8,69>": "", + "<8,70>": "", + "<8,71>": "", + "<8,72>": "", + "<8,73>": "", + "<8,74>": "", + "<8,75>": "", + "<8,76>": "", + "<8,77>": "", + "<8,78>": "", + "<8,79>": "", + "<8,80>": "", + "<8,81>": "", + "<8,82>": "", + "<8,83>": "", + "<8,84>": "", + "<8,85>": "", + "<8,86>": "", + "<8,87>": "", + "<8,88>": "", + "<8,89>": "", + "<8,90>": "", + "<8,91>": "", + "<8,92>": "", + "<8,93>": "", + "<8,94>": "", + "<8,95>": "", + "<8,96>": "", + "<8,97>": "", + "<8,98>": "", + "<8,99>": "", + "<8,100>": "", + "<8,101>": "", + "<8,102>": "", + "<8,103>": "", + "<8,104>": "", + "<8,105>": "", + "<8,106>": "", + "<8,107>": "", + "<8,108>": "" }, "<9>": { "<9,1>": "OLE_EDT_SCANDATA", @@ -842,7 +1515,11 @@ "<9,11,2>": "0x80000000" }, "<9,12>": "9", - "<9,13>": "-2", + "<9,13>": { + "<9,13,1>": "-2", + "<9,13,2>": "-2", + "<9,13,3>": "" + }, "<9,14>": "0", "<9,15>": { "<9,15,1>": { @@ -880,46 +1557,138 @@ "<9,18,1,4,8>": "@PARAM6" }, "<9,18,1,5>": "@SELF", - "<9,18,1,6>": "" - }, - "<9,18,2>": "" - }, - "<9,19>": { - "<9,19,1>": "OLE", - "<9,19,2>": "" + "<9,18,1,6>": "", + "<9,18,1,7>": "", + "<9,18,1,8>": "", + "<9,18,1,9>": "", + "<9,18,1,10>": "", + "<9,18,1,11>": "", + "<9,18,1,12>": "", + "<9,18,1,13>": "", + "<9,18,1,14>": "", + "<9,18,1,15>": "STPROC" + } }, + "<9,19>": "OLE", "<9,20>": "", "<9,21>": "", "<9,22>": "", "<9,23>": "", "<9,24>": "", - "<9,25>": "0", - "<9,26>": "0", + "<9,25>": "", + "<9,26>": "", "<9,27>": "", - "<9,28>": "<>", - "<9,29>": "<>", - "<9,30>": "<>", - "<9,31>": "0", - "<9,32>": { - "<9,32,1>": "0x7fffe", - "<9,32,2>": "0xf0016800" - }, + "<9,28>": "", + "<9,29>": "", + "<9,30>": "", + "<9,31>": "", + "<9,32>": "", "<9,33>": "", "<9,34>": "", "<9,35>": "", "<9,36>": "0000000000000000", - "<9,37>": "" - }, - "<10>": "" + "<9,37>": "", + "<9,38>": "", + "<9,39>": "", + "<9,40>": "", + "<9,41>": "", + "<9,42>": "", + "<9,43>": "", + "<9,44>": "", + "<9,45>": "", + "<9,46>": "", + "<9,47>": "", + "<9,48>": "", + "<9,49>": "", + "<9,50>": "", + "<9,51>": "", + "<9,52>": "", + "<9,53>": "", + "<9,54>": "", + "<9,55>": { + "<9,55,1>": "OLE.AllowXPTheme", + "<9,55,2>": "OLE.ComboDropDown", + "<9,55,3>": "OLE.DblClickToEdit", + "<9,55,4>": "OLE.EditContextMenu", + "<9,55,5>": "OLE.EditText", + "<9,55,6>": "OLE.Focus", + "<9,55,7>": "OLE.HeaderRowCount", + "<9,55,8>": "OLE.Modified", + "<9,55,9>": "OLE.PassEnterKey", + "<9,55,10>": "OLE.ScrollBarsVisible", + "<9,55,11>": "OLE.SingleEscape", + "<9,55,12>": "OLE.TextRenderStyle" + }, + "<9,56>": { + "<9,56,1>": "0", + "<9,56,2>": "0", + "<9,56,3>": "1", + "<9,56,4>": "1", + "<9,56,5>": "", + "<9,56,6>": "0", + "<9,56,7>": "1", + "<9,56,8>": "0", + "<9,56,9>": "0", + "<9,56,10>": "Auto|Auto", + "<9,56,11>": "0", + "<9,56,12>": "EditField|Ellipses" + }, + "<9,57>": "", + "<9,58>": "", + "<9,59>": "", + "<9,60>": "", + "<9,61>": "", + "<9,62>": "", + "<9,63>": "", + "<9,64>": "", + "<9,65>": "", + "<9,66>": "", + "<9,67>": "", + "<9,68>": "", + "<9,69>": "", + "<9,70>": "", + "<9,71>": "", + "<9,72>": "", + "<9,73>": "", + "<9,74>": "", + "<9,75>": "", + "<9,76>": "", + "<9,77>": "", + "<9,78>": "", + "<9,79>": "", + "<9,80>": "", + "<9,81>": "", + "<9,82>": "", + "<9,83>": "", + "<9,84>": "", + "<9,85>": "", + "<9,86>": "", + "<9,87>": "", + "<9,88>": "", + "<9,89>": "", + "<9,90>": "", + "<9,91>": "", + "<9,92>": "", + "<9,93>": "", + "<9,94>": "", + "<9,95>": "", + "<9,96>": "", + "<9,97>": "", + "<9,98>": "", + "<9,99>": "", + "<9,100>": "", + "<9,101>": "", + "<9,102>": "", + "<9,103>": "", + "<9,104>": "", + "<9,105>": "", + "<9,106>": "", + "<9,107>": "", + "<9,108>": "" + } }, "record4": { - "<1>": "", - "<2>": { - "<2,1>": "", - "<2,2>": "", - "<2,3>": "", - "<2,4>": "0" - } + "<1>": "" } } } \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_PACKAGING.json b/LSL2/OIWIN/NDW_PACKAGING.json index bbb5cd2..416aae9 100644 --- a/LSL2/OIWIN/NDW_PACKAGING.json +++ b/LSL2/OIWIN/NDW_PACKAGING.json @@ -22,15 +22,19 @@ "<1,9>": "Packaging", "<1,10>": { "<1,10,1>": "0x94CE0000", - "<1,10,2>": "0x0" + "<1,10,2>": "0x100" }, "<1,11>": { - "<1,11,1>": "0x0", + "<1,11,1>": "0x8000", "<1,11,2>": "0x80000000" }, - "<1,12>": "0", - "<1,13>": "-2", - "<1,14>": "0", + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", "<1,15>": "", "<1,16>": "", "<1,17>": "", @@ -50,51 +54,61 @@ "<1,18,1,4,8>": "@PARAM6" }, "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "CREATE", - "<1,19,2>": "" + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC" + } }, + "<1,19>": "CREATE", "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "", "<1,24>": { - "<1,24,1>": "0", + "<1,24,1>": "", "<1,24,2>": "0", "<1,24,3>": "0", "<1,24,4>": "0", - "<1,24,5>": "0", - "<1,24,6>": "0" + "<1,24,5>": "", + "<1,24,6>": "0", + "<1,24,7>": "", + "<1,24,8>": "", + "<1,24,9>": "", + "<1,24,10>": "0", + "<1,24,11>": "0", + "<1,24,12>": "0", + "<1,24,13>": "0", + "<1,24,14>": "0", + "<1,24,15>": "0", + "<1,24,16>": "0", + "<1,24,17>": "0" }, - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "", "<1,29>": "", "<1,30>": "", "<1,31>": "", - "<1,32>": { - "<1,32,1>": "0x7FFFE", - "<1,32,2>": "0xF001E808" - }, + "<1,32>": "", "<1,33>": "", "<1,34>": "LSL2*IMAGE*ICO*INFINEON", "<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,37,1>": "0X10001", + "<1,37,2>": "0X10001" }, + "<1,38>": "", "<1,39>": "", - "<1,40>": "0", + "<1,40>": "", "<1,41>": "", "<1,42>": "", "<1,43>": "", @@ -106,7 +120,74 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": { + "<1,62,1>": "0", + "<1,62,2>": "", + "<1,62,3>": "", + "<1,62,4>": "0", + "<1,62,5>": "0", + "<1,62,6>": "0", + "<1,62,7>": "", + "<1,62,8>": "0.50", + "<1,62,9>": "5.00", + "<1,62,10>": "0.00" + }, + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" } }, "record3": { @@ -121,15 +202,19 @@ "<1,8>": "50", "<1,9>": "User ID Scan", "<1,10>": { - "<1,10,1>": "0x56000002", + "<1,10,1>": "0x56000800", "<1,10,2>": "0x0" }, "<1,11>": { - "<1,11,1>": "0x0", + "<1,11,1>": "0x4", "<1,11,2>": "0x80000000" }, "<1,12>": "1", - "<1,13>": "-1", + "<1,13>": { + "<1,13,1>": "-1", + "<1,13,2>": "-1", + "<1,13,3>": "" + }, "<1,14>": "0", "<1,15>": { "<1,15,1>": { @@ -158,17 +243,14 @@ "<1,22>": "", "<1,23>": "", "<1,24>": "", - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", - "<1,28>": "<>", - "<1,29>": "<>", - "<1,30>": "<>", - "<1,31>": "0", - "<1,32>": { - "<1,32,1>": "0x7fffe", - "<1,32,2>": "0xf0016808" - }, + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<1,32>": "", "<1,33>": "", "<1,34>": "", "<1,35>": "", @@ -188,7 +270,76 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": "0", + "<1,63>": { + "<1,63,1>": "", + "<1,63,2>": "", + "<1,63,3>": "", + "<1,63,4>": "", + "<1,63,5>": "", + "<1,63,6>": "", + "<1,63,7>": "", + "<1,63,8>": "" + }, + "<1,64>": { + "<1,64,1>": "", + "<1,64,2>": "", + "<1,64,3>": "" + }, + "<1,65>": "-2", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "0", + "<1,91>": "0", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" }, "<2>": { "<2,1>": "EDL_USER_ID_SCAN", @@ -201,15 +352,19 @@ "<2,8>": "51", "<2,9>": "", "<2,10>": { - "<2,10,1>": "0x56000080", + "<2,10,1>": "0x56000088", "<2,10,2>": "0x200" }, "<2,11>": { - "<2,11,1>": "0x4", + "<2,11,1>": "0x0", "<2,11,2>": "0x80000000" }, "<2,12>": "2", - "<2,13>": "-2", + "<2,13>": { + "<2,13,1>": "-2", + "<2,13,2>": "-2", + "<2,13,3>": "" + }, "<2,14>": "0", "<2,15>": { "<2,15,1>": { @@ -247,34 +402,39 @@ "<2,18,1,4,8>": "@PARAM6" }, "<2,18,1,5>": "", - "<2,18,1,6>": "" - }, - "<2,18,2>": "" - }, - "<2,19>": { - "<2,19,1>": "LOSTFOCUS", - "<2,19,2>": "" + "<2,18,1,6>": "", + "<2,18,1,7>": "", + "<2,18,1,8>": "", + "<2,18,1,9>": "", + "<2,18,1,10>": "", + "<2,18,1,11>": "", + "<2,18,1,12>": "", + "<2,18,1,13>": "", + "<2,18,1,14>": "", + "<2,18,1,15>": "STPROC" + } }, + "<2,19>": "LOSTFOCUS", "<2,20>": "", "<2,21>": "", "<2,22>": "", "<2,23>": "", "<2,24>": "", - "<2,25>": "0", - "<2,26>": "0", + "<2,25>": "", + "<2,26>": "", "<2,27>": "", "<2,28>": "<>", "<2,29>": "<>", "<2,30>": "<>", "<2,31>": "0", - "<2,32>": { - "<2,32,1>": "0x7fffe", - "<2,32,2>": "0xf0016008" - }, + "<2,32>": "", "<2,33>": "", "<2,34>": "", "<2,35>": "", - "<2,36>": "", + "<2,36>": { + "<2,36,1>": "0", + "<2,36,2>": "0" + }, "<2,37>": "", "<2,38>": "", "<2,39>": "", @@ -290,7 +450,63 @@ "<2,49>": "", "<2,50>": "", "<2,51>": "", - "<2,52>": "" + "<2,52>": "", + "<2,53>": "", + "<2,54>": "", + "<2,55>": "", + "<2,56>": "", + "<2,57>": "", + "<2,58>": "", + "<2,59>": "", + "<2,60>": "", + "<2,61>": "", + "<2,62>": "0", + "<2,63>": "", + "<2,64>": "", + "<2,65>": "", + "<2,66>": "", + "<2,67>": "", + "<2,68>": "", + "<2,69>": "", + "<2,70>": "", + "<2,71>": "", + "<2,72>": "", + "<2,73>": "", + "<2,74>": "", + "<2,75>": "", + "<2,76>": "", + "<2,77>": "", + "<2,78>": "", + "<2,79>": "", + "<2,80>": "", + "<2,81>": "", + "<2,82>": "", + "<2,83>": "", + "<2,84>": "", + "<2,85>": "", + "<2,86>": "", + "<2,87>": "", + "<2,88>": "", + "<2,89>": "", + "<2,90>": "", + "<2,91>": "", + "<2,92>": "", + "<2,93>": "", + "<2,94>": "", + "<2,95>": "", + "<2,96>": "", + "<2,97>": "", + "<2,98>": "", + "<2,99>": "", + "<2,100>": "", + "<2,101>": "", + "<2,102>": "", + "<2,103>": "", + "<2,104>": "", + "<2,105>": "", + "<2,106>": "", + "<2,107>": "", + "<2,108>": "" }, "<3>": { "<3,1>": "TXT_CASS_SCAN_1", @@ -303,7 +519,7 @@ "<3,8>": "50", "<3,9>": "RDS Scan #1", "<3,10>": { - "<3,10,1>": "0x56000002", + "<3,10,1>": "0x56000800", "<3,10,2>": "0x0" }, "<3,11>": { @@ -311,7 +527,11 @@ "<3,11,2>": "0x80000000" }, "<3,12>": "3", - "<3,13>": "-1", + "<3,13>": { + "<3,13,1>": "-1", + "<3,13,2>": "-1", + "<3,13,3>": "" + }, "<3,14>": "0", "<3,15>": { "<3,15,1>": { @@ -340,17 +560,14 @@ "<3,22>": "", "<3,23>": "", "<3,24>": "", - "<3,25>": "0", - "<3,26>": "0", + "<3,25>": "", + "<3,26>": "", "<3,27>": "", - "<3,28>": "<>", - "<3,29>": "<>", - "<3,30>": "<>", - "<3,31>": "0", - "<3,32>": { - "<3,32,1>": "0x7fffe", - "<3,32,2>": "0xf0016808" - }, + "<3,28>": "", + "<3,29>": "", + "<3,30>": "", + "<3,31>": "", + "<3,32>": "", "<3,33>": "", "<3,34>": "", "<3,35>": "", @@ -370,7 +587,76 @@ "<3,49>": "", "<3,50>": "", "<3,51>": "", - "<3,52>": "" + "<3,52>": "", + "<3,53>": "", + "<3,54>": "", + "<3,55>": "", + "<3,56>": "", + "<3,57>": "", + "<3,58>": "", + "<3,59>": "", + "<3,60>": "", + "<3,61>": "", + "<3,62>": "0", + "<3,63>": { + "<3,63,1>": "", + "<3,63,2>": "", + "<3,63,3>": "", + "<3,63,4>": "", + "<3,63,5>": "", + "<3,63,6>": "", + "<3,63,7>": "", + "<3,63,8>": "" + }, + "<3,64>": { + "<3,64,1>": "", + "<3,64,2>": "", + "<3,64,3>": "" + }, + "<3,65>": "-2", + "<3,66>": "", + "<3,67>": "", + "<3,68>": "", + "<3,69>": "", + "<3,70>": "", + "<3,71>": "", + "<3,72>": "", + "<3,73>": "", + "<3,74>": "", + "<3,75>": "", + "<3,76>": "", + "<3,77>": "", + "<3,78>": "", + "<3,79>": "", + "<3,80>": "", + "<3,81>": "", + "<3,82>": "", + "<3,83>": "", + "<3,84>": "", + "<3,85>": "", + "<3,86>": "", + "<3,87>": "", + "<3,88>": "", + "<3,89>": "", + "<3,90>": "0", + "<3,91>": "0", + "<3,92>": "", + "<3,93>": "", + "<3,94>": "", + "<3,95>": "", + "<3,96>": "", + "<3,97>": "", + "<3,98>": "", + "<3,99>": "", + "<3,100>": "", + "<3,101>": "", + "<3,102>": "", + "<3,103>": "", + "<3,104>": "", + "<3,105>": "", + "<3,106>": "", + "<3,107>": "", + "<3,108>": "" }, "<4>": { "<4,1>": "EDL_CASS_SCAN_1", @@ -383,7 +669,7 @@ "<4,8>": "51", "<4,9>": "", "<4,10>": { - "<4,10,1>": "0x5E000080", + "<4,10,1>": "0x5E000088", "<4,10,2>": "0x200" }, "<4,11>": { @@ -391,7 +677,11 @@ "<4,11,2>": "0x80000000" }, "<4,12>": "4", - "<4,13>": "-2", + "<4,13>": { + "<4,13,1>": "-2", + "<4,13,2>": "-2", + "<4,13,3>": "" + }, "<4,14>": "0", "<4,15>": { "<4,15,1>": { @@ -429,34 +719,39 @@ "<4,18,1,4,8>": "@PARAM6" }, "<4,18,1,5>": "", - "<4,18,1,6>": "" - }, - "<4,18,2>": "" - }, - "<4,19>": { - "<4,19,1>": "LOSTFOCUS", - "<4,19,2>": "" + "<4,18,1,6>": "", + "<4,18,1,7>": "", + "<4,18,1,8>": "", + "<4,18,1,9>": "", + "<4,18,1,10>": "", + "<4,18,1,11>": "", + "<4,18,1,12>": "", + "<4,18,1,13>": "", + "<4,18,1,14>": "", + "<4,18,1,15>": "STPROC" + } }, + "<4,19>": "LOSTFOCUS", "<4,20>": "", "<4,21>": "", "<4,22>": "", "<4,23>": "", "<4,24>": "", - "<4,25>": "0", - "<4,26>": "0", + "<4,25>": "", + "<4,26>": "", "<4,27>": "", "<4,28>": "<>", "<4,29>": "<>", "<4,30>": "<>", "<4,31>": "0", - "<4,32>": { - "<4,32,1>": "0x7fffe", - "<4,32,2>": "0xf0016008" - }, + "<4,32>": "", "<4,33>": "", "<4,34>": "", "<4,35>": "", - "<4,36>": "", + "<4,36>": { + "<4,36,1>": "0", + "<4,36,2>": "0" + }, "<4,37>": "", "<4,38>": "", "<4,39>": "", @@ -472,7 +767,63 @@ "<4,49>": "", "<4,50>": "", "<4,51>": "", - "<4,52>": "" + "<4,52>": "", + "<4,53>": "", + "<4,54>": "", + "<4,55>": "", + "<4,56>": "", + "<4,57>": "", + "<4,58>": "", + "<4,59>": "", + "<4,60>": "", + "<4,61>": "", + "<4,62>": "0", + "<4,63>": "", + "<4,64>": "", + "<4,65>": "", + "<4,66>": "", + "<4,67>": "", + "<4,68>": "", + "<4,69>": "", + "<4,70>": "", + "<4,71>": "", + "<4,72>": "", + "<4,73>": "", + "<4,74>": "", + "<4,75>": "", + "<4,76>": "", + "<4,77>": "", + "<4,78>": "", + "<4,79>": "", + "<4,80>": "", + "<4,81>": "", + "<4,82>": "", + "<4,83>": "", + "<4,84>": "", + "<4,85>": "", + "<4,86>": "", + "<4,87>": "", + "<4,88>": "", + "<4,89>": "", + "<4,90>": "", + "<4,91>": "", + "<4,92>": "", + "<4,93>": "", + "<4,94>": "", + "<4,95>": "", + "<4,96>": "", + "<4,97>": "", + "<4,98>": "", + "<4,99>": "", + "<4,100>": "", + "<4,101>": "", + "<4,102>": "", + "<4,103>": "", + "<4,104>": "", + "<4,105>": "", + "<4,106>": "", + "<4,107>": "", + "<4,108>": "" }, "<5>": { "<5,1>": "TXT_CASS_SCAN_2", @@ -485,7 +836,7 @@ "<5,8>": "50", "<5,9>": "RDS Scan #2", "<5,10>": { - "<5,10,1>": "0x56000002", + "<5,10,1>": "0x56000800", "<5,10,2>": "0x0" }, "<5,11>": { @@ -493,7 +844,11 @@ "<5,11,2>": "0x80000000" }, "<5,12>": "5", - "<5,13>": "-1", + "<5,13>": { + "<5,13,1>": "-1", + "<5,13,2>": "-1", + "<5,13,3>": "" + }, "<5,14>": "0", "<5,15>": { "<5,15,1>": { @@ -522,17 +877,14 @@ "<5,22>": "", "<5,23>": "", "<5,24>": "", - "<5,25>": "0", - "<5,26>": "0", + "<5,25>": "", + "<5,26>": "", "<5,27>": "", - "<5,28>": "<>", - "<5,29>": "<>", - "<5,30>": "<>", - "<5,31>": "0", - "<5,32>": { - "<5,32,1>": "0x7fffe", - "<5,32,2>": "0xf0016808" - }, + "<5,28>": "", + "<5,29>": "", + "<5,30>": "", + "<5,31>": "", + "<5,32>": "", "<5,33>": "", "<5,34>": "", "<5,35>": "", @@ -552,7 +904,76 @@ "<5,49>": "", "<5,50>": "", "<5,51>": "", - "<5,52>": "" + "<5,52>": "", + "<5,53>": "", + "<5,54>": "", + "<5,55>": "", + "<5,56>": "", + "<5,57>": "", + "<5,58>": "", + "<5,59>": "", + "<5,60>": "", + "<5,61>": "", + "<5,62>": "0", + "<5,63>": { + "<5,63,1>": "", + "<5,63,2>": "", + "<5,63,3>": "", + "<5,63,4>": "", + "<5,63,5>": "", + "<5,63,6>": "", + "<5,63,7>": "", + "<5,63,8>": "" + }, + "<5,64>": { + "<5,64,1>": "", + "<5,64,2>": "", + "<5,64,3>": "" + }, + "<5,65>": "-2", + "<5,66>": "", + "<5,67>": "", + "<5,68>": "", + "<5,69>": "", + "<5,70>": "", + "<5,71>": "", + "<5,72>": "", + "<5,73>": "", + "<5,74>": "", + "<5,75>": "", + "<5,76>": "", + "<5,77>": "", + "<5,78>": "", + "<5,79>": "", + "<5,80>": "", + "<5,81>": "", + "<5,82>": "", + "<5,83>": "", + "<5,84>": "", + "<5,85>": "", + "<5,86>": "", + "<5,87>": "", + "<5,88>": "", + "<5,89>": "", + "<5,90>": "0", + "<5,91>": "0", + "<5,92>": "", + "<5,93>": "", + "<5,94>": "", + "<5,95>": "", + "<5,96>": "", + "<5,97>": "", + "<5,98>": "", + "<5,99>": "", + "<5,100>": "", + "<5,101>": "", + "<5,102>": "", + "<5,103>": "", + "<5,104>": "", + "<5,105>": "", + "<5,106>": "", + "<5,107>": "", + "<5,108>": "" }, "<6>": { "<6,1>": "EDL_CASS_SCAN_2", @@ -565,7 +986,7 @@ "<6,8>": "51", "<6,9>": "", "<6,10>": { - "<6,10,1>": "0x5E000080", + "<6,10,1>": "0x5E000088", "<6,10,2>": "0x200" }, "<6,11>": { @@ -573,7 +994,11 @@ "<6,11,2>": "0x80000000" }, "<6,12>": "6", - "<6,13>": "-2", + "<6,13>": { + "<6,13,1>": "-2", + "<6,13,2>": "-2", + "<6,13,3>": "" + }, "<6,14>": "0", "<6,15>": { "<6,15,1>": { @@ -611,34 +1036,39 @@ "<6,18,1,4,8>": "@PARAM6" }, "<6,18,1,5>": "", - "<6,18,1,6>": "" - }, - "<6,18,2>": "" - }, - "<6,19>": { - "<6,19,1>": "LOSTFOCUS", - "<6,19,2>": "" + "<6,18,1,6>": "", + "<6,18,1,7>": "", + "<6,18,1,8>": "", + "<6,18,1,9>": "", + "<6,18,1,10>": "", + "<6,18,1,11>": "", + "<6,18,1,12>": "", + "<6,18,1,13>": "", + "<6,18,1,14>": "", + "<6,18,1,15>": "STPROC" + } }, + "<6,19>": "LOSTFOCUS", "<6,20>": "", "<6,21>": "", "<6,22>": "", "<6,23>": "", "<6,24>": "", - "<6,25>": "0", - "<6,26>": "0", + "<6,25>": "", + "<6,26>": "", "<6,27>": "", "<6,28>": "<>", "<6,29>": "<>", "<6,30>": "<>", "<6,31>": "0", - "<6,32>": { - "<6,32,1>": "0x7fffe", - "<6,32,2>": "0xf0016008" - }, + "<6,32>": "", "<6,33>": "", "<6,34>": "", "<6,35>": "", - "<6,36>": "", + "<6,36>": { + "<6,36,1>": "0", + "<6,36,2>": "0" + }, "<6,37>": "", "<6,38>": "", "<6,39>": "", @@ -654,7 +1084,63 @@ "<6,49>": "", "<6,50>": "", "<6,51>": "", - "<6,52>": "" + "<6,52>": "", + "<6,53>": "", + "<6,54>": "", + "<6,55>": "", + "<6,56>": "", + "<6,57>": "", + "<6,58>": "", + "<6,59>": "", + "<6,60>": "", + "<6,61>": "", + "<6,62>": "0", + "<6,63>": "", + "<6,64>": "", + "<6,65>": "", + "<6,66>": "", + "<6,67>": "", + "<6,68>": "", + "<6,69>": "", + "<6,70>": "", + "<6,71>": "", + "<6,72>": "", + "<6,73>": "", + "<6,74>": "", + "<6,75>": "", + "<6,76>": "", + "<6,77>": "", + "<6,78>": "", + "<6,79>": "", + "<6,80>": "", + "<6,81>": "", + "<6,82>": "", + "<6,83>": "", + "<6,84>": "", + "<6,85>": "", + "<6,86>": "", + "<6,87>": "", + "<6,88>": "", + "<6,89>": "", + "<6,90>": "", + "<6,91>": "", + "<6,92>": "", + "<6,93>": "", + "<6,94>": "", + "<6,95>": "", + "<6,96>": "", + "<6,97>": "", + "<6,98>": "", + "<6,99>": "", + "<6,100>": "", + "<6,101>": "", + "<6,102>": "", + "<6,103>": "", + "<6,104>": "", + "<6,105>": "", + "<6,106>": "", + "<6,107>": "", + "<6,108>": "" }, "<7>": { "<7,1>": "TXT_POLY_SCAN", @@ -667,7 +1153,7 @@ "<7,8>": "50", "<7,9>": "Poly Scan", "<7,10>": { - "<7,10,1>": "0x56000002", + "<7,10,1>": "0x56000800", "<7,10,2>": "0x0" }, "<7,11>": { @@ -675,7 +1161,11 @@ "<7,11,2>": "0x80000000" }, "<7,12>": "7", - "<7,13>": "-1", + "<7,13>": { + "<7,13,1>": "-1", + "<7,13,2>": "-1", + "<7,13,3>": "" + }, "<7,14>": "0", "<7,15>": { "<7,15,1>": { @@ -704,17 +1194,14 @@ "<7,22>": "", "<7,23>": "", "<7,24>": "", - "<7,25>": "0", - "<7,26>": "0", + "<7,25>": "", + "<7,26>": "", "<7,27>": "", - "<7,28>": "<>", - "<7,29>": "<>", - "<7,30>": "<>", - "<7,31>": "0", - "<7,32>": { - "<7,32,1>": "0x7fffe", - "<7,32,2>": "0xf0016808" - }, + "<7,28>": "", + "<7,29>": "", + "<7,30>": "", + "<7,31>": "", + "<7,32>": "", "<7,33>": "", "<7,34>": "", "<7,35>": "", @@ -734,7 +1221,76 @@ "<7,49>": "", "<7,50>": "", "<7,51>": "", - "<7,52>": "" + "<7,52>": "", + "<7,53>": "", + "<7,54>": "", + "<7,55>": "", + "<7,56>": "", + "<7,57>": "", + "<7,58>": "", + "<7,59>": "", + "<7,60>": "", + "<7,61>": "", + "<7,62>": "0", + "<7,63>": { + "<7,63,1>": "", + "<7,63,2>": "", + "<7,63,3>": "", + "<7,63,4>": "", + "<7,63,5>": "", + "<7,63,6>": "", + "<7,63,7>": "", + "<7,63,8>": "" + }, + "<7,64>": { + "<7,64,1>": "", + "<7,64,2>": "", + "<7,64,3>": "" + }, + "<7,65>": "-2", + "<7,66>": "", + "<7,67>": "", + "<7,68>": "", + "<7,69>": "", + "<7,70>": "", + "<7,71>": "", + "<7,72>": "", + "<7,73>": "", + "<7,74>": "", + "<7,75>": "", + "<7,76>": "", + "<7,77>": "", + "<7,78>": "", + "<7,79>": "", + "<7,80>": "", + "<7,81>": "", + "<7,82>": "", + "<7,83>": "", + "<7,84>": "", + "<7,85>": "", + "<7,86>": "", + "<7,87>": "", + "<7,88>": "", + "<7,89>": "", + "<7,90>": "0", + "<7,91>": "0", + "<7,92>": "", + "<7,93>": "", + "<7,94>": "", + "<7,95>": "", + "<7,96>": "", + "<7,97>": "", + "<7,98>": "", + "<7,99>": "", + "<7,100>": "", + "<7,101>": "", + "<7,102>": "", + "<7,103>": "", + "<7,104>": "", + "<7,105>": "", + "<7,106>": "", + "<7,107>": "", + "<7,108>": "" }, "<8>": { "<8,1>": "EDL_POLY_SCAN", @@ -747,7 +1303,7 @@ "<8,8>": "51", "<8,9>": "", "<8,10>": { - "<8,10,1>": "0x5E000080", + "<8,10,1>": "0x5E000088", "<8,10,2>": "0x200" }, "<8,11>": { @@ -755,7 +1311,11 @@ "<8,11,2>": "0x80000000" }, "<8,12>": "8", - "<8,13>": "-2", + "<8,13>": { + "<8,13,1>": "-2", + "<8,13,2>": "-2", + "<8,13,3>": "" + }, "<8,14>": "0", "<8,15>": { "<8,15,1>": { @@ -793,34 +1353,39 @@ "<8,18,1,4,8>": "@PARAM6" }, "<8,18,1,5>": "", - "<8,18,1,6>": "" - }, - "<8,18,2>": "" - }, - "<8,19>": { - "<8,19,1>": "LOSTFOCUS", - "<8,19,2>": "" + "<8,18,1,6>": "", + "<8,18,1,7>": "", + "<8,18,1,8>": "", + "<8,18,1,9>": "", + "<8,18,1,10>": "", + "<8,18,1,11>": "", + "<8,18,1,12>": "", + "<8,18,1,13>": "", + "<8,18,1,14>": "", + "<8,18,1,15>": "STPROC" + } }, + "<8,19>": "LOSTFOCUS", "<8,20>": "", "<8,21>": "", "<8,22>": "", "<8,23>": "", "<8,24>": "", - "<8,25>": "0", - "<8,26>": "0", + "<8,25>": "", + "<8,26>": "", "<8,27>": "", "<8,28>": "<>", "<8,29>": "<>", "<8,30>": "<>", "<8,31>": "0", - "<8,32>": { - "<8,32,1>": "0x7fffe", - "<8,32,2>": "0xf0016008" - }, + "<8,32>": "", "<8,33>": "", "<8,34>": "", "<8,35>": "", - "<8,36>": "", + "<8,36>": { + "<8,36,1>": "0", + "<8,36,2>": "0" + }, "<8,37>": "", "<8,38>": "", "<8,39>": "", @@ -836,7 +1401,63 @@ "<8,49>": "", "<8,50>": "", "<8,51>": "", - "<8,52>": "" + "<8,52>": "", + "<8,53>": "", + "<8,54>": "", + "<8,55>": "", + "<8,56>": "", + "<8,57>": "", + "<8,58>": "", + "<8,59>": "", + "<8,60>": "", + "<8,61>": "", + "<8,62>": "0", + "<8,63>": "", + "<8,64>": "", + "<8,65>": "", + "<8,66>": "", + "<8,67>": "", + "<8,68>": "", + "<8,69>": "", + "<8,70>": "", + "<8,71>": "", + "<8,72>": "", + "<8,73>": "", + "<8,74>": "", + "<8,75>": "", + "<8,76>": "", + "<8,77>": "", + "<8,78>": "", + "<8,79>": "", + "<8,80>": "", + "<8,81>": "", + "<8,82>": "", + "<8,83>": "", + "<8,84>": "", + "<8,85>": "", + "<8,86>": "", + "<8,87>": "", + "<8,88>": "", + "<8,89>": "", + "<8,90>": "", + "<8,91>": "", + "<8,92>": "", + "<8,93>": "", + "<8,94>": "", + "<8,95>": "", + "<8,96>": "", + "<8,97>": "", + "<8,98>": "", + "<8,99>": "", + "<8,100>": "", + "<8,101>": "", + "<8,102>": "", + "<8,103>": "", + "<8,104>": "", + "<8,105>": "", + "<8,106>": "", + "<8,107>": "", + "<8,108>": "" }, "<9>": { "<9,1>": "TXT_TRILAM_SCAN", @@ -849,7 +1470,7 @@ "<9,8>": "50", "<9,9>": "Trilam Scan", "<9,10>": { - "<9,10,1>": "0x56000002", + "<9,10,1>": "0x56000800", "<9,10,2>": "0x0" }, "<9,11>": { @@ -857,7 +1478,11 @@ "<9,11,2>": "0x80000000" }, "<9,12>": "9", - "<9,13>": "-1", + "<9,13>": { + "<9,13,1>": "-1", + "<9,13,2>": "-1", + "<9,13,3>": "" + }, "<9,14>": "0", "<9,15>": { "<9,15,1>": { @@ -886,17 +1511,14 @@ "<9,22>": "", "<9,23>": "", "<9,24>": "", - "<9,25>": "0", - "<9,26>": "0", + "<9,25>": "", + "<9,26>": "", "<9,27>": "", - "<9,28>": "<>", - "<9,29>": "<>", - "<9,30>": "<>", - "<9,31>": "0", - "<9,32>": { - "<9,32,1>": "0x7fffe", - "<9,32,2>": "0xf0016808" - }, + "<9,28>": "", + "<9,29>": "", + "<9,30>": "", + "<9,31>": "", + "<9,32>": "", "<9,33>": "", "<9,34>": "", "<9,35>": "", @@ -916,7 +1538,76 @@ "<9,49>": "", "<9,50>": "", "<9,51>": "", - "<9,52>": "" + "<9,52>": "", + "<9,53>": "", + "<9,54>": "", + "<9,55>": "", + "<9,56>": "", + "<9,57>": "", + "<9,58>": "", + "<9,59>": "", + "<9,60>": "", + "<9,61>": "", + "<9,62>": "0", + "<9,63>": { + "<9,63,1>": "", + "<9,63,2>": "", + "<9,63,3>": "", + "<9,63,4>": "", + "<9,63,5>": "", + "<9,63,6>": "", + "<9,63,7>": "", + "<9,63,8>": "" + }, + "<9,64>": { + "<9,64,1>": "", + "<9,64,2>": "", + "<9,64,3>": "" + }, + "<9,65>": "-2", + "<9,66>": "", + "<9,67>": "", + "<9,68>": "", + "<9,69>": "", + "<9,70>": "", + "<9,71>": "", + "<9,72>": "", + "<9,73>": "", + "<9,74>": "", + "<9,75>": "", + "<9,76>": "", + "<9,77>": "", + "<9,78>": "", + "<9,79>": "", + "<9,80>": "", + "<9,81>": "", + "<9,82>": "", + "<9,83>": "", + "<9,84>": "", + "<9,85>": "", + "<9,86>": "", + "<9,87>": "", + "<9,88>": "", + "<9,89>": "", + "<9,90>": "0", + "<9,91>": "0", + "<9,92>": "", + "<9,93>": "", + "<9,94>": "", + "<9,95>": "", + "<9,96>": "", + "<9,97>": "", + "<9,98>": "", + "<9,99>": "", + "<9,100>": "", + "<9,101>": "", + "<9,102>": "", + "<9,103>": "", + "<9,104>": "", + "<9,105>": "", + "<9,106>": "", + "<9,107>": "", + "<9,108>": "" }, "<10>": { "<10,1>": "EDL_TRILAM_SCAN", @@ -929,7 +1620,7 @@ "<10,8>": "51", "<10,9>": "", "<10,10>": { - "<10,10,1>": "0x5E000080", + "<10,10,1>": "0x5E000088", "<10,10,2>": "0x200" }, "<10,11>": { @@ -937,7 +1628,11 @@ "<10,11,2>": "0x80000000" }, "<10,12>": "10", - "<10,13>": "-2", + "<10,13>": { + "<10,13,1>": "-2", + "<10,13,2>": "-2", + "<10,13,3>": "" + }, "<10,14>": "0", "<10,15>": { "<10,15,1>": { @@ -975,34 +1670,39 @@ "<10,18,1,4,8>": "@PARAM6" }, "<10,18,1,5>": "", - "<10,18,1,6>": "" - }, - "<10,18,2>": "" - }, - "<10,19>": { - "<10,19,1>": "LOSTFOCUS", - "<10,19,2>": "" + "<10,18,1,6>": "", + "<10,18,1,7>": "", + "<10,18,1,8>": "", + "<10,18,1,9>": "", + "<10,18,1,10>": "", + "<10,18,1,11>": "", + "<10,18,1,12>": "", + "<10,18,1,13>": "", + "<10,18,1,14>": "", + "<10,18,1,15>": "STPROC" + } }, + "<10,19>": "LOSTFOCUS", "<10,20>": "", "<10,21>": "", "<10,22>": "", "<10,23>": "", "<10,24>": "", - "<10,25>": "0", - "<10,26>": "0", + "<10,25>": "", + "<10,26>": "", "<10,27>": "", "<10,28>": "<>", "<10,29>": "<>", "<10,30>": "<>", "<10,31>": "0", - "<10,32>": { - "<10,32,1>": "0x7fffe", - "<10,32,2>": "0xf0016008" - }, + "<10,32>": "", "<10,33>": "", "<10,34>": "", "<10,35>": "", - "<10,36>": "", + "<10,36>": { + "<10,36,1>": "0", + "<10,36,2>": "0" + }, "<10,37>": "", "<10,38>": "", "<10,39>": "", @@ -1018,7 +1718,63 @@ "<10,49>": "", "<10,50>": "", "<10,51>": "", - "<10,52>": "" + "<10,52>": "", + "<10,53>": "", + "<10,54>": "", + "<10,55>": "", + "<10,56>": "", + "<10,57>": "", + "<10,58>": "", + "<10,59>": "", + "<10,60>": "", + "<10,61>": "", + "<10,62>": "0", + "<10,63>": "", + "<10,64>": "", + "<10,65>": "", + "<10,66>": "", + "<10,67>": "", + "<10,68>": "", + "<10,69>": "", + "<10,70>": "", + "<10,71>": "", + "<10,72>": "", + "<10,73>": "", + "<10,74>": "", + "<10,75>": "", + "<10,76>": "", + "<10,77>": "", + "<10,78>": "", + "<10,79>": "", + "<10,80>": "", + "<10,81>": "", + "<10,82>": "", + "<10,83>": "", + "<10,84>": "", + "<10,85>": "", + "<10,86>": "", + "<10,87>": "", + "<10,88>": "", + "<10,89>": "", + "<10,90>": "", + "<10,91>": "", + "<10,92>": "", + "<10,93>": "", + "<10,94>": "", + "<10,95>": "", + "<10,96>": "", + "<10,97>": "", + "<10,98>": "", + "<10,99>": "", + "<10,100>": "", + "<10,101>": "", + "<10,102>": "", + "<10,103>": "", + "<10,104>": "", + "<10,105>": "", + "<10,106>": "", + "<10,107>": "", + "<10,108>": "" }, "<11>": { "<11,1>": "TXT_PASSWORD_SCAN", @@ -1031,7 +1787,7 @@ "<11,8>": "50", "<11,9>": "Password Scan", "<11,10>": { - "<11,10,1>": "0x56000002", + "<11,10,1>": "0x56000800", "<11,10,2>": "0x0" }, "<11,11>": { @@ -1039,7 +1795,11 @@ "<11,11,2>": "0x80000000" }, "<11,12>": "11", - "<11,13>": "-1", + "<11,13>": { + "<11,13,1>": "-1", + "<11,13,2>": "-1", + "<11,13,3>": "" + }, "<11,14>": "0", "<11,15>": { "<11,15,1>": { @@ -1068,17 +1828,14 @@ "<11,22>": "", "<11,23>": "", "<11,24>": "", - "<11,25>": "0", - "<11,26>": "0", + "<11,25>": "", + "<11,26>": "", "<11,27>": "", - "<11,28>": "<>", - "<11,29>": "<>", - "<11,30>": "<>", - "<11,31>": "0", - "<11,32>": { - "<11,32,1>": "0x7fffe", - "<11,32,2>": "0xf0016808" - }, + "<11,28>": "", + "<11,29>": "", + "<11,30>": "", + "<11,31>": "", + "<11,32>": "", "<11,33>": "", "<11,34>": "", "<11,35>": "", @@ -1098,7 +1855,76 @@ "<11,49>": "", "<11,50>": "", "<11,51>": "", - "<11,52>": "" + "<11,52>": "", + "<11,53>": "", + "<11,54>": "", + "<11,55>": "", + "<11,56>": "", + "<11,57>": "", + "<11,58>": "", + "<11,59>": "", + "<11,60>": "", + "<11,61>": "", + "<11,62>": "0", + "<11,63>": { + "<11,63,1>": "", + "<11,63,2>": "", + "<11,63,3>": "", + "<11,63,4>": "", + "<11,63,5>": "", + "<11,63,6>": "", + "<11,63,7>": "", + "<11,63,8>": "" + }, + "<11,64>": { + "<11,64,1>": "", + "<11,64,2>": "", + "<11,64,3>": "" + }, + "<11,65>": "-2", + "<11,66>": "", + "<11,67>": "", + "<11,68>": "", + "<11,69>": "", + "<11,70>": "", + "<11,71>": "", + "<11,72>": "", + "<11,73>": "", + "<11,74>": "", + "<11,75>": "", + "<11,76>": "", + "<11,77>": "", + "<11,78>": "", + "<11,79>": "", + "<11,80>": "", + "<11,81>": "", + "<11,82>": "", + "<11,83>": "", + "<11,84>": "", + "<11,85>": "", + "<11,86>": "", + "<11,87>": "", + "<11,88>": "", + "<11,89>": "", + "<11,90>": "0", + "<11,91>": "0", + "<11,92>": "", + "<11,93>": "", + "<11,94>": "", + "<11,95>": "", + "<11,96>": "", + "<11,97>": "", + "<11,98>": "", + "<11,99>": "", + "<11,100>": "", + "<11,101>": "", + "<11,102>": "", + "<11,103>": "", + "<11,104>": "", + "<11,105>": "", + "<11,106>": "", + "<11,107>": "", + "<11,108>": "" }, "<12>": { "<12,1>": "EDL_PASSWORD_SCAN", @@ -1111,7 +1937,7 @@ "<12,8>": "51", "<12,9>": "", "<12,10>": { - "<12,10,1>": "0x5E000080", + "<12,10,1>": "0x5E000088", "<12,10,2>": "0x200" }, "<12,11>": { @@ -1119,7 +1945,11 @@ "<12,11,2>": "0x80000100" }, "<12,12>": "12", - "<12,13>": "-2", + "<12,13>": { + "<12,13,1>": "-2", + "<12,13,2>": "-2", + "<12,13,3>": "" + }, "<12,14>": "0", "<12,15>": { "<12,15,1>": { @@ -1157,34 +1987,39 @@ "<12,18,1,4,8>": "@PARAM6" }, "<12,18,1,5>": "", - "<12,18,1,6>": "" - }, - "<12,18,2>": "" - }, - "<12,19>": { - "<12,19,1>": "LOSTFOCUS", - "<12,19,2>": "" + "<12,18,1,6>": "", + "<12,18,1,7>": "", + "<12,18,1,8>": "", + "<12,18,1,9>": "", + "<12,18,1,10>": "", + "<12,18,1,11>": "", + "<12,18,1,12>": "", + "<12,18,1,13>": "", + "<12,18,1,14>": "", + "<12,18,1,15>": "STPROC" + } }, + "<12,19>": "LOSTFOCUS", "<12,20>": "", "<12,21>": "", "<12,22>": "", "<12,23>": "", "<12,24>": "", - "<12,25>": "0", - "<12,26>": "0", + "<12,25>": "", + "<12,26>": "", "<12,27>": "", "<12,28>": "<>", "<12,29>": "<>", "<12,30>": "<>", "<12,31>": "0", - "<12,32>": { - "<12,32,1>": "0x7fffe", - "<12,32,2>": "0xf0016008" - }, + "<12,32>": "", "<12,33>": "", "<12,34>": "", "<12,35>": "", - "<12,36>": "", + "<12,36>": { + "<12,36,1>": "-1", + "<12,36,2>": "0" + }, "<12,37>": "", "<12,38>": "", "<12,39>": "", @@ -1200,7 +2035,63 @@ "<12,49>": "", "<12,50>": "", "<12,51>": "", - "<12,52>": "" + "<12,52>": "", + "<12,53>": "", + "<12,54>": "", + "<12,55>": "", + "<12,56>": "", + "<12,57>": "", + "<12,58>": "", + "<12,59>": "", + "<12,60>": "", + "<12,61>": "", + "<12,62>": "0", + "<12,63>": "", + "<12,64>": "", + "<12,65>": "", + "<12,66>": "", + "<12,67>": "", + "<12,68>": "", + "<12,69>": "", + "<12,70>": "", + "<12,71>": "", + "<12,72>": "", + "<12,73>": "", + "<12,74>": "", + "<12,75>": "", + "<12,76>": "", + "<12,77>": "", + "<12,78>": "", + "<12,79>": "", + "<12,80>": "", + "<12,81>": "", + "<12,82>": "", + "<12,83>": "", + "<12,84>": "", + "<12,85>": "", + "<12,86>": "", + "<12,87>": "", + "<12,88>": "", + "<12,89>": "", + "<12,90>": "", + "<12,91>": "", + "<12,92>": "", + "<12,93>": "", + "<12,94>": "", + "<12,95>": "", + "<12,96>": "", + "<12,97>": "", + "<12,98>": "", + "<12,99>": "", + "<12,100>": "", + "<12,101>": "", + "<12,102>": "", + "<12,103>": "", + "<12,104>": "", + "<12,105>": "", + "<12,106>": "", + "<12,107>": "", + "<12,108>": "" }, "<13>": { "<13,1>": "OLE_SUBCLASS", @@ -1221,7 +2112,11 @@ "<13,11,2>": "0x80000000" }, "<13,12>": "13", - "<13,13>": "-2", + "<13,13>": { + "<13,13,1>": "-2", + "<13,13,2>": "-2", + "<13,13,3>": "" + }, "<13,14>": "0", "<13,15>": { "<13,15,1>": { @@ -1250,22 +2145,90 @@ "<13,22>": "", "<13,23>": "", "<13,24>": "", - "<13,25>": "0", - "<13,26>": "0", + "<13,25>": "", + "<13,26>": "", "<13,27>": "", - "<13,28>": "<>", - "<13,29>": "<>", - "<13,30>": "<>", - "<13,31>": "0", - "<13,32>": { - "<13,32,1>": "0x7fffe", - "<13,32,2>": "0xf0016800" - }, + "<13,28>": "", + "<13,29>": "", + "<13,30>": "", + "<13,31>": "", + "<13,32>": "", "<13,33>": "", "<13,34>": "", "<13,35>": "", "<13,36>": "", - "<13,37>": "" + "<13,37>": "", + "<13,38>": "", + "<13,39>": "", + "<13,40>": "", + "<13,41>": "", + "<13,42>": "", + "<13,43>": "", + "<13,44>": "", + "<13,45>": "", + "<13,46>": "", + "<13,47>": "", + "<13,48>": "", + "<13,49>": "", + "<13,50>": "", + "<13,51>": "", + "<13,52>": "", + "<13,53>": "", + "<13,54>": "", + "<13,55>": "OLE.Border", + "<13,56>": "None", + "<13,57>": "", + "<13,58>": "", + "<13,59>": "", + "<13,60>": "", + "<13,61>": "", + "<13,62>": "", + "<13,63>": "", + "<13,64>": "", + "<13,65>": "", + "<13,66>": "", + "<13,67>": "", + "<13,68>": "", + "<13,69>": "", + "<13,70>": "", + "<13,71>": "", + "<13,72>": "", + "<13,73>": "", + "<13,74>": "", + "<13,75>": "", + "<13,76>": "", + "<13,77>": "", + "<13,78>": "", + "<13,79>": "", + "<13,80>": "", + "<13,81>": "", + "<13,82>": "", + "<13,83>": "", + "<13,84>": "", + "<13,85>": "", + "<13,86>": "", + "<13,87>": "", + "<13,88>": "", + "<13,89>": "", + "<13,90>": "", + "<13,91>": "", + "<13,92>": "", + "<13,93>": "", + "<13,94>": "", + "<13,95>": "", + "<13,96>": "", + "<13,97>": "", + "<13,98>": "", + "<13,99>": "", + "<13,100>": "", + "<13,101>": "", + "<13,102>": "", + "<13,103>": "", + "<13,104>": "", + "<13,105>": "", + "<13,106>": "", + "<13,107>": "", + "<13,108>": "" }, "<14>": { "<14,1>": "OLE_POPUP", @@ -1286,7 +2249,11 @@ "<14,11,2>": "0x80000000" }, "<14,12>": "14", - "<14,13>": "-2", + "<14,13>": { + "<14,13,1>": "-2", + "<14,13,2>": "-2", + "<14,13,3>": "" + }, "<14,14>": "0", "<14,15>": { "<14,15,1>": { @@ -1315,22 +2282,90 @@ "<14,22>": "", "<14,23>": "", "<14,24>": "", - "<14,25>": "0", - "<14,26>": "0", + "<14,25>": "", + "<14,26>": "", "<14,27>": "", - "<14,28>": "<>", - "<14,29>": "<>", - "<14,30>": "<>", - "<14,31>": "0", - "<14,32>": { - "<14,32,1>": "0x7fffe", - "<14,32,2>": "0xf0016800" - }, + "<14,28>": "", + "<14,29>": "", + "<14,30>": "", + "<14,31>": "", + "<14,32>": "", "<14,33>": "", "<14,34>": "", "<14,35>": "", "<14,36>": "", - "<14,37>": "" + "<14,37>": "", + "<14,38>": "", + "<14,39>": "", + "<14,40>": "", + "<14,41>": "", + "<14,42>": "", + "<14,43>": "", + "<14,44>": "", + "<14,45>": "", + "<14,46>": "", + "<14,47>": "", + "<14,48>": "", + "<14,49>": "", + "<14,50>": "", + "<14,51>": "", + "<14,52>": "", + "<14,53>": "", + "<14,54>": "", + "<14,55>": "OLE.Border", + "<14,56>": "None", + "<14,57>": "", + "<14,58>": "", + "<14,59>": "", + "<14,60>": "", + "<14,61>": "", + "<14,62>": "", + "<14,63>": "", + "<14,64>": "", + "<14,65>": "", + "<14,66>": "", + "<14,67>": "", + "<14,68>": "", + "<14,69>": "", + "<14,70>": "", + "<14,71>": "", + "<14,72>": "", + "<14,73>": "", + "<14,74>": "", + "<14,75>": "", + "<14,76>": "", + "<14,77>": "", + "<14,78>": "", + "<14,79>": "", + "<14,80>": "", + "<14,81>": "", + "<14,82>": "", + "<14,83>": "", + "<14,84>": "", + "<14,85>": "", + "<14,86>": "", + "<14,87>": "", + "<14,88>": "", + "<14,89>": "", + "<14,90>": "", + "<14,91>": "", + "<14,92>": "", + "<14,93>": "", + "<14,94>": "", + "<14,95>": "", + "<14,96>": "", + "<14,97>": "", + "<14,98>": "", + "<14,99>": "", + "<14,100>": "", + "<14,101>": "", + "<14,102>": "", + "<14,103>": "", + "<14,104>": "", + "<14,105>": "", + "<14,106>": "", + "<14,107>": "", + "<14,108>": "" }, "<15>": { "<15,1>": "LBL_PACKAGING", @@ -1343,7 +2378,7 @@ "<15,8>": "65", "<15,9>": "Packaging", "<15,10>": { - "<15,10,1>": "0x56000001", + "<15,10,1>": "0x56000020", "<15,10,2>": "0x0" }, "<15,11>": { @@ -1351,7 +2386,11 @@ "<15,11,2>": "0x80000000" }, "<15,12>": "15", - "<15,13>": "-1", + "<15,13>": { + "<15,13,1>": "-1", + "<15,13,2>": "-1", + "<15,13,3>": "" + }, "<15,14>": "8388608", "<15,15>": { "<15,15,1>": { @@ -1380,17 +2419,14 @@ "<15,22>": "", "<15,23>": "", "<15,24>": "", - "<15,25>": "0", - "<15,26>": "0", + "<15,25>": "", + "<15,26>": "", "<15,27>": "", - "<15,28>": "<>", - "<15,29>": "<>", - "<15,30>": "<>", - "<15,31>": "0", - "<15,32>": { - "<15,32,1>": "0x7fffe", - "<15,32,2>": "0xf0012808" - }, + "<15,28>": "", + "<15,29>": "", + "<15,30>": "", + "<15,31>": "", + "<15,32>": "", "<15,33>": "", "<15,34>": "", "<15,35>": "", @@ -1410,7 +2446,76 @@ "<15,49>": "", "<15,50>": "", "<15,51>": "", - "<15,52>": "" + "<15,52>": "", + "<15,53>": "", + "<15,54>": "", + "<15,55>": "", + "<15,56>": "", + "<15,57>": "", + "<15,58>": "", + "<15,59>": "", + "<15,60>": "", + "<15,61>": "", + "<15,62>": "0", + "<15,63>": { + "<15,63,1>": "", + "<15,63,2>": "", + "<15,63,3>": "", + "<15,63,4>": "", + "<15,63,5>": "", + "<15,63,6>": "", + "<15,63,7>": "", + "<15,63,8>": "" + }, + "<15,64>": { + "<15,64,1>": "", + "<15,64,2>": "", + "<15,64,3>": "" + }, + "<15,65>": "-2", + "<15,66>": "", + "<15,67>": "", + "<15,68>": "", + "<15,69>": "", + "<15,70>": "", + "<15,71>": "", + "<15,72>": "", + "<15,73>": "", + "<15,74>": "", + "<15,75>": "", + "<15,76>": "", + "<15,77>": "", + "<15,78>": "", + "<15,79>": "", + "<15,80>": "", + "<15,81>": "", + "<15,82>": "", + "<15,83>": "", + "<15,84>": "", + "<15,85>": "", + "<15,86>": "", + "<15,87>": "", + "<15,88>": "", + "<15,89>": "", + "<15,90>": "0", + "<15,91>": "0", + "<15,92>": "", + "<15,93>": "", + "<15,94>": "", + "<15,95>": "", + "<15,96>": "", + "<15,97>": "", + "<15,98>": "", + "<15,99>": "", + "<15,100>": "", + "<15,101>": "", + "<15,102>": "", + "<15,103>": "", + "<15,104>": "", + "<15,105>": "", + "<15,106>": "", + "<15,107>": "", + "<15,108>": "" }, "<16>": { "<16,1>": "PUB_CLEAR_FORM", @@ -1423,15 +2528,19 @@ "<16,8>": "1", "<16,9>": "Clear Form", "<16,10>": { - "<16,10,1>": "0x56002000", + "<16,10,1>": "0x56002300", "<16,10,2>": "0x0" }, "<16,11>": { - "<16,11,1>": "0x100", + "<16,11,1>": "0x0", "<16,11,2>": "0x80000000" }, "<16,12>": "16", - "<16,13>": "-2", + "<16,13>": { + "<16,13,1>": "-2", + "<16,13,2>": "-2", + "<16,13,3>": "0" + }, "<16,14>": "-2", "<16,15>": { "<16,15,1>": { @@ -1469,30 +2578,32 @@ "<16,18,1,4,8>": "@PARAM6" }, "<16,18,1,5>": "", - "<16,18,1,6>": "" - }, - "<16,18,2>": "" - }, - "<16,19>": { - "<16,19,1>": "CLICK", - "<16,19,2>": "" + "<16,18,1,6>": "", + "<16,18,1,7>": "", + "<16,18,1,8>": "", + "<16,18,1,9>": "", + "<16,18,1,10>": "", + "<16,18,1,11>": "", + "<16,18,1,12>": "", + "<16,18,1,13>": "", + "<16,18,1,14>": "", + "<16,18,1,15>": "STPROC" + } }, + "<16,19>": "CLICK", "<16,20>": "", "<16,21>": "", "<16,22>": "", "<16,23>": "", "<16,24>": "", - "<16,25>": "0", - "<16,26>": "0", + "<16,25>": "", + "<16,26>": "", "<16,27>": "", - "<16,28>": "<>", - "<16,29>": "<>", - "<16,30>": "<>", - "<16,31>": "0", - "<16,32>": { - "<16,32,1>": "0x7fffe", - "<16,32,2>": "0xf0012008" - }, + "<16,28>": "", + "<16,29>": "", + "<16,30>": "", + "<16,31>": "", + "<16,32>": "", "<16,33>": "", "<16,34>": "", "<16,35>": "", @@ -1501,7 +2612,10 @@ "<16,38>": "", "<16,39>": "", "<16,40>": "1", - "<16,41>": "", + "<16,41>": { + "<16,41,1>": "", + "<16,41,2>": "-1" + }, "<16,42>": "", "<16,43>": "", "<16,44>": "", @@ -1511,7 +2625,68 @@ "<16,48>": "", "<16,49>": "", "<16,50>": "", - "<16,51>": "" + "<16,51>": "", + "<16,52>": "", + "<16,53>": "", + "<16,54>": "", + "<16,55>": "", + "<16,56>": "", + "<16,57>": "", + "<16,58>": "", + "<16,59>": "", + "<16,60>": "", + "<16,61>": "", + "<16,62>": "0", + "<16,63>": "", + "<16,64>": { + "<16,64,1>": "-2", + "<16,64,2>": "-2", + "<16,64,3>": "0" + }, + "<16,65>": "-2", + "<16,66>": "", + "<16,67>": "", + "<16,68>": "", + "<16,69>": "", + "<16,70>": "", + "<16,71>": "", + "<16,72>": "", + "<16,73>": "", + "<16,74>": "", + "<16,75>": "", + "<16,76>": "", + "<16,77>": "", + "<16,78>": "", + "<16,79>": "", + "<16,80>": "", + "<16,81>": "", + "<16,82>": "", + "<16,83>": "", + "<16,84>": "", + "<16,85>": "", + "<16,86>": "", + "<16,87>": "", + "<16,88>": "", + "<16,89>": "", + "<16,90>": "0", + "<16,91>": "0", + "<16,92>": "", + "<16,93>": "", + "<16,94>": "", + "<16,95>": "", + "<16,96>": "", + "<16,97>": "", + "<16,98>": "", + "<16,99>": "", + "<16,100>": "", + "<16,101>": "", + "<16,102>": "", + "<16,103>": "", + "<16,104>": "", + "<16,105>": "", + "<16,106>": "", + "<16,107>": "", + "<16,108>": "" }, "<17>": { "<17,1>": "EDL_SEQUENCE1", @@ -1532,7 +2707,11 @@ "<17,11,2>": "0x80000000" }, "<17,12>": "17", - "<17,13>": "-2", + "<17,13>": { + "<17,13,1>": "-2", + "<17,13,2>": "-2", + "<17,13,3>": "" + }, "<17,14>": "0", "<17,15>": { "<17,15,1>": { @@ -1570,34 +2749,39 @@ "<17,18,1,4,8>": "@PARAM6" }, "<17,18,1,5>": "", - "<17,18,1,6>": "" - }, - "<17,18,2>": "" - }, - "<17,19>": { - "<17,19,1>": "LOSTFOCUS", - "<17,19,2>": "" + "<17,18,1,6>": "", + "<17,18,1,7>": "", + "<17,18,1,8>": "", + "<17,18,1,9>": "", + "<17,18,1,10>": "", + "<17,18,1,11>": "", + "<17,18,1,12>": "", + "<17,18,1,13>": "", + "<17,18,1,14>": "", + "<17,18,1,15>": "STPROC" + } }, + "<17,19>": "LOSTFOCUS", "<17,20>": "", "<17,21>": "", "<17,22>": "", "<17,23>": "", "<17,24>": "", - "<17,25>": "0", - "<17,26>": "0", + "<17,25>": "", + "<17,26>": "", "<17,27>": "", "<17,28>": "<>", "<17,29>": "<>", "<17,30>": "<>", "<17,31>": "0", - "<17,32>": { - "<17,32,1>": "0x7fffe", - "<17,32,2>": "0xf0016008" - }, + "<17,32>": "", "<17,33>": "", "<17,34>": "", "<17,35>": "", - "<17,36>": "", + "<17,36>": { + "<17,36,1>": "0", + "<17,36,2>": "0" + }, "<17,37>": "", "<17,38>": "", "<17,39>": "", @@ -1613,18 +2797,67 @@ "<17,49>": "", "<17,50>": "", "<17,51>": "", - "<17,52>": "" - }, - "<18>": "" + "<17,52>": "", + "<17,53>": "", + "<17,54>": "", + "<17,55>": "", + "<17,56>": "", + "<17,57>": "", + "<17,58>": "", + "<17,59>": "", + "<17,60>": "", + "<17,61>": "", + "<17,62>": "0", + "<17,63>": "", + "<17,64>": "", + "<17,65>": "", + "<17,66>": "", + "<17,67>": "", + "<17,68>": "", + "<17,69>": "", + "<17,70>": "", + "<17,71>": "", + "<17,72>": "", + "<17,73>": "", + "<17,74>": "", + "<17,75>": "", + "<17,76>": "", + "<17,77>": "", + "<17,78>": "", + "<17,79>": "", + "<17,80>": "", + "<17,81>": "", + "<17,82>": "", + "<17,83>": "", + "<17,84>": "", + "<17,85>": "", + "<17,86>": "", + "<17,87>": "", + "<17,88>": "", + "<17,89>": "", + "<17,90>": "", + "<17,91>": "", + "<17,92>": "", + "<17,93>": "", + "<17,94>": "", + "<17,95>": "", + "<17,96>": "", + "<17,97>": "", + "<17,98>": "", + "<17,99>": "", + "<17,100>": "", + "<17,101>": "", + "<17,102>": "", + "<17,103>": "", + "<17,104>": "", + "<17,105>": "", + "<17,106>": "", + "<17,107>": "", + "<17,108>": "" + } }, "record4": { - "<1>": "", - "<2>": { - "<2,1>": "", - "<2,2>": "", - "<2,3>": "", - "<2,4>": "0" - } + "<1>": "" } } } \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_PTI_MAT_SCAN.json b/LSL2/OIWIN/NDW_PTI_MAT_SCAN.json index 5fd535b..1366cc1 100644 --- a/LSL2/OIWIN/NDW_PTI_MAT_SCAN.json +++ b/LSL2/OIWIN/NDW_PTI_MAT_SCAN.json @@ -21,16 +21,20 @@ "<1,8>": "-764", "<1,9>": "PTI Material Scan", "<1,10>": { - "<1,10,1>": "0x82CF0000", - "<1,10,2>": "0x0" + "<1,10,1>": "0x82CE0000", + "<1,10,2>": "0x100" }, "<1,11>": { - "<1,11,1>": "0x0", + "<1,11,1>": "0x8000", "<1,11,2>": "0x80000000" }, - "<1,12>": "0", - "<1,13>": "-2", - "<1,14>": "0", + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", "<1,15>": "", "<1,16>": "", "<1,17>": "", @@ -50,51 +54,61 @@ "<1,18,1,4,8>": "@PARAM6" }, "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "CREATE", - "<1,19,2>": "" + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC" + } }, + "<1,19>": "CREATE", "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "", "<1,24>": { - "<1,24,1>": "0", + "<1,24,1>": "", "<1,24,2>": "0", "<1,24,3>": "0", "<1,24,4>": "0", - "<1,24,5>": "0", - "<1,24,6>": "0" + "<1,24,5>": "", + "<1,24,6>": "0", + "<1,24,7>": "", + "<1,24,8>": "", + "<1,24,9>": "", + "<1,24,10>": "0", + "<1,24,11>": "0", + "<1,24,12>": "0", + "<1,24,13>": "0", + "<1,24,14>": "0", + "<1,24,15>": "0", + "<1,24,16>": "0", + "<1,24,17>": "0" }, - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "", "<1,29>": "", "<1,30>": "", "<1,31>": "", - "<1,32>": { - "<1,32,1>": "0x7FFFE", - "<1,32,2>": "0xF001E808" - }, + "<1,32>": "", "<1,33>": "", - "<1,34>": "", + "<1,34>": "LSL2*IMAGE*ICO*INFINEON", "<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,37,1>": "0X10001", + "<1,37,2>": "0X10001" }, + "<1,38>": "", "<1,39>": "", - "<1,40>": "0", + "<1,40>": "", "<1,41>": "", "<1,42>": "", "<1,43>": "", @@ -106,7 +120,74 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": { + "<1,62,1>": "0", + "<1,62,2>": "", + "<1,62,3>": "", + "<1,62,4>": "0", + "<1,62,5>": "0", + "<1,62,6>": "0", + "<1,62,7>": "", + "<1,62,8>": "0.50", + "<1,62,9>": "5.00", + "<1,62,10>": "0.00" + }, + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" } }, "record3": { @@ -121,7 +202,7 @@ "<1,8>": "28", "<1,9>": "", "<1,10>": { - "<1,10,1>": "0x5E000080", + "<1,10,1>": "0x5E000088", "<1,10,2>": "0x200" }, "<1,11>": { @@ -129,7 +210,11 @@ "<1,11,2>": "0x80000000" }, "<1,12>": "1", - "<1,13>": "-2", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, "<1,14>": "0", "<1,15>": { "<1,15,1>": { @@ -167,34 +252,39 @@ "<1,18,1,4,8>": "@PARAM6" }, "<1,18,1,5>": "", - "<1,18,1,6>": "" - }, - "<1,18,2>": "" - }, - "<1,19>": { - "<1,19,1>": "LOSTFOCUS", - "<1,19,2>": "" + "<1,18,1,6>": "", + "<1,18,1,7>": "", + "<1,18,1,8>": "", + "<1,18,1,9>": "", + "<1,18,1,10>": "", + "<1,18,1,11>": "", + "<1,18,1,12>": "", + "<1,18,1,13>": "", + "<1,18,1,14>": "", + "<1,18,1,15>": "STPROC" + } }, + "<1,19>": "LOSTFOCUS", "<1,20>": "", "<1,21>": "", "<1,22>": "", "<1,23>": "", "<1,24>": "", - "<1,25>": "0", - "<1,26>": "0", + "<1,25>": "", + "<1,26>": "", "<1,27>": "", "<1,28>": "<>", "<1,29>": "<>", "<1,30>": "<>", "<1,31>": "0", - "<1,32>": { - "<1,32,1>": "0x7fffe", - "<1,32,2>": "0xf0016008" - }, + "<1,32>": "", "<1,33>": "", "<1,34>": "", "<1,35>": "", - "<1,36>": "", + "<1,36>": { + "<1,36,1>": "0", + "<1,36,2>": "0" + }, "<1,37>": "", "<1,38>": "", "<1,39>": "", @@ -210,7 +300,63 @@ "<1,49>": "", "<1,50>": "", "<1,51>": "", - "<1,52>": "" + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": "", + "<1,56>": "", + "<1,57>": "", + "<1,58>": "", + "<1,59>": "", + "<1,60>": "", + "<1,61>": "", + "<1,62>": "0", + "<1,63>": "", + "<1,64>": "", + "<1,65>": "", + "<1,66>": "", + "<1,67>": "", + "<1,68>": "", + "<1,69>": "", + "<1,70>": "", + "<1,71>": "", + "<1,72>": "", + "<1,73>": "", + "<1,74>": "", + "<1,75>": "", + "<1,76>": "", + "<1,77>": "", + "<1,78>": "", + "<1,79>": "", + "<1,80>": "", + "<1,81>": "", + "<1,82>": "", + "<1,83>": "", + "<1,84>": "", + "<1,85>": "", + "<1,86>": "", + "<1,87>": "", + "<1,88>": "", + "<1,89>": "", + "<1,90>": "", + "<1,91>": "", + "<1,92>": "", + "<1,93>": "", + "<1,94>": "", + "<1,95>": "", + "<1,96>": "", + "<1,97>": "", + "<1,98>": "", + "<1,99>": "", + "<1,100>": "", + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" }, "<2>": { "<2,1>": "EDL_CASSETTE2_SCAN", @@ -223,7 +369,7 @@ "<2,8>": "28", "<2,9>": "", "<2,10>": { - "<2,10,1>": "0x5E000080", + "<2,10,1>": "0x5E000088", "<2,10,2>": "0x200" }, "<2,11>": { @@ -231,7 +377,11 @@ "<2,11,2>": "0x80000000" }, "<2,12>": "2", - "<2,13>": "-2", + "<2,13>": { + "<2,13,1>": "-2", + "<2,13,2>": "-2", + "<2,13,3>": "" + }, "<2,14>": "0", "<2,15>": { "<2,15,1>": { @@ -269,34 +419,39 @@ "<2,18,1,4,8>": "@PARAM6" }, "<2,18,1,5>": "", - "<2,18,1,6>": "" - }, - "<2,18,2>": "" - }, - "<2,19>": { - "<2,19,1>": "LOSTFOCUS", - "<2,19,2>": "" + "<2,18,1,6>": "", + "<2,18,1,7>": "", + "<2,18,1,8>": "", + "<2,18,1,9>": "", + "<2,18,1,10>": "", + "<2,18,1,11>": "", + "<2,18,1,12>": "", + "<2,18,1,13>": "", + "<2,18,1,14>": "", + "<2,18,1,15>": "STPROC" + } }, + "<2,19>": "LOSTFOCUS", "<2,20>": "", "<2,21>": "", "<2,22>": "", "<2,23>": "", "<2,24>": "", - "<2,25>": "0", - "<2,26>": "0", + "<2,25>": "", + "<2,26>": "", "<2,27>": "", "<2,28>": "<>", "<2,29>": "<>", "<2,30>": "<>", "<2,31>": "0", - "<2,32>": { - "<2,32,1>": "0x7fffe", - "<2,32,2>": "0xf0016008" - }, + "<2,32>": "", "<2,33>": "", "<2,34>": "", "<2,35>": "", - "<2,36>": "", + "<2,36>": { + "<2,36,1>": "0", + "<2,36,2>": "0" + }, "<2,37>": "", "<2,38>": "", "<2,39>": "", @@ -312,7 +467,63 @@ "<2,49>": "", "<2,50>": "", "<2,51>": "", - "<2,52>": "" + "<2,52>": "", + "<2,53>": "", + "<2,54>": "", + "<2,55>": "", + "<2,56>": "", + "<2,57>": "", + "<2,58>": "", + "<2,59>": "", + "<2,60>": "", + "<2,61>": "", + "<2,62>": "0", + "<2,63>": "", + "<2,64>": "", + "<2,65>": "", + "<2,66>": "", + "<2,67>": "", + "<2,68>": "", + "<2,69>": "", + "<2,70>": "", + "<2,71>": "", + "<2,72>": "", + "<2,73>": "", + "<2,74>": "", + "<2,75>": "", + "<2,76>": "", + "<2,77>": "", + "<2,78>": "", + "<2,79>": "", + "<2,80>": "", + "<2,81>": "", + "<2,82>": "", + "<2,83>": "", + "<2,84>": "", + "<2,85>": "", + "<2,86>": "", + "<2,87>": "", + "<2,88>": "", + "<2,89>": "", + "<2,90>": "", + "<2,91>": "", + "<2,92>": "", + "<2,93>": "", + "<2,94>": "", + "<2,95>": "", + "<2,96>": "", + "<2,97>": "", + "<2,98>": "", + "<2,99>": "", + "<2,100>": "", + "<2,101>": "", + "<2,102>": "", + "<2,103>": "", + "<2,104>": "", + "<2,105>": "", + "<2,106>": "", + "<2,107>": "", + "<2,108>": "" }, "<3>": { "<3,1>": "EDL_SUPPLIER_SCAN", @@ -325,7 +536,7 @@ "<3,8>": "28", "<3,9>": "", "<3,10>": { - "<3,10,1>": "0x5E000080", + "<3,10,1>": "0x5E000088", "<3,10,2>": "0x200" }, "<3,11>": { @@ -333,7 +544,11 @@ "<3,11,2>": "0x80000000" }, "<3,12>": "3", - "<3,13>": "-2", + "<3,13>": { + "<3,13,1>": "-2", + "<3,13,2>": "-2", + "<3,13,3>": "" + }, "<3,14>": "0", "<3,15>": { "<3,15,1>": { @@ -371,34 +586,39 @@ "<3,18,1,4,8>": "@PARAM6" }, "<3,18,1,5>": "", - "<3,18,1,6>": "" - }, - "<3,18,2>": "" - }, - "<3,19>": { - "<3,19,1>": "LOSTFOCUS", - "<3,19,2>": "" + "<3,18,1,6>": "", + "<3,18,1,7>": "", + "<3,18,1,8>": "", + "<3,18,1,9>": "", + "<3,18,1,10>": "", + "<3,18,1,11>": "", + "<3,18,1,12>": "", + "<3,18,1,13>": "", + "<3,18,1,14>": "", + "<3,18,1,15>": "STPROC" + } }, + "<3,19>": "LOSTFOCUS", "<3,20>": "", "<3,21>": "", "<3,22>": "", "<3,23>": "", "<3,24>": "", - "<3,25>": "0", - "<3,26>": "0", + "<3,25>": "", + "<3,26>": "", "<3,27>": "", "<3,28>": "<>", "<3,29>": "<>", "<3,30>": "<>", "<3,31>": "0", - "<3,32>": { - "<3,32,1>": "0x7fffe", - "<3,32,2>": "0xf0016008" - }, + "<3,32>": "", "<3,33>": "", "<3,34>": "", "<3,35>": "", - "<3,36>": "", + "<3,36>": { + "<3,36,1>": "0", + "<3,36,2>": "0" + }, "<3,37>": "", "<3,38>": "", "<3,39>": "", @@ -414,7 +634,63 @@ "<3,49>": "", "<3,50>": "", "<3,51>": "", - "<3,52>": "" + "<3,52>": "", + "<3,53>": "", + "<3,54>": "", + "<3,55>": "", + "<3,56>": "", + "<3,57>": "", + "<3,58>": "", + "<3,59>": "", + "<3,60>": "", + "<3,61>": "", + "<3,62>": "0", + "<3,63>": "", + "<3,64>": "", + "<3,65>": "", + "<3,66>": "", + "<3,67>": "", + "<3,68>": "", + "<3,69>": "", + "<3,70>": "", + "<3,71>": "", + "<3,72>": "", + "<3,73>": "", + "<3,74>": "", + "<3,75>": "", + "<3,76>": "", + "<3,77>": "", + "<3,78>": "", + "<3,79>": "", + "<3,80>": "", + "<3,81>": "", + "<3,82>": "", + "<3,83>": "", + "<3,84>": "", + "<3,85>": "", + "<3,86>": "", + "<3,87>": "", + "<3,88>": "", + "<3,89>": "", + "<3,90>": "", + "<3,91>": "", + "<3,92>": "", + "<3,93>": "", + "<3,94>": "", + "<3,95>": "", + "<3,96>": "", + "<3,97>": "", + "<3,98>": "", + "<3,99>": "", + "<3,100>": "", + "<3,101>": "", + "<3,102>": "", + "<3,103>": "", + "<3,104>": "", + "<3,105>": "", + "<3,106>": "", + "<3,107>": "", + "<3,108>": "" }, "<4>": { "<4,1>": "WINDOW_LABEL", @@ -427,7 +703,7 @@ "<4,8>": "30", "<4,9>": "PTI Material Scan", "<4,10>": { - "<4,10,1>": "0x56000001", + "<4,10,1>": "0x56000020", "<4,10,2>": "0x0" }, "<4,11>": { @@ -435,7 +711,11 @@ "<4,11,2>": "0x80000000" }, "<4,12>": "4", - "<4,13>": "-1", + "<4,13>": { + "<4,13,1>": "-1", + "<4,13,2>": "-1", + "<4,13,3>": "" + }, "<4,14>": "8388608", "<4,15>": { "<4,15,1>": { @@ -464,17 +744,14 @@ "<4,22>": "", "<4,23>": "", "<4,24>": "", - "<4,25>": "0", - "<4,26>": "0", + "<4,25>": "", + "<4,26>": "", "<4,27>": "", - "<4,28>": "<>", - "<4,29>": "<>", - "<4,30>": "<>", - "<4,31>": "0", - "<4,32>": { - "<4,32,1>": "0x7fffe", - "<4,32,2>": "0xf0012808" - }, + "<4,28>": "", + "<4,29>": "", + "<4,30>": "", + "<4,31>": "", + "<4,32>": "", "<4,33>": "", "<4,34>": "", "<4,35>": "", @@ -494,7 +771,76 @@ "<4,49>": "", "<4,50>": "", "<4,51>": "", - "<4,52>": "" + "<4,52>": "", + "<4,53>": "", + "<4,54>": "", + "<4,55>": "", + "<4,56>": "", + "<4,57>": "", + "<4,58>": "", + "<4,59>": "", + "<4,60>": "", + "<4,61>": "", + "<4,62>": "0", + "<4,63>": { + "<4,63,1>": "", + "<4,63,2>": "", + "<4,63,3>": "", + "<4,63,4>": "", + "<4,63,5>": "", + "<4,63,6>": "", + "<4,63,7>": "", + "<4,63,8>": "" + }, + "<4,64>": { + "<4,64,1>": "", + "<4,64,2>": "", + "<4,64,3>": "" + }, + "<4,65>": "-2", + "<4,66>": "", + "<4,67>": "", + "<4,68>": "", + "<4,69>": "", + "<4,70>": "", + "<4,71>": "", + "<4,72>": "", + "<4,73>": "", + "<4,74>": "", + "<4,75>": "", + "<4,76>": "", + "<4,77>": "", + "<4,78>": "", + "<4,79>": "", + "<4,80>": "", + "<4,81>": "", + "<4,82>": "", + "<4,83>": "", + "<4,84>": "", + "<4,85>": "", + "<4,86>": "", + "<4,87>": "", + "<4,88>": "", + "<4,89>": "", + "<4,90>": "0", + "<4,91>": "0", + "<4,92>": "", + "<4,93>": "", + "<4,94>": "", + "<4,95>": "", + "<4,96>": "", + "<4,97>": "", + "<4,98>": "", + "<4,99>": "", + "<4,100>": "", + "<4,101>": "", + "<4,102>": "", + "<4,103>": "", + "<4,104>": "", + "<4,105>": "", + "<4,106>": "", + "<4,107>": "", + "<4,108>": "" }, "<5>": { "<5,1>": "TXT_TOPLABEL", @@ -507,7 +853,7 @@ "<5,8>": "28", "<5,9>": "Top Label:", "<5,10>": { - "<5,10,1>": "0x56000002", + "<5,10,1>": "0x56000800", "<5,10,2>": "0x0" }, "<5,11>": { @@ -515,7 +861,11 @@ "<5,11,2>": "0x80000000" }, "<5,12>": "5", - "<5,13>": "-1", + "<5,13>": { + "<5,13,1>": "-1", + "<5,13,2>": "-1", + "<5,13,3>": "" + }, "<5,14>": "0", "<5,15>": { "<5,15,1>": { @@ -544,17 +894,14 @@ "<5,22>": "", "<5,23>": "", "<5,24>": "", - "<5,25>": "0", - "<5,26>": "0", + "<5,25>": "", + "<5,26>": "", "<5,27>": "", - "<5,28>": "<>", - "<5,29>": "<>", - "<5,30>": "<>", - "<5,31>": "0", - "<5,32>": { - "<5,32,1>": "0x7fffe", - "<5,32,2>": "0xf0016808" - }, + "<5,28>": "", + "<5,29>": "", + "<5,30>": "", + "<5,31>": "", + "<5,32>": "", "<5,33>": "", "<5,34>": "", "<5,35>": "", @@ -574,7 +921,76 @@ "<5,49>": "", "<5,50>": "", "<5,51>": "", - "<5,52>": "" + "<5,52>": "", + "<5,53>": "", + "<5,54>": "", + "<5,55>": "", + "<5,56>": "", + "<5,57>": "", + "<5,58>": "", + "<5,59>": "", + "<5,60>": "", + "<5,61>": "", + "<5,62>": "0", + "<5,63>": { + "<5,63,1>": "", + "<5,63,2>": "", + "<5,63,3>": "", + "<5,63,4>": "", + "<5,63,5>": "", + "<5,63,6>": "", + "<5,63,7>": "", + "<5,63,8>": "" + }, + "<5,64>": { + "<5,64,1>": "", + "<5,64,2>": "", + "<5,64,3>": "" + }, + "<5,65>": "-2", + "<5,66>": "", + "<5,67>": "", + "<5,68>": "", + "<5,69>": "", + "<5,70>": "", + "<5,71>": "", + "<5,72>": "", + "<5,73>": "", + "<5,74>": "", + "<5,75>": "", + "<5,76>": "", + "<5,77>": "", + "<5,78>": "", + "<5,79>": "", + "<5,80>": "", + "<5,81>": "", + "<5,82>": "", + "<5,83>": "", + "<5,84>": "", + "<5,85>": "", + "<5,86>": "", + "<5,87>": "", + "<5,88>": "", + "<5,89>": "", + "<5,90>": "0", + "<5,91>": "0", + "<5,92>": "", + "<5,93>": "", + "<5,94>": "", + "<5,95>": "", + "<5,96>": "", + "<5,97>": "", + "<5,98>": "", + "<5,99>": "", + "<5,100>": "", + "<5,101>": "", + "<5,102>": "", + "<5,103>": "", + "<5,104>": "", + "<5,105>": "", + "<5,106>": "", + "<5,107>": "", + "<5,108>": "" }, "<6>": { "<6,1>": "TXT_BOTTOMLABEL", @@ -587,7 +1003,7 @@ "<6,8>": "28", "<6,9>": "Bottom Label:", "<6,10>": { - "<6,10,1>": "0x56000002", + "<6,10,1>": "0x56000800", "<6,10,2>": "0x0" }, "<6,11>": { @@ -595,7 +1011,11 @@ "<6,11,2>": "0x80000000" }, "<6,12>": "6", - "<6,13>": "-1", + "<6,13>": { + "<6,13,1>": "-1", + "<6,13,2>": "-1", + "<6,13,3>": "" + }, "<6,14>": "0", "<6,15>": { "<6,15,1>": { @@ -624,17 +1044,14 @@ "<6,22>": "", "<6,23>": "", "<6,24>": "", - "<6,25>": "0", - "<6,26>": "0", + "<6,25>": "", + "<6,26>": "", "<6,27>": "", - "<6,28>": "<>", - "<6,29>": "<>", - "<6,30>": "<>", - "<6,31>": "0", - "<6,32>": { - "<6,32,1>": "0x7fffe", - "<6,32,2>": "0xf0016808" - }, + "<6,28>": "", + "<6,29>": "", + "<6,30>": "", + "<6,31>": "", + "<6,32>": "", "<6,33>": "", "<6,34>": "", "<6,35>": "", @@ -654,7 +1071,76 @@ "<6,49>": "", "<6,50>": "", "<6,51>": "", - "<6,52>": "" + "<6,52>": "", + "<6,53>": "", + "<6,54>": "", + "<6,55>": "", + "<6,56>": "", + "<6,57>": "", + "<6,58>": "", + "<6,59>": "", + "<6,60>": "", + "<6,61>": "", + "<6,62>": "0", + "<6,63>": { + "<6,63,1>": "", + "<6,63,2>": "", + "<6,63,3>": "", + "<6,63,4>": "", + "<6,63,5>": "", + "<6,63,6>": "", + "<6,63,7>": "", + "<6,63,8>": "" + }, + "<6,64>": { + "<6,64,1>": "", + "<6,64,2>": "", + "<6,64,3>": "" + }, + "<6,65>": "-2", + "<6,66>": "", + "<6,67>": "", + "<6,68>": "", + "<6,69>": "", + "<6,70>": "", + "<6,71>": "", + "<6,72>": "", + "<6,73>": "", + "<6,74>": "", + "<6,75>": "", + "<6,76>": "", + "<6,77>": "", + "<6,78>": "", + "<6,79>": "", + "<6,80>": "", + "<6,81>": "", + "<6,82>": "", + "<6,83>": "", + "<6,84>": "", + "<6,85>": "", + "<6,86>": "", + "<6,87>": "", + "<6,88>": "", + "<6,89>": "", + "<6,90>": "0", + "<6,91>": "0", + "<6,92>": "", + "<6,93>": "", + "<6,94>": "", + "<6,95>": "", + "<6,96>": "", + "<6,97>": "", + "<6,98>": "", + "<6,99>": "", + "<6,100>": "", + "<6,101>": "", + "<6,102>": "", + "<6,103>": "", + "<6,104>": "", + "<6,105>": "", + "<6,106>": "", + "<6,107>": "", + "<6,108>": "" }, "<7>": { "<7,1>": "TXT_SUBLOT", @@ -667,7 +1153,7 @@ "<7,8>": "28", "<7,9>": "Sub Lot:", "<7,10>": { - "<7,10,1>": "0x56000002", + "<7,10,1>": "0x56000800", "<7,10,2>": "0x0" }, "<7,11>": { @@ -675,7 +1161,11 @@ "<7,11,2>": "0x80000000" }, "<7,12>": "7", - "<7,13>": "-1", + "<7,13>": { + "<7,13,1>": "-1", + "<7,13,2>": "-1", + "<7,13,3>": "" + }, "<7,14>": "0", "<7,15>": { "<7,15,1>": { @@ -704,17 +1194,14 @@ "<7,22>": "", "<7,23>": "", "<7,24>": "", - "<7,25>": "0", - "<7,26>": "0", + "<7,25>": "", + "<7,26>": "", "<7,27>": "", - "<7,28>": "<>", - "<7,29>": "<>", - "<7,30>": "<>", - "<7,31>": "0", - "<7,32>": { - "<7,32,1>": "0x7fffe", - "<7,32,2>": "0xf0016808" - }, + "<7,28>": "", + "<7,29>": "", + "<7,30>": "", + "<7,31>": "", + "<7,32>": "", "<7,33>": "", "<7,34>": "", "<7,35>": "", @@ -734,7 +1221,76 @@ "<7,49>": "", "<7,50>": "", "<7,51>": "", - "<7,52>": "" + "<7,52>": "", + "<7,53>": "", + "<7,54>": "", + "<7,55>": "", + "<7,56>": "", + "<7,57>": "", + "<7,58>": "", + "<7,59>": "", + "<7,60>": "", + "<7,61>": "", + "<7,62>": "0", + "<7,63>": { + "<7,63,1>": "", + "<7,63,2>": "", + "<7,63,3>": "", + "<7,63,4>": "", + "<7,63,5>": "", + "<7,63,6>": "", + "<7,63,7>": "", + "<7,63,8>": "" + }, + "<7,64>": { + "<7,64,1>": "", + "<7,64,2>": "", + "<7,64,3>": "" + }, + "<7,65>": "-2", + "<7,66>": "", + "<7,67>": "", + "<7,68>": "", + "<7,69>": "", + "<7,70>": "", + "<7,71>": "", + "<7,72>": "", + "<7,73>": "", + "<7,74>": "", + "<7,75>": "", + "<7,76>": "", + "<7,77>": "", + "<7,78>": "", + "<7,79>": "", + "<7,80>": "", + "<7,81>": "", + "<7,82>": "", + "<7,83>": "", + "<7,84>": "", + "<7,85>": "", + "<7,86>": "", + "<7,87>": "", + "<7,88>": "", + "<7,89>": "", + "<7,90>": "0", + "<7,91>": "0", + "<7,92>": "", + "<7,93>": "", + "<7,94>": "", + "<7,95>": "", + "<7,96>": "", + "<7,97>": "", + "<7,98>": "", + "<7,99>": "", + "<7,100>": "", + "<7,101>": "", + "<7,102>": "", + "<7,103>": "", + "<7,104>": "", + "<7,105>": "", + "<7,106>": "", + "<7,107>": "", + "<7,108>": "" }, "<8>": { "<8,1>": "OLE_BTN_SAVE", @@ -747,7 +1303,7 @@ "<8,8>": "29", "<8,9>": "SRP.Button.1", "<8,10>": { - "<8,10,1>": "0x56800000", + "<8,10,1>": "0x56000000", "<8,10,2>": "0x0" }, "<8,11>": { @@ -755,7 +1311,11 @@ "<8,11,2>": "0x80000000" }, "<8,12>": "8", - "<8,13>": "-2", + "<8,13>": { + "<8,13,1>": "-2", + "<8,13,2>": "-2", + "<8,13,3>": "" + }, "<8,14>": "0", "<8,15>": { "<8,15,1>": { @@ -793,35 +1353,148 @@ "<8,18,1,4,8>": "@PARAM6" }, "<8,18,1,5>": "", - "<8,18,1,6>": "" - }, - "<8,18,2>": "" - }, - "<8,19>": { - "<8,19,1>": "OLE", - "<8,19,2>": "" + "<8,18,1,6>": "", + "<8,18,1,7>": "", + "<8,18,1,8>": "", + "<8,18,1,9>": "", + "<8,18,1,10>": "", + "<8,18,1,11>": "", + "<8,18,1,12>": "", + "<8,18,1,13>": "", + "<8,18,1,14>": "", + "<8,18,1,15>": "STPROC" + } }, + "<8,19>": "OLE", "<8,20>": "", "<8,21>": "", "<8,22>": "", "<8,23>": "", "<8,24>": "", - "<8,25>": "0", - "<8,26>": "0", + "<8,25>": "", + "<8,26>": "", "<8,27>": "", - "<8,28>": "<>", - "<8,29>": "<>", - "<8,30>": "<>", - "<8,31>": "0", - "<8,32>": { - "<8,32,1>": "0x7fffe", - "<8,32,2>": "0xf0016000" - }, + "<8,28>": "", + "<8,29>": "", + "<8,30>": "", + "<8,31>": "", + "<8,32>": "", "<8,33>": "", "<8,34>": "", "<8,35>": "", - "<8,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF052600530061007600650000000000FFFEFF225300650067006F006500200055004900FCF02D0031003300FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF2B53006100760065007300200061006E0064002000700072006F00630065007300730065007300200061006C006C0020007200650063006F00720064007300200069006E00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", - "<8,37>": "" + "<8,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF052600530061007600650000000000FFFEFF225300650067006F006500200055004900FCF02D0031003100FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF2B53006100760065007300200061006E0064002000700072006F00630065007300730065007300200061006C006C0020007200650063006F00720064007300200069006E00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", + "<8,37>": "", + "<8,38>": "", + "<8,39>": "", + "<8,40>": "", + "<8,41>": "", + "<8,42>": "", + "<8,43>": "", + "<8,44>": "", + "<8,45>": "", + "<8,46>": "", + "<8,47>": "", + "<8,48>": "", + "<8,49>": "", + "<8,50>": "", + "<8,51>": "", + "<8,52>": "", + "<8,53>": "", + "<8,54>": "", + "<8,55>": { + "<8,55,1>": "OLE.ButtonType", + "<8,55,2>": "OLE.Cancel", + "<8,55,3>": "OLE.Caption", + "<8,55,4>": "OLE.Default", + "<8,55,5>": "OLE.FontBold", + "<8,55,6>": "OLE.FontItalic", + "<8,55,7>": "OLE.FontName", + "<8,55,8>": "OLE.FontSize", + "<8,55,9>": "OLE.FontUnderlined", + "<8,55,10>": "OLE.IconFrameCount", + "<8,55,11>": "OLE.IconHeight", + "<8,55,12>": "OLE.IconPath", + "<8,55,13>": "OLE.IconSizeToFit", + "<8,55,14>": "OLE.IconWidth", + "<8,55,15>": "OLE.State", + "<8,55,16>": "OLE.StatusBarText", + "<8,55,17>": "OLE.Style", + "<8,55,18>": "OLE.ToolTip", + "<8,55,19>": "OLE.TransparentColor" + }, + "<8,56>": { + "<8,56,1>": "Normal", + "<8,56,2>": "0", + "<8,56,3>": "&Save", + "<8,56,4>": "0", + "<8,56,5>": "0", + "<8,56,6>": "0", + "<8,56,7>": "Segoe UI", + "<8,56,8>": "8", + "<8,56,9>": "0", + "<8,56,10>": "1", + "<8,56,11>": "0", + "<8,56,12>": "", + "<8,56,13>": "0", + "<8,56,14>": "0", + "<8,56,15>": "0", + "<8,56,16>": "", + "<8,56,17>": "Standard Toolbar", + "<8,56,18>": "Saves and processes all records in the grid", + "<8,56,19>": "Auto" + }, + "<8,57>": "", + "<8,58>": "", + "<8,59>": "", + "<8,60>": "", + "<8,61>": "", + "<8,62>": "", + "<8,63>": "", + "<8,64>": "", + "<8,65>": "", + "<8,66>": "", + "<8,67>": "", + "<8,68>": "", + "<8,69>": "", + "<8,70>": "", + "<8,71>": "", + "<8,72>": "", + "<8,73>": "", + "<8,74>": "", + "<8,75>": "", + "<8,76>": "", + "<8,77>": "", + "<8,78>": "", + "<8,79>": "", + "<8,80>": "", + "<8,81>": "", + "<8,82>": "", + "<8,83>": "", + "<8,84>": "", + "<8,85>": "", + "<8,86>": "", + "<8,87>": "", + "<8,88>": "", + "<8,89>": "", + "<8,90>": "", + "<8,91>": "", + "<8,92>": "", + "<8,93>": "", + "<8,94>": "", + "<8,95>": "", + "<8,96>": "", + "<8,97>": "", + "<8,98>": "", + "<8,99>": "", + "<8,100>": "", + "<8,101>": "", + "<8,102>": "", + "<8,103>": "", + "<8,104>": "", + "<8,105>": "", + "<8,106>": "", + "<8,107>": "", + "<8,108>": "" }, "<9>": { "<9,1>": "OLE_BTN_CLEAR", @@ -834,7 +1507,7 @@ "<9,8>": "27", "<9,9>": "SRP.Button.1", "<9,10>": { - "<9,10,1>": "0x56800000", + "<9,10,1>": "0x56000000", "<9,10,2>": "0x0" }, "<9,11>": { @@ -842,7 +1515,11 @@ "<9,11,2>": "0x80000000" }, "<9,12>": "9", - "<9,13>": "-2", + "<9,13>": { + "<9,13,1>": "-2", + "<9,13,2>": "-2", + "<9,13,3>": "" + }, "<9,14>": "0", "<9,15>": { "<9,15,1>": { @@ -880,35 +1557,148 @@ "<9,18,1,4,8>": "@PARAM6" }, "<9,18,1,5>": "@SELF", - "<9,18,1,6>": "" - }, - "<9,18,2>": "" - }, - "<9,19>": { - "<9,19,1>": "OLE", - "<9,19,2>": "" + "<9,18,1,6>": "", + "<9,18,1,7>": "", + "<9,18,1,8>": "", + "<9,18,1,9>": "", + "<9,18,1,10>": "", + "<9,18,1,11>": "", + "<9,18,1,12>": "", + "<9,18,1,13>": "", + "<9,18,1,14>": "", + "<9,18,1,15>": "STPROC" + } }, + "<9,19>": "OLE", "<9,20>": "", "<9,21>": "", "<9,22>": "", "<9,23>": "", "<9,24>": "", - "<9,25>": "0", - "<9,26>": "0", + "<9,25>": "", + "<9,26>": "", "<9,27>": "", - "<9,28>": "<>", - "<9,29>": "<>", - "<9,30>": "<>", - "<9,31>": "0", - "<9,32>": { - "<9,32,1>": "0x7fffe", - "<9,32,2>": "0xf0016000" - }, + "<9,28>": "", + "<9,29>": "", + "<9,30>": "", + "<9,31>": "", + "<9,32>": "", "<9,33>": "", "<9,34>": "", "<9,35>": "", - "<9,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF0B260043006C006500610072002000470072006900640000000000FFFEFF225300650067006F006500200055004900FCF02D0031003300FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF21520065006D006F00760065007300200061006C006C0020007200650063006F007200640073002000660072006F006D00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", - "<9,37>": "" + "<9,36>": "0300000000000000FFFEFF064E006F0072006D0061006C0000000000FFFEFF0B260043006C006500610072002000470072006900640000000000FFFEFF225300650067006F006500200055004900FCF02D0031003100FCF0340030003000FCF03000FCF03000FCF03000FCF03100FCF03000FCF03000FCF03000FCF03000FCF03000FFFEFF02FEF0310000000000FFFEFF00FFFEFF105300740061006E006400610072006400200054006F006F006C00620061007200FFFEFF21520065006D006F00760065007300200061006C006C0020007200650063006F007200640073002000660072006F006D00200074006800650020006700720069006400FFFEFF044100750074006F00000000000000000000000000", + "<9,37>": "", + "<9,38>": "", + "<9,39>": "", + "<9,40>": "", + "<9,41>": "", + "<9,42>": "", + "<9,43>": "", + "<9,44>": "", + "<9,45>": "", + "<9,46>": "", + "<9,47>": "", + "<9,48>": "", + "<9,49>": "", + "<9,50>": "", + "<9,51>": "", + "<9,52>": "", + "<9,53>": "", + "<9,54>": "", + "<9,55>": { + "<9,55,1>": "OLE.ButtonType", + "<9,55,2>": "OLE.Cancel", + "<9,55,3>": "OLE.Caption", + "<9,55,4>": "OLE.Default", + "<9,55,5>": "OLE.FontBold", + "<9,55,6>": "OLE.FontItalic", + "<9,55,7>": "OLE.FontName", + "<9,55,8>": "OLE.FontSize", + "<9,55,9>": "OLE.FontUnderlined", + "<9,55,10>": "OLE.IconFrameCount", + "<9,55,11>": "OLE.IconHeight", + "<9,55,12>": "OLE.IconPath", + "<9,55,13>": "OLE.IconSizeToFit", + "<9,55,14>": "OLE.IconWidth", + "<9,55,15>": "OLE.State", + "<9,55,16>": "OLE.StatusBarText", + "<9,55,17>": "OLE.Style", + "<9,55,18>": "OLE.ToolTip", + "<9,55,19>": "OLE.TransparentColor" + }, + "<9,56>": { + "<9,56,1>": "Normal", + "<9,56,2>": "0", + "<9,56,3>": "&Clear Grid", + "<9,56,4>": "0", + "<9,56,5>": "0", + "<9,56,6>": "0", + "<9,56,7>": "Segoe UI", + "<9,56,8>": "8", + "<9,56,9>": "0", + "<9,56,10>": "1", + "<9,56,11>": "0", + "<9,56,12>": "", + "<9,56,13>": "0", + "<9,56,14>": "0", + "<9,56,15>": "0", + "<9,56,16>": "", + "<9,56,17>": "Standard Toolbar", + "<9,56,18>": "Removes all records from the grid", + "<9,56,19>": "Auto" + }, + "<9,57>": "", + "<9,58>": "", + "<9,59>": "", + "<9,60>": "", + "<9,61>": "", + "<9,62>": "", + "<9,63>": "", + "<9,64>": "", + "<9,65>": "", + "<9,66>": "", + "<9,67>": "", + "<9,68>": "", + "<9,69>": "", + "<9,70>": "", + "<9,71>": "", + "<9,72>": "", + "<9,73>": "", + "<9,74>": "", + "<9,75>": "", + "<9,76>": "", + "<9,77>": "", + "<9,78>": "", + "<9,79>": "", + "<9,80>": "", + "<9,81>": "", + "<9,82>": "", + "<9,83>": "", + "<9,84>": "", + "<9,85>": "", + "<9,86>": "", + "<9,87>": "", + "<9,88>": "", + "<9,89>": "", + "<9,90>": "", + "<9,91>": "", + "<9,92>": "", + "<9,93>": "", + "<9,94>": "", + "<9,95>": "", + "<9,96>": "", + "<9,97>": "", + "<9,98>": "", + "<9,99>": "", + "<9,100>": "", + "<9,101>": "", + "<9,102>": "", + "<9,103>": "", + "<9,104>": "", + "<9,105>": "", + "<9,106>": "", + "<9,107>": "", + "<9,108>": "" }, "<10>": { "<10,1>": "OLE_EDT_SCANDATA", @@ -929,7 +1719,11 @@ "<10,11,2>": "0x80000000" }, "<10,12>": "10", - "<10,13>": "-2", + "<10,13>": { + "<10,13,1>": "-2", + "<10,13,2>": "-2", + "<10,13,3>": "" + }, "<10,14>": "0", "<10,15>": { "<10,15,1>": { @@ -967,46 +1761,138 @@ "<10,18,1,4,8>": "@PARAM6" }, "<10,18,1,5>": "@SELF", - "<10,18,1,6>": "" - }, - "<10,18,2>": "" - }, - "<10,19>": { - "<10,19,1>": "OLE", - "<10,19,2>": "" + "<10,18,1,6>": "", + "<10,18,1,7>": "", + "<10,18,1,8>": "", + "<10,18,1,9>": "", + "<10,18,1,10>": "", + "<10,18,1,11>": "", + "<10,18,1,12>": "", + "<10,18,1,13>": "", + "<10,18,1,14>": "", + "<10,18,1,15>": "STPROC" + } }, + "<10,19>": "OLE", "<10,20>": "", "<10,21>": "", "<10,22>": "", "<10,23>": "", "<10,24>": "", - "<10,25>": "0", - "<10,26>": "0", + "<10,25>": "", + "<10,26>": "", "<10,27>": "", - "<10,28>": "<>", - "<10,29>": "<>", - "<10,30>": "<>", - "<10,31>": "0", - "<10,32>": { - "<10,32,1>": "0x7fffe", - "<10,32,2>": "0xf0016c00" - }, + "<10,28>": "", + "<10,29>": "", + "<10,30>": "", + "<10,31>": "", + "<10,32>": "", "<10,33>": "", "<10,34>": "", "<10,35>": "", "<10,36>": "0000000000000000", - "<10,37>": "" - }, - "<11>": "" + "<10,37>": "", + "<10,38>": "", + "<10,39>": "", + "<10,40>": "", + "<10,41>": "", + "<10,42>": "", + "<10,43>": "", + "<10,44>": "", + "<10,45>": "", + "<10,46>": "", + "<10,47>": "", + "<10,48>": "", + "<10,49>": "", + "<10,50>": "", + "<10,51>": "", + "<10,52>": "", + "<10,53>": "", + "<10,54>": "", + "<10,55>": { + "<10,55,1>": "OLE.AllowXPTheme", + "<10,55,2>": "OLE.ComboDropDown", + "<10,55,3>": "OLE.DblClickToEdit", + "<10,55,4>": "OLE.EditContextMenu", + "<10,55,5>": "OLE.EditText", + "<10,55,6>": "OLE.Focus", + "<10,55,7>": "OLE.HeaderRowCount", + "<10,55,8>": "OLE.Modified", + "<10,55,9>": "OLE.PassEnterKey", + "<10,55,10>": "OLE.ScrollBarsVisible", + "<10,55,11>": "OLE.SingleEscape", + "<10,55,12>": "OLE.TextRenderStyle" + }, + "<10,56>": { + "<10,56,1>": "0", + "<10,56,2>": "0", + "<10,56,3>": "1", + "<10,56,4>": "1", + "<10,56,5>": "", + "<10,56,6>": "0", + "<10,56,7>": "1", + "<10,56,8>": "0", + "<10,56,9>": "0", + "<10,56,10>": "Auto|Auto", + "<10,56,11>": "0", + "<10,56,12>": "EditField|Ellipses" + }, + "<10,57>": "", + "<10,58>": "", + "<10,59>": "", + "<10,60>": "", + "<10,61>": "", + "<10,62>": "", + "<10,63>": "", + "<10,64>": "", + "<10,65>": "", + "<10,66>": "", + "<10,67>": "", + "<10,68>": "", + "<10,69>": "", + "<10,70>": "", + "<10,71>": "", + "<10,72>": "", + "<10,73>": "", + "<10,74>": "", + "<10,75>": "", + "<10,76>": "", + "<10,77>": "", + "<10,78>": "", + "<10,79>": "", + "<10,80>": "", + "<10,81>": "", + "<10,82>": "", + "<10,83>": "", + "<10,84>": "", + "<10,85>": "", + "<10,86>": "", + "<10,87>": "", + "<10,88>": "", + "<10,89>": "", + "<10,90>": "", + "<10,91>": "", + "<10,92>": "", + "<10,93>": "", + "<10,94>": "", + "<10,95>": "", + "<10,96>": "", + "<10,97>": "", + "<10,98>": "", + "<10,99>": "", + "<10,100>": "", + "<10,101>": "", + "<10,102>": "", + "<10,103>": "", + "<10,104>": "", + "<10,105>": "", + "<10,106>": "", + "<10,107>": "", + "<10,108>": "" + } }, "record4": { - "<1>": "", - "<2>": { - "<2,1>": "", - "<2,2>": "", - "<2,3>": "", - "<2,4>": "0" - } + "<1>": "" } } } \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_PTO_MAT_SCAN.json b/LSL2/OIWIN/NDW_PTO_MAT_SCAN.json index ce2a7c6..431c1ad 100644 --- a/LSL2/OIWIN/NDW_PTO_MAT_SCAN.json +++ b/LSL2/OIWIN/NDW_PTO_MAT_SCAN.json @@ -572,7 +572,7 @@ "<3,8>": "28", "<3,9>": "", "<3,10>": { - "<3,10,1>": "0x5E000080", + "<3,10,1>": "0x5E000088", "<3,10,2>": "0x200" }, "<3,11>": { @@ -739,7 +739,7 @@ "<4,8>": "28", "<4,9>": "", "<4,10>": { - "<4,10,1>": "0x5E000080", + "<4,10,1>": "0x5E000088", "<4,10,2>": "0x200" }, "<4,11>": { diff --git a/LSL2/POPUP/PRINT_WMI_LABELS.json b/LSL2/POPUP/PRINT_WMI_LABELS.json index 72c4ea2..ff12aa5 100644 --- a/LSL2/POPUP/PRINT_WMI_LABELS.json +++ b/LSL2/POPUP/PRINT_WMI_LABELS.json @@ -9,7 +9,7 @@ "<2>": "-2", "<3>": "-1", "<4>": "-1", - "<5>": "16777215", + "<5>": "-2", "<6>": { "<6,1>": { "<6,1,1>": "Tahoma", @@ -76,11 +76,21 @@ "<28>": "", "<29>": "0", "<30>": "0", - "<31>": "0", + "<31>": "1", "<32>": "0", "<33>": "0", - "<34>": "16777215", - "<35>": "16777215" + "<34>": "-2", + "<35>": "-2", + "<36>": "", + "<37>": "", + "<38>": "", + "<39>": "", + "<40>": "-2", + "<41>": "1000", + "<42>": "", + "<43>": "", + "<44>": "", + "<45>": "" } } } \ No newline at end of file diff --git a/LSL2/POPUP/PRINT_WM_LABELS.json b/LSL2/POPUP/PRINT_WM_LABELS.json index 500ba56..a1f14a4 100644 --- a/LSL2/POPUP/PRINT_WM_LABELS.json +++ b/LSL2/POPUP/PRINT_WM_LABELS.json @@ -9,7 +9,7 @@ "<2>": "-2", "<3>": "-1", "<4>": "-1", - "<5>": "16777215", + "<5>": "-2", "<6>": { "<6,1>": { "<6,1,1>": "Tahoma", @@ -84,11 +84,21 @@ "<28>": "", "<29>": "0", "<30>": "0", - "<31>": "0", + "<31>": "1", "<32>": "0", "<33>": "0", - "<34>": "16777215", - "<35>": "16777215" + "<34>": "-2", + "<35>": "-2", + "<36>": "", + "<37>": "", + "<38>": "", + "<39>": "", + "<40>": "-2", + "<41>": "1000", + "<42>": "", + "<43>": "", + "<44>": "", + "<45>": "" } } } \ No newline at end of file diff --git a/LSL2/POPUP/WO_LOG_RTS.json b/LSL2/POPUP/WO_LOG_RTS.json index d22f798..c30dbf2 100644 --- a/LSL2/POPUP/WO_LOG_RTS.json +++ b/LSL2/POPUP/WO_LOG_RTS.json @@ -9,7 +9,7 @@ "<2>": "-2", "<3>": "-1", "<4>": "-1", - "<5>": "16777215", + "<5>": "-2", "<6>": { "<6,1>": { "<6,1,1>": "MS Sans Serif", @@ -93,8 +93,21 @@ "<28>": "", "<29>": "0", "<30>": "0", - "<31>": "0", - "<32>": "0" + "<31>": "1", + "<32>": "0", + "<33>": "0", + "<34>": "-2", + "<35>": "-2", + "<36>": "", + "<37>": "", + "<38>": "", + "<39>": "", + "<40>": "-2", + "<41>": "1000", + "<42>": "", + "<43>": "", + "<44>": "", + "<45>": "" } } } \ No newline at end of file diff --git a/LSL2/STPROC/MATERIAL_MOVEMENT_SERVICES.txt b/LSL2/STPROC/MATERIAL_MOVEMENT_SERVICES.txt index 79f1854..8ef0bc5 100644 --- a/LSL2/STPROC/MATERIAL_MOVEMENT_SERVICES.txt +++ b/LSL2/STPROC/MATERIAL_MOVEMENT_SERVICES.txt @@ -62,117 +62,161 @@ Options SCAN_TYPES_PTO = 'LABEL1', 'LABEL2' //---------------------------------------------------------------------------------------------------------------------- Service ProcessFQAScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) + ErrorMsg = '' If (ScanData NE '') then - // Code 3of9 encodes the asterisk and underscore characters. These need to be decoded. - //ScanData = Scan_Services('DecodeScanData', ScanData) - - If Error_Services('NoError') then - ColumnIndex = '' - ColumnValue = '' - - // Identify the scan data based on the data identifier prefix (if any). Otherwise, assume this is a - // type of cassette ID (i.e., RDS or WMO). - - Begin Case - - Case ScanType EQ 'SUPPLIER' - ValidLot = False$ - If ScanData[1, 2] EQ '2T' OR ScanData[1,2] EQ '1T' then ScanData[1, 2] = '' - ScanSubLot = ScanData - - CassetteID = Param1 - If INDEX(CassetteID,'.',2) then - RDSType = 'EPP' - end else - RDSType = 'SIC' - end - - ValidLot = Rds_Services('IsValidSubLot', CassetteID, RDSType, ScanSubLot) - If ValidLot NE True$ then - // Add error to error stack - ErrorMessage = 'Invalid Supplier Lot: ':ScanData - Error_Services('Add', ErrorMessage) - end - - If Error_Services('NoError') then - Response = ScanSubLot - end - - Case ScanType EQ 'CASSETTE1' - - // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a - // non-existent carrier will the scan data be considered invalid. - // Strip '1T', 'I', and 'O' prefixes. - If ScanData[1, 2] EQ '1T' then - ScanData[1, 2] = '' - end else If ScanData[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then - ScanData[1,1] = '' - end - CassetteID = ScanData - - If INDEX(CassetteID,'.',2) then - RDSType = 'EPP' - WOMatKey = Field(CassetteID, '.', 1):'*':Field(CassetteID, '.', 3) - end else - RDSType = 'SIC' - WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X') - end - - ValidCassetteID = False$ ; // Assume Cassette ID is not valid for now. - ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType ) - - If RDSType EQ 'EPP' then - LotDesc = 'EPP Lot ' - end else - LotDesc = 'RDS Number ' + ColumnIndex = '' + ColumnValue = '' + + // Identify the scan data based on the data identifier prefix (if any). Otherwise, assume this is a + // type of cassette ID (i.e., RDS or WMO). + + Begin Case + + Case ScanType EQ 'SUPPLIER' + ValidLot = False$ + If ScanData[1, 2] EQ '2T' OR ScanData[1,2] EQ '1T' then ScanData[1, 2] = '' + ScanSubLot = ScanData + + CassetteID = Param1 + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + end else + RDSType = 'SIC' + end + + ValidLot = Rds_Services('IsValidSubLot', CassetteID, RDSType, ScanSubLot) + If ValidLot NE True$ then + // Add error to error stack + ErrorMsg = 'Invalid Supplier Lot: ':ScanData + end + + If ErrorMsg EQ '' then Response = ScanSubLot + + Case ScanType EQ 'CASSETTE1' + + DelimCount = DCount(ScanData, '|') + Begin Case + Case ( (ScanData[1, 2] EQ '1T') or (ScanData[1, 1] EQ 'O') ) + ErrorMsg = '1D Lot Label Scanned. 2D Lot Label Required.' + Case (DelimCount NE 8) + ErrorMsg = 'Invalid Lot Label Scan.' + Case Otherwise$ + CassetteID = Field(ScanData, '|', 3) + SeqNo = Field(ScanData, '|', 8) + End Case + + If ErrorMsg EQ '' then + + If CassetteID[1, 2] EQ '1T' then + CassetteID[1, 2] = '' + end else If CassetteID[1,1] EQ 'I' OR CassetteID[1,1] EQ 'O' then + CassetteID[1,1] = '' end - + + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + WOMatKey = Field(CassetteID, '.', 1):'*':Field(CassetteID, '.', 3) + end else + RDSType = 'SIC' + WOMatKey = Xlate('RDS', CassetteID, 'WO_MAT_KEY', 'X') + end + + ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType ) + If ValidCassetteID EQ True$ then - If Param1 NE '' AND ScanData NE Param1 then ;*Cassette2 Scan - Error_Services('Add', LotDesc:'Mismatch: ':CassetteID: ' does not match ': Param1) - end - - // Check if FQA is signed - FQASigned = '' - WorkOrdNo = Field(WOMatKey, '*', 1) - ReactorType = XLATE('WO_LOG', WorkOrdNo, 'REACT_TYPE', 'X') - QAStage = '' - - Begin Case - Case RDSType EQ 'EPP' - QAStage = 'MO_QA' - Case Otherwise$ - QAStage = 'QA' - End Case + If Param1 NE '' AND ScanData NE Param1 then ;*Cassette2 Scan + ErrorMsg = 'Lot Label Mismatch: ':CassetteID: ' does not match ': Param1 + end + + If ErrorMsg EQ '' then + // Check if FQA is signed + FQASigned = '' + WorkOrdNo = Field(WOMatKey, '*', 1) + ReactorType = XLATE('WO_LOG', WorkOrdNo, 'REACT_TYPE', 'X') + QAStage = '' + + Begin Case + Case RDSType EQ 'EPP' + QAStage = 'MO_QA' + Case Otherwise$ + QAStage = 'QA' + End Case - FQASigned = Signature_Services('CheckSignature', WOMatKey, QAStage) - - IF NOT(FQASigned) THEN - Error_Services('Add', 'FQA not signed for ':LotDesc:CassetteID: '!') - END - - end else - Error_Services('Add', 'Invalid ':LotDesc:CassetteID) - end - - If Error_Services('NoError') then - Response = CassetteID - end - - Case ScanType EQ 'CASSETTE2' - Response = Material_Movement_Services('ProcessPTIScanData', ScanData, 'CASSETTE1', Param1) - Response = ScanData - - End Case - - end + FQASigned = Signature_Services('CheckSignature', WOMatKey, QAStage) + + If NOT(FQASigned) then ErrorMsg = 'FQA not signed for ':CassetteID:'!' + end + + end else + ErrorMsg = 'Invalid Lot ID ':CassetteID + end + + If ErrorMsg EQ '' then + Response = '' + Response<1> = CassetteID + Response<2> = SeqNo + end + end + + Case ScanType EQ 'CASSETTE2' + // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a + // non-existent carrier will the scan data be considered invalid. + // Strip '1T', 'I', and 'O' prefixes. + + ValidCassetteID = False$ ; // Assume Cassette ID is not valid for now. + Cassette1ID = Param1 + Seq1No = Param2 + DelimCount = DCount(ScanData, '|') + Begin Case + Case ( (ScanData[1, 2] EQ '1T') or (ScanData[1, 1] EQ 'O') ) + ErrorMsg = '1D Lot Label Scanned. 2D Lot Label Required.' + Case (DelimCount NE 8) + ErrorMsg = 'Invalid Lot Label Scan.' + Case Otherwise$ + CassetteID = Field(ScanData, '|', 3) + Seq2No = Field(ScanData, '|', 8) + End Case + + If ErrorMsg EQ '' then + + If CassetteID[1, 2] EQ '1T' then + CassetteID[1, 2] = '' + end else If CassetteID[1,1] EQ 'I' OR CassetteID[1,1] EQ 'O' then + CassetteID[1,1] = '' + end + + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + end else + RDSType = 'SIC' + end + + ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType ) + If ValidCassetteID EQ True$ then + If Cassette1ID NE '' AND (CassetteID NE Cassette1ID) then ;*Cassette2 Scan + ErrorMsg = 'Lot Label Mismatch: ':CassetteID: ' does not match ': Cassette1ID + end + If Seq1No EQ Seq2No then + ErrorMsg = 'FQA Label verification failed due':CRLF$:'to operator double-scanning barcode.' + end + end else + ErrorMsg = 'Invalid RDS Number: ':CassetteID + end + + If ErrorMsg EQ '' then Response = CassetteID + end + + End Case end else - Error_Services('Add', 'ScanData argument was missing in the ' : Service : ' service.') + ErrorMsg = 'ScanData argument was missing in the ' : Service : ' service.' end + If ErrorMsg NE '' then Error_Services('Add', ErrorMsg) + end service + //---------------------------------------------------------------------------------------------------------------------- // ProcessPTIScanData // @@ -183,92 +227,148 @@ end service //---------------------------------------------------------------------------------------------------------------------- Service ProcessPTIScanData(ScanData, ScanType = SCAN_TYPES, Param1, Param2, Param3) + ErrorMsg = '' If (ScanData NE '') then - // Code 3of9 encodes the asterisk and underscore characters. These need to be decoded. - //ScanData = Scan_Services('DecodeScanData', ScanData) - - If Error_Services('NoError') then + + ColumnIndex = '' + ColumnValue = '' + + // Identify the scan data based on the data identifier prefix (if any). Otherwise, assume this is a + // type of cassette ID (i.e., RDS or WMO). + + Begin Case + + Case ScanType EQ 'SUPPLIER' + + ValidLot = False$ + If ScanData[1, 2] EQ '2T' OR ScanData[1,2] EQ '1T' then ScanData[1, 2] = '' + ScanSubLot = ScanData + CassetteID = Param1 + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + end else + RDSType = 'SIC' + end + ValidLot = Rds_Services('IsValidSubLot', CassetteID, RDSType, ScanSubLot) + If ValidLot NE True$ then ErrorMsg = 'Invalid Supplier Lot: ':ScanData + If ErrorMsg EQ '' then Response = ScanSubLot + + Case ScanType EQ 'CASSETTE1' + debug + // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a + // non-existent carrier will the scan data be considered invalid. + // Strip '1T', 'I', and 'O' prefixes. + ValidCassetteID = False$ ; // Assume Cassette ID is not valid for now. + DelimCount = DCount(ScanData, '|') + Begin Case + Case (ScanData[1, 1] EQ 'I') + ! Temporary exception while we exhaust current WMI inventory on KIT racks that + ! do not have a 2D barcode. + CassetteID = ScanData + SeqNo = 'SEQ1' + Case ( (ScanData[1, 2] EQ '1T') or (ScanData[1, 1] EQ 'O') ) + ErrorMsg = '1D Lot Label Scanned. 2D Lot Label Required.' + Case (DelimCount NE 8) + ErrorMsg = 'Invalid Lot Label Scan.' + Case Otherwise$ + CassetteID = Field(ScanData, '|', 3) + SeqNo = Field(ScanData, '|', 8) + End Case + + If ErrorMsg EQ '' then + If CassetteID[1, 2] EQ '1T' then + CassetteID[1, 2] = '' + end else If CassetteID[1,1] EQ 'I' OR CassetteID[1,1] EQ 'O' then + CassetteID[1,1] = '' + end + + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + end else + RDSType = 'SIC' + end + + ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType) + If ValidCassetteID EQ True$ then + If Param1 NE '' AND (ScanData NE Param1) then ;*Cassette2 Scan + ErrorMsg = 'Lot Label Mismatch: ':CassetteID: ' does not match ': Param1 + end + end else + ErrorMsg = 'Invalid Cassette Number: ':CassetteID + end + + If ErrorMsg EQ '' then + Response = '' + Response<1> = CassetteID + Response<2> = SeqNo + end + end + + Case ScanType EQ 'CASSETTE2' + // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a + // non-existent carrier will the scan data be considered invalid. + // Strip '1T', 'I', and 'O' prefixes. + + ValidCassetteID = False$ ; // Assume Cassette ID is not valid for now. + Cassette1ID = Param1 + Seq1No = Param2 + + DelimCount = DCount(ScanData, '|') + Begin Case + Case (ScanData[1, 1] EQ 'I') + ! Temporary exception while we exhaust current WMI inventory on KIT racks that + ! do not have a 2D barcode. + CassetteID = ScanData + Seq2No = 'SEQ2' + Case ( (ScanData[1, 2] EQ '1T') or (ScanData[1, 1] EQ 'O') ) + ErrorMsg = '1D Lot Label Scanned. 2D Lot Label Required.' + Case (DelimCount NE 8) + ErrorMsg = 'Invalid Lot Label Scan.' + Case Otherwise$ + CassetteID = Field(ScanData, '|', 3) + Seq2No = Field(ScanData, '|', 8) + End Case + + If ErrorMsg EQ '' then + + If CassetteID[1, 2] EQ '1T' then + CassetteID[1, 2] = '' + end else If CassetteID[1,1] EQ 'I' OR CassetteID[1,1] EQ 'O' then + CassetteID[1,1] = '' + end + + If INDEX(CassetteID,'.',2) then + RDSType = 'EPP' + end else + RDSType = 'SIC' + end + + ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType) + If ValidCassetteID EQ True$ then + If Cassette1ID NE '' AND (CassetteID NE Cassette1ID) then ;*Cassette2 Scan + ErrorMsg = 'Lot Label Mismatch: ':CassetteID: ' does not match ': Cassette1ID + end + If Seq1No EQ Seq2No then + ErrorMsg = 'PTI Label verification failed due':CRLF$:'to operator double-scanning barcode.' + end + end else + ErrorMsg = 'Invalid Cassette Number: ':CassetteID + end + + If ErrorMsg EQ '' then Response = CassetteID + end + + End Case - ColumnIndex = '' - ColumnValue = '' - - // Identify the scan data based on the data identifier prefix (if any). Otherwise, assume this is a - // type of cassette ID (i.e., RDS or WMO). - - Begin Case - - Case ScanType EQ 'SUPPLIER' - ValidLot = False$ - If ScanData[1, 2] EQ '2T' OR ScanData[1,2] EQ '1T' then ScanData[1, 2] = '' - ScanSubLot = ScanData - - CassetteID = Param1 - If INDEX(CassetteID,'.',2) then - RDSType = 'EPP' - end else - RDSType = 'SIC' - end - - ValidLot = Rds_Services('IsValidSubLot', CassetteID, RDSType, ScanSubLot) - If ValidLot NE True$ then - // Add error to error stack - ErrorMessage = 'Invalid Supplier Lot: ':ScanData - Error_Services('Add', ErrorMessage) - end - - If Error_Services('NoError') then - Response = ScanSubLot - end - - Case ScanType EQ 'CASSETTE1' - - // Assume this is intended to be a Cassette ID scan (either WMO or RDS). Only if this is a - // non-existent carrier will the scan data be considered invalid. - // Strip '1T', 'I', and 'O' prefixes. - If ScanData[1, 2] EQ '1T' then - ScanData[1, 2] = '' - end else If ScanData[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then - ScanData[1,1] = '' - end - CassetteID = ScanData - - If INDEX(CassetteID,'.',2) then - RDSType = 'EPP' - end else - RDSType = 'SIC' - end - - ValidCassetteID = False$ ; // Assume Cassette ID is not valid for now. - ValidCassetteID = Rds_Services('IsValidRDS', CassetteID, RDSType ) - If ValidCassetteID EQ True$ then - If Param1 NE '' AND ScanData NE Param1 then ;*Cassette2 Scan - Error_Services('Add', 'RDS Mismatch: ':CassetteID: ' does not match ': Param1) - end - end else - Error_Services('Add', 'Invalid RDS Number: ':CassetteID) - end - - If Error_Services('NoError') then - Response = CassetteID - end - - Case ScanType EQ 'CASSETTE2' - Response = Material_Movement_Services('ProcessPTIScanData', ScanData, 'CASSETTE1', Param1) - Response = ScanData - - End Case - - end end else - Error_Services('Add', 'ScanData argument was missing in the ' : Service : ' service.') + ErrorMsg = 'ScanData argument was missing in the ' : Service : ' service.' end + If ErrorMsg NE '' then Error_Services('Add', ErrorMsg) + end service -//to do before release of ProcessPTOScanData -//1. prerequisite - waiting on newly printed (on/after 10/18/21) labels to make their way through warehouse, though not critical -//2. showstopper - need barcode scanners to be able to scan 2D barcodes - currently only 1 such scanner (purchased for shipping but not deployed, given to Cheryl) -//3. fix prod print routine to use SRP GetPrinter methods similar to what the Test_Print_SAP_Cass_Ship_Label does + //---------------------------------------------------------------------------------------------------------------------- // ProcessPTOScanData // @@ -282,174 +382,165 @@ end service //---------------------------------------------------------------------------------------------------------------------- Service ProcessPTOScanData(ScanData, ScanType = SCAN_TYPES_PTO, Param1, Param2) + ErrorMsg = '' Location = 'PTO Mat' If (ScanData NE '') then - If Error_Services('NoError') then - - ColumnIndex = '' - ColumnValue = '' - Cassette1 = '' - Cassette2 = '' - - Begin Case - - Case ScanType EQ 'LABEL1' - //determine whether regular NEPP or EPP label scan - //NEPP should be data matrix scan and have 7 parts, RDS_No is the 3rd - //EPP is 1D scan and will have the WMO number (e.g. 170369*1*48) - // This should be a multi-part 2D datamatrix scan, so there should be a long string separated by pipe symbols. - // Validate the 1. it is multi-part string and 2. that the RDS number from the string is a) valid RDS number - // and b) is currently is the proper state to do PTO transaction. - // Strip any standardized prefixes (e.g. '1T', '2T', etc.) as necessary - - // data from Label1 should have 8 parts (no matter type - Si or EPP), we're looking for the 3rd - cnt = DCount(ScanData, '|') - if cnt NE 8 then - Cassette1 = 0 - Error_Services('Add', 'Invalid Lot Label Scan.') - return - end else - //RDS should be 3rd position - Cassette1 = Field(ScanData, '|', 3) - end - - //strip the prefix encoding - If Cassette1[1, 2] EQ '1T' OR Cassette1[1, 2] EQ '2T' then - Cassette1[1, 2] = '' - end else If Cassette1[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then - Cassette1[1,1] = '' - end - - WOMatKey = '' - RdsRec = '' - WONo = '' - CassNo = '' + ColumnIndex = '' + ColumnValue = '' + Cassette1 = '' + Cassette2 = '' + + Begin Case + + Case ScanType EQ 'LABEL1' + // Determine whether regular NEPP or EPP label scan + // NEPP should be data matrix scan and have 7 parts, RDS_No is the 3rd + // EPP is 1D scan and will have the WMO number (e.g. 170369*1*48) + // This should be a multi-part 2D datamatrix scan, so there should be a long string separated by pipe symbols. + // Validate the 1. it is multi-part string and 2. that the RDS number from the string is a) valid RDS number + // and b) is currently is the proper state to do PTO transaction. + // Strip any standardized prefixes (e.g. '1T', '2T', etc.) as necessary + + // Data from Label1 should have 8 parts (no matter type - Si or EPP), we're looking for the 3rd + cnt = DCount(ScanData, '|') + if cnt NE 8 then + ErrorMsg = 'Invalid Lot Label Scan.' + end else + Cassette1 = Field(ScanData, '|', 3) + end + + If ErrorMsg EQ '' then + // Strip the prefix encoding + If Cassette1[1, 2] EQ '1T' OR Cassette1[1, 2] EQ '2T' then + Cassette1[1, 2] = '' + end else If Cassette1[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then + Cassette1[1,1] = '' + end + + WOMatKey = '' + RdsRec = '' + WONo = '' + CassNo = '' - If INDEX(Cassette1,'.',2) then - RDSType = 'EPP' - WMOKey = Cassette1 + If INDEX(Cassette1,'.',2) then + RDSType = 'EPP' + WMOKey = Cassette1 Convert '.' to '*' in WMOKey - If RowExists('WM_OUT', WMOKey) then + If RowExists('WM_OUT', WMOKey) then WONo = Field(WMOKey, '*', 1, 1) CassNo = Field(WMOKey, '*', 3, 1) WOMatKey = WONo:'*':CassNo end - end else - RDSType = 'SIC' - WOMatKey = XLATE('RDS', Cassette1, 'WO_MAT_KEY', 'X') - RdsRec = Database_Services('ReadDataRow','RDS', Cassette1) - WONo = RdsRec - CassNo = RdsRec - end + end else + RDSType = 'SIC' + WOMatKey = XLATE('RDS', Cassette1, 'WO_MAT_KEY', 'X') + RdsRec = Database_Services('ReadDataRow','RDS', Cassette1) + WONo = RdsRec + CassNo = RdsRec + end - ValidCassette1 = False$ ; // Assume Cassette ID is not valid for now. - testCass1 = Cassette1 + ValidCassette1 = False$ ; // Assume Cassette ID is not valid for now. + testCass1 = Cassette1 - Convert '*' to '.' in testCass1 - If Rds_Services('IsValidRDS', Cassette1, RDSType) then - If Rds_Services('GetHoldStatus', Cassette1, RDSType) EQ False$ then - If Rds_Services('IsPackaged', Cassette1, RDSType) EQ True$ then - ValidCassette1 = True$ - end else - Error_Services('Add', RDSType: ' RDS ':testCass1: ' has not completed packaging.') - return - end - end else - Error_Services('Add', RDSType: ' RDS ':testCass1: ' is currently on hold.') - return - end - end else - Error_Services('Add', RDSType: ' RDS ' : testCass1 : ' is an invalid RDS number.') - return - end + Convert '*' to '.' in testCass1 + If Rds_Services('IsValidRDS', Cassette1, RDSType) then + If Rds_Services('GetHoldStatus', Cassette1, RDSType) EQ False$ then + If Rds_Services('IsPackaged', Cassette1, RDSType) EQ True$ then + ValidCassette1 = True$ + end else + ErrorMsg = RDSType: ' RDS ':testCass1: ' has not completed packaging.' + end + end else + ErrorMsg = RDSType: ' RDS ':testCass1: ' is currently on hold.' + end + end else + ErrorMsg = RDSType: ' RDS ' : testCass1 : ' is an invalid RDS number.' + end - LastPTO = obj_WO_Mat('OutofPTO',WOMatKey) - StepNo = 1 - IF LastPTO THEN - MsgHead = 'Cassette previously scanned through PTO' - MsgText = 'Scanned at ':LastPTO<2>:' by ':LastPTO<1>:CRLF$ - MsgText := 'Are you sure you wish to rescan and reprint the shipping label?' + If ErrorMsg EQ '' then + LastPTO = obj_WO_Mat('OutofPTO',WOMatKey) + StepNo = 1 + IF LastPTO THEN + MsgHead = 'Cassette previously scanned through PTO' + MsgText = 'Scanned at ':LastPTO<2>:' by ':LastPTO<1>:CRLF$ + MsgText := 'Are you sure you wish to rescan and reprint the shipping label?' - OK = Msg(@WINDOW, '','YESNO','',MsgHead:@FM:MsgText) + OK = Msg(@WINDOW, '','YESNO','',MsgHead:@FM:MsgText) - IF NOT(OK) THEN - Error_Services('Add', 'Scan Cancelled') - RETURN - END else - Print_SAP_Cass_Ship_Label(WONo,StepNo,CassNo,Cassette1, RDSType) - end - end else - Print_SAP_Cass_Ship_Label(WONo,StepNo,CassNo,Cassette1, RDSType) - END - - If ValidCassette1 EQ True$ then - If Param1 NE '' AND ScanData NE Param1 then ;*Cassette2 Scan - Error_Services('Add', 'RDS Mismatch: ':Cassette1: ' does not match ': Param1) - return - end - end else - Error_Services('Add', 'Invalid RDS Number: ':Cassette1) - return - end - - If Error_Services('NoError') then - Response = Cassette1 - end - - Case ScanType EQ 'LABEL2' - cnt = DCount(ScanData, ';') - if cnt EQ 9 then - //Tower is customer and RDS should be 2nd position - Cassette2 = Field(ScanData, ';', 2) - end else if cnt EQ 10 then - //all other customers and RDS should be 3rd position - Cassette2 = Field(ScanData, ';', 3) - end else - Error_Services('Add', 'Invalid Shipping Label Scan.') - return - end - - //strip the prefix encoding - If Cassette2[1, 2] EQ '1T' OR Cassette2[1, 2] EQ '2T' then - Cassette2[1, 2] = '' - end else If Cassette2[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then - Cassette2[1,1] = '' - end - testCass1 = Param3 - testCass2 = Cassette2 - convert '*' to '.' in testCass1 - convert '*' to '.' in testCass2 - - If testCass1 NE testCass2 then - ErrorMsg = 'Scan Mismatch - RDS values do not match. Both cassettes placed on hold - Supervisor, Lead, or Engineering disposition required.':CRLF$ | + IF NOT(OK) THEN + ErrorMsg = 'Scan Cancelled' + END else + Print_SAP_Cass_Ship_Label(WONo,StepNo,CassNo,Cassette1, RDSType) + end + end else + Print_SAP_Cass_Ship_Label(WONo,StepNo,CassNo,Cassette1, RDSType) + end + + If ErrorMsg EQ '' then + If ValidCassette1 EQ True$ then + If Param1 NE '' AND ScanData NE Param1 then ;*Cassette2 Scan + ErrorMsg = 'RDS Mismatch: ':Cassette1: ' does not match ': Param1 + end + end else + ErrorMsg = 'Invalid RDS Number: ':Cassette1 + end + + If ErrorMsg EQ '' then Response = Cassette1 + end + end + end + + Case ScanType EQ 'LABEL2' + cnt = DCount(ScanData, ';') + if cnt EQ 9 then + // Tower is customer and RDS should be 2nd position + Cassette2 = Field(ScanData, ';', 2) + end else if cnt EQ 10 then + // All other customers and RDS should be 3rd position + Cassette2 = Field(ScanData, ';', 3) + end else + ErrorMsg = 'Invalid Shipping Label Scan.' + end + + If ErrorMsg EQ '' then + + // Strip the prefix encoding + If Cassette2[1, 2] EQ '1T' OR Cassette2[1, 2] EQ '2T' then + Cassette2[1, 2] = '' + end else If Cassette2[1,1] EQ 'I' OR ScanData[1,1] EQ 'O' then + Cassette2[1,1] = '' + end + testCass1 = Param3 + testCass2 = Cassette2 + convert '*' to '.' in testCass1 + convert '*' to '.' in testCass2 + + If testCass1 NE testCass2 then + ErrorMsg = 'Scan Mismatch - RDS values do not match. Both cassettes placed on hold - Supervisor, Lead, or Engineering disposition required.':CRLF$ | : 'RDS Label #1: ':testCass1:CRLF$ | : 'RDS Label #2: ':testCass2:CRLF$ - ScanMismatch = True$ - gosub ToggleLotHold - Error_Services('Add', ErrorMsg) - return - end - - If Error_Services('NoError') then - Response = Cassette2 - end - - End Case - - end + ScanMismatch = True$ + GoSub ToggleLotHold + end + + If ErrorMsg EQ '' then Response = Cassette2 + end + End Case + end else - Error_Services('Add', 'ScanData argument was missing in the ' : Service : ' service.') + ErrorMsg = 'ScanData argument was missing in the ' : Service : ' service.' end + If ErrorMsg NE '' then Error_Services('Add', ErrorMsg) + end service Service SaveRecord(CassetteID, Warehouse, Location, OperatorID) - * Write success record in Material Log - + // Write success record in Material Log RDSKey = CassetteID WMOKey = CassetteID Convert '.' to '*' in WMOKey @@ -504,20 +595,12 @@ Service SaveRecord(CassetteID, Warehouse, Location, OperatorID) errCode = '' obj_WO_Mat_Log('Create',WOMLParms) -* aiParms = 'WO_MAT':@RM:WONo:@RM:CassNo:@RM:WhCd:'*':LocCd:@RM:Action:@RM:InvDTM:@RM:UserID:@RM:Tag:@RM:ToolID -* obj_WO_Mat('AddInvTrans', aiParms) - - - - IF Get_Status(errCode) THEN - swap @SVM with CRLF$ in errCode - ErrorMsg = 'Errors calling obj_WO_Mat_Log("Create"). Error code: ':errCode:', Len(errCode)=':Len(errCode):'. FI has been notified.' + If Get_Status(errCode) then + Swap @SVM with CRLF$ in errCode + ErrorMsg = 'Errors calling obj_WO_Mat_Log("Create"). Error code: ':errCode Error_Services('Add', ErrorMsg) - if LEN(errCode) > 5 then - Gosub SendErrorNotification - end + Gosub SendErrorNotification end - end end service @@ -525,19 +608,20 @@ end service SendErrorNotification: - Recipients = XLATE('NOTIFICATION','FI_SUPPORT',NOTIFICATION_USER_ID$,'X') - SentFrom = 'MATERIAL_MOVEMENT_SERVICES' - Subject = 'ERROR CALLING OBJ_WO_MAT ' - Message = 'Error occured while attempting to write WO_MAT_LOG at ':Location:' Scan':CRLF$:ErrorMsg - AttachKey = WoMatKey - AttachWindow = '' - SendToGroup = '' + Recipients = '' + SentFrom = 'MATERIAL_MOVEMENT_SERVICES' + Subject = 'ERROR CALLING OBJ_WO_MAT ' + Message = 'Error occured while attempting to write WO_MAT_LOG at ':Location:' Scan':CRLF$:ErrorMsg + AttachKey = WoMatKey + AttachWindow = '' + SendToGroup = 'FI_SUPPORT' Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup obj_Notes('Create',Parms) return + ToggleLotHold: If ScanMismatch EQ True$ then @@ -578,22 +662,26 @@ ToggleLotHold: // To do: Throw Error End Case Convert '*' to '.' in Cassette1 - HoldEntityID = Cassette1 - - // Manually add work order material log entry - WOMatKey = WONo:'*':CassNo - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - NumTimestamps = Dcount(WOMatRec, @VM) - NewEntryPos = NumTimestamps + 1 - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_WH$, NewEntryPos, 0, WhCd) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_LOCATION$, NewEntryPos, 0, LocCd) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_ACTION$, NewEntryPos, 0, Action) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_DTM$, NewEntryPos, 0, LogDTM) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_USER$, NewEntryPos, 0, UserID) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_TAG$, NewEntryPos, 0, Tags) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_TOOL_ID$, NewEntryPos, 0, ToolID) - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) + + WOMLParms = LogFile:@RM + WOMLParms := LogDTM:@RM + WOMLParms := Action:@RM + WOMLParms := WhCd:@RM + WOMLParms := LocCd:@RM + WOMLParms := WONo:@RM + WOMLParms := CassNo:@RM + WOMLParms := UserID:@RM + WOMLParms := Tags:@RM + WOMLParms := ToolID + Set_Status(0) + errCode = '' + obj_WO_Mat_Log('Create',WOMLParms) + If Get_Status(errCode) then + Swap @SVM with CRLF$ in errCode + ErrorMsg = 'Error calling obj_WO_Mat_Log("Create"). Error code: ':errCode + Gosub SendErrorNotification + end // Place first cassette on hold WOMatKey = WONo:'*':CassNo @@ -637,24 +725,26 @@ ToggleLotHold: ToolID = '' HoldEntityID = Cassette2 - // Manually add work order material log entry - - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - NumTimestamps = Dcount(WOMatRec, @VM) - NewEntryPos = NumTimestamps + 1 - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_WH$, NewEntryPos, 0, WhCd) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_LOCATION$, NewEntryPos, 0, LocCd) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_ACTION$, NewEntryPos, 0, Action) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_DTM$, NewEntryPos, 0, LogDTM) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_USER$, NewEntryPos, 0, UserID) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_TAG$, NewEntryPos, 0, Tags) - WOMatRec = INSERT(WOMatRec, WO_MAT_INV_TOOL_ID$, NewEntryPos, 0, ToolID) - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$) + WOMLParms = LogFile:@RM + WOMLParms := LogDTM:@RM + WOMLParms := Action:@RM + WOMLParms := WhCd:@RM + WOMLParms := LocCd:@RM + WOMLParms := WONo:@RM + WOMLParms := CassNo:@RM + WOMLParms := UserID:@RM + WOMLParms := Tags:@RM + WOMLParms := ToolID + Set_Status(0) + errCode = '' + obj_WO_Mat_Log('Create',WOMLParms) + If Get_Status(errCode) then + Swap @SVM with CRLF$ in errCode + ErrorMsg = 'Error calling obj_WO_Mat_Log("Create"). Error code: ':errCode + Gosub SendErrorNotification + end - //pause before putting second cassette on hold - // Place second cassette on hold - WOMatKey = WONo:'*':CassNo CtrlEntID = False$ ;* Control checked/unchecked OriginFlag = 'PTO' ;* Flag to indicate a hold initiated from the packaging form @@ -662,7 +752,8 @@ ToggleLotHold: Hold_Services('ToggleHold', WOMatKey, HoldEntity, HoldEntityID, CtrlEntID, OriginFlag, '', OperatorID) end - gosub SendPTOMismatchNotification + GoSub SendPTOMismatchNotification + errCode = '' IF Get_Status(errCode) THEN Error_Services('Add', 'Error code ':errCode:' in ':Service:' service.') Error_Services('Add', 'Cassette scans did not match! Both cassettes placed on hold - Supervisor, Lead, or Engineering disposition required.') @@ -671,6 +762,7 @@ ToggleLotHold: return + SendPTOMismatchNotification: // Send scan mismatch notification diff --git a/LSL2/STPROC/NDW_FQA_MAT_SCAN_EVENTS.txt b/LSL2/STPROC/NDW_FQA_MAT_SCAN_EVENTS.txt index 64bb303..d31247b 100644 --- a/LSL2/STPROC/NDW_FQA_MAT_SCAN_EVENTS.txt +++ b/LSL2/STPROC/NDW_FQA_MAT_SCAN_EVENTS.txt @@ -36,40 +36,37 @@ $insert WO_MAT_EQUATES $insert APPCOLORS $insert MESSAGE_BOX_EQUATES -Equ CRLF$ to \0D0A\ +Equ CRLF$ to \0D0A\ Equ MSG_WIDTH$ to 600 Equ EditTable$ to @Window:'.OLE_EDT_SCANDATA' Equ Cassette1$ to @Window:'.EDL_CASSETTE1_SCAN' Equ Cassette2$ to @Window:'.EDL_CASSETTE2_SCAN' -Equ Supplier$ to @Window:'.EDL_SUPPLIER_SCAN' +Equ Supplier$ to @Window:'.EDL_SUPPLIER_SCAN' Declare subroutine Set_Property, Send_Event, Post_Event, Send_Message, SendMessage, Error_Services Declare subroutine Obj_Wo_Mat_Log, Errmsg, Utility, SRP_Show_Window, Material_Movement_Services, Set_Status Declare function Get_Property, Send_Message, SendMessage, Material_Movement_Services, Error_Services, Declare function Popup, obj_WO_Mat, Database_Services, Utility, Rds_Services, Message_Box -*Subclass = @Window : '.OLE_SUBCLASS' - // Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler. If Event EQ 'OLE' then - Transfer Event to OIEvent - Transfer Param1 to Event - Transfer Param2 to Param1 - Transfer Param3 to Param2 - Transfer Param4 to Param3 - Transfer Param5 to Param4 - Transfer Param6 to Param5 - Transfer Param7 to Param6 - Transfer Param8 to Param7 + Transfer Event to OIEvent + Transfer Param1 to Event + Transfer Param2 to Param1 + Transfer Param3 to Param2 + Transfer Param4 to Param3 + Transfer Param5 to Param4 + Transfer Param6 to Param5 + Transfer Param7 to Param6 + Transfer Param8 to Param7 end GoToEvent Event for CtrlEntId else - // Event not implemented + // Event not implemented end Return EventFlow or 1 -*global ScanField = '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -77,33 +74,24 @@ ScanField = '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Event WINDOW.CREATE(CreateParam) - -* CurrVer = Xlate('APP_INFO', 'LSL2_VERSION', '', 'X') -* UserVer = Xlate('LSL_USERS', @User4, 'LSL2_VERSION', 'X') -* If UserVer NE CurrVer then -* // Error message and close form -* ErrMsg = 'OpenInsight Version Error':@FM:'You are running an outdated version of OpenInsight and cannot release material until you restart your session.' -* Msg(@Window, '', 'OK', '', ErrMsg) -* Post_Event(@Window, 'CLOSE') -* end else - GoSub SetupOLEControls - GoSub ResetForm - SRP_Show_Window(@Window, '', 'C', 'C', 1, '', False$, False$, FormSize) - MsgStruct = '' - MsgStruct = MSG_WIDTH$ -* end - + + GoSub SetupOLEControls + GoSub ResetForm + SRP_Show_Window(@Window, '', 'C', 'C', 1, '', False$, False$, FormSize) + MsgStruct = '' + MsgStruct = MSG_WIDTH$ + end event Event OLE_BTN_CLEAR.OnClick(Point, Button, Shift, Ctrl) + *get count of unprocessed records - allCompleted = True$ resp = '' Data = Get_Property(EditTable$, "OLE.ARRAY") cnt = count(Data<1>, @VM) + (Data<1># '') - + for i = 1 to cnt while allCompleted EQ True$ cntProc = 0 status = Data<4,i> @@ -120,105 +108,117 @@ Event OLE_BTN_CLEAR.OnClick(Point, Button, Shift, Ctrl) GoSub ResetForm end end + end event Event OLE_BTN_SAVE.OnClick(Point, Button, Shift, Ctrl) + *check for unfinished scan F1 = Get_Property(Cassette1$, 'TEXT') F2 = Get_Property(Cassette2$, 'TEXT') F3 = Get_Property(Supplier$, 'TEXT') resp = True$ - If F1 NE '' OR F2 NE '' OR F3 NE '' then + If F1 NE '' OR F2 NE '' OR F3 NE '' then resp = Message_Box(@Window, 'You have an unfinished scan (not in grid) - continue?', 'Confirm Save', MSG_BTN_OKCAN$ + MSG_DEFAULT2$) - end - if resp EQ True$ Then + end + if resp EQ True$ Then Warehouse = '1K' Location = 'PTI' Gosub SaveRecords end + end event Event EDL_CASSETTE1_SCAN.LOSTFOCUS(Flag, FocusID) + ScanField = 'Cassette1' - If Flag EQ 1 then - ScanData = Get_Property(CtrlEntID, 'TEXT') - If ScanData NE '' then - ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'CASSETTE1') - If Error_Services('NoError') then - Set_Property(CtrlEntID, 'TEXT', ScanData) - Set_Property(Cassette2$, 'ENABLED', True$) - Set_Property(Cassette2$, 'FOCUS', True$) - Set_Property(CtrlEntID, 'ENABLED', False$) - Gosub ValidateGrid - end else - GoSub ResetForm - ErrorMessage = Error_Services('GetMessage') - Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) - end - end - end + If Flag EQ 1 then + ScanData = Get_Property(CtrlEntID, 'TEXT') + If ScanData NE '' then + ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'CASSETTE1') + If Error_Services('NoError') then + RDSNo = ScanData<1> + SeqNo = ScanData<2> + Set_Property(Cassette1$, '@SEQNO', SeqNo) + Set_Property(CtrlEntID, 'TEXT', RDSNo) + Set_Property(Cassette2$, 'ENABLED', True$) + Set_Property(Cassette2$, 'FOCUS', True$) + Set_Property(CtrlEntID, 'ENABLED', False$) + Gosub ValidateGrid + end else + GoSub ResetForm + ErrorMessage = Error_Services('GetMessage') + Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) + end + end + end + end event Event EDL_CASSETTE2_SCAN.LOSTFOCUS(Flag, FocusID) + ScanField = 'Cassette2' - If Flag EQ 1 then - ScanData = Get_Property(CtrlEntID, 'TEXT') - Cass1 = Get_Property(Cassette1$, 'TEXT') - retVal = Set_Property(@window, '@IsEpp', False$) - If ScanData[1,1] = 'O' OR ScanData[1,3] = '1TO' then - retVal = Set_Property(@window, '@IsEpp', True$) - end - If ScanData NE '' then - ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'CASSETTE2', Cass1) - If Error_Services('NoError') then - * IF EPP, prepopulate lot and just validate - - If Get_Property(@window, '@IsEpp') EQ True$ then - Set_Property(CtrlEntID, 'TEXT', ScanData) - Set_Property(Supplier$, 'TEXT', 'EpiPRO') + If Flag EQ 1 then + ScanData = Get_Property(CtrlEntID, 'TEXT') + Cass1 = Get_Property(Cassette1$, 'TEXT') + Seq1No = Get_Property(Cassette1$, '@SEQNO') + retVal = Set_Property(@window, '@IsEpp', False$) + If Index(ScanData, '.', 1) then + retVal = Set_Property(@window, '@IsEpp', True$) + end + If ScanData NE '' then + ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'CASSETTE2', Cass1, Seq1No) + If Error_Services('NoError') then + * IF EPP, prepopulate lot and just validate + If Get_Property(@window, '@IsEpp') EQ True$ then + Set_Property(CtrlEntID, 'TEXT', ScanData) + Set_Property(Supplier$, 'TEXT', 'EpiPRO') Gosub ValidateGrid Set_Property(Supplier$, 'ENABLED', False$) Set_Property(Cassette1$, 'FOCUS', True$) Gosub ValidateGrid - end else + end else Set_Property(CtrlEntID, 'TEXT', ScanData) Gosub ValidateGrid Set_Property(Supplier$, 'ENABLED', True$) Set_Property(Supplier$, 'FOCUS', True$) Set_Property(CtrlEntID, 'ENABLED', False$) Gosub ValidateGrid - end - end else - GoSub ResetForm - ErrorMessage = Error_Services('GetMessage') - Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) - end - end - end + end + end else + GoSub ResetForm + ErrorMessage = Error_Services('GetMessage') + Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) + end + end + end + end event Event EDL_SUPPLIER_SCAN.LOSTFOCUS(Flag, FocusID) + ScanField = 'Lot' - If Flag EQ 1 then - Cassette1 = Get_Property(Cassette1$, 'TEXT') - ScanData = Get_Property(CtrlEntID, 'TEXT') - If ScanData NE '' then - ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'SUPPLIER', Cassette1) - If Error_Services('NoError') then - Set_Property(CtrlEntID, 'TEXT', ScanData) - Set_Property(CtrlEntID, 'ENABLED', False$) - Gosub ValidateGrid - end else - GoSub ResetForm - ErrorMessage = Error_Services('GetMessage') - Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) - end - end - end + If Flag EQ 1 then + Cassette1 = Get_Property(Cassette1$, 'TEXT') + ScanData = Get_Property(CtrlEntID, 'TEXT') + If ScanData NE '' then + ScanData = Material_Movement_Services('ProcessFQAScanData', ScanData, 'SUPPLIER', Cassette1) + If Error_Services('NoError') then + Set_Property(CtrlEntID, 'TEXT', ScanData) + Set_Property(CtrlEntID, 'ENABLED', False$) + Gosub ValidateGrid + end else + GoSub ResetForm + ErrorMessage = Error_Services('GetMessage') + Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) + end + end + end + end event @@ -227,6 +227,7 @@ end event //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SaveRecords: + *iterate thround all records in the grid, saving them and updating the status and location Data = Get_Property(EditTable$, "OLE.ARRAY") cnt = count(Data<1>, @VM) + (Data<1># '') @@ -243,12 +244,12 @@ SaveRecords: Loc = '1K*PTI' Set_Property(EditTable$, 'OLE.CellColors[ALL;':i:']', 'Auto':@FM:'Auto') cntProc += 1 - end else - Status = 'Error' + end else + Status = 'Error' Set_Property(EditTable$, 'OLE.CellColors[ALL;':i:']', 'Auto':@FM:'Red') - end - - Set_Property(EditTable$, 'OLE.CELLTEXT[4;':i:']', Status) + end + + Set_Property(EditTable$, 'OLE.CELLTEXT[4;':i:']', Status) Set_Property(EditTable$, 'OLE.CELLTEXT[5;':i:']', Loc) end Next i @@ -269,11 +270,12 @@ SaveRecords: end Gosub DisableFormControls - + return ValidateGrid: + F1 = Get_Property(Cassette1$, 'TEXT') F2 = Get_Property(Cassette2$, 'TEXT') F3 = Get_Property(Supplier$, 'TEXT') @@ -285,11 +287,6 @@ ValidateGrid: result = 1 end end -* if ScanField = 'Lot' then ; * do not look for duplicates -* result = 0 -* end else -* result = InList(Data, ScanData, @VM) OR InList(Data, ScanData, @FM) -* end If INDEX(F1,'.',2) then RDSType = 'EPP' @@ -308,76 +305,78 @@ ValidateGrid: Case RDSType EQ 'EPP' WOMatKey = FIELD(F1,'*',1):'*':FIELD(F1,'*',3) Location = XLATE('WO_MAT', WOMatKey, 'CURR_LOCATION', '', '') - + End Case - + if result EQ 1 then ErrorMessage = 'Value already exists in grid: ':ScanData - Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) + Msg(@Window, MsgStruct, 'PROCESS_ERROR', '', ErrorMessage) Gosub ResetForm end else if F1 NE '' AND F2 NE '' AND F3 NE '' then - - // Add Material Log Entry - CurrDTM = OCONV(Date(),'D2/'):' ':OCONV(Time(),'MTS') - UserID = @USER4 - - LogFile = 'WO_MAT' ;* Changed so all scans are logged in the WO_MAT table 12/3/2006 - Action = 'LBLCHK' ;* Final label check for same top and bottom and correct Lot Number on WO_MAT record - WHCd = 'CR' ;* Clean room @ final QA - LocCd = 'PKO' ;* QA wants this to "place" the cassette into the outbound passthrough - WONo = Field(WOMatKey, '*', 1) - CassNo = Field(WOMatKey, '*', 2) - Set_Status(0) - obj_WO_Mat_Log('Create',LogFile:@RM:CurrDTM:@RM:Action:@RM:WhCd:@RM:LocCd:@RM:WONo:@RM:CassNo:@RM:UserID:@RM:'Match') - - IF Get_Status(errCode) THEN - Errmsg(errCode) - END else - // Insert row into OLE edit table to provide user feedback. - Data = '' - Data<1> = F1:@VM:F2:@VM:F3:@VM:'Completed':@VM:Location:@VM - Send_Message(EditTable$, 'OLE.INSERT', 1, Data) - GoSub ResetForm - end - + + // Add Material Log Entry + CurrDTM = OCONV(Date(),'D2/'):' ':OCONV(Time(),'MTS') + UserID = @USER4 + + LogFile = 'WO_MAT' ;* Changed so all scans are logged in the WO_MAT table 12/3/2006 + Action = 'LBLCHK' ;* Final label check for same top and bottom and correct Lot Number on WO_MAT record + WHCd = 'CR' ;* Clean room @ final QA + LocCd = 'PKO' ;* QA wants this to "place" the cassette into the outbound passthrough + WONo = Field(WOMatKey, '*', 1) + CassNo = Field(WOMatKey, '*', 2) + Set_Status(0) + obj_WO_Mat_Log('Create',LogFile:@RM:CurrDTM:@RM:Action:@RM:WhCd:@RM:LocCd:@RM:WONo:@RM:CassNo:@RM:UserID:@RM:'Match') + + IF Get_Status(errCode) THEN + Errmsg(errCode) + END else + // Insert row into OLE edit table to provide user feedback. + Data = '' + Data<1> = F1:@VM:F2:@VM:F3:@VM:'Completed':@VM:Location:@VM + Send_Message(EditTable$, 'OLE.INSERT', 1, Data) + GoSub ResetForm + end + end return DisableFormControls: + Set_Property(@Window:'.EDL_CASSETTE1_SCAN', 'TEXT', '') Set_Property(@Window:'.EDL_CASSETTE2_SCAN', 'TEXT', '') Set_Property(@Window:'.EDL_SUPPLIER_SCAN', 'TEXT', '') Set_Property(@Window:'.EDL_CASSETTE1_SCAN', 'ENABLED', False$) Set_Property(@Window:'.EDL_CASSETTE2_SCAN', 'ENABLED', False$) Set_Property(@Window:'.EDL_SUPPLIER_SCAN', 'ENABLED', False$) + return SetupOLEControls: - - // Qualify OLE events that we want to intercept - Qualifier = '' - Qualifier<1> = 1 - Qualifier<3> = '' - Qualifier<4> = 0 ; * process synchronously - NumCols = 4 - NumRows = 150 - - Ctrl = @Window:'.OLE_BTN_CLEAR' - Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnClick', Qualifier) - Ctrl = @Window:'.OLE_BTN_SAVE' - Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnClick', Qualifier) - - DimensionArray = NumCols:@FM:NumRows - Set_Property(EditTable$, "OLE.Dimension", DimensionArray) - Titles = "Top Label":@VM:"Bottom Label":@VM:"Sub Lot":@VM:"Scan Status" - Set_Property(EditTable$, "OLE.TitleList", Titles) - - Set_Property(EditTable$, "OLE.DataColumn[1-2]", '85') - Set_Property(EditTable$, "OLE.DataColumn[3]", '80') - Set_Property(EditTable$, "OLE.DataColumn[4]", '90') + + // Qualify OLE events that we want to intercept + Qualifier = '' + Qualifier<1> = 1 + Qualifier<3> = '' + Qualifier<4> = 0 ; * process synchronously + NumCols = 4 + NumRows = 150 + + Ctrl = @Window:'.OLE_BTN_CLEAR' + Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnClick', Qualifier) + Ctrl = @Window:'.OLE_BTN_SAVE' + Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnClick', Qualifier) + + DimensionArray = NumCols:@FM:NumRows + Set_Property(EditTable$, "OLE.Dimension", DimensionArray) + Titles = "Top Label":@VM:"Bottom Label":@VM:"Sub Lot":@VM:"Scan Status" + Set_Property(EditTable$, "OLE.TitleList", Titles) + + Set_Property(EditTable$, "OLE.DataColumn[1-2]", '85') + Set_Property(EditTable$, "OLE.DataColumn[3]", '80') + Set_Property(EditTable$, "OLE.DataColumn[4]", '90') AlignArray = 'C':@FM:'C':@FM:'L' Set_Property(EditTable$, "OLE.CellAlignment[All; All]", AlignArray) @@ -391,11 +390,13 @@ SetupOLEControls: AutoNumArray<1, 1> = 'I' ; // Integers AutoNumArray<1, 2> = 1 ; // Starting integer Set_Property(EditTable$, "OLE.AutoNumbers", AutoNumArray) - + Set_Property(EditTable$, "OLE.CellProtection[All; All]", 'SEL') SelStyleArray = 'Black' : @VM : OI_HOT_BLUE$ : ' L=70' : @FM : 'Black' : @VM : OI_HOT_BLUE$ Set_Property(EditTable$, 'OLE.SelectionStyle', SelStyleArray) ; // Automatically highlight the current row with one color and highlight the current row with another color. - + + Set_Property(@Window:'.OLE_BTN_CLEAR', 'OLE.Style', 'STD') + return @@ -414,5 +415,7 @@ ResetForm: cnt = count(Data<1>, @VM) + (Data<1># '') Set_Property(@Window:'.OLE_BTN_SAVE', 'ENABLED', cnt GE 1) Set_Property(EditTable$, 'OLE.CellColors[ALL;All]', 'Auto':@FM:'Auto') + Set_Property(Cassette1$, '@SEQNO', '') + return diff --git a/LSL2/STPROC/NDW_PTI_MAT_SCAN_EVENTS.txt b/LSL2/STPROC/NDW_PTI_MAT_SCAN_EVENTS.txt index 24d17a0..ae68d85 100644 --- a/LSL2/STPROC/NDW_PTI_MAT_SCAN_EVENTS.txt +++ b/LSL2/STPROC/NDW_PTI_MAT_SCAN_EVENTS.txt @@ -36,20 +36,18 @@ $insert WO_MAT_EQUATES $insert APPCOLORS $insert MESSAGE_BOX_EQUATES -Equ CRLF$ to \0D0A\ +Equ CRLF$ to \0D0A\ Equ MSG_WIDTH$ to 600 Equ EditTable$ to @Window:'.OLE_EDT_SCANDATA' Equ Cassette1$ to @Window:'.EDL_CASSETTE1_SCAN' Equ Cassette2$ to @Window:'.EDL_CASSETTE2_SCAN' -Equ Supplier$ to @Window:'.EDL_SUPPLIER_SCAN' +Equ Supplier$ to @Window:'.EDL_SUPPLIER_SCAN' Declare subroutine Set_Property, Send_Event, Post_Event, Send_Message, SendMessage, Error_Services Declare subroutine Obj_Wo_Mat_Log, Errmsg, Utility, SRP_Show_Window, Material_Movement_Services, PlaceDialog Declare function Get_Property, Send_Message, SendMessage, Material_Movement_Services, Error_Services, Declare function Popup, obj_WO_Mat, Database_Services, Utility, Rds_Services, Message_Box -*Subclass = @Window : '.OLE_SUBCLASS' - // Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler. If Event EQ 'OLE' then Transfer Event to OIEvent @@ -69,7 +67,6 @@ end Return EventFlow or 1 -*global ScanField = '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -151,7 +148,10 @@ Event EDL_CASSETTE1_SCAN.LOSTFOCUS(Flag, FocusID) If ScanData NE '' then ScanData = Material_Movement_Services('ProcessPTIScanData', ScanData, 'CASSETTE1') If Error_Services('NoError') then - Set_Property(CtrlEntID, 'TEXT', ScanData) + RDSNo = ScanData<1> + SeqNo = ScanData<2> + Set_Property(Cassette1$, '@SEQNO', SeqNo) + Set_Property(CtrlEntID, 'TEXT', RDSNo) Set_Property(Cassette2$, 'ENABLED', True$) Set_Property(Cassette2$, 'FOCUS', True$) Set_Property(CtrlEntID, 'ENABLED', False$) @@ -171,11 +171,12 @@ end event Event EDL_CASSETTE2_SCAN.LOSTFOCUS(Flag, FocusID) ScanField = 'Cassette2' - If Flag EQ 1 then + If Flag EQ 1 then ScanData = Get_Property(CtrlEntID, 'TEXT') Cass1 = Get_Property(Cassette1$, 'TEXT') + Seq1No = Get_Property(Cassette1$, '@SEQNO') If ScanData NE '' then - ScanData = Material_Movement_Services('ProcessPTIScanData', ScanData, 'CASSETTE2', Cass1) + ScanData = Material_Movement_Services('ProcessPTIScanData', ScanData, 'CASSETTE2', Cass1, Seq1No) If Error_Services('NoError') then Set_Property(CtrlEntID, 'TEXT', ScanData) Gosub ValidateGrid @@ -379,6 +380,9 @@ SetupOLEControls: SelStyleArray = 'Black' : @VM : OI_HOT_BLUE$ : ' L=70' : @FM : 'Black' : @VM : OI_HOT_BLUE$ Set_Property(EditTable$, 'OLE.SelectionStyle', SelStyleArray) ; // Automatically highlight the current row with one color and highlight the current row with another color. + Set_Property(@Window:'.OLE_BTN_CLEAR', 'OLE.Style', 'STD') + Set_Property(@Window:'.OLE_BTN_SAVE', 'OLE.Style', 'STD') + return diff --git a/LSL2/STPROC/PRINT_CASS_LABELS.txt b/LSL2/STPROC/PRINT_CASS_LABELS.txt index 539c41e..5cbc1af 100644 --- a/LSL2/STPROC/PRINT_CASS_LABELS.txt +++ b/LSL2/STPROC/PRINT_CASS_LABELS.txt @@ -15,6 +15,7 @@ $INSERT EPI_PART_EQUATES $INSERT COMPANY_EQUATES $INSERT CUST_EPI_PART_EQUATES $INSERT PRS_STAGE_EQUATES +$INSERT UNIT_EQUATES DECLARE FUNCTION FIELDCOUNT, MSG, Key_Sort, Get_Printer, SRP_Math, Set_Printer, Utility, obj_Install, Printer_Select, obj_Vendor_Code, Direct_Print, Environment_Services DECLARE SUBROUTINE Extract_Si_Keys, Update_Index, ErrMsg @@ -48,129 +49,139 @@ EQU PS$RECIPE TO 3 EQU PS$FREQ TO 4 EQU PS$PATTERN TO 11 -IF NOT(ASSIGNED(RdsIds)) THEN RdsIds = '' ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade -IF NOT(ASSIGNED(MultiStep)) THEN MultiStep = '' ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade +Main: -IF RdsIds = '' THEN RETURN 0 ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade -IF MultiStep = '' THEN MultiStep = 0 ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade + IF NOT(ASSIGNED(RdsIds)) THEN RdsIds = '' ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade + IF NOT(ASSIGNED(MultiStep)) THEN MultiStep = '' ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade -FileName = "Printing Label" -Title = "Printing Label" + IF RdsIds = '' THEN RETURN 0 ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade + IF MultiStep = '' THEN MultiStep = 0 ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade -PageInfo = '' -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 + FileName = "Printing Label" + Title = "Printing Label" -PageSetup = '1' ;* Landscape -PrintSetup = '' ;* Preview + PageInfo = '' + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 -PrinterID = '' -PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed + PageSetup = '1' ;* Landscape + PrintSetup = '' ;* Preview -If PrintPath NE '' then - - If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) - end else - stat = Direct_Print('START', PrintPath<1>, '', '') - end - - IF stat < 0 THEN GOTO OIPrint_Error - - EQU DosPath$ TO 'C:\WINDOWS\OIZPL.TXT' ;* remove jch - - CLOrientation = '' ;* used for printing on cleanroom labels - - IF RdsIds THEN - Update_Index ("RDS", "WO", "") - Void = utility( 'CURSOR', 'H' ) - IdCnt = fieldcount( RdsIds, @FM ) - * sort by run order number - IF IdCnt > 1 THEN - RdsIds = key_sort( RdsIds, 'RDS', 'WO':@FM:'RUN_ORDER_NUM', 1, '', '' ) - END + PrinterID = '' + PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed + + If PrintPath NE '' then - // To work around the design flaws in the label printing logic regarding multiple RDS Key IDs - // while still preserving the variable names, the RdsIds values will be transferred to AllRdsIds - // and then each RDS Key ID will be parsed in a loop and passed into the RdsIds variable. - Transfer RdsIds to AllRdsIds - For Each RdsIds in AllRdsIds using @FM - IdCnt = fieldcount( RdsIds, @FM ) - GOSUB PrintCleanRoomLabels - Next RdsIds + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) + end else + stat = Direct_Print('START', PrintPath<1>, '', '') + end - // Restore RdsIds variable for other processes that need it to be intact. - Transfer AllRdsIds to RdsIds + IF stat GE 0 THEN - UniqueWOs = '' - CustNos = '' - CompositeKeys = '' - IdCnt = fieldcount( RdsIds, @FM ) - - IF MultiStep > 0 THEN + EQU DosPath$ TO 'C:\WINDOWS\OIZPL.TXT' ;* remove jch - WOStepKeys = XLATE('RDS',RdsIds,RDS_WO_STEP_KEY$,'X') ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade - FOR I = 1 TO IdCnt - ThisWO = WOStepKeys - CONVERT '*' TO '.' IN ThisWO - CassNo = XLATE('RDS',RdsIds,'CASS_NO','X') - WOMatRec = XLATE('WO_MAT',ThisWO:'*':CassNo,'','X') - ReShipCustNo = WOMatRec - If ReShipCustNo EQ '' then - CustNo = XLATE( 'WO_LOG', ThisWO, wo_log_cust_no$, 'X' ) - end else - CustNo = ReShipCustNo - end - LOCATE ThisWO : '*' : CustNo IN CompositeKeys USING @VM SETTING FPos ELSE - UniqueWOs<1,-1> = ThisWO - CustNos<1,-1> = CustNo - CompositeKeys<1,-1> = ThisWO : '*' : CustNo + CLOrientation = '' ;* used for printing on cleanroom labels + + IF RdsIds THEN + Update_Index ("RDS", "WO", "") + Void = utility( 'CURSOR', 'H' ) + IdCnt = fieldcount( RdsIds, @FM ) + * sort by run order number + IF IdCnt > 1 THEN + RdsIds = key_sort( RdsIds, 'RDS', 'WO':@FM:'RUN_ORDER_NUM', 1, '', '' ) END - NEXT I - - END ELSE - - AllWOs = XLATE( 'RDS', RdsIds, rds_wo$, 'X' ) - FOR I = 1 TO IdCnt - ThisWO = AllWOs - CassNo = XLATE('RDS',RdsIds,'CASS_NO','X') - WOMatRec = XLATE('WO_MAT',ThisWO:'*':CassNo,'','X') - ReShipCustNo = WOMatRec - If ReShipCustNo EQ '' then - CustNo = XLATE( 'WO_LOG', ThisWO, wo_log_cust_no$, 'X' ) - end else - CustNo = ReShipCustNo - end - LOCATE ThisWO : '*' : CustNo IN CompositeKeys USING @VM SETTING Fpos ELSE - UniqueWOs<1,-1> = ThisWO - CustNos<1,-1> = CustNo - CompositeKeys<1,-1> = ThisWO : '*' : CustNo - END - NEXT I - - END + + // To work around the design flaws in the label printing logic regarding multiple RDS Key IDs + // while still preserving the variable names, the RdsIds values will be transferred to AllRdsIds + // and then each RDS Key ID will be parsed in a loop and passed into the RdsIds variable. + Transfer RdsIds to AllRdsIds + For Each RdsIds in AllRdsIds using @FM + IdCnt = fieldcount( RdsIds, @FM ) + GOSUB PrintCleanRoomLabels + Next RdsIds + + // Restore RdsIds variable for other processes that need it to be intact. + Transfer AllRdsIds to RdsIds + + UniqueWOs = '' + CustNos = '' + CompositeKeys = '' + IdCnt = fieldcount( RdsIds, @FM ) + + IF MultiStep > 0 THEN + + WOStepKeys = XLATE('RDS',RdsIds,RDS_WO_STEP_KEY$,'X') ;* 5/21/2005 - JCH - Added for Order Entry/Vision upgrade + FOR I = 1 TO IdCnt + ThisWO = WOStepKeys + CONVERT '*' TO '.' IN ThisWO + CassNo = XLATE('RDS',RdsIds,'CASS_NO','X') + WOMatRec = XLATE('WO_MAT',ThisWO:'*':CassNo,'','X') + ReShipCustNo = WOMatRec + If ReShipCustNo EQ '' then + CustNo = XLATE( 'WO_LOG', ThisWO, wo_log_cust_no$, 'X' ) + end else + CustNo = ReShipCustNo + end + LOCATE ThisWO : '*' : CustNo IN CompositeKeys USING @VM SETTING FPos ELSE + UniqueWOs<1,-1> = ThisWO + CustNos<1,-1> = CustNo + CompositeKeys<1,-1> = ThisWO : '*' : CustNo + END + NEXT I + + END ELSE + + AllWOs = XLATE( 'RDS', RdsIds, rds_wo$, 'X' ) + FOR I = 1 TO IdCnt + ThisWO = AllWOs + CassNo = XLATE('RDS',RdsIds,'CASS_NO','X') + WOMatRec = XLATE('WO_MAT',ThisWO:'*':CassNo,'','X') + ReShipCustNo = WOMatRec + If ReShipCustNo EQ '' then + CustNo = XLATE( 'WO_LOG', ThisWO, wo_log_cust_no$, 'X' ) + end else + CustNo = ReShipCustNo + end + LOCATE ThisWO : '*' : CustNo IN CompositeKeys USING @VM SETTING Fpos ELSE + UniqueWOs<1,-1> = ThisWO + CustNos<1,-1> = CustNo + CompositeKeys<1,-1> = ThisWO : '*' : CustNo + END + NEXT I + + END + + GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 + + WONo = XLATE('RDS',RdsIds<1>,RDS_WO$,'X') + CustNo = XLATE('WO_LOG',WONo,WO_LOG_CUST_NO$,'X') + Void = UTILITY( 'CURSOR', 'A' ) + END + end - GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 + GoSub EndPrint - WONo = XLATE('RDS',RdsIds<1>,RDS_WO$,'X') - CustNo = XLATE('WO_LOG',WONo,WO_LOG_CUST_NO$,'X') - Void = UTILITY( 'CURSOR', 'A' ) - END - - * * * * * * - OIPrint_Error: - * * * * * * - + end + +RETURN + + +* * * * * * +EndPrint: +* * * * * * + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then stat = Set_Printer("TERM") end else stat = Direct_Print('STOP') end -end -RETURN +return + * * * * * * * * * * * * Local Subroutines * * * * * * * * * * * * @@ -246,9 +257,7 @@ PrintCleanRoomLabels: PSNIds = XLATE( 'RDS', RdsIds, rds_prod_spec_id$, 'X' ) SpecType = OCONV( XLATE( 'RDS', RdsIds, 'SPEC_TYPE', 'X' ), '[SPEC_TYPE_CONV]' ) SubPartNum = XLATE( 'RDS', RdsIds, 'SUB_PART_NUM', 'X' ) - RecipeInfo = XLATE( 'RECIPE', RecipeIDS, 'RECIPE_NAME_NO', 'X' ) - ThickVar = XLATE( 'PROD_SPEC', PSNIds, 'THICK_MEASURE_L1', 'X' ) ResVar = XLATE( 'PROD_SPEC', PSNIds, 'RES_MEASURE_L1', 'X' ) ConVar = XLATE( 'PROD_SPEC', PSNIds, 'CON_MEASURE_L1', 'X' ) @@ -618,16 +627,16 @@ PrintCleanRoomLabels: END swap '~' with fmt( ' ', 'L#2' ) in PrintThickPrintVar - swap 'æm' with 'um' in PrintThickTargets - swap 'ê-cm' with 'ohm.cm' in PrintThickTargets - swap 'ê/Ü' with 'ohm/sq' in PrintThickTargets - swap '' with 'A' in PrintThickTargets + swap UNIT_MICROMETER$ with 'um' in PrintThickTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintThickTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintThickTargets + swap UNIT_A$ with 'A' in PrintThickTargets swap '~' with fmt( ' ', 'L#2' ) in PrintResPrintVar - swap 'æm' with 'um' in PrintResTargets - swap 'ê-cm' with 'ohm.cm' in PrintResTargets - swap 'ê/Ü' with 'ohm/sq' in PrintResTargets - swap '' with 'A' in PrintResTargets + swap UNIT_MICROMETER$ with 'um' in PrintResTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintResTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintResTargets + swap UNIT_A$ with 'A' in PrintResTargets //only print cheat sheet label on cassette #1 IF CassNo EQ 1 then @@ -644,6 +653,7 @@ RETURN * * * * * * * PrintLabel: * * * * * * * + * Standard RDS Label print method IF PrintSpecType EQ 'Production' THEN PrintSpecType = 'Prod' IF PrintSpecType EQ 'Pre-Production' THEN PrintSpecType = 'Pre' @@ -659,71 +669,71 @@ PrintLabel: PrintQARecipe = FIELD(PrintRecipe, @VM, 1) PrintCompany = PrintCompany[1,32] -//looping instead of using ^PQ2 since I have to set sequential key in 2D barcode + // Looping instead of using ^PQ2 since I have to set sequential key in 2D barcode Str = '' -For cnt = 1 to 2 - Str := '^XA' - Str := '^LH0,0' - Str := '^PR1' ;* Print speed 2 inches per second - Str := '^LL406' ;* Label length @203 dpi - Str := '^PW900' - Str := '^MD0' ;* Media darkness - Str := '^MMT' ;* Media mode t=tear off mode - *Str := '^PQ2' ;* Print 2 labels for each pass through here + For cnt = 1 to 2 + Str := '^XA' + Str := '^LH0,0' + Str := '^PR1' ;* Print speed 2 inches per second + Str := '^LL406' ;* Label length @203 dpi + Str := '^PW900' + Str := '^MD5' ;* Media darkness + Str := '^MMT' ;* Media mode t=tear off mode + *Str := '^PQ2' ;* Print 2 labels for each pass through here + + ****** First Line, Cust, WO and RO + Str := '^FO25,25^AC,18^FDCust: ^FS':CRLF$ + Str := '^FO95,14^A045,35^FD':PrintCompany:'^FS':CRLF$ + Str := '^FO570,25^AC18^FDWO: ^FS':CRLF$ + Str := '^FO610,14^A045,35^FD':PrintWO:'^FS':CRLF$ + Str := '^FO730,25^AC18^FDRO: ^FS':CRLF$ + Str := '^FO770,14^A045,35^FD':PrintRONum:'^FS':CRLF$ + + ****** Second Line, Cust Spec, PSN and Type + Str := '^FO25,75^AC18^FD(P)Cust Spec: ^FS':CRLF$ + Str := '^FO185,65^A045,35^FD':CustEpiPartSpecNo:'^FS':CRLF$ + Str := '^FO25,95^BY2,2.0^B3,,50,N^FDP':CustEpiPartSpecNo:'^FS':CRLF$ + Str := '^FO640,75^AC18^FDPSN:^FS':CRLF$ + Str := '^FO690,65^A045,35^FD':PrintPSN:'^FS':CRLF$ + Str := '^FO630,125^AC18^FDType:^FS':CRLF$ + Str := '^FO690,115^A045,30^FD':PrintSpecType:'^FS':CRLF$ + + ****** Third Line, Sub Lot, Qty and RDS + Str := '^FO25,175^AC18^FD(2T)Sub Lot:^FS':CRLF$ + Str := '^FO175,165^A045,35^FD':PrintLotNum:'^FS':CRLF$ + Str := '^FO25,195^BY1,3.0^B3,,50,N^FD2T':PrintLotNum:'^FS':CRLF$ + Str := '^FO400,175^AC18^FD(Q)Qty:^FS':CRLF$ + Str := '^FO500,165^A045,35^FD':PrintQty:'^FS':CRLF$ + Str := '^FO400,195^B3,,50,N^FDQ':PrintQty:'^FS':CRLF$ + Str := '^FO590,175^AC18^FD(1T)RDS: ^FS':CRLF$ + Str := '^FO690,165^A045,35^FD':PrintRDSId:'^FS':CRLF$ + Str := '^FO630,195^B3,,50,N^FD1T':PrintRDSId:'^FS':CRLF$ + + ****** Fourth Line, SubPN, Vendor and QA Metrology recipe + Str := '^FO25,275^AC18^FD(S)Sub PN:^FS':CRLF$ + Str := '^FO145,265^A045,35^FD':PrintSubPartNum:'^FS':CRLF$ + Str := '^FO25,295^B3,,50,N^FDS':PrintSubPartNum:'^FS':CRLF$ + Str := '^FO400,275^AC18^FD(1V)Vend:^FS':CRLF$ + Str := '^FO510,265^A045,35^FD':PrintSuppCd:'^FS':CRLF$ + Str := '^FO400,295^B3,,50,N^FD1V':PrintSuppCd:'^FS':CRLF$ + Str := '^FO590,275^AC18^FD':PrintQARecipe:'^FS':CRLF$ + + ****** Fifth Line, Motto and Data Matrix barcode + Str := '^FO25,370^A045,28':CRLF$ + Str := "^FDWe do what we promise. That's quality made by Infineon.^FS":CRLF$ + Str := '^FO725,320^CI28':CRLF$ + Str := '^BXN,2,200^FDP':CustEpiPartSpecNo:'|S':PrintSubPartNum:'|1T':PrintRDSId:'|2T':PrintLotNum:'|':PrintPSN:'|Q':PrintQty:'|1V':PrintSuppCd:'|SEQ':cnt:'^FS':CRLF$ + + ****** End the print job (ZPL script) + Str:= '^XZ' + Next - ****** First Line, Cust, WO and RO - Str := '^FO25,25^AC,18^FDCust: ^FS':CRLF$ - Str := '^FO95,14^A045,35^FD':PrintCompany:'^FS':CRLF$ - Str := '^FO570,25^AC18^FDWO: ^FS':CRLF$ - Str := '^FO610,14^A045,35^FD':PrintWO:'^FS':CRLF$ - Str := '^FO730,25^AC18^FDRO: ^FS':CRLF$ - Str := '^FO770,14^A045,35^FD':PrintRONum:'^FS':CRLF$ - - ****** Second Line, Cust Spec, PSN and Type - Str := '^FO25,75^AC18^FD(P)Cust Spec: ^FS':CRLF$ - Str := '^FO185,65^A045,35^FD':CustEpiPartSpecNo:'^FS':CRLF$ - Str := '^FO25,95^BY2,2.0^B3,,50,N^FDP':CustEpiPartSpecNo:'^FS':CRLF$ - Str := '^FO640,75^AC18^FDPSN:^FS':CRLF$ - Str := '^FO690,65^A045,35^FD':PrintPSN:'^FS':CRLF$ - Str := '^FO630,125^AC18^FDType:^FS':CRLF$ - Str := '^FO690,115^A045,30^FD':PrintSpecType:'^FS':CRLF$ - - ****** Third Line, Sub Lot, Qty and RDS - Str := '^FO25,175^AC18^FD(2T)Sub Lot:^FS':CRLF$ - Str := '^FO175,165^A045,35^FD':PrintLotNum:'^FS':CRLF$ - Str := '^FO25,195^BY1,3.0^B3,,50,N^FD2T':PrintLotNum:'^FS':CRLF$ - Str := '^FO400,175^AC18^FD(Q)Qty:^FS':CRLF$ - Str := '^FO500,165^A045,35^FD':PrintQty:'^FS':CRLF$ - Str := '^FO400,195^B3,,50,N^FDQ':PrintQty:'^FS':CRLF$ - Str := '^FO590,175^AC18^FD(1T)RDS: ^FS':CRLF$ - Str := '^FO690,165^A045,35^FD':PrintRDSId:'^FS':CRLF$ - Str := '^FO630,195^B3,,50,N^FD1T':PrintRDSId:'^FS':CRLF$ - - ****** Fourth Line, SubPN, Vendor and QA Metrology recipe - Str := '^FO25,275^AC18^FD(S)Sub PN:^FS':CRLF$ - Str := '^FO145,265^A045,35^FD':PrintSubPartNum:'^FS':CRLF$ - Str := '^FO25,295^B3,,50,N^FDS':PrintSubPartNum:'^FS':CRLF$ - Str := '^FO400,275^AC18^FD(1V)Vend:^FS':CRLF$ - Str := '^FO510,265^A045,35^FD':PrintSuppCd:'^FS':CRLF$ - Str := '^FO400,295^B3,,50,N^FD1V':PrintSuppCd:'^FS':CRLF$ - Str := '^FO590,275^AC18^FD':PrintQARecipe:'^FS':CRLF$ - - ****** Fifth Line, Motto and Data Matrix barcode - Str := '^FO25,370^A045,28':CRLF$ - Str := "^FDWe do what we promise. That's quality made by Infineon.^FS":CRLF$ - Str := '^FO725,320^CI28':CRLF$ - Str := '^BXN,2,200^FDP':CustEpiPartSpecNo:'|S':PrintSubPartNum:'|1T':PrintRDSId:'|2T':PrintLotNum:'|':PrintPSN:'|Q':PrintQty:'|1V':PrintSuppCd:'|SEQ':cnt:'^FS':CRLF$ - - ****** End the print job (ZPL script) - Str:= '^XZ' -Next - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end RETURN @@ -783,7 +793,6 @@ PrintWOLabel: END ELSE Str:= '^FO70,30^A0220,210^FD':PrintUniqueWO:'^FS':CRLF$ - END CustName = XLATE( 'COMPANY', CustNo, 'ABBREV_OR_CO_NAME', 'X' ) @@ -801,6 +810,7 @@ PrintWOLabel: end else stat = Direct_Print('PRINT', Str) end + RETURN @@ -826,10 +836,10 @@ PrintCheatSheetLabel: WaferSize = XLATE('EPI_PART', CustPart, EPI_PART_SUB_WAFER_SIZE$, 'X') *Field(SpecSub, @VM, QSSubWafersize$) -convert char(248) to @fm in SpecEpi ;* char(248) is used to separate layers -layerCount = fieldcount( SpecEpi, @fm ) -layerInfo = SpecEpi -//if this is just 1 layer, we're returning that info, if 3 layers, we're returning layer 3 (combo) + convert char(248) to @fm in SpecEpi ;* char(248) is used to separate layers + layerCount = fieldcount( SpecEpi, @fm ) + layerInfo = SpecEpi + //if this is just 1 layer, we're returning that info, if 3 layers, we're returning layer 3 (combo) ThkData = Field(layerInfo, @VM, QSEpiThickMeasure$) ResData = Field(layerInfo, @VM, QSEpiResMeasure$) diff --git a/LSL2/STPROC/PRINT_WMI_LABELS.txt b/LSL2/STPROC/PRINT_WMI_LABELS.txt index 63835a9..f62af44 100644 --- a/LSL2/STPROC/PRINT_WMI_LABELS.txt +++ b/LSL2/STPROC/PRINT_WMI_LABELS.txt @@ -14,10 +14,11 @@ $INSERT ORDER_EQU $INSERT ORDER_DET_EQU $INSERT WM_IN_EQUATES $INSERT CUST_EPI_PART_EQUATES +$insert UNIT_EQUATES DECLARE FUNCTION Msg, Get_Printer, Set_Printer, Utility, obj_Install, Printer_Select, FieldCount, Popup DECLARE FUNCTION MemberOF, Direct_Print, Environment_Services -DECLARE SUBROUTINE Btree.Extract, ErrMsg +DECLARE SUBROUTINE Btree.Extract, ErrMsg, SRP_Set_Clipboard * 5/18/2006 - Cloned from Print_Cass_Labels @@ -35,262 +36,255 @@ EQU PS$RECIPE TO 3 EQU PS$FREQ TO 4 EQU PS$PATTERN TO 11 -IF NOT(ASSIGNED(WONo)) THEN RETURN -IF WONo = '' THEN RETURN +Main: -IF NOT(ASSIGNED(WOStep)) THEN WOStep = 1 + IF NOT(ASSIGNED(WONo)) THEN RETURN + IF WONo = '' THEN RETURN -FileName = "Printing Label" -Title = "Printing Label" + IF NOT(ASSIGNED(WOStep)) THEN WOStep = 1 -PageInfo = '' -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 + FileName = "Printing Label" + Title = "Printing Label" -PageSetup = '1' ;* Landscape -PrintSetup = '' ;* Preview -PrinterID = '' + PageInfo = '' + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 -PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed + PageSetup = '1' ;* Landscape + PrintSetup = '' ;* Preview + PrinterID = '' -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) -end else - stat = Direct_Print('START', PrintPath<1>, '', '') -end + PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed -IF stat < 0 THEN GOTO OIPrint_Error + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) + end else + stat = Direct_Print('START', PrintPath<1>, '', '') + end -CLOrientation = '' ;* used for printing on cleanroom labels + IF stat GE 0 THEN -OPEN 'DICT.WM_IN' TO DictVar ELSE - ErrMsg('Unable to open DICT.WM_IN in PRINT_WMI_LABELS for Btree.Extract.') - RETURN -END + CLOrientation = '' ;* used for printing on cleanroom labels -WMInKeys = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_WM_IN_KEYS$,'X') - -IF WMInKeys = '' THEN RETURN - -TypeOver = '' -TypeOver = WMInKeys -TypeOver = 'WM_IN - Inbound Cassettes' - -WMInKeys = Popup(@WINDOW,TypeOver,'PRINT_WMI_LABELS') -CONVERT '.' TO '*' IN WMInKeys - -IF WMInKeys = '' THEN RETURN - -Void = Utility( 'CURSOR', 'H' ) - -WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X') - -IF INDEX(WOStepKeys,@VM,1) THEN - PrintWONo = WONo:'.':WOStep -END ELSE - PrintWONo = WONo -END - -WORec = XLATE('WO_LOG',WONo,'','X') - -ReqShipDate = OCONV(WORec,'D2/') - -CustNo = WORec -CustName = XLATE('COMPANY',CustNo,'ABBREV_OR_CO_NAME','X') -Captive = XLATE('COMPANY',CustNo,'CAPTIVE','X') -PONo = WORec - -PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X') -PSRec = XLATE('PROD_SPEC',PSNo,'','X') - -CustSpecNo = '' -IF Captive THEN - CustSpecNos = PSRec - CustSpecDescs = PSRec - CustSpecRevNos = PSRec - CustSpecRevDts = PSRec - - SpecCnt = COUNT(CustSpecNos,@VM) + (CustSpecNos NE '') - - FOR I = 1 TO SpecCnt - IF CustSpecDescs<1,I> _EQC 'GENERAL' THEN - CustSpecNo = CustSpecNos<1,I> - CustSpecDesc = CustSpecDescS<1,I> - CustSpecRevNo = CustSpecRevNos<1,I> - CustSpecRevDt = OCONV(CustSpecRevDts<1,I>,'D4/') + OPEN 'DICT.WM_IN' TO DictVar ELSE + ErrMsg('Unable to open DICT.WM_IN in PRINT_WMI_LABELS for Btree.Extract.') + RETURN END - UNTIL CustSpecNo NE '' + + WMInKeys = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_WM_IN_KEYS$,'X') + + IF WMInKeys = '' THEN RETURN + + TypeOver = '' + TypeOver = WMInKeys + TypeOver = 'WM_IN - Inbound Cassettes' + TypeOver = True$ + + WMInKeys = Popup(@WINDOW,TypeOver,'PRINT_WMI_LABELS') + CONVERT '.' TO '*' IN WMInKeys + + IF WMInKeys = '' THEN RETURN + + Void = Utility( 'CURSOR', 'H' ) + + WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X') + + IF INDEX(WOStepKeys,@VM,1) THEN + PrintWONo = WONo:'.':WOStep + END ELSE + PrintWONo = WONo + END + + WORec = XLATE('WO_LOG',WONo,'','X') + + ReqShipDate = OCONV(WORec,'D2/') + + CustNo = WORec + CustName = XLATE('COMPANY',CustNo,'ABBREV_OR_CO_NAME','X') + Captive = XLATE('COMPANY',CustNo,'CAPTIVE','X') + PONo = WORec + + PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X') + PSRec = XLATE('PROD_SPEC',PSNo,'','X') + + CustSpecNo = '' + IF Captive THEN + CustSpecNos = PSRec + CustSpecDescs = PSRec + CustSpecRevNos = PSRec + CustSpecRevDts = PSRec + + SpecCnt = COUNT(CustSpecNos,@VM) + (CustSpecNos NE '') + + FOR I = 1 TO SpecCnt + IF CustSpecDescs<1,I> _EQC 'GENERAL' THEN + CustSpecNo = CustSpecNos<1,I> + CustSpecDesc = CustSpecDescS<1,I> + CustSpecRevNo = CustSpecRevNos<1,I> + CustSpecRevDt = OCONV(CustSpecRevDts<1,I>,'D4/') + END + UNTIL CustSpecNo NE '' + + NEXT I + END + + EpiPartNo = WORec + CustEpiPartRec = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,'','X') + ShipBagReq = CustEpiPartRec + PreSurfscan = PSRec + FirstSurfscan = PSRec + PostCleanSurfScan = PSRec + SubPreClean = XLATE( 'PROD_SPEC', PSNo, 'SUB_PRE_CLEAN', 'X' ) + SubPostClean = XLATE( 'PROD_SPEC', PSNo, 'SUB_POST_CLEAN', 'X' ) + PreCleanTool = SubPreClean ;* Temporary for 2x4 -> 4x4 conversion + PostCleanTool = SubPostClean + PreAkrionRecipe = XLATE( 'PROD_SPEC', PSNo, 'PRE_AKRION_RECIPE', 'X' ) + PostAkrionRecipe = XLATE( 'PROD_SPEC', PSNo, 'POST_AKRION_RECIPE', 'X' ) + RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' ) + RecipeName = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NAME_L1', 'X' ) + SpecType = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ), '[SPEC_TYPE_CONV]' ) + SubOxide = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SUB_OXIDE_STRIP', 'X' ), 'B' ) + ThickTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'THICK_TARGET_ALL', 'X' ), 'MD3' ) + ResTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'RES_TARGET_ALL', 'X' ), 'MD3' ) + ThickUnit = XLATE( 'PROD_SPEC', PSNo, 'THICK_UNITS_ALL', 'X' ) + ResUnit = XLATE( 'PROD_SPEC', PSNo , 'RES_UNITS_ALL', 'X' ) + Dopant = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) + RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO', 'X' ) + RecipeInfo = XLATE( 'RECIPE', RecipeNo, 'RECIPE_NAME_NO', 'X' ) + CleaningReqs = '' + ThickCnt = FIELDCOUNT( ThickTarget<1>, @VM ) + PrintThickTargets = '' + FOR J = 1 TO ThickCnt + PrintThickTargets<1,J> = ThickTarget<1,J>:ThickUnit<1,J> + NEXT J + + ResCnt = FIELDCOUNT( ResTarget<1>, @VM ) + PrintResTargets = '' + FOR J = 1 TO ResCnt + IF ResTarget<1,J>[1,1] = '.' THEN + TargetVal = '0':ResTarget<1,J> + END ELSE + TargetVal = ResTarget<1,J> + END + PrintResTargets<1,J> = TargetVal:ResUnit<1,J> + NEXT J + + APreRec = '' + APostRec = '' + IF ( PreAkrionRecipe<1> <> '' ) THEN + APreRec = ' ':PreAkrionRecipe:' ' + SubOxide = 'No' ;* If Akrion then no oxide strip + END + + IF ( PostAkrionRecipe<1> <> '' ) THEN + APostRec = ' ':PostAkrionRecipe + END + + PrintCleaningReqs = TRIM( 'Strip:':SubOxide:' Pre:':SubPreClean:APreRec:' Post:':SubPostClean:APostRec ) + + swap UNIT_MICROMETER$ with 'um' in PrintThickTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintThickTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintThickTargets + swap UNIT_A$ with 'A' in PrintThickTargets + + swap UNIT_MICROMETER$ with 'um' in PrintResTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintResTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintResTargets + swap UNIT_A$ with 'A' in PrintResTargets + + WMIBoxCnt = COUNT( WMInKeys, @VM ) + (WMInKeys NE '') + + GOSUB PrintCleanRoomLabels + + GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 + + * Check to see if they get the monitor wafers based on the PSN + + MonitorWafer = CustEpiPartRec + + IF MonitorWafer THEN + GOSUB PrintMonitorLabels + END + + * Check to see if they get a surfscan label + + IF (CustNo = '6874') OR (CustNo = '6593') ELSE + IF ( PreSurfscan ) or ( FirstSurfscan ) or ( PostCleanSurfscan ) THEN + *GOSUB PrintSurfscanLabels + END + END + Void = UTILITY( 'CURSOR', 'A' ) + + end - NEXT I -END + GoSub EndPrint + +Return -EpiPartNo = WORec -CustEpiPartRec = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,'','X') - -ShipBagReq = CustEpiPartRec - -PreSurfscan = PSRec -FirstSurfscan = PSRec -PostCleanSurfScan = PSRec - -SubPreClean = XLATE( 'PROD_SPEC', PSNo, 'SUB_PRE_CLEAN', 'X' ) -SubPostClean = XLATE( 'PROD_SPEC', PSNo, 'SUB_POST_CLEAN', 'X' ) - -PreCleanTool = SubPreClean ;* Temporary for 2x4 -> 4x4 conversion -PostCleanTool = SubPostClean - -PreAkrionRecipe = XLATE( 'PROD_SPEC', PSNo, 'PRE_AKRION_RECIPE', 'X' ) -PostAkrionRecipe = XLATE( 'PROD_SPEC', PSNo, 'POST_AKRION_RECIPE', 'X' ) - -RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' ) -RecipeName = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NAME_L1', 'X' ) - -SpecType = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ), '[SPEC_TYPE_CONV]' ) -SubOxide = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SUB_OXIDE_STRIP', 'X' ), 'B' ) -ThickTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'THICK_TARGET_ALL', 'X' ), 'MD3' ) -ResTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'RES_TARGET_ALL', 'X' ), 'MD3' ) - -ThickUnit = XLATE( 'PROD_SPEC', PSNo, 'THICK_UNITS_ALL', 'X' ) -ResUnit = XLATE( 'PROD_SPEC', PSNo , 'RES_UNITS_ALL', 'X' ) - -Dopant = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) -RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO', 'X' ) -RecipeInfo = XLATE( 'RECIPE', RecipeNo, 'RECIPE_NAME_NO', 'X' ) - -CleaningReqs = '' - -ThickCnt = FIELDCOUNT( ThickTarget<1>, @VM ) -PrintThickTargets = '' -FOR J = 1 TO ThickCnt - PrintThickTargets<1,J> = ThickTarget<1,J>:ThickUnit<1,J> -NEXT J - -ResCnt = FIELDCOUNT( ResTarget<1>, @VM ) -PrintResTargets = '' -FOR J = 1 TO ResCnt - IF ResTarget<1,J>[1,1] = '.' THEN - TargetVal = '0':ResTarget<1,J> - END ELSE - TargetVal = ResTarget<1,J> - END - PrintResTargets<1,J> = TargetVal:ResUnit<1,J> -NEXT J - -APreRec = '' -APostRec = '' -IF ( PreAkrionRecipe<1> <> '' ) THEN - APreRec = ' ':PreAkrionRecipe:' ' - SubOxide = 'No' ;* If Akrion then no oxide strip -END - -IF ( PostAkrionRecipe<1> <> '' ) THEN - APostRec = ' ':PostAkrionRecipe -END - -PrintCleaningReqs = TRIM( 'Strip:':SubOxide:' Pre:':SubPreClean:APreRec:' Post:':SubPostClean:APostRec ) - -swap 'æm' with 'um' in PrintThickTargets -swap 'ê-cm' with 'ohm.cm' in PrintThickTargets -swap 'ê/Ü' with 'ohm/sq' in PrintThickTargets -swap '' with 'A' in PrintThickTargets - -swap 'æm' with 'um' in PrintResTargets -swap 'ê-cm' with 'ohm.cm' in PrintResTargets -swap 'ê/Ü' with 'ohm/sq' in PrintResTargets -swap '' with 'A' in PrintResTargets - - -WMIBoxCnt = COUNT( WMInKeys, @VM ) + (WMInKeys NE '') - -GOSUB PrintCleanRoomLabels - -GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 - - -* Check to see if they get the monitor wafers based on the PSN - -MonitorWafer = CustEpiPartRec - -IF MonitorWafer THEN - GOSUB PrintMonitorLabels -END - - -* Check to see if they get a surfscan label - - -IF (CustNo = '6874') OR (CustNo = '6593') ELSE - IF ( PreSurfscan ) or ( FirstSurfscan ) or ( PostCleanSurfscan ) THEN - *GOSUB PrintSurfscanLabels - END -END -Void = UTILITY( 'CURSOR', 'A' ) +* * * * * * * * * * * * L o c a l S u b r o u t i n e s * * * * * * * * * * * * * * * * * * -OIPrint_Error: +EndPrint: * * * * * * -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer("TERM") -end else - stat = Direct_Print('STOP') -end + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer("TERM") + end else + stat = Direct_Print('STOP') + end -RETURN +return -* * * * * * * * * * * *` L o c a l S u b r o u t i n e s * * * * * * * * * * * * - * * * * * * * PrintCleanRoomLabels: * * * * * * * - - -FOR I = 1 TO WMIBoxCnt - - WMInKey = WMInKeys<1,I> - PrintWMInKey = WMInKey - CONVERT '*' TO '.' IN PrintWMInKey + FOR I = 1 TO WMIBoxCnt + + WMInKey = WMInKeys<1,I> + PrintWMInKey = WMInKey + CONVERT '*' TO '.' IN PrintWMInKey + + CassNo = FIELD(WMInKey,'*',3) + + WOMatKey = WONo:'*':CassNo + WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') + + LotNo = WOMatRec + WfrQty = WOMatRec + CustPartNo = WOMatRec + SubPartNo = WOMatRec + OrderItem = WOMatRec + Vendor = WOMatRec + + OrderDetKey = WORec:'*':OrderItem + + LOCATE CustPartNo IN CustEpiPartRec USING @VM SETTING Pos THEN + CustPartDesc = CustEpiPartRec + END ELSE + CustPartDesc = '' + END + + PartNo = CustPartNo ;* Temporary for 4x2 to 4x4 conversion + PartDesc = CustPartDesc ;* Temporary for 4x2 to 4x4 conversion + + SuppCd = TRIM(SubPartNo[-1,'B-']) + IF LEN(SuppCd) NE '2' THEN SuppCd ='' + + If CassNo EQ 1 then + GOSUB PrintCheatSheetLabel + end + + GOSUB PrintLabel + + + NEXT I - CassNo = FIELD(WMInKey,'*',3) - - WOMatKey = WONo:'*':CassNo - WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') - - LotNo = WOMatRec - WfrQty = WOMatRec - CustPartNo = WOMatRec - SubPartNo = WOMatRec - OrderItem = WOMatRec - - OrderDetKey = WORec:'*':OrderItem - - LOCATE CustPartNo IN CustEpiPartRec USING @VM SETTING Pos THEN - CustPartDesc = CustEpiPartRec - END ELSE - CustPartDesc = '' - END - - PartNo = CustPartNo ;* Temporary for 4x2 to 4x4 conversion - PartDesc = CustPartDesc ;* Temporary for 4x2 to 4x4 conversion - - SuppCd = TRIM(SubPartNo[-1,'B-']) - IF LEN(SuppCd) NE '2' THEN SuppCd ='' - - If CassNo EQ 1 then - GOSUB PrintCheatSheetLabel - end - - GOSUB PrintLabel - - -NEXT I - RETURN @@ -298,133 +292,141 @@ RETURN PrintLabel: * * * * * * * - -Str = '^XA' -Str := '^LH0,0' -Str := '^PR2' ;* Print speed 2 inches per second -Str := '^LL406' ;* Label length @203 dpi -Str := '^PW900' -Str := '^MD15' ;* Media darkness -Str := '^MMT' ;* Media mode t=tear off mode -Str := '^PQ2' ;* Print 2 labels for each pass through here - -Str := '^FO15,15^GB795,398,3,B^FS' ;* Border - -*Str:= '^FO670,25^A0,36^FDWM Out^FS' -Str:= '^FO680,25^A0,36^FDWM In^FS' - -****** First Line -Company = 'IFX Epi Services' -Str := '^FO30,25^A0,,36^FD':Company:'^FS' -Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ -Str := '^FO370,25^A045,36^FD':PrintWONo:'^FS':CRLF$ - -IF CassNo = 1 THEN - Str := '^FO535,20^GB120,40,40,,3^FS':CRLF$ - Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ - Str := '^FO600,25^A045,36^FR^FD':CassNo:'^FS':CRLF$ -END ELSE - Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ - Str := '^FO600,25^A045,36^FD':CassNo:'^FS':CRLF$ -END - -****** Second Line -Str:= '^FO30,70^AC,18^FDWM In:^FS':CRLF$ -Str:= '^FO120,70^A050,30^FD':PrintWMInKey:'^FS':CRLF$ -Str := '^BY2,2.0':CRLF$ -Str := '^FO300,60^B3,,37,N^FD':'I':PrintWMInKey:'^FS':CRLF$ -Str := '^BY2,3.0':CRLF$ -Str:= '^FO700,70^AC,18^FDQty:^FS':CRLF$ -Str:= '^FO760,70^A045,25^FD':WfrQty:'^FS':CRLF$ - -****** Third Line -Str:= '^FO30,105^AC,18^FDShip Dt:^FS' -Str:= '^FO140,105^A0,,25^FD':ReqShipDate:'^FS':CRLF$ -Str:= '^FO250,105^AC,18^FDCust:^FS':CRLF$ -Str:= '^FO320,105^A045,25^FD':CustName:'^FS':CRLF$ -Str:= '^FO560,105^AC,18^FDPO:^FS':CRLF$ -Str:= '^FO600,105^A045,25^FD':PONo:'^FS':CRLF$ - -****** Separator bar -Str:= '^FO15,128^GB795,1^FS' - -****** Fourth Line -Str := '^FO30,135^AC,18^FDLot No:^FS':CRLF$ -Str := '^FO120,135^A0,20^FD':LotNo:'^FS':CRLF$ -Str := '^FO410,135^AC,18^FDPart No:^FS':CRLF$ -Str := '^FO510,135^A0,20^FD':PartNo:'^FS':CRLF$ - -****** Fifth Line -Str := '^FO30,160^AC,18^FDSub PN:^FS':CRLF$ -Str := '^FO120,160^A0,20^FD':SubPartNo:'^FS':CRLF$ - -IF SuppCd NE '' THEN - Str := '^FO410,160^AC,18^FDSupp Cd:^FS':CRLF$ - Str := '^FO510,160^A0,20^FD':SuppCd:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO610,160^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ -END - -****** Separator bar -Str := '^FO15,183^GB795,1^FS' - -****** Seventh Line -Str := '^FO30,210^AC,18^FDPre:^FS':CRLF$ -Str := '^FO90,210^A0,20^FD':SubPreClean:'^FS':CRLF$ - -IF PreAkrionRecipe NE '' THEN - Str := '^FO210,210^AC,18^FDAkrion:^FS':CRLF$ - Str := '^FO300,210^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO450,210^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ -END - -****** Eighth Line -Str := '^FO30,235^AC,18^FDRecipe:^FS':CRLF$ -Str := '^FO120,235^A0,20^FD':RecipeInfo:'^FS':CRLF$ -Str := '^FO410,235^AC,18^FDEpi Dopant:^FS':CRLF$ -Str := '^FO560,235^A040,20^FD':Dopant:'^FS':CRLF$ - -****** Tenth, Eleventh and Twelfth Lines -Str := '^FO30,285^AC,18^FDThk Spec:^FS':CRLF$ - -FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') - BaseLine = 285 + (M-1)*20 - Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ -NEXT M - -Str := '^FO410,285^AC,18^FDRes Spec:^FS':CRLF$ - -FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') - BaseLine = 285 + (M-1)*20 - Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ -NEXT M - -****** Separator bar -Str := '^FO15,373^GB795,1^FS' - -****** Fourteenth Line -Str := '^FO30,385^AC,18^FDProd Spec No:^FS':CRLF$ -Str := '^FO190,385^A0,25^FD':PSNo:'^FS':CRLF$ - -IF SpecType = 'Production' THEN - SpecType = 'Prod' -end else IF SpecType = 'Pre-Production' THEN - SpecType = 'Pre' -end - -Str := '^FO275,385^AC,18^FDSpec Type:^FS':CRLF$ -Str := '^FO400,385^A0,25^FD':SpecType:'^FS':CRLF$ - -Str:= '^XZ' - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end + Str = '' + For cnt = 1 to 2 + + Str := '^XA' + Str := '^LH0,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL406' ;* Label length @203 dpi + Str := '^PW900' + Str := '^MD8' ;* Media darkness + Str := '^MMT' ;* Media mode t=tear off mode + + Str := '^FO15,15^GB795,398,3,B^FS' ;* Border + + *Str:= '^FO670,25^A0,36^FDWM Out^FS' + Str:= '^FO680,25^A0,36^FDWM In^FS' + + ****** First Line + Company = 'IFX Epi Services' + Str := '^FO30,25^A0,,36^FD':Company:'^FS' + Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ + Str := '^FO370,25^A045,36^FD':PrintWONo:'^FS':CRLF$ + + IF CassNo = 1 THEN + Str := '^FO535,20^GB120,40,40,,3^FS':CRLF$ + Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ + Str := '^FO600,25^A045,36^FR^FD':CassNo:'^FS':CRLF$ + END ELSE + Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ + Str := '^FO600,25^A045,36^FD':CassNo:'^FS':CRLF$ + END + + ****** Second Line + Str:= '^FO30,70^AC,18^FDWM In:^FS':CRLF$ + Str:= '^FO120,70^A050,30^FD':PrintWMInKey:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO300,60^B3,,37,N^FD':'I':PrintWMInKey:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + Str:= '^FO700,70^AC,18^FDQty:^FS':CRLF$ + Str:= '^FO760,70^A045,25^FD':WfrQty:'^FS':CRLF$ + + ****** Third Line + Str:= '^FO30,105^AC,18^FDShip Dt:^FS' + Str:= '^FO140,105^A0,,25^FD':ReqShipDate:'^FS':CRLF$ + Str:= '^FO250,105^AC,18^FDCust:^FS':CRLF$ + Str:= '^FO320,105^A045,25^FD':CustName:'^FS':CRLF$ + Str:= '^FO560,105^AC,18^FDPO:^FS':CRLF$ + Str:= '^FO600,105^A045,25^FD':PONo:'^FS':CRLF$ + + ****** Separator bar + Str:= '^FO15,128^GB795,1^FS' + + ****** Fourth Line + Str := '^FO30,135^AC,18^FDLot No:^FS':CRLF$ + Str := '^FO120,135^A0,20^FD':LotNo:'^FS':CRLF$ + Str := '^FO410,135^AC,18^FDPart No:^FS':CRLF$ + Str := '^FO510,135^A0,20^FD':PartNo:'^FS':CRLF$ + + ****** Fifth Line + Str := '^FO30,160^AC,18^FDSub PN:^FS':CRLF$ + Str := '^FO120,160^A0,20^FD':SubPartNo:'^FS':CRLF$ + + IF SuppCd NE '' THEN + Str := '^FO410,160^AC,18^FDSupp Cd:^FS':CRLF$ + Str := '^FO510,160^A0,20^FD':SuppCd:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO610,160^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** Separator bar + Str := '^FO15,183^GB795,1^FS' + + ****** Seventh Line + Str := '^FO30,210^AC,18^FDPre:^FS':CRLF$ + Str := '^FO90,210^A0,20^FD':SubPreClean:'^FS':CRLF$ + + IF PreAkrionRecipe NE '' THEN + Str := '^FO210,210^AC,18^FDAkrion:^FS':CRLF$ + Str := '^FO300,210^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO450,210^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** Eighth Line + Str := '^FO30,235^AC,18^FDRecipe:^FS':CRLF$ + Str := '^FO120,235^A0,20^FD':RecipeInfo:'^FS':CRLF$ + Str := '^FO410,235^AC,18^FDEpi Dopant:^FS':CRLF$ + Str := '^FO560,235^A040,20^FD':Dopant:'^FS':CRLF$ + + ****** Tenth, Eleventh and Twelfth Lines + Str := '^FO30,285^AC,18^FDThk Spec:^FS':CRLF$ + + FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') + BaseLine = 285 + (M-1)*20 + Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ + NEXT M + + Str := '^FO410,285^AC,18^FDRes Spec:^FS':CRLF$ + + FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') + BaseLine = 285 + (M-1)*20 + Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ + NEXT M + + ****** Separator bar + Str := '^FO15,373^GB795,1^FS' + + + ****** Fourteenth Line + Str := '^FO30,385^AC,18^FDProd Spec No:^FS':CRLF$ + Str := '^FO190,385^A0,25^FD':PSNo:'^FS':CRLF$ + + IF SpecType = 'Production' THEN + SpecType = 'Prod' + end else IF SpecType = 'Pre-Production' THEN + SpecType = 'Pre' + end + + Str := '^FO275,385^AC,18^FDSpec Type:^FS':CRLF$ + Str := '^FO400,385^A0,25^FD':SpecType:'^FS':CRLF$ + + ****** Data Matrix barcode + Str := '^FO720,280^CI28':CRLF$ + Str := '^BXN,2,200^FDP':PartNo:'|S':SubPartNo:'|1T':PrintWMInKey:'|2T':LotNo:'|':PSNo:'|Q':WfrQty:'|1V':Vendor:'|SEQ':Cnt:'^FS':CRLF$ + + Str:= '^XZ' + + Next + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end RETURN @@ -432,10 +434,10 @@ RETURN * * * * * PrintCheatSheetLabel: * * * * * - + //DPC 9/1/2020 - label printed with WO labels (first cassette) gives //operators ability to see specs on label that doesn't leave FAB -* PsnRec = XLATE('PROD_SPEC', PSNIDs, '', 'X') + * PsnRec = XLATE('PROD_SPEC', PSNIDs, '', 'X') SpecEpi = PSRec SpecSub = PSRec @@ -448,61 +450,61 @@ PrintCheatSheetLabel: SSRecipe = XLATE('PRS_STAGE', PSNo:'*LWI', 5, 'X') PCRecipe = XLATE('PRS_STAGE', PSNo, 'POST_CLEAN_SURFSCAN_RECIPE', 'X') WaferSize = Field(SpecSub, @VM, QSSubWafersize$) - -convert char(248) to @fm in SpecEpi ;* char(248) is used to separate layers -layerCount = fieldcount( SpecEpi, @fm ) -layerInfo = SpecEpi -//if this is just 1 layer, we're returning that info, if 3 layers, we're returning layer 3 (combo) - - ThkData = Field(layerInfo, @VM, QSEpiThickMeasure$) + + convert char(248) to @fm in SpecEpi ;* char(248) is used to separate layers + layerCount = fieldcount( SpecEpi, @fm ) + layerInfo = SpecEpi + //if this is just 1 layer, we're returning that info, if 3 layers, we're returning layer 3 (combo) + + ThkData = Field(layerInfo, @VM, QSEpiThickMeasure$) ResData = Field(layerInfo, @VM, QSEpiResMeasure$) ConData = Field(layerInfo, @VM, QSEpiConcMeasure$) CResData = Field(layerInfo, @VM, QSEpiCresMeasure$) - ThkMin = OCONV(Field(layerInfo, @VM, QSEpiMinThick$), 'MD3') - ThkMax = OCONV(Field(layerInfo, @VM, QSEpiMaxThick$), 'MD3') - ThkTarg = '' - If ThkMin NE '' Then ThkTarg = oConv(iconv((ThkMin+ThkMax)/2, 'MD3'), 'MD3') - - ResMin = OCONV(Field(layerInfo, @VM, QSEpiResMinThick$), 'MD3') - ResMax = OCONV(Field(layerInfo, @VM, QSEpiResMaxThick$), 'MD3') - ResTarg = '' - If ResMin NE '' Then ResTarg = oConv(iconv((ResMin+ResMax)/2, 'MD3'), 'MD3') - - ConMin = OCONV(Field(layerInfo, @VM, QSEpiConcMinThick$), 'MD3') - ConMax = OCONV(Field(layerInfo, @VM, QSEpiConcMaxThick$), 'MD3') - ConTarg = '' - If ConMin NE '' Then ConTarg = oConv(iconv((ConMin+ConMax)/2, 'MD3'), 'MD3') - - CResMin = OCONV(Field(layerInfo, @VM, QSEpiCresMin$), 'MD3') - CResMax = OCONV(Field(layerInfo, @VM, QSEpiCresMax$), 'MD3') - CResTarg = '' - If CResMin NE '' Then CResTarg = oConv(iconv((CResMin+CResMax)/2, 'MD3'), 'MD3') - + ThkMin = OCONV(Field(layerInfo, @VM, QSEpiMinThick$), 'MD3') + ThkMax = OCONV(Field(layerInfo, @VM, QSEpiMaxThick$), 'MD3') + ThkTarg = '' + If ThkMin NE '' Then ThkTarg = oConv(iconv((ThkMin+ThkMax)/2, 'MD3'), 'MD3') + + ResMin = OCONV(Field(layerInfo, @VM, QSEpiResMinThick$), 'MD3') + ResMax = OCONV(Field(layerInfo, @VM, QSEpiResMaxThick$), 'MD3') + ResTarg = '' + If ResMin NE '' Then ResTarg = oConv(iconv((ResMin+ResMax)/2, 'MD3'), 'MD3') + + ConMin = OCONV(Field(layerInfo, @VM, QSEpiConcMinThick$), 'MD3') + ConMax = OCONV(Field(layerInfo, @VM, QSEpiConcMaxThick$), 'MD3') + ConTarg = '' + If ConMin NE '' Then ConTarg = oConv(iconv((ConMin+ConMax)/2, 'MD3'), 'MD3') + + CResMin = OCONV(Field(layerInfo, @VM, QSEpiCresMin$), 'MD3') + CResMax = OCONV(Field(layerInfo, @VM, QSEpiCresMax$), 'MD3') + CResTarg = '' + If CResMin NE '' Then CResTarg = oConv(iconv((CResMin+CResMax)/2, 'MD3'), 'MD3') + ThkTool = Field(ThkData, '~', PS$TOOL) ThkType = Field(ThkData, '~', PS$TYPE) ThkRecipe = Field(ThkData, '~', PS$RECIPE) ThkFreq = Field(ThkData, '~', PS$FREQ) ThkPattern = Field(ThkData, '~', PS$PATTERN) - - ResTool = Field(ResData, '~', PS$TOOL) + + ResTool = Field(ResData, '~', PS$TOOL) ResType = Field(ResData, '~', PS$TYPE) ResRecipe = Field(ResData, '~', PS$RECIPE) ResFreq = Field(ResData, '~', PS$FREQ) ResPattern = Field(ResData, '~', PS$PATTERN) - ConTool = Field(ConData, '~', PS$TOOL) + ConTool = Field(ConData, '~', PS$TOOL) ConType = Field(ConData, '~', PS$TYPE) ConRecipe = Field(ConData, '~', PS$RECIPE) ConFreq = Field(ConData, '~', PS$FREQ) ConPattern = Field(ConData, '~', PS$PATTERN) - - CResTool = Field(CResData, '~', PS$TOOL) + + CResTool = Field(CResData, '~', PS$TOOL) CResType = Field(CResData, '~', PS$TYPE) CResRecipe = Field(CResData, '~', PS$RECIPE) CResFreq = Field(CResData, '~', PS$FREQ) CResPattern = Field(CResData, '~', PS$PATTERN) - + IF ThkMin EQ '' THEN ThkMin = '--' IF ThkMax EQ '' THEN ThkMax = '--' IF ThkTarg EQ '' THEN ThkTarg = '--' @@ -511,7 +513,7 @@ layerInfo = SpecEpi IF ThkRecipe EQ '' THEN ThkRecipe = '--' IF ThkPattern EQ '' THEN ThkPattern = '--' IF ThkFreq EQ '' THEN ThkFreq = '--' - + IF ResMin EQ '' THEN ResMin = '--' IF ResMax EQ '' THEN ResMax = '--' IF ResTarg EQ '' THEN ResTarg = '--' @@ -520,7 +522,7 @@ layerInfo = SpecEpi IF ResRecipe EQ '' THEN ResRecipe = '--' IF ResPattern EQ '' THEN ResPattern = '--' IF ResFreq EQ '' THEN ResFreq = '--' - + IF ConMin EQ '' THEN ConMin = '--' IF ConMax EQ '' THEN ConMax = '--' IF ConTarg EQ '' THEN ConTarg = '--' @@ -529,7 +531,7 @@ layerInfo = SpecEpi IF ConRecipe EQ '' THEN ConRecipe = '--' IF ConPattern EQ '' THEN ConPattern = '--' IF ConFreq EQ '' THEN ConFreq = '--' - + IF CResMin EQ '' THEN CResMin = '--' IF CResMax EQ '' THEN CResMax = '--' IF CResTarg EQ '' THEN CResTarg = '--' @@ -538,11 +540,11 @@ layerInfo = SpecEpi IF CResRecipe EQ '' THEN CResRecipe = '--' IF CResPattern EQ '' THEN CResPattern = '--' IF CResFreq EQ '' THEN CResFreq = '--' - - Swap @VM with ' / ' in SSRecipe - IF PCRecipe EQ '' Then PCRecipe = '--' - - If ThkSmile EQ '' OR ThkSmile EQ '0' then + + Swap @VM with ' / ' in SSRecipe + IF PCRecipe EQ '' Then PCRecipe = '--' + + If ThkSmile EQ '' OR ThkSmile EQ '0' then ThkSmile = 'N' end else ThkSmile = 'Y' @@ -559,7 +561,7 @@ layerInfo = SpecEpi end else ResShift = 'Y' end - + if Len(ThkMin) > 6 then ThkMin = ThkMin[1,6] end @@ -601,22 +603,22 @@ layerInfo = SpecEpi CResTarg = CResTarg[1,6] end - ****** Begin ZPL - Str = '^XA' - Str := '^LH10,0' - Str := '^PR2' ;* Print speed 2 inches per second - Str := '^LL406' ;* Label length @203 dpi - Str := '^PW900' - Str := '^MD0' ;* Media darkness - Str := '^MMT' ;* Media mode t=tear off mode - - ****** 1st/2nd Line - Str := '^FO30,20^A0,,40^FDWO ':WONo:'^FS' + ****** Begin ZPL + Str = '^XA' + Str := '^LH10,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL406' ;* Label length @203 dpi + Str := '^PW900' + Str := '^MD0' ;* Media darkness + Str := '^MMT' ;* Media mode t=tear off mode + + ****** 1st/2nd Line + Str := '^FO30,20^A0,,40^FDWO ':WONo:'^FS' Str := '^FO590,10^A050,30^FDPSN ':PSNo:'^FS' Str := '^FO555,40^A050,30^FDDopant ':Dopant:'^FS' - - ****** 3rd Line - headers - Str := '^FO85,100^A050,23^FDMin^FS' + + ****** 3rd Line - headers + Str := '^FO85,100^A050,23^FDMin^FS' Str := '^FO145,100^A050,23^FDTarg^FS' Str := '^FO210,100^A050,23^FDMax^FS' Str := '^FO280,100^A050,23^FDTool^FS' @@ -624,68 +626,68 @@ layerInfo = SpecEpi Str := '^FO470,100^A050,23^FDRecipe^FS' Str := '^FO600,100^A050,23^FDPattern^FS' Str := '^FO740,100^A050,23^FDFreq^FS' - + ****** 4th Line - Thickness (Thk) - Str := '^FO70,130^GB720,0,3^FS' + Str := '^FO70,130^GB720,0,3^FS' Str := '^FO70,130^GB0,160,3^FS' - Str := '^FO10,140^A050,23^FDThk:^FS' - Str := '^FO80,140^A050,23^FD':ThkMin:'^FS' - Str := '^FO145,140^A050,23^FD':ThkTarg:'^FS' - Str := '^FO210,140^A050,23^FD':ThkMax:'^FS' - Str := '^FO280,140^A050,23^FD':ThkTool[1,5]:'^FS' - Str := '^FO330,140^A050,23^FD':ThkType[1,11]:'^FS' - Str := '^FO470,140^A050,23^FD':ThkRecipe[1,11]:'^FS' - Str := '^FO600,140^A050,23^FD':ThkPattern[1,11]:'^FS' - Str := '^FO750,140^A050,23^FD':ThkFreq:'^FS' - + Str := '^FO10,140^A050,23^FDThk:^FS' + Str := '^FO80,140^A050,23^FD':ThkMin:'^FS' + Str := '^FO145,140^A050,23^FD':ThkTarg:'^FS' + Str := '^FO210,140^A050,23^FD':ThkMax:'^FS' + Str := '^FO280,140^A050,23^FD':ThkTool[1,5]:'^FS' + Str := '^FO330,140^A050,23^FD':ThkType[1,11]:'^FS' + Str := '^FO470,140^A050,23^FD':ThkRecipe[1,11]:'^FS' + Str := '^FO600,140^A050,23^FD':ThkPattern[1,11]:'^FS' + Str := '^FO750,140^A050,23^FD':ThkFreq:'^FS' + ****** 5th Line - Resistivity (Res) - Str := '^FO10,170^GB780,0,3^FS' - Str := '^FO10,180^A050,23^FDRes:^FS' - Str := '^FO80,180^A050,23^FD':ResMin:'^FS' - Str := '^FO145,180^A050,23^FD':ResTarg:'^FS' - Str := '^FO210,180^A050,23^FD':ResMax:'^FS' - Str := '^FO280,180^A050,23^FD':ResTool[1,5]:'^FS' - Str := '^FO330,180^A050,23^FD':ResType[1,11]:'^FS' - Str := '^FO470,180^A050,23^FD':ResRecipe[1,11]:'^FS' - Str := '^FO600,180^A050,23^FD':ResPattern[1,11]:'^FS' - Str := '^FO750,180^A050,23^FD':ResFreq:'^FS' - - ****** 6th Line - Contact (Con) - Str := '^FX***LINE 4' - Str := '^FO10,210^GB780,0,3^FS' - Str := '^FO10,220^A050,23^FDCon:^FS' - Str := '^FO80,220^A050,23^FD':ConMin:'^FS' - Str := '^FO145,220^A050,23^FD':ConTarg:'^FS' - Str := '^FO210,220^A050,23^FD':ConMax:'^FS' - Str := '^FO280,220^A050,23^FD':ConTool[1,5]:'^FS' - Str := '^FO330,220^A050,23^FD':ConType[1,11]:'^FS' - Str := '^FO470,220^A050,23^FD':ConRecipe[1,11]:'^FS' - Str := '^FO600,220^A050,23^FD':ConPattern[1,11]:'^FS' - Str := '^FO750,220^A050,23^FD':ConFreq:'^FS' - - ****** 7th Line - Contact Resistance (CRes) - Str := '^FO10,250^GB780,0,3^FS' - Str := '^FO10,260^A050,23^FDCRes:^FS' - Str := '^FO80,260^A050,23^FD':CResMin:'^FS' - Str := '^FO145,260^A050,23^FD':CResTarg:'^FS' - Str := '^FO210,260^A050,23^FD':CResMax:'^FS' - Str := '^FO280,260^A050,23^FD':CResTool[1,5]:'^FS' - Str := '^FO330,260^A050,23^FD':CResType[1,11]:'^FS' - Str := '^FO470,260^A050,23^FD':CResRecipe[1,11]:'^FS' - Str := '^FO600,260^A050,23^FD':CResPattern[1,11]:'^FS' - Str := '^FO750,260^A050,23^FD':CResFreq:'^FS' - - Str := '^FO10,290^GB780,0,3^FS' - - ****** 8th Line - Special Instructions + Str := '^FO10,170^GB780,0,3^FS' + Str := '^FO10,180^A050,23^FDRes:^FS' + Str := '^FO80,180^A050,23^FD':ResMin:'^FS' + Str := '^FO145,180^A050,23^FD':ResTarg:'^FS' + Str := '^FO210,180^A050,23^FD':ResMax:'^FS' + Str := '^FO280,180^A050,23^FD':ResTool[1,5]:'^FS' + Str := '^FO330,180^A050,23^FD':ResType[1,11]:'^FS' + Str := '^FO470,180^A050,23^FD':ResRecipe[1,11]:'^FS' + Str := '^FO600,180^A050,23^FD':ResPattern[1,11]:'^FS' + Str := '^FO750,180^A050,23^FD':ResFreq:'^FS' + + ****** 6th Line - Contact (Con) + Str := '^FX***LINE 4' + Str := '^FO10,210^GB780,0,3^FS' + Str := '^FO10,220^A050,23^FDCon:^FS' + Str := '^FO80,220^A050,23^FD':ConMin:'^FS' + Str := '^FO145,220^A050,23^FD':ConTarg:'^FS' + Str := '^FO210,220^A050,23^FD':ConMax:'^FS' + Str := '^FO280,220^A050,23^FD':ConTool[1,5]:'^FS' + Str := '^FO330,220^A050,23^FD':ConType[1,11]:'^FS' + Str := '^FO470,220^A050,23^FD':ConRecipe[1,11]:'^FS' + Str := '^FO600,220^A050,23^FD':ConPattern[1,11]:'^FS' + Str := '^FO750,220^A050,23^FD':ConFreq:'^FS' + + ****** 7th Line - Contact Resistance (CRes) + Str := '^FO10,250^GB780,0,3^FS' + Str := '^FO10,260^A050,23^FDCRes:^FS' + Str := '^FO80,260^A050,23^FD':CResMin:'^FS' + Str := '^FO145,260^A050,23^FD':CResTarg:'^FS' + Str := '^FO210,260^A050,23^FD':CResMax:'^FS' + Str := '^FO280,260^A050,23^FD':CResTool[1,5]:'^FS' + Str := '^FO330,260^A050,23^FD':CResType[1,11]:'^FS' + Str := '^FO470,260^A050,23^FD':CResRecipe[1,11]:'^FS' + Str := '^FO600,260^A050,23^FD':CResPattern[1,11]:'^FS' + Str := '^FO750,260^A050,23^FD':CResFreq:'^FS' + + Str := '^FO10,290^GB780,0,3^FS' + + ****** 8th Line - Special Instructions Str := '^FO10,310^A050,23^FDSurfScan: ':SSRecipe:'^FS' Str := '^FO10,340^A050,23^FDPostClean: ':PCRecipe:'^FS' Str := '^FO10,370^A050,23^FDWafer Size: ':WaferSize:'^FS' Str := '^FO500,310^A050,23^FDSmile Required: ':ThkSmile:'^FS' Str := '^FO500,340^A050,23^FDSPC Thk Shift: ':ThkShift:'^FS' Str := '^FO500,370^A050,23^FDSPC Res Shift: ':ResShift:'^FS' - - Str:= '^XZ' + + Str:= '^XZ' ****** End ZPL If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then @@ -693,7 +695,7 @@ layerInfo = SpecEpi end else stat = Direct_Print('PRINT', Str) end - + return @@ -701,329 +703,320 @@ return * * * * * * * PrintBigLabel: * * * * * * * - -Str = '^XA' ;* Start of label format -Str := '^LH22,70' ;* Label home offset (needed to get onto the label medium) -Str := '^BY3' ;* Set narrow Bar Code line width to 3 dots -Str := '^PR2' ;* Print speed = 2 IPS -Str := '^PQ2' - - -Str := '^FO15,15^GB795,786,3,B^FS' ;* Border -Str := '^FO680,25^A0,36^FDWM In^FS' - -****** First Line - -Str := '^FO30,25^A0,,36^FD':obj_Install('Get_Prop','Company'):'^FS' - - -Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ ;* Label -Str := '^FO370,25^A045,36^FD':PrintWONo:'^FS':CRLF$ ;* Data - -IF CassNo = 1 THEN - Str := '^FO535,20^GB120,40,40,,3^FS':CRLF$ - Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ ;* Label - Str := '^FO600,25^A045,36^FR^FD':CassNo:'^FS':CRLF$ ;* Data -END ELSE - Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ ;* Label - Str := '^FO600,25^A045,36^FD':CassNo:'^FS':CRLF$ ;* Data -END - - -****** Second Line - -Str:= '^FO30,70^AC,18^FDWM In:^FS':CRLF$ -Str:= '^FO120,70^A050,30^FD':PrintWMInKey:'^FS':CRLF$ - -Str := '^BY2,2.0':CRLF$ -Str := '^FO300,70^B3,,23,N^FD':'I':PrintWMInKey:'^FS':CRLF$ -Str := '^BY2,3.0':CRLF$ - -Str:= '^FO700,70^AC,18^FDQty:^FS':CRLF$ ;* Label -Str:= '^FO760,70^A045,25^FD':WfrQty:'^FS':CRLF$ ;* Data - -****** Third Line - -Str:= '^FO30,105^AC,18^FDShip Dt:^FS' ;* Label -Str:= '^FO140,105^A0,,25^FD':ReqShipDate:'^FS':CRLF$ ;* Data - -Str:= '^FO250,105^AC,18^FDCust:^FS':CRLF$ ;* Label -Str:= '^FO320,105^A045,25^FD':CustName:'^FS':CRLF$ ;* Data - -Str:= '^FO560,105^AC,18^FDPO:^FS':CRLF$ -Str:= '^FO600,105^A045,25^FD':PONo:'^FS':CRLF$ - - -****** Separator bar - -Str:= '^FO15,128^GB795,1^FS' - - -****** Fourth Line - -LineY = 135 - -Str := '^FO30,':LineY:'^AC,18^FDLot No:^FS':CRLF$ -Str := '^FO120,':LineY:'^A0,20^FD':LotNo:'^FS':CRLF$ - -****** Fifth Line - -LineY += 25 - -Str := '^FO30,':LineY:'^AC,18^FDSub PN:^FS':CRLF$ -Str := '^FO120,':LineY:'^A0,20^FD':SubPartNo:'^FS':CRLF$ - -IF SuppCd NE '' THEN - - Str := '^FO410,':LineY:'^AC,18^FDSupp Cd:^FS':CRLF$ ;* Label ;* Added 8/17/2005 JCH - J.C.Henry & Co. - Str := '^FO510,':LineY:'^A0,20^FD':SuppCd:'^FS':CRLF$ ;* Data + + Str = '^XA' ;* Start of label format + Str := '^LH22,70' ;* Label home offset (needed to get onto the label medium) + Str := '^BY3' ;* Set narrow Bar Code line width to 3 dots + Str := '^PR2' ;* Print speed = 2 IPS + Str := '^PQ2' + + + Str := '^FO15,15^GB795,786,3,B^FS' ;* Border + Str := '^FO680,25^A0,36^FDWM In^FS' + + ****** First Line + + Str := '^FO30,25^A0,,36^FD':obj_Install('Get_Prop','Company'):'^FS' + + + Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ ;* Label + Str := '^FO370,25^A045,36^FD':PrintWONo:'^FS':CRLF$ ;* Data + + IF CassNo = 1 THEN + Str := '^FO535,20^GB120,40,40,,3^FS':CRLF$ + Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ ;* Label + Str := '^FO600,25^A045,36^FR^FD':CassNo:'^FS':CRLF$ ;* Data + END ELSE + Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ ;* Label + Str := '^FO600,25^A045,36^FD':CassNo:'^FS':CRLF$ ;* Data + END + + + ****** Second Line + + Str:= '^FO30,70^AC,18^FDWM In:^FS':CRLF$ + Str:= '^FO120,70^A050,30^FD':PrintWMInKey:'^FS':CRLF$ Str := '^BY2,2.0':CRLF$ - Str := '^FO610,':LineY:'^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ + Str := '^FO300,70^B3,,23,N^FD':'I':PrintWMInKey:'^FS':CRLF$ Str := '^BY2,3.0':CRLF$ -END - -****** New Part Number line - -LineY += 25 - -Str := '^FO30,':LineY:'^AC,18^FDCust Part No:^FS':CRLF$ -Str := '^FO200,':LineY:'^A0,20^FD':CustPartNo:' ':CustPartDesc:'^FS':CRLF$ - - -****** Customer Spec Line - -LineY += 25 - -IF CustSpecNo NE '' THEN - - Str := '^FO30,':LineY:'^AC,18^FDCust Spec No:^FS':CRLF$ - Str := '^FO200,':LineY:'^A0,20^FD':CustSpecNo:' ':CustSpecDesc:'^FS':CRLF$ - - Str := '^FO475,':LineY:'^AC,18^FDRev:^FS':CRLF$ - Str := '^FO525,':LineY:'^A0,20^FD':CustSpecRevNo:'^FS':CRLF$ - - Str := '^FO615,':LineY:'^AC,18^FDRev Dt:^FS':CRLF$ - Str := '^FO700,':LineY:'^A0,20^FD':CustSpecRevDt:'^FS':CRLF$ - -END - - -****** Separator bar - -LineY += 23 - -Str := '^FO15,':LineY:'^GB795,1^FS' - - -****** Sixth Line - -LineY += 7 - - -****** Seventh Line - -LineY += 25 - -Str := '^FO30,':LineY:'^AC,18^FDPre:^FS':CRLF$ -Str := '^FO90,':LineY:'^A0,20^FD':PreCleanTool:'^FS':CRLF$ - -LineY += 25 - -IF PreAkrionRecipe NE '' THEN - Str := '^FO30,':LineY:'^AC,18^FDAkrion:^FS':CRLF$ - Str := '^FO120,':LineY:'^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ - - Str := '^BY2,2.0':CRLF$ - Str := '^FO400,':LineY:'^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ -END - -****** Eighth Line - -LineY += 35 - -Str := '^FO30,':LineY:'^AC,18^FDRecipe:^FS':CRLF$ -Str := '^FO120,':LineY:'^A0,20^FD':RecipeInfo:'^FS':CRLF$ - -Str := '^FO410,':LineY:'^AC,18^FDEpi Dopant:^FS':CRLF$ -Str := '^FO560,':LineY:'^A040,20^FD':Dopant:'^FS':CRLF$ - - -****** Ninth Line - -LineY += 25 - -****** Tenth, Eleventh and Twelfth Lines - -LineY += 25 - -Str := '^FO30,':LineY:'^AC,18^FDThk Spec:^FS':CRLF$ - -FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') - BaseLine = LineY + (M-1)*20 - Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ -NEXT M - - -Str := '^FO410,':LineY:'^AC,18^FDRes Spec:^FS':CRLF$ - -FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') - BaseLine = LineY + (M-1)*20 - Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ -NEXT M - -LineY = 625 - -****** Separator bar - -Str := '^FO15,738^GB795,1^FS' - - -****** Lines 15 and 16 - -Str := '^FO30,775^AC,18^FDProd Spec No:^FS':CRLF$ ;* Label -Str := '^FO190,775^A0,25^FD':PSNo:'^FS':CRLF$ ;* Data - -IF SpecType = 'Production' THEN SpecType = 'Prod' -IF SpecType = 'Pre-Production' THEN SpecType = 'Pre' - -Str := '^FO275,775^AC,18^FDSpec Type:^FS':CRLF$ ;* Label -Str := '^FO400,775^A0,25^FD':SpecType:'^FS':CRLF$ ;* Data - -Str:= '^XZ' - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end - + + Str:= '^FO700,70^AC,18^FDQty:^FS':CRLF$ ;* Label + Str:= '^FO760,70^A045,25^FD':WfrQty:'^FS':CRLF$ ;* Data + + ****** Third Line + + Str:= '^FO30,105^AC,18^FDShip Dt:^FS' ;* Label + Str:= '^FO140,105^A0,,25^FD':ReqShipDate:'^FS':CRLF$ ;* Data + + Str:= '^FO250,105^AC,18^FDCust:^FS':CRLF$ ;* Label + Str:= '^FO320,105^A045,25^FD':CustName:'^FS':CRLF$ ;* Data + + Str:= '^FO560,105^AC,18^FDPO:^FS':CRLF$ + Str:= '^FO600,105^A045,25^FD':PONo:'^FS':CRLF$ + + + ****** Separator bar + + Str:= '^FO15,128^GB795,1^FS' + + + ****** Fourth Line + + LineY = 135 + + Str := '^FO30,':LineY:'^AC,18^FDLot No:^FS':CRLF$ + Str := '^FO120,':LineY:'^A0,20^FD':LotNo:'^FS':CRLF$ + + ****** Fifth Line + + LineY += 25 + + Str := '^FO30,':LineY:'^AC,18^FDSub PN:^FS':CRLF$ + Str := '^FO120,':LineY:'^A0,20^FD':SubPartNo:'^FS':CRLF$ + + IF SuppCd NE '' THEN + + Str := '^FO410,':LineY:'^AC,18^FDSupp Cd:^FS':CRLF$ ;* Label ;* Added 8/17/2005 JCH - J.C.Henry & Co. + Str := '^FO510,':LineY:'^A0,20^FD':SuppCd:'^FS':CRLF$ ;* Data + + Str := '^BY2,2.0':CRLF$ + Str := '^FO610,':LineY:'^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** New Part Number line + + LineY += 25 + + Str := '^FO30,':LineY:'^AC,18^FDCust Part No:^FS':CRLF$ + Str := '^FO200,':LineY:'^A0,20^FD':CustPartNo:' ':CustPartDesc:'^FS':CRLF$ + + + ****** Customer Spec Line + + LineY += 25 + + IF CustSpecNo NE '' THEN + + Str := '^FO30,':LineY:'^AC,18^FDCust Spec No:^FS':CRLF$ + Str := '^FO200,':LineY:'^A0,20^FD':CustSpecNo:' ':CustSpecDesc:'^FS':CRLF$ + + Str := '^FO475,':LineY:'^AC,18^FDRev:^FS':CRLF$ + Str := '^FO525,':LineY:'^A0,20^FD':CustSpecRevNo:'^FS':CRLF$ + + Str := '^FO615,':LineY:'^AC,18^FDRev Dt:^FS':CRLF$ + Str := '^FO700,':LineY:'^A0,20^FD':CustSpecRevDt:'^FS':CRLF$ + + END + + + ****** Separator bar + + LineY += 23 + + Str := '^FO15,':LineY:'^GB795,1^FS' + + + ****** Sixth Line + + LineY += 7 + + + ****** Seventh Line + + LineY += 25 + + Str := '^FO30,':LineY:'^AC,18^FDPre:^FS':CRLF$ + Str := '^FO90,':LineY:'^A0,20^FD':PreCleanTool:'^FS':CRLF$ + + LineY += 25 + + IF PreAkrionRecipe NE '' THEN + Str := '^FO30,':LineY:'^AC,18^FDAkrion:^FS':CRLF$ + Str := '^FO120,':LineY:'^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ + + Str := '^BY2,2.0':CRLF$ + Str := '^FO400,':LineY:'^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** Eighth Line + + LineY += 35 + + Str := '^FO30,':LineY:'^AC,18^FDRecipe:^FS':CRLF$ + Str := '^FO120,':LineY:'^A0,20^FD':RecipeInfo:'^FS':CRLF$ + + Str := '^FO410,':LineY:'^AC,18^FDEpi Dopant:^FS':CRLF$ + Str := '^FO560,':LineY:'^A040,20^FD':Dopant:'^FS':CRLF$ + + + ****** Ninth Line + + LineY += 25 + + ****** Tenth, Eleventh and Twelfth Lines + + LineY += 25 + + Str := '^FO30,':LineY:'^AC,18^FDThk Spec:^FS':CRLF$ + + FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') + BaseLine = LineY + (M-1)*20 + Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ + NEXT M + + + Str := '^FO410,':LineY:'^AC,18^FDRes Spec:^FS':CRLF$ + + FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') + BaseLine = LineY + (M-1)*20 + Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ + NEXT M + + LineY = 625 + + ****** Separator bar + + Str := '^FO15,738^GB795,1^FS' + + + ****** Lines 15 and 16 + + Str := '^FO30,775^AC,18^FDProd Spec No:^FS':CRLF$ ;* Label + Str := '^FO190,775^A0,25^FD':PSNo:'^FS':CRLF$ ;* Data + + IF SpecType = 'Production' THEN SpecType = 'Prod' + IF SpecType = 'Pre-Production' THEN SpecType = 'Pre' + + Str := '^FO275,775^AC,18^FDSpec Type:^FS':CRLF$ ;* Label + Str := '^FO400,775^A0,25^FD':SpecType:'^FS':CRLF$ ;* Data + + Str:= '^XZ' + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end + RETURN -*************************************************** - * * * * * * * PrintWOLabels: * * * * * * * - + * * * * * * * PrintWO: * * * * * * * - -Str = '^XA^CFD' -Str := '^LH0,0' -Str := '^PR2' ;* Print speed 2 inches per second -Str := '^LL325' ;* Label length in dots -Str := '^MD15' ;* Media darkness -Str := '^PQ2' ;* Print 2 labels for each pass through here -STR := '^MMT':CRLF$ ;* Media mode t=tear off mode - - -IF INDEX(PrintWONo,'.',1) THEN - Str:= '^FO10,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ -END ELSE - Str:= '^FO70,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ -END - -CharCnt = LEN(CustName) -NameLength = CharCnt*72 -WhiteSpace = INT(((2103 - NameLength)/2103) * 806) -StartingXPos = INT(WhiteSpace/2) - -Str:= '^FO':StartingXPos:',230^A0,75,72^FD':CustName:'^FS':CRLF$ - -Str:= '^FO160,320^A080,50^FD':'Commit Date: ':OCONV( XLATE( 'WO_LOG', WONo, WO_LOG_COMMIT_DATE$, 'X' ), 'D2/' ):'^FS':CRLF$ -Str:= '^XZ' - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end - + + Str = '^XA^CFD' + Str := '^LH0,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL325' ;* Label length in dots + Str := '^MD15' ;* Media darkness + Str := '^PQ2' ;* Print 2 labels for each pass through here + STR := '^MMT':CRLF$ ;* Media mode t=tear off mode + + + IF INDEX(PrintWONo,'.',1) THEN + Str:= '^FO10,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ + END ELSE + Str:= '^FO70,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ + END + + CharCnt = LEN(CustName) + NameLength = CharCnt*72 + WhiteSpace = INT(((2103 - NameLength)/2103) * 806) + StartingXPos = INT(WhiteSpace/2) + + Str:= '^FO':StartingXPos:',230^A0,75,72^FD':CustName:'^FS':CRLF$ + + Str:= '^FO160,320^A080,50^FD':'Commit Date: ':OCONV( XLATE( 'WO_LOG', WONo, WO_LOG_COMMIT_DATE$, 'X' ), 'D2/' ):'^FS':CRLF$ + Str:= '^XZ' + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end + RETURN * * * * * * * PrintMonitorLabels: * * * * * * * - -FOR I = 1 TO WMIBoxCnt - - Str = '^XA^CFD' - Str:= '^LH0,0' - Str:= '^PR2' ;* Print speed 2 inches per second - Str:= '^LL325' ;* Label length in dots - Str:= '^MD15' ;* Media darkness - Str:= '^MMT':CRLF$ ;* Media mode t=tear off mode - Str:= '^FO30,30^A060,40^FDMonitor Wafer^FS':CRLF$ - Str:= '^FO550,30^A060,40^FDReactor#_____^FS':CRLF$ - Str:= '^FO30,70^A060,40^FDDate_____________^FS':CRLF$ - Str:= '^FO30,130^A060,40^FDCustomer Name: ':CustName:'^FS':CRLF$ - Str:= '^FO30,190^A060,40^FDRDS#: ':RDSIds:'^FS':CRLF$ - Str:= '^FO400,190^A060,40^FDLot#: ':LotNo:'^FS':CRLF$ - Str:= '^FO30,250^A060,40^FDThick Avg__________^FS':CRLF$ - Str:= '^FO400,250^A060,40^FDWafer Type__________^FS':CRLF$ - Str:= '^FO30,280^A060,40^FDRes Avg____________^FS':CRLF$ - Str:= '^FO400,280^A060,40^FDWafer Type__________^FS':CRLF$ - Str:= '^XZ' - If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) - end else - stat = Direct_Print('PRINT', Str) - end + FOR I = 1 TO WMIBoxCnt + RDSIds = '' + Str = '^XA^CFD' + Str := '^LH0,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL325' ;* Label length in dots + Str := '^MD15' ;* Media darkness + Str := '^MMT':CRLF$ ;* Media mode t=tear off mode + Str := '^FO30,30^A060,40^FDMonitor Wafer^FS':CRLF$ + Str := '^FO550,30^A060,40^FDReactor#_____^FS':CRLF$ + Str := '^FO30,70^A060,40^FDDate_____________^FS':CRLF$ + Str := '^FO30,130^A060,40^FDCustomer Name: ':CustName:'^FS':CRLF$ + Str := '^FO30,190^A060,40^FDRDS#: ':RDSIds:'^FS':CRLF$ + Str := '^FO400,190^A060,40^FDLot#: ':LotNo:'^FS':CRLF$ + Str := '^FO30,250^A060,40^FDThick Avg__________^FS':CRLF$ + Str := '^FO400,250^A060,40^FDWafer Type__________^FS':CRLF$ + Str := '^FO30,280^A060,40^FDRes Avg____________^FS':CRLF$ + Str := '^FO400,280^A060,40^FDWafer Type__________^FS':CRLF$ + Str := '^XZ' -NEXT I - + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end + + NEXT I + RETURN * * * * * * * PrintSurfscanLabels: * * * * * * * - -FOR I = 1 TO WMIBoxCnt - Str = '^XA^CFD' - Str:= '^LH0,0' - Str:= '^PR2' ;* Print speed 2 inches per second - Str:= '^LL325' ;* Label length in dots - Str:= '^MD15' ;* Media darkness - Str:= '^MMT' ;* Media mode t=tear off mode - Str:= '^FO30,30^A060,40^FDSurfscan Required^FS' - *Str:= '^FO550,30^A060,40^FDRDS#':RDSIds:'^FS' - IF PreSurfscan THEN - Str:= '^FO30,130^A060,40^FDPre Epi:^FS' - Str:= '^FO250,130^A060,40^FDDefects________^FS' - Str:= '^FO500,130^A060,40^FDHaze________^FS' - END - IF FirstSurfscan THEN - Str:= '^FO30,190^A060,40^FDFirst Wafer^FS' - Str:= '^FO250,190^A060,40^FDDefects________^FS' - Str:= '^FO500,190^A060,40^FDHaze________^FS' - END - IF PostCleanSurfscan THEN - Str:= '^FO30,250^A060,40^FDPost Epi:^FS' - Str:= '^FO250,250^A060,40^FDDefects________^FS' - Str:= '^FO500,250^A060,40^FDHaze________^FS' - END - Str:= '^XZ' - If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) - end else - stat = Direct_Print('PRINT', Str) - end + FOR I = 1 TO WMIBoxCnt + Str = '^XA^CFD' + Str:= '^LH0,0' + Str:= '^PR2' ;* Print speed 2 inches per second + Str:= '^LL325' ;* Label length in dots + Str:= '^MD15' ;* Media darkness + Str:= '^MMT' ;* Media mode t=tear off mode + Str:= '^FO30,30^A060,40^FDSurfscan Required^FS' + IF PreSurfscan THEN + Str:= '^FO30,130^A060,40^FDPre Epi:^FS' + Str:= '^FO250,130^A060,40^FDDefects________^FS' + Str:= '^FO500,130^A060,40^FDHaze________^FS' + END + IF FirstSurfscan THEN + Str:= '^FO30,190^A060,40^FDFirst Wafer^FS' + Str:= '^FO250,190^A060,40^FDDefects________^FS' + Str:= '^FO500,190^A060,40^FDHaze________^FS' + END + IF PostCleanSurfscan THEN + Str:= '^FO30,250^A060,40^FDPost Epi:^FS' + Str:= '^FO250,250^A060,40^FDDefects________^FS' + Str:= '^FO500,250^A060,40^FDHaze________^FS' + END + Str:= '^XZ' + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end + + NEXT I - -NEXT I - - RETURN - - - - diff --git a/LSL2/STPROC/PRINT_WMO_LABELS.txt b/LSL2/STPROC/PRINT_WMO_LABELS.txt index 5cbbeb2..ce8249a 100644 --- a/LSL2/STPROC/PRINT_WMO_LABELS.txt +++ b/LSL2/STPROC/PRINT_WMO_LABELS.txt @@ -28,6 +28,7 @@ $INSERT WM_OUT_EQUATES $INSERT EPI_PART_EQUATES $INSERT CUST_EPI_PART_EQUATES $INSERT PRS_STAGE_EQUATES +$insert UNIT_EQUATES DECLARE FUNCTION Msg, Get_Printer, Set_Printer, Utility, obj_Install, Printer_Select, FieldCount, Popup DECLARE FUNCTION MemberOf, Direct_Print, Environment_Services @@ -41,192 +42,200 @@ EQU PI$WIDTH TO 5 EQU PI$HEIGHT TO 6 EQU PI$SIZE TO 7 -IF NOT(ASSIGNED(WONo)) THEN RETURN -IF WONo = '' THEN RETURN - -IF NOT(ASSIGNED(WOStep)) THEN WOStep = 1 - -FileName = "Printing Label" -Title = "Printing Label" - -PageInfo = '' -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 -PageInfo = 0.1 - - -PageSetup = '1' ;* Landscape -PrintSetup = '' ;* Preview -PrinterID = '' -PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) -end else - stat = Direct_Print('START', PrintPath<1>, '', '') -end - -IF stat < 0 THEN GOTO OIPrint_Error - -CLOrientation = '' ;* used for printing on cleanroom labels - - -WMOutKeys = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_WM_OUT_KEYS$,'X') - -TypeOver = '' -TypeOver = WMOutKeys -TypeOver = 'WM_OUT - Outbound Cassettes' - -WMoutKeys = Popup(@WINDOW,TypeOver,'PRINT_WM_LABELS') -CONVERT '.' TO '*' IN WMOutKeys - -IF WMOutKeys = '' THEN RETURN - -Void = Utility( 'CURSOR', 'H' ) - -WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X') - -IF INDEX(WOStepKeys,@VM,1) THEN - PrintWONo = WONo:'.':WOStep -END ELSE - PrintWONo = WONo -END - -WORec = XLATE('WO_LOG',WONo,'','X') - -ReqShipDate = OCONV(WORec,'D2/') - -CustNo = WORec -CustName = XLATE('COMPANY',CustNo,'ABBREV_OR_CO_NAME','X') -Captive = XLATE('COMPANY',CustNo,'CAPTIVE','X') -PONo = WORec - -PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X') -PSRec = XLATE('PROD_SPEC',PSNo,'','X') - -CustSpecNo = '' -IF Captive THEN - CustSpecNos = PSRec - CustSpecDescs = PSRec - CustSpecRevNos = PSRec - CustSpecRevDts = PSRec +Main: - SpecCnt = COUNT(CustSpecNos,@VM) + (CustSpecNos NE '') - - FOR I = 1 TO SpecCnt - IF CustSpecDescs<1,I> _EQC 'GENERAL' THEN - CustSpecNo = CustSpecNos<1,I> - CustSpecDesc = CustSpecDescS<1,I> - CustSpecRevNo = CustSpecRevNos<1,I> - CustSpecRevDt = OCONV(CustSpecRevDts<1,I>,'D4/') + IF NOT(ASSIGNED(WONo)) THEN RETURN + IF WONo = '' THEN RETURN + + IF NOT(ASSIGNED(WOStep)) THEN WOStep = 1 + + FileName = "Printing Label" + Title = "Printing Label" + + PageInfo = '' + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 + PageInfo = 0.1 + + + PageSetup = '1' ;* Landscape + PrintSetup = '' ;* Preview + PrinterID = '' + PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath) + end else + stat = Direct_Print('START', PrintPath<1>, '', '') + end + + IF stat GE 0 THEN + + CLOrientation = '' ;* used for printing on cleanroom labels + WMOutKeys = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_WM_OUT_KEYS$,'X') + + TypeOver = '' + TypeOver = WMOutKeys + TypeOver = 'WM_OUT - Outbound Cassettes' + TypeOver = True$ + + WMoutKeys = Popup(@WINDOW,TypeOver,'PRINT_WM_LABELS') + CONVERT '.' TO '*' IN WMOutKeys + + IF WMOutKeys = '' THEN RETURN + + Void = Utility( 'CURSOR', 'H' ) + + WOStepKeys = XLATE('WO_LOG',WONo,WO_LOG_WO_STEP_KEY$,'X') + + IF INDEX(WOStepKeys,@VM,1) THEN + PrintWONo = WONo:'.':WOStep + END ELSE + PrintWONo = WONo END - UNTIL CustSpecNo NE '' + + WORec = XLATE('WO_LOG',WONo,'','X') + + ReqShipDate = OCONV(WORec,'D2/') + + CustNo = WORec + CustName = XLATE('COMPANY',CustNo,'ABBREV_OR_CO_NAME','X') + Captive = XLATE('COMPANY',CustNo,'CAPTIVE','X') + PONo = WORec + + PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X') + PSRec = XLATE('PROD_SPEC',PSNo,'','X') + + CustSpecNo = '' + IF Captive THEN + CustSpecNos = PSRec + CustSpecDescs = PSRec + CustSpecRevNos = PSRec + CustSpecRevDts = PSRec + + SpecCnt = COUNT(CustSpecNos,@VM) + (CustSpecNos NE '') + + FOR I = 1 TO SpecCnt + IF CustSpecDescs<1,I> _EQC 'GENERAL' THEN + CustSpecNo = CustSpecNos<1,I> + CustSpecDesc = CustSpecDescS<1,I> + CustSpecRevNo = CustSpecRevNos<1,I> + CustSpecRevDt = OCONV(CustSpecRevDts<1,I>,'D4/') + END + UNTIL CustSpecNo NE '' + + NEXT I + END + + EpiPartNo = WORec + CustEpiPartRec = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,'','X') + + ShipBagReq = CustEpiPartRec + + PreSurfscan = XLATE('PRS_STAGE',PSNo:'*PRE',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') + FirstSurfscan = XLATE('PRS_STAGE',PSNo:'*WFR',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') + PostCleanSurfScan = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') + + PostCleanSSSampleQty = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SS_SAMP_QTY$, 'X' ) + PostCleanSurfscanRecipe = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURFSCAN_RECIPE$,'X') + PostCleanSurfDefects = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURF_DEFECTS$,'X') + PostCleanSurfHaze = OCONV(XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURF_HAZE$,'X'),'MD2') + + SubPreClean = XLATE('PRS_STAGE',PSNo:'*PRE','TOOL_DISPLAY','X') + SubPostClean = XLATE('PRS_STAGE',PSNo:'*POST','TOOL_DISPLAY','X') + + PreCleanTool = XLATE('PRS_STAGE',PSNo:'*PRE','TOOL_DISPLAY','X') + PostCleanTool = XLATE('PRS_STAGE',PSNo:'*POST','TOOL_DISPLAY','X') + + PreAkrionRecipe = XLATE('PRS_STAGE',PSNo:'*PRE',PRS_STAGE_CLEAN_RECIPE$,'X') + PostAkrionRecipe = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_CLEAN_RECIPE$,'X') + + + * * * * * * * * Following needs update to point to the PRS_LAYER & PRS_STAGE tables as required. + * * * * * * * * It's the required part that needs sorted out JCH 1/28/2014 + + RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' ) + RecipeName = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NAME_L1', 'X' ) + + SpecType = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ), '[SPEC_TYPE_CONV]' ) + SubOxide = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SUB_OXIDE_STRIP', 'X' ), 'B' ) + ThickTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'THICK_TARGET_ALL', 'X' ), 'MD3' ) + ResTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'RES_TARGET_ALL', 'X' ), 'MD3' ) + + ThickUnit = XLATE( 'PROD_SPEC', PSNo, 'THICK_UNITS_ALL', 'X' ) + ResUnit = XLATE( 'PROD_SPEC', PSNo , 'RES_UNITS_ALL', 'X' ) + + Dopant = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) + RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO', 'X' ) + RecipeInfo = XLATE( 'RECIPE', RecipeNo, 'RECIPE_NAME_NO', 'X' ) + + CleaningReqs = '' + + ThickCnt = FIELDCOUNT( ThickTarget<1>, @VM ) + PrintThickTargets = '' + FOR J = 1 TO ThickCnt + PrintThickTargets<1,J> = ThickTarget<1,J>:ThickUnit<1,J> + NEXT J + + ResCnt = FIELDCOUNT( ResTarget<1>, @VM ) + PrintResTargets = '' + FOR J = 1 TO ResCnt + IF ResTarget<1,J>[1,1] = '.' THEN + TargetVal = '0':ResTarget<1,J> + END ELSE + TargetVal = ResTarget<1,J> + END + PrintResTargets<1,J> = TargetVal:ResUnit<1,J> + NEXT J + + APreRec = '' + APostRec = '' + IF ( PreAkrionRecipe<1> <> '' ) THEN + APreRec = ' ':PreAkrionRecipe:' ' + SubOxide = 'No' ;* If Akrion then no oxide strip + END + + IF ( PostAkrionRecipe<1> <> '' ) THEN + APostRec = ' ':PostAkrionRecipe + END + + PrintCleaningReqs = TRIM( 'Strip:':SubOxide:' Pre:':SubPreClean:APreRec:' Post:':SubPostClean:APostRec ) + + swap UNIT_MICROMETER$ with 'um' in PrintThickTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintThickTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintThickTargets + swap UNIT_A$ with 'A' in PrintThickTargets + + swap UNIT_MICROMETER$ with 'um' in PrintResTargets + swap UNIT_OHM_CM$ with 'ohm.cm' in PrintResTargets + swap UNIT_OHM_PER_SQ$ with 'ohm/sq' in PrintResTargets + swap UNIT_A$ with 'A' in PrintResTargets + + WMOBoxCnt = COUNT( WMOutKeys, @VM ) + (WMOutKeys NE '') + + GOSUB PrintCleanRoomLabels + GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 + + Void = UTILITY( 'CURSOR', 'A' ) + + end - NEXT I -END + GoSub EndPrint -EpiPartNo = WORec -CustEpiPartRec = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,'','X') +return -ShipBagReq = CustEpiPartRec - -PreSurfscan = XLATE('PRS_STAGE',PSNo:'*PRE',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') -FirstSurfscan = XLATE('PRS_STAGE',PSNo:'*WFR',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') -PostCleanSurfScan = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURFSCAN_SIG_REQ$,'X') - -PostCleanSSSampleQty = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SS_SAMP_QTY$, 'X' ) -PostCleanSurfscanRecipe = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURFSCAN_RECIPE$,'X') -PostCleanSurfDefects = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURF_DEFECTS$,'X') -PostCleanSurfHaze = OCONV(XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_SURF_HAZE$,'X'),'MD2') - -SubPreClean = XLATE('PRS_STAGE',PSNo:'*PRE','TOOL_DISPLAY','X') -SubPostClean = XLATE('PRS_STAGE',PSNo:'*POST','TOOL_DISPLAY','X') - -PreCleanTool = XLATE('PRS_STAGE',PSNo:'*PRE','TOOL_DISPLAY','X') -PostCleanTool = XLATE('PRS_STAGE',PSNo:'*POST','TOOL_DISPLAY','X') - -PreAkrionRecipe = XLATE('PRS_STAGE',PSNo:'*PRE',PRS_STAGE_CLEAN_RECIPE$,'X') -PostAkrionRecipe = XLATE('PRS_STAGE',PSNo:'*POST',PRS_STAGE_CLEAN_RECIPE$,'X') - - -* * * * * * * * Following needs update to point to the PRS_LAYER & PRS_STAGE tables as required. -* * * * * * * * It's the required part that needs sorted out JCH 1/28/2014 - -RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO_L1', 'X' ) -RecipeName = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NAME_L1', 'X' ) - -SpecType = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SPEC_TYPE', 'X' ), '[SPEC_TYPE_CONV]' ) -SubOxide = OCONV( XLATE( 'PROD_SPEC', PSNo, 'SUB_OXIDE_STRIP', 'X' ), 'B' ) -ThickTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'THICK_TARGET_ALL', 'X' ), 'MD3' ) -ResTarget = OCONV( XLATE( 'PROD_SPEC', PSNo, 'RES_TARGET_ALL', 'X' ), 'MD3' ) - -ThickUnit = XLATE( 'PROD_SPEC', PSNo, 'THICK_UNITS_ALL', 'X' ) -ResUnit = XLATE( 'PROD_SPEC', PSNo , 'RES_UNITS_ALL', 'X' ) - -Dopant = XLATE( 'PROD_SPEC', PSNo, 'DOPANT_L1', 'X' ) -RecipeNo = XLATE( 'PROD_SPEC', PSNo, 'RECIPE_NO', 'X' ) -RecipeInfo = XLATE( 'RECIPE', RecipeNo, 'RECIPE_NAME_NO', 'X' ) - -CleaningReqs = '' - -ThickCnt = FIELDCOUNT( ThickTarget<1>, @VM ) -PrintThickTargets = '' -FOR J = 1 TO ThickCnt - PrintThickTargets<1,J> = ThickTarget<1,J>:ThickUnit<1,J> -NEXT J - -ResCnt = FIELDCOUNT( ResTarget<1>, @VM ) -PrintResTargets = '' -FOR J = 1 TO ResCnt - IF ResTarget<1,J>[1,1] = '.' THEN - TargetVal = '0':ResTarget<1,J> - END ELSE - TargetVal = ResTarget<1,J> - END - PrintResTargets<1,J> = TargetVal:ResUnit<1,J> -NEXT J - -APreRec = '' -APostRec = '' -IF ( PreAkrionRecipe<1> <> '' ) THEN - APreRec = ' ':PreAkrionRecipe:' ' - SubOxide = 'No' ;* If Akrion then no oxide strip -END - -IF ( PostAkrionRecipe<1> <> '' ) THEN - APostRec = ' ':PostAkrionRecipe -END - -PrintCleaningReqs = TRIM( 'Strip:':SubOxide:' Pre:':SubPreClean:APreRec:' Post:':SubPostClean:APostRec ) - -swap 'æm' with 'um' in PrintThickTargets -swap 'ê-cm' with 'ohm.cm' in PrintThickTargets -swap 'ê/Ü' with 'ohm/sq' in PrintThickTargets -swap '' with 'A' in PrintThickTargets - -swap 'æm' with 'um' in PrintResTargets -swap 'ê-cm' with 'ohm.cm' in PrintResTargets -swap 'ê/Ü' with 'ohm/sq' in PrintResTargets -swap '' with 'A' in PrintResTargets - -WMOBoxCnt = COUNT( WMOutKeys, @VM ) + (WMOutKeys NE '') - -GOSUB PrintCleanRoomLabels -GOSUB PrintWOLabels ;* Activated WO label printing again -dkk 12/3/14 - -Void = UTILITY( 'CURSOR', 'A' ) * * * * * * -OIPrint_Error: +EndPrint: * * * * * * - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer("TERM") -end else - stat = Direct_Print('STOP') -end - + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer("TERM") + end else + stat = Direct_Print('STOP') + end + RETURN @@ -235,237 +244,238 @@ RETURN * * * * * * * PrintCleanRoomLabels: * * * * * * * - -FOR I = 1 TO WMOBoxCnt - - WMOutKey = WMOutKeys<1,I> - MakeupBox = XLATE('WM_OUT',WMOutKey,WM_OUT_MAKEUP_BOX$ ,'X') - - PrintWMOutKey = WMOutKey - CONVERT '*' TO '.' IN PrintWMOutKey - - CassNo = FIELD(WMOutKey,'*',3) - - LotNo = 'Multiple' - WfrQty = XLATE('WM_OUT',WMOutKey,'WFRS_SCHED','X') - - SubPartNo = WORec - CustPartNo = WORec - EpiPartNo = WORec - CustPartDesc = XLATE('EPI_PART',EpiPartNo,EPI_PART_EPI_PART_DESC$,'X') - PartNo = CustPartNo ;* Temporary for 4x2 to 4x4 conversion - PartDesc = CustPartDesc ;* Temporary for 4x2 to 4x4 conversion - SubVendCode = WORec - Vendor = XLATE('SEMI_VEND_CODE', SubVendCode, 'EPI_VEND_CD', 'X') + FOR I = 1 TO WMOBoxCnt - SuppCd = TRIM(SubPartNo[-1,'B-']) - IF LEN(SuppCd) NE '2' THEN SuppCd ='' + WMOutKey = WMOutKeys<1,I> + + MakeupBox = XLATE('WM_OUT',WMOutKey,WM_OUT_MAKEUP_BOX$ ,'X') + + PrintWMOutKey = WMOutKey + CONVERT '*' TO '.' IN PrintWMOutKey + + CassNo = FIELD(WMOutKey,'*',3) + + LotNo = 'Multiple' + WfrQty = XLATE('WM_OUT',WMOutKey,'WFRS_SCHED','X') + + SubPartNo = WORec + CustPartNo = WORec + EpiPartNo = WORec + CustPartDesc = XLATE('EPI_PART',EpiPartNo,EPI_PART_EPI_PART_DESC$,'X') + PartNo = CustPartNo ;* Temporary for 4x2 to 4x4 conversion + PartDesc = CustPartDesc ;* Temporary for 4x2 to 4x4 conversion + SubVendCode = WORec + Vendor = XLATE('SEMI_VEND_CODE', SubVendCode, 'EPI_VEND_CD', 'X') + + SuppCd = TRIM(SubPartNo[-1,'B-']) + IF LEN(SuppCd) NE '2' THEN SuppCd ='' + + GOSUB PrintLabel + + NEXT I - GOSUB PrintLabel - -NEXT I - RETURN * * * * * * * PrintLabel: * * * * * * * -Str = '' -For cnt = 1 to 2 - ***** Start of label ZPL - Str := '^XA' - - ***** Label setup - Str := '^LH0,0' - Str := '^PR2' ;* Print speed 2 inches per second - Str := '^LL406' ;* Label length 203 dpi - Str := '^PW900' ;* Print width 900 dpi - Str := '^MD2' ;* Media darkness - Str := '^MMT':CRLF$ ;* Media mode t=tear off mode - //Str := '^PQ2' ;* Print 2 labels for each pass through here - - ***** Border - Str := '^FO10,5^GB795,398,3,B^FS':CRLF$ - - ****** First Line - Company = 'IFX Epi Services' - Str := '^FO30,20^A0,45,36^FD':Company:'^FS':CRLF$ - Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ - Str := '^FO370,20^A045,36^FD':PrintWONo:'^FS':CRLF$ + Str = '' + For cnt = 1 to 2 + ***** Start of label ZPL + Str := '^XA' + + ***** Label setup + Str := '^LH0,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL406' ;* Label length 203 dpi + Str := '^PW900' ;* Print width 900 dpi + Str := '^MD2' ;* Media darkness + Str := '^MMT':CRLF$ ;* Media mode t=tear off mode + //Str := '^PQ2' ;* Print 2 labels for each pass through here + + ***** Border + Str := '^FO10,5^GB795,398,3,B^FS':CRLF$ + + ****** First Line + Company = 'IFX Epi Services' + Str := '^FO30,20^A0,45,36^FD':Company:'^FS':CRLF$ + Str := '^FO290,25^AC,18^FDWO No:^FS':CRLF$ + Str := '^FO370,20^A045,36^FD':PrintWONo:'^FS':CRLF$ + + IF CassNo = 1 THEN + Str := '^FO535,15^GB120,40,40,,3^FS':CRLF$ + Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ + Str := '^FO600,20^A045,36^FR^FD':CassNo:'^FS':CRLF$ + END ELSE + Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ + Str := '^FO600,20^A045,36^FD':CassNo:'^FS':CRLF$ + END + Str:= '^FO665,20^A045,36^FDWM Out^FS':CRLF$ + + ****** Second Line + Str:= '^FO30,70^AC,18^FDWM Out:^FS':CRLF$ + Str:= '^FO120,65^A050,30^FD':PrintWMOutKey:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO300,58^B3,,37,N^FD':'O':PrintWMOutKey:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + Str:= '^FO700,60^AC,18^FDQty:^FS':CRLF$ + Str:= '^FO760,60^A045,25^FD':WfrQty:'^FS':CRLF$ + + ****** Third Line + Str:= '^FO30,100^AC,18^FDShip Dt:^FS':CRLF$ + Str:= '^FO140,100^A0,,25^FD':ReqShipDate:'^FS':CRLF$ + Str:= '^FO250,100^AC,18^FDCust:^FS':CRLF$ + Str:= '^FO320,100^A045,25^FD':CustName:'^FS':CRLF$ + Str:= '^FO560,100^AC,18^FDPO:^FS':CRLF$ + Str:= '^FO600,100^A045,25^FD':PONo:'^FS':CRLF$ + + ****** Separator bar + Str:= '^FO15,125^GB790,1^FS':CRLF$ + + ****** Fourth Line + Str := '^FO30,130^AC,18^FDLot No:^FS':CRLF$ + Str := '^FO120,130^A0,20^FD':LotNo:'^FS':CRLF$ + Str := '^FO410,130^AC,18^FDPart No:^FS':CRLF$ + Str := '^FO510,130^A0,20^FD':PartNo:'^FS':CRLF$ + + ****** Fifth Line + Str := '^FO30,155^AC,18^FDSub PN:^FS':CRLF$ + Str := '^FO120,155^A0,20^FD':SubPartNo:'^FS':CRLF$ + + IF SuppCd NE '' THEN + Str := '^FO410,155^AC,18^FDSupp Cd:^FS':CRLF$ + Str := '^FO510,155^A0,20^FD':SuppCd:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO610,155^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** Separator bar + Str := '^FO15,180^GB790,1^FS':CRLF$ + + IF MakeupBox THEN + Str := '^FO410,190^A050,30^FD* * * M a k e u p B o x * * *^FS':CRLF$ + END ELSE + Str := '^FO410,190^AC,18^FDReact Type:^FS':CRLF$ + Str := '^FO560,190^A0,20^FDEpiPro^FS':CRLF$ + END + + ****** Seventh Line + Str := '^FO30,190^AC,18^FDPre:^FS':CRLF$ + Str := '^FO90,190^A0,20^FD':SubPreClean:'^FS':CRLF$ + + IF PreAkrionRecipe NE '' THEN + Str := '^FO210,190^AC,18^FDAkrion:^FS':CRLF$ + Str := '^FO300,190^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO450,190^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END + + ****** Eighth Line + Str := '^FO30,225^AC,18^FDRecipe:^FS':CRLF$ + Str := '^FO120,225^A0,20^FD':RecipeInfo:'^FS':CRLF$ + Str := '^FO410,225^AC,18^FDEpi Dopant:^FS':CRLF$ + Str := '^FO560,225^A040,20^FD':Dopant:'^FS':CRLF$ + + + ****** Ninth, Tenth and Eleventh Lines + Str := '^FO30,260^AC,18^FDThk Spec:^FS':CRLF$ + FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') + BaseLine = 260 + (M-1)*20 + Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ + NEXT M + + Str := '^FO410,260^AC,18^FDRes Spec:^FS':CRLF$ + FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') + BaseLine = 260 + (M-1)*20 + Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ + NEXT M + + IF PostAkrionRecipe NE '' THEN + Str := '^FO30,335^AC,18^FDPost:^FS':CRLF$ + Str := '^FO90,335^A0,20^FD':SubPostClean:'^FS':CRLF$ + Str := '^FO210,335^AC,18^FDAkrion:^FS':CRLF$ + Str := '^FO300,335^A0,20^FD':PostAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,2.0':CRLF$ + Str := '^FO450,335^A040,20^B3,,23,N^FD':PostAkrionRecipe:'^FS':CRLF$ + Str := '^BY2,3.0':CRLF$ + END ELSE + Str := '^FO30,335^AC,18^FDPost:^FS':CRLF$ + Str := '^FO120,335^A0,20^FD':SubPostClean:'^FS':CRLF$ + END + + ****** Separator bar + Str := '^FO15,365^GB790,1^FS':CRLF$ + + ****** Data Matrix barcode + Str := '^FO720,280^CI28':CRLF$ + Str := '^BXN,2,200^FDP':PartNo:'|S':SubPartNo:'|1T':PrintWMOutKey:'|2T':LotNo:'|':PSNo:'|Q':WfrQty:'|1V':Vendor:'|SEQ':Cnt:'^FS':CRLF$ + + ****** Fourteenth Line + Str := '^FO30,375^AC,18^FDProd Spec No:^FS':CRLF$ + Str := '^FO190,375^A0,25^FD':PSNo:'^FS':CRLF$ + + IF SpecType = 'Production' THEN SpecType = 'Prod' + IF SpecType = 'Pre-Production' THEN SpecType = 'Pre' + + Str := '^FO275,375^AC,18^FDSpec Type:^FS':CRLF$ + Str := '^FO400,375^A0,25^FD':SpecType:'^FS':CRLF$ + Str:= '^FO480,375^AC,18^FDBag:^FS':CRLF$ + Str:= '^FO530,375^A0,20^FD':ShipBagReq:'^FS':CRLF$ + + ***** End of Label + Str:= '^XZ' + Next - IF CassNo = 1 THEN - Str := '^FO535,15^GB120,40,40,,3^FS':CRLF$ - Str := '^FO540,25^AC,18^FR^FDCass:^FS':CRLF$ - Str := '^FO600,20^A045,36^FR^FD':CassNo:'^FS':CRLF$ - END ELSE - Str := '^FO540,25^AC,18^FDCass:^FS':CRLF$ - Str := '^FO600,20^A045,36^FD':CassNo:'^FS':CRLF$ - END - Str:= '^FO665,20^A045,36^FDWM Out^FS':CRLF$ - - ****** Second Line - Str:= '^FO30,70^AC,18^FDWM Out:^FS':CRLF$ - Str:= '^FO120,65^A050,30^FD':PrintWMOutKey:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO300,58^B3,,37,N^FD':'O':PrintWMOutKey:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ - Str:= '^FO700,60^AC,18^FDQty:^FS':CRLF$ - Str:= '^FO760,60^A045,25^FD':WfrQty:'^FS':CRLF$ - - ****** Third Line - Str:= '^FO30,100^AC,18^FDShip Dt:^FS':CRLF$ - Str:= '^FO140,100^A0,,25^FD':ReqShipDate:'^FS':CRLF$ - Str:= '^FO250,100^AC,18^FDCust:^FS':CRLF$ - Str:= '^FO320,100^A045,25^FD':CustName:'^FS':CRLF$ - Str:= '^FO560,100^AC,18^FDPO:^FS':CRLF$ - Str:= '^FO600,100^A045,25^FD':PONo:'^FS':CRLF$ - - ****** Separator bar - Str:= '^FO15,125^GB790,1^FS':CRLF$ - - ****** Fourth Line - Str := '^FO30,130^AC,18^FDLot No:^FS':CRLF$ - Str := '^FO120,130^A0,20^FD':LotNo:'^FS':CRLF$ - Str := '^FO410,130^AC,18^FDPart No:^FS':CRLF$ - Str := '^FO510,130^A0,20^FD':PartNo:'^FS':CRLF$ - - ****** Fifth Line - Str := '^FO30,155^AC,18^FDSub PN:^FS':CRLF$ - Str := '^FO120,155^A0,20^FD':SubPartNo:'^FS':CRLF$ - - IF SuppCd NE '' THEN - Str := '^FO410,155^AC,18^FDSupp Cd:^FS':CRLF$ - Str := '^FO510,155^A0,20^FD':SuppCd:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO610,155^A040,20^B3,,23,N^FD':SuppCd:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ - END - - ****** Separator bar - Str := '^FO15,180^GB790,1^FS':CRLF$ + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end - IF MakeupBox THEN - Str := '^FO410,190^A050,30^FD* * * M a k e u p B o x * * *^FS':CRLF$ - END ELSE - Str := '^FO410,190^AC,18^FDReact Type:^FS':CRLF$ - Str := '^FO560,190^A0,20^FDEpiPro^FS':CRLF$ - END - - ****** Seventh Line - Str := '^FO30,190^AC,18^FDPre:^FS':CRLF$ - Str := '^FO90,190^A0,20^FD':SubPreClean:'^FS':CRLF$ - - IF PreAkrionRecipe NE '' THEN - Str := '^FO210,190^AC,18^FDAkrion:^FS':CRLF$ - Str := '^FO300,190^A0,20^FD':PreAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO450,190^A040,20^B3,,23,N^FD':PreAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ - END - - ****** Eighth Line - Str := '^FO30,225^AC,18^FDRecipe:^FS':CRLF$ - Str := '^FO120,225^A0,20^FD':RecipeInfo:'^FS':CRLF$ - Str := '^FO410,225^AC,18^FDEpi Dopant:^FS':CRLF$ - Str := '^FO560,225^A040,20^FD':Dopant:'^FS':CRLF$ - - - ****** Ninth, Tenth and Eleventh Lines - Str := '^FO30,260^AC,18^FDThk Spec:^FS':CRLF$ - FOR M = 1 TO COUNT(PrintThickTargets,@VM) + (PrintThickTargets NE '') - BaseLine = 260 + (M-1)*20 - Str := '^FO140,':BaseLine:'^A040,20^FD':PrintThickTargets<1,M>:'^FS':CRLF$ - NEXT M - - Str := '^FO410,260^AC,18^FDRes Spec:^FS':CRLF$ - FOR M = 1 TO COUNT(PrintResTargets,@VM) + (PrintResTargets NE '') - BaseLine = 260 + (M-1)*20 - Str := '^FO520,':BaseLine:'^A040,20^FD':PrintResTargets<1,M>:'^FS':CRLF$ - NEXT M - - IF PostAkrionRecipe NE '' THEN - Str := '^FO30,335^AC,18^FDPost:^FS':CRLF$ - Str := '^FO90,335^A0,20^FD':SubPostClean:'^FS':CRLF$ - Str := '^FO210,335^AC,18^FDAkrion:^FS':CRLF$ - Str := '^FO300,335^A0,20^FD':PostAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,2.0':CRLF$ - Str := '^FO450,335^A040,20^B3,,23,N^FD':PostAkrionRecipe:'^FS':CRLF$ - Str := '^BY2,3.0':CRLF$ - END ELSE - Str := '^FO30,335^AC,18^FDPost:^FS':CRLF$ - Str := '^FO120,335^A0,20^FD':SubPostClean:'^FS':CRLF$ - END - - ****** Separator bar - Str := '^FO15,365^GB790,1^FS':CRLF$ - - ****** Data Matrix barcode - Str := '^FO720,280^CI28':CRLF$ - Str := '^BXN,2,200^FDP':PartNo:'|S':SubPartNo:'|1T':PrintWMOutKey:'|2T':LotNo:'|':PSNo:'|Q':WfrQty:'|1V':Vendor:'|SEQ':Cnt:'^FS':CRLF$ - - ****** Fourteenth Line - Str := '^FO30,375^AC,18^FDProd Spec No:^FS':CRLF$ - Str := '^FO190,375^A0,25^FD':PSNo:'^FS':CRLF$ - - IF SpecType = 'Production' THEN SpecType = 'Prod' - IF SpecType = 'Pre-Production' THEN SpecType = 'Pre' - - Str := '^FO275,375^AC,18^FDSpec Type:^FS':CRLF$ - Str := '^FO400,375^A0,25^FD':SpecType:'^FS':CRLF$ - Str:= '^FO480,375^AC,18^FDBag:^FS':CRLF$ - Str:= '^FO530,375^A0,20^FD':ShipBagReq:'^FS':CRLF$ - - ***** End of Label - Str:= '^XZ' -Next - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end - RETURN * * * * * * * PrintWOLabels: * * * * * * * - + * * * * * * PrintWO: * * * * * * - -Str = '^XA^CFD' -Str := '^LH0,0' -Str := '^PR2' ;* Print speed 2 inches per second -Str := '^LL325' ;* Label length in dots -Str := '^MD2' ;* Media darkness -Str := '^PQ2' ;* Print 2 labels for each pass through here -STR := '^MMT':CRLF$ ;* Media mode t=tear off mode - -IF INDEX(PrintWONo,'.',1) THEN - Str:= '^FO10,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ -END ELSE - Str:= '^FO70,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ -END - -CharCnt = LEN(CustName) -NameLength = CharCnt*72 -WhiteSpace = INT(((2103 - NameLength)/2103) * 806) -StartingXPos = INT(WhiteSpace/2) - -Str:= '^FO':StartingXPos:',230^A0,75,72^FD':CustName:'^FS':CRLF$ - -Str:= '^FO160,320^A080,50^FD':'Commit Date: ':OCONV( XLATE( 'WO_LOG', WONo, WO_LOG_COMMIT_DATE$, 'X' ), 'D2/' ):'^FS':CRLF$ -Str:= '^XZ' - -If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then - stat = Set_Printer('TEXT',Str) -end else - stat = Direct_Print('PRINT', Str) -end - + + Str = '^XA^CFD' + Str := '^LH0,0' + Str := '^PR2' ;* Print speed 2 inches per second + Str := '^LL325' ;* Label length in dots + Str := '^MD2' ;* Media darkness + Str := '^PQ2' ;* Print 2 labels for each pass through here + STR := '^MMT':CRLF$ ;* Media mode t=tear off mode + + IF INDEX(PrintWONo,'.',1) THEN + Str:= '^FO10,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ + END ELSE + Str:= '^FO70,30^A0,220,210^FD':PrintWONo:'^FS':CRLF$ + END + + CharCnt = LEN(CustName) + NameLength = CharCnt*72 + WhiteSpace = INT(((2103 - NameLength)/2103) * 806) + StartingXPos = INT(WhiteSpace/2) + + Str:= '^FO':StartingXPos:',230^A0,75,72^FD':CustName:'^FS':CRLF$ + + Str:= '^FO160,320^A080,50^FD':'Commit Date: ':OCONV( XLATE( 'WO_LOG', WONo, WO_LOG_COMMIT_DATE$, 'X' ), 'D2/' ):'^FS':CRLF$ + Str:= '^XZ' + + If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then + stat = Set_Printer('TEXT',Str) + end else + stat = Direct_Print('PRINT', Str) + end + RETURN + diff --git a/LSL2/STPROC/SECURITY_SERVICES.txt b/LSL2/STPROC/SECURITY_SERVICES.txt index 63703f2..e7bc62b 100644 --- a/LSL2/STPROC/SECURITY_SERVICES.txt +++ b/LSL2/STPROC/SECURITY_SERVICES.txt @@ -62,7 +62,8 @@ Service AuthenticateLSLCredentials(LSLUsername, LSLPassword) Response = False$ If ( (LSLUsername NE '') and (LSLPassword NE '') ) then - Convert @Lower_Case to @Upper.Case in LSLUsername + Convert @Lower_Case to @Upper_Case in LSLUsername + Convert @Lower_Case to @Upper_Case in LSLPassword If RowExists('LSL_USERS', LSLUsername) then Password = Xlate('LSL_USERS', LSLUsername, 'PASSWORD', 'X') If LSLPassword EQ Password then @@ -313,67 +314,3 @@ Service GetLSLUser(Username) end service - -//---------------------------------------------------------------------------------------------------------------------- -// VerifyUserSessions -// -// -//---------------------------------------------------------------------------------------------------------------------- -Service VerifyUserSessions() - - // Use MESSENGER as the recipient. It will process callback procedures. - Messaging_Services('SendMessage', 'GetLoggedInUsers', 'Request', 'MESSENGER', 'All', '', 'Procedure', 'Security_Services,UserSessionsListener,@MESSAGE,@ARGUMENTS') - -end service - - -Service UserSessionsListener() - - // Process message - // If user is running an old version of LSL, then send them a popup asking them to restart their session. - Transfer Param2 to SessionInfo - Station = SessionInfo<1, 2> - OIUserName = SessionInfo<2, 2> - SSOUserName = SessionInfo<3, 2> - ProcessID = SessionInfo<4, 2> - LSL2Version = SessionInfo<5, 2> - OCXVersion = SessionInfo<6, 2> - - CurrLSL2Version = Database_Services('ReadDataRow', 'APP_INFO', 'LSL2_VERSION') - If ((LSL2Version NE '') and (LSL2Version NE CurrLSL2Version)) then - // Send a message to the user - Message = 'You are running an outdated version of LSL. Restart your application ASAP to pickup the latest code.' - Messaging_Services('SendMessage', 'SetPopupMessage', 'Request', '', Station, Message) -* If OIUserName EQ 'DANIEL_ST' then -* Messaging_Services('SendMessage', 'RunProcedure', 'Request', '', Station, 'SECURITY_SERVICES,REQUIREREAUTHENTICATION', '', '', '') -* end - end - -end service - - -Service RequireReauthentication() - - Authenticated = False$ - - If MemberOf(@USER4, 'OI_ADMIN') then - ParentForm = 'NDW_MAIN' - end else - ParentForm = 'LSL_MAIN2' - end - Loop - - Response = Dialog_Box('NDW_VERIFY_USER', ParentForm, @USER4) - Authenticated = Response<1> - If Not(Authenticated) then - ErrorMessage = 'You must reauthenticate to continue running your old version of OpenInsight.' - rv = Msg('', '', 'OK', '', 'Authentication Required':@FM:ErrorMessage) - end - Until Authenticated - Repeat - -end service - - - - diff --git a/LSL2/STPROC/WORK_ORDER_SERVICES.txt b/LSL2/STPROC/WORK_ORDER_SERVICES.txt index 086f907..f986b2e 100644 --- a/LSL2/STPROC/WORK_ORDER_SERVICES.txt +++ b/LSL2/STPROC/WORK_ORDER_SERVICES.txt @@ -792,10 +792,11 @@ Service PrintLabels(WONo) end If INDEX(RDSNos,@VM,1) then - TypeOver = '' - TypeOver = RDSNos - TypeOver = 2 - TypeOver = 'K' + TypeOver = '' + TypeOver = RDSNos + TypeOver = 2 + TypeOver = 'K' + TypeOver = True$ RDSKeys = Popup(@WINDOW,TypeOver,'WO_LOG_RTS') @@ -1565,5 +1566,3 @@ ClearCursors: return - - diff --git a/LSL2/STPROCINS/UNIT_EQUATES.txt b/LSL2/STPROCINS/UNIT_EQUATES.txt new file mode 100644 index 0000000..ac9f24f --- /dev/null +++ b/LSL2/STPROCINS/UNIT_EQUATES.txt @@ -0,0 +1,13 @@ +compile insert UNIT_EQUATES +/*---------------------------------------- + Author : DJM + Written : 11/6/2025 + Description : Insert for unit-hex conversion. +----------------------------------------*/ + +Equ UNIT_MICROMETER$ To \E66D\ +Equ UNIT_OHM_CM$ To \EA2D636D\ +Equ UNIT_OHM_PER_SQ$ To \EA2FDC\ +Equ UNIT_A$ To '' + +