diff --git a/.gitignore b/.gitignore index 150e364..71417fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ LSL2/STPROC/TEST_DANIEL3.txt +LSL2/STPROC/TEST_DANIEL3.txt diff --git a/LSL2/OIWIN/NDW_ACTIVE_DIRECTORY_GROUPS.json b/LSL2/OIWIN/NDW_ACTIVE_DIRECTORY_GROUPS.json new file mode 100644 index 0000000..0662967 --- /dev/null +++ b/LSL2/OIWIN/NDW_ACTIVE_DIRECTORY_GROUPS.json @@ -0,0 +1,1995 @@ +{ + "header": { + "version": 1, + "type": "record" + }, + "body": { + "record1": { + "<1>": "1010", + "<2>": "4", + "<3>": "" + }, + "record2": { + "<1>": { + "<1,1>": "NDW_ACTIVE_DIRECTORY_GROUPS", + "<1,2>": "", + "<1,3>": "WINDOW", + "<1,4>": "", + "<1,5>": "0", + "<1,6>": "0", + "<1,7>": "-1121", + "<1,8>": "-585", + "<1,9>": "Active Directory Groups", + "<1,10>": { + "<1,10,1>": "0x94CF0000", + "<1,10,2>": "0x100" + }, + "<1,11>": { + "<1,11,1>": "0x8000", + "<1,11,2>": "0x80000000" + }, + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", + "<1,15>": "", + "<1,16>": "", + "<1,17>": "", + "<1,18>": { + "<1,18,1>": { + "<1,18,1,1>": "X", + "<1,18,1,2>": "EXECUTE", + "<1,18,1,3>": "@WINDOW_EVENTS", + "<1,18,1,4>": { + "<1,18,1,4,1>": "@SELF", + "<1,18,1,4,2>": "@EVENT", + "<1,18,1,4,3>": "@PARAM1", + "<1,18,1,4,4>": "@PARAM2", + "<1,18,1,4,5>": "@PARAM3", + "<1,18,1,4,6>": "@PARAM4", + "<1,18,1,4,7>": "@PARAM5", + "<1,18,1,4,8>": "@PARAM6" + }, + "<1,18,1,5>": "", + "<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>": "COMMEVT", + "<1,18,1,16>": "0" + } + }, + "<1,19>": "CREATE", + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": "", + "<1,24>": { + "<1,24,1>": "", + "<1,24,2>": "0", + "<1,24,3>": "0", + "<1,24,4>": "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>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<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,39>": "", + "<1,40>": "", + "<1,41>": "", + "<1,42>": "", + "<1,43>": "", + "<1,44>": "", + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<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>": "1", + "<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": { + "<1>": { + "<1,1>": "EDT_AD_MEMBERS", + "<1,2>": "", + "<1,3>": "EDITTABLE", + "<1,4>": "NDW_ACTIVE_DIRECTORY_GROUPS", + "<1,5>": "-451", + "<1,6>": "28", + "<1,7>": "436", + "<1,8>": "-53", + "<1,9>": "", + "<1,10>": { + "<1,10,1>": "0x560001D0", + "<1,10,2>": "0x200" + }, + "<1,11>": { + "<1,11,1>": "0x9000", + "<1,11,2>": "0x80000802" + }, + "<1,12>": "4", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "-2", + "<1,15>": { + "<1,15,1>": { + "<1,15,1,1>": "Segoe UI", + "<1,15,1,2>": "-12", + "<1,15,1,3>": "400", + "<1,15,1,4>": "0", + "<1,15,1,5>": "0", + "<1,15,1,6>": "0", + "<1,15,1,7>": "0", + "<1,15,1,8>": "34", + "<1,15,1,9>": "0", + "<1,15,1,10>": "3", + "<1,15,1,11>": "2", + "<1,15,1,12>": "1" + } + }, + "<1,16>": "", + "<1,17>": "", + "<1,18>": "", + "<1,19>": "", + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": { + "<1,23,1>": "", + "<1,23,2>": "", + "<1,23,3>": "" + }, + "<1,24>": { + "<1,24,1>": "", + "<1,24,2>": "", + "<1,24,3>": "" + }, + "<1,25>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": { + "<1,28,1>": "", + "<1,28,2>": "", + "<1,28,3>": "" + }, + "<1,29>": { + "<1,29,1>": "", + "<1,29,2>": "", + "<1,29,3>": "" + }, + "<1,30>": { + "<1,30,1>": "<>", + "<1,30,2>": "<>", + "<1,30,3>": "<>" + }, + "<1,31>": { + "<1,31,1>": "0", + "<1,31,2>": "0", + "<1,31,3>": "0" + }, + "<1,32>": "", + "<1,33>": "", + "<1,34>": "", + "<1,35>": { + "<1,35,1>": { + "<1,35,1,1>": "", + "<1,35,1,2>": "", + "<1,35,1,3>": "" + }, + "<1,35,2>": { + "<1,35,2,1>": "", + "<1,35,2,2>": "", + "<1,35,2,3>": "" + }, + "<1,35,3>": { + "<1,35,3,1>": "", + "<1,35,3,2>": "", + "<1,35,3,3>": "" + }, + "<1,35,4>": { + "<1,35,4,1>": "", + "<1,35,4,2>": "", + "<1,35,4,3>": "" + }, + "<1,35,5>": { + "<1,35,5,1>": "", + "<1,35,5,2>": "", + "<1,35,5,3>": "" + }, + "<1,35,6>": { + "<1,35,6,1>": "", + "<1,35,6,2>": "", + "<1,35,6,3>": "" + }, + "<1,35,7>": { + "<1,35,7,1>": "", + "<1,35,7,2>": "", + "<1,35,7,3>": "" + }, + "<1,35,8>": { + "<1,35,8,1>": "", + "<1,35,8,2>": "", + "<1,35,8,3>": "" + }, + "<1,35,9>": { + "<1,35,9,1>": "", + "<1,35,9,2>": "", + "<1,35,9,3>": "" + }, + "<1,35,10>": { + "<1,35,10,1>": "", + "<1,35,10,2>": "", + "<1,35,10,3>": "" + }, + "<1,35,11>": { + "<1,35,11,1>": "", + "<1,35,11,2>": "", + "<1,35,11,3>": "" + }, + "<1,35,12>": { + "<1,35,12,1>": "", + "<1,35,12,2>": "", + "<1,35,12,3>": "" + }, + "<1,35,13>": { + "<1,35,13,1>": "", + "<1,35,13,2>": "", + "<1,35,13,3>": "" + }, + "<1,35,14>": { + "<1,35,14,1>": "", + "<1,35,14,2>": "", + "<1,35,14,3>": "" + }, + "<1,35,15>": { + "<1,35,15,1>": "", + "<1,35,15,2>": "", + "<1,35,15,3>": "" + }, + "<1,35,16>": { + "<1,35,16,1>": "", + "<1,35,16,2>": "", + "<1,35,16,3>": "" + }, + "<1,35,17>": { + "<1,35,17,1>": "", + "<1,35,17,2>": "", + "<1,35,17,3>": "" + }, + "<1,35,18>": { + "<1,35,18,1>": "", + "<1,35,18,2>": "", + "<1,35,18,3>": "" + }, + "<1,35,19>": { + "<1,35,19,1>": "", + "<1,35,19,2>": "", + "<1,35,19,3>": "" + }, + "<1,35,20>": { + "<1,35,20,1>": "", + "<1,35,20,2>": "", + "<1,35,20,3>": "" + }, + "<1,35,21>": { + "<1,35,21,1>": "", + "<1,35,21,2>": "", + "<1,35,21,3>": "" + }, + "<1,35,22>": { + "<1,35,22,1>": "", + "<1,35,22,2>": "", + "<1,35,22,3>": "" + }, + "<1,35,23>": { + "<1,35,23,1>": "", + "<1,35,23,2>": "", + "<1,35,23,3>": "" + }, + "<1,35,24>": { + "<1,35,24,1>": "", + "<1,35,24,2>": "", + "<1,35,24,3>": "" + }, + "<1,35,25>": { + "<1,35,25,1>": "", + "<1,35,25,2>": "", + "<1,35,25,3>": "" + }, + "<1,35,26>": { + "<1,35,26,1>": "", + "<1,35,26,2>": "", + "<1,35,26,3>": "" + }, + "<1,35,27>": { + "<1,35,27,1>": "", + "<1,35,27,2>": "", + "<1,35,27,3>": "" + }, + "<1,35,28>": { + "<1,35,28,1>": "", + "<1,35,28,2>": "", + "<1,35,28,3>": "" + }, + "<1,35,29>": { + "<1,35,29,1>": "", + "<1,35,29,2>": "", + "<1,35,29,3>": "" + }, + "<1,35,30>": { + "<1,35,30,1>": "", + "<1,35,30,2>": "", + "<1,35,30,3>": "" + }, + "<1,35,31>": { + "<1,35,31,1>": "", + "<1,35,31,2>": "", + "<1,35,31,3>": "" + } + }, + "<1,36>": "", + "<1,37>": "", + "<1,38>": "", + "<1,39>": { + "<1,39,1>": "80", + "<1,39,2>": "80", + "<1,39,3>": "80" + }, + "<1,40>": "3", + "<1,41>": { + "<1,41,1>": "0", + "<1,41,2>": "3", + "<1,41,3>": "1", + "<1,41,4>": "-2", + "<1,41,5>": "-2", + "<1,41,6>": "", + "<1,41,7>": "", + "<1,41,8>": "40", + "<1,41,9>": "113", + "<1,41,10>": "115", + "<1,41,11>": "0", + "<1,41,12>": "-2", + "<1,41,13>": "-1", + "<1,41,14>": "1" + }, + "<1,42>": { + "<1,42,1>": "2147483650", + "<1,42,2>": "2147483650", + "<1,42,3>": "2147483650" + }, + "<1,43>": { + "<1,43,1>": "120", + "<1,43,2>": "120", + "<1,43,3>": "120" + }, + "<1,44>": { + "<1,44,1>": "AD Username", + "<1,44,2>": "LSL Username", + "<1,44,3>": "Name" + }, + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<1,52>": "", + "<1,53>": "", + "<1,54>": "", + "<1,55>": { + "<1,55,1>": "", + "<1,55,2>": "", + "<1,55,3>": "" + }, + "<1,56>": { + "<1,56,1>": "", + "<1,56,2>": "", + "<1,56,3>": "" + }, + "<1,57>": { + "<1,57,1>": "", + "<1,57,2>": "", + "<1,57,3>": "" + }, + "<1,58>": { + "<1,58,1>": "", + "<1,58,2>": "", + "<1,58,3>": "" + }, + "<1,59>": "", + "<1,60>": { + "<1,60,1>": "4178", + "<1,60,2>": "4178", + "<1,60,3>": "4178" + }, + "<1,61>": "", + "<1,62>": "0", + "<1,63>": "", + "<1,64>": "-2", + "<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,94,1>": "", + "<1,94,2>": "", + "<1,94,3>": "" + }, + "<1,95>": { + "<1,95,1>": "", + "<1,95,2>": "", + "<1,95,3>": "" + }, + "<1,96>": { + "<1,96,1>": { + "<1,96,1,1>": "", + "<1,96,1,2>": "" + }, + "<1,96,2>": { + "<1,96,2,1>": "", + "<1,96,2,2>": "" + }, + "<1,96,3>": { + "<1,96,3,1>": "", + "<1,96,3,2>": "" + } + }, + "<1,97>": { + "<1,97,1>": { + "<1,97,1,1>": "Segoe UI", + "<1,97,1,2>": "-12", + "<1,97,1,3>": "400", + "<1,97,1,4>": "0", + "<1,97,1,5>": "0", + "<1,97,1,6>": "0", + "<1,97,1,7>": "0", + "<1,97,1,8>": "34", + "<1,97,1,9>": "0", + "<1,97,1,10>": "3", + "<1,97,1,11>": "2", + "<1,97,1,12>": "1" + }, + "<1,97,2>": { + "<1,97,2,1>": "Segoe UI", + "<1,97,2,2>": "-12", + "<1,97,2,3>": "400", + "<1,97,2,4>": "0", + "<1,97,2,5>": "0", + "<1,97,2,6>": "0", + "<1,97,2,7>": "0", + "<1,97,2,8>": "34", + "<1,97,2,9>": "0", + "<1,97,2,10>": "3", + "<1,97,2,11>": "2", + "<1,97,2,12>": "1" + }, + "<1,97,3>": { + "<1,97,3,1>": "Segoe UI", + "<1,97,3,2>": "-12", + "<1,97,3,3>": "400", + "<1,97,3,4>": "0", + "<1,97,3,5>": "0", + "<1,97,3,6>": "0", + "<1,97,3,7>": "0", + "<1,97,3,8>": "34", + "<1,97,3,9>": "0", + "<1,97,3,10>": "3", + "<1,97,3,11>": "2", + "<1,97,3,12>": "1" + } + }, + "<1,98>": { + "<1,98,1>": { + "<1,98,1,1>": "Segoe UI", + "<1,98,1,2>": "-12", + "<1,98,1,3>": "400", + "<1,98,1,4>": "0", + "<1,98,1,5>": "0", + "<1,98,1,6>": "0", + "<1,98,1,7>": "0", + "<1,98,1,8>": "34", + "<1,98,1,9>": "0", + "<1,98,1,10>": "3", + "<1,98,1,11>": "2", + "<1,98,1,12>": "1" + }, + "<1,98,2>": { + "<1,98,2,1>": "Segoe UI", + "<1,98,2,2>": "-12", + "<1,98,2,3>": "400", + "<1,98,2,4>": "0", + "<1,98,2,5>": "0", + "<1,98,2,6>": "0", + "<1,98,2,7>": "0", + "<1,98,2,8>": "34", + "<1,98,2,9>": "0", + "<1,98,2,10>": "3", + "<1,98,2,11>": "2", + "<1,98,2,12>": "1" + }, + "<1,98,3>": { + "<1,98,3,1>": "Segoe UI", + "<1,98,3,2>": "-12", + "<1,98,3,3>": "400", + "<1,98,3,4>": "0", + "<1,98,3,5>": "0", + "<1,98,3,6>": "0", + "<1,98,3,7>": "0", + "<1,98,3,8>": "34", + "<1,98,3,9>": "0", + "<1,98,3,10>": "3", + "<1,98,3,11>": "2", + "<1,98,3,12>": "1" + } + }, + "<1,99>": { + "<1,99,1>": { + "<1,99,1,1>": "-2", + "<1,99,1,2>": "-2", + "<1,99,1,3>": "-2", + "<1,99,1,4>": "0", + "<1,99,1,5>": "0", + "<1,99,1,6>": "0", + "<1,99,1,7>": "0" + }, + "<1,99,2>": { + "<1,99,2,1>": "-2", + "<1,99,2,2>": "-2", + "<1,99,2,3>": "-2", + "<1,99,2,4>": "0", + "<1,99,2,5>": "0", + "<1,99,2,6>": "0", + "<1,99,2,7>": "0" + }, + "<1,99,3>": { + "<1,99,3,1>": "-2", + "<1,99,3,2>": "-2", + "<1,99,3,3>": "-2", + "<1,99,3,4>": "0", + "<1,99,3,5>": "0", + "<1,99,3,6>": "0", + "<1,99,3,7>": "0" + }, + "<1,99,4>": { + "<1,99,4,1>": "-2", + "<1,99,4,2>": "-2", + "<1,99,4,3>": "-2", + "<1,99,4,4>": "0", + "<1,99,4,5>": "0", + "<1,99,4,6>": "0", + "<1,99,4,7>": "0" + }, + "<1,99,5>": { + "<1,99,5,1>": "-2", + "<1,99,5,2>": "-2", + "<1,99,5,3>": "-2", + "<1,99,5,4>": "0", + "<1,99,5,5>": "0", + "<1,99,5,6>": "0", + "<1,99,5,7>": "0" + }, + "<1,99,6>": { + "<1,99,6,1>": "-2", + "<1,99,6,2>": "-2", + "<1,99,6,3>": "-2", + "<1,99,6,4>": "0", + "<1,99,6,5>": "0", + "<1,99,6,6>": "0", + "<1,99,6,7>": "0" + }, + "<1,99,7>": { + "<1,99,7,1>": "-2", + "<1,99,7,2>": "-2", + "<1,99,7,3>": "-2", + "<1,99,7,4>": "0", + "<1,99,7,5>": "0", + "<1,99,7,6>": "0", + "<1,99,7,7>": "0" + }, + "<1,99,8>": "", + "<1,99,9>": "", + "<1,99,10>": "", + "<1,99,11>": { + "<1,99,11,1>": "-2", + "<1,99,11,2>": "-2", + "<1,99,11,3>": "-2", + "<1,99,11,4>": "0", + "<1,99,11,5>": "0", + "<1,99,11,6>": "0", + "<1,99,11,7>": "0" + }, + "<1,99,12>": { + "<1,99,12,1>": "-2", + "<1,99,12,2>": "-2", + "<1,99,12,3>": "-2", + "<1,99,12,4>": "0", + "<1,99,12,5>": "0", + "<1,99,12,6>": "0", + "<1,99,12,7>": "0" + }, + "<1,99,13>": { + "<1,99,13,1>": "-2", + "<1,99,13,2>": "-2", + "<1,99,13,3>": "-2", + "<1,99,13,4>": "0", + "<1,99,13,5>": "0", + "<1,99,13,6>": "0", + "<1,99,13,7>": "0" + }, + "<1,99,14>": { + "<1,99,14,1>": "-2", + "<1,99,14,2>": "-2", + "<1,99,14,3>": "-2", + "<1,99,14,4>": "0", + "<1,99,14,5>": "0", + "<1,99,14,6>": "0", + "<1,99,14,7>": "0" + }, + "<1,99,15>": { + "<1,99,15,1>": "-2", + "<1,99,15,2>": "-2", + "<1,99,15,3>": "-2", + "<1,99,15,4>": "0", + "<1,99,15,5>": "0", + "<1,99,15,6>": "0", + "<1,99,15,7>": "0" + }, + "<1,99,16>": { + "<1,99,16,1>": "-2", + "<1,99,16,2>": "-2", + "<1,99,16,3>": "-2", + "<1,99,16,4>": "0", + "<1,99,16,5>": "0", + "<1,99,16,6>": "0", + "<1,99,16,7>": "0" + }, + "<1,99,17>": { + "<1,99,17,1>": "-2", + "<1,99,17,2>": "-2", + "<1,99,17,3>": "-2", + "<1,99,17,4>": "0", + "<1,99,17,5>": "0", + "<1,99,17,6>": "0", + "<1,99,17,7>": "0" + }, + "<1,99,18>": "", + "<1,99,19>": "", + "<1,99,20>": "", + "<1,99,21>": { + "<1,99,21,1>": "-2", + "<1,99,21,2>": "-2", + "<1,99,21,3>": "-2", + "<1,99,21,4>": "0", + "<1,99,21,5>": "0", + "<1,99,21,6>": "0", + "<1,99,21,7>": "0" + }, + "<1,99,22>": { + "<1,99,22,1>": "-2", + "<1,99,22,2>": "-2", + "<1,99,22,3>": "-2", + "<1,99,22,4>": "0", + "<1,99,22,5>": "0", + "<1,99,22,6>": "0", + "<1,99,22,7>": "0" + }, + "<1,99,23>": { + "<1,99,23,1>": "-2", + "<1,99,23,2>": "-2", + "<1,99,23,3>": "-2", + "<1,99,23,4>": "0", + "<1,99,23,5>": "0", + "<1,99,23,6>": "0", + "<1,99,23,7>": "0" + }, + "<1,99,24>": { + "<1,99,24,1>": "-2", + "<1,99,24,2>": "-2", + "<1,99,24,3>": "-2", + "<1,99,24,4>": "0", + "<1,99,24,5>": "0", + "<1,99,24,6>": "0", + "<1,99,24,7>": "0" + }, + "<1,99,25>": { + "<1,99,25,1>": "-2", + "<1,99,25,2>": "-2", + "<1,99,25,3>": "-2", + "<1,99,25,4>": "0", + "<1,99,25,5>": "0", + "<1,99,25,6>": "0", + "<1,99,25,7>": "0" + }, + "<1,99,26>": { + "<1,99,26,1>": "-2", + "<1,99,26,2>": "-2", + "<1,99,26,3>": "-2", + "<1,99,26,4>": "0", + "<1,99,26,5>": "0", + "<1,99,26,6>": "0", + "<1,99,26,7>": "0" + }, + "<1,99,27>": { + "<1,99,27,1>": "-2", + "<1,99,27,2>": "-2", + "<1,99,27,3>": "-2", + "<1,99,27,4>": "0", + "<1,99,27,5>": "0", + "<1,99,27,6>": "0", + "<1,99,27,7>": "0" + } + }, + "<1,100>": { + "<1,100,1>": "", + "<1,100,2>": "", + "<1,100,3>": "" + }, + "<1,101>": "", + "<1,102>": "", + "<1,103>": "", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "", + "<1,107>": "", + "<1,108>": "" + }, + "<2>": { + "<2,1>": "EDT_AD_GROUPS", + "<2,2>": "", + "<2,3>": "EDITTABLE", + "<2,4>": "NDW_ACTIVE_DIRECTORY_GROUPS", + "<2,5>": "17", + "<2,6>": "28", + "<2,7>": "-490", + "<2,8>": "-53", + "<2,9>": "", + "<2,10>": { + "<2,10,1>": "0x560001D0", + "<2,10,2>": "0x200" + }, + "<2,11>": { + "<2,11,1>": "0xC000", + "<2,11,2>": "0x80000002" + }, + "<2,12>": "3", + "<2,13>": { + "<2,13,1>": "-2", + "<2,13,2>": "-2", + "<2,13,3>": "" + }, + "<2,14>": "-2", + "<2,15>": { + "<2,15,1>": { + "<2,15,1,1>": "Segoe UI", + "<2,15,1,2>": "-12", + "<2,15,1,3>": "400", + "<2,15,1,4>": "0", + "<2,15,1,5>": "0", + "<2,15,1,6>": "0", + "<2,15,1,7>": "0", + "<2,15,1,8>": "34", + "<2,15,1,9>": "0", + "<2,15,1,10>": "3", + "<2,15,1,11>": "2", + "<2,15,1,12>": "1" + } + }, + "<2,16>": "", + "<2,17>": "", + "<2,18>": { + "<2,18,1>": { + "<2,18,1,1>": "X", + "<2,18,1,2>": "EXECUTE", + "<2,18,1,3>": "@WINDOW_EVENTS", + "<2,18,1,4>": { + "<2,18,1,4,1>": "@SELF", + "<2,18,1,4,2>": "@EVENT", + "<2,18,1,4,3>": "@PARAM1", + "<2,18,1,4,4>": "@PARAM2", + "<2,18,1,4,5>": "@PARAM3", + "<2,18,1,4,6>": "@PARAM4", + "<2,18,1,4,7>": "@PARAM5", + "<2,18,1,4,8>": "@PARAM6" + }, + "<2,18,1,5>": "", + "<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>": "COMMEVT", + "<2,18,1,16>": "0" + } + }, + "<2,19>": "ROWSELCHANGED", + "<2,20>": "", + "<2,21>": "", + "<2,22>": "", + "<2,23>": { + "<2,23,1>": "", + "<2,23,2>": "", + "<2,23,3>": "", + "<2,23,4>": "" + }, + "<2,24>": { + "<2,24,1>": "", + "<2,24,2>": "", + "<2,24,3>": "", + "<2,24,4>": "" + }, + "<2,25>": "", + "<2,26>": "", + "<2,27>": "", + "<2,28>": { + "<2,28,1>": "", + "<2,28,2>": "", + "<2,28,3>": "", + "<2,28,4>": "" + }, + "<2,29>": { + "<2,29,1>": "", + "<2,29,2>": "", + "<2,29,3>": "", + "<2,29,4>": "" + }, + "<2,30>": { + "<2,30,1>": "<>", + "<2,30,2>": "<>", + "<2,30,3>": "<>", + "<2,30,4>": "<>" + }, + "<2,31>": { + "<2,31,1>": "0", + "<2,31,2>": "0", + "<2,31,3>": "0", + "<2,31,4>": "0" + }, + "<2,32>": "", + "<2,33>": "", + "<2,34>": "", + "<2,35>": { + "<2,35,1>": { + "<2,35,1,1>": "", + "<2,35,1,2>": "", + "<2,35,1,3>": "", + "<2,35,1,4>": "" + }, + "<2,35,2>": { + "<2,35,2,1>": "", + "<2,35,2,2>": "", + "<2,35,2,3>": "", + "<2,35,2,4>": "" + }, + "<2,35,3>": { + "<2,35,3,1>": "", + "<2,35,3,2>": "", + "<2,35,3,3>": "", + "<2,35,3,4>": "" + }, + "<2,35,4>": { + "<2,35,4,1>": "", + "<2,35,4,2>": "", + "<2,35,4,3>": "", + "<2,35,4,4>": "" + }, + "<2,35,5>": { + "<2,35,5,1>": "", + "<2,35,5,2>": "", + "<2,35,5,3>": "", + "<2,35,5,4>": "" + }, + "<2,35,6>": { + "<2,35,6,1>": "", + "<2,35,6,2>": "", + "<2,35,6,3>": "", + "<2,35,6,4>": "" + }, + "<2,35,7>": { + "<2,35,7,1>": "", + "<2,35,7,2>": "", + "<2,35,7,3>": "", + "<2,35,7,4>": "" + }, + "<2,35,8>": { + "<2,35,8,1>": "", + "<2,35,8,2>": "", + "<2,35,8,3>": "", + "<2,35,8,4>": "" + }, + "<2,35,9>": { + "<2,35,9,1>": "", + "<2,35,9,2>": "", + "<2,35,9,3>": "", + "<2,35,9,4>": "" + }, + "<2,35,10>": { + "<2,35,10,1>": "", + "<2,35,10,2>": "", + "<2,35,10,3>": "", + "<2,35,10,4>": "" + }, + "<2,35,11>": { + "<2,35,11,1>": "", + "<2,35,11,2>": "", + "<2,35,11,3>": "", + "<2,35,11,4>": "" + }, + "<2,35,12>": { + "<2,35,12,1>": "", + "<2,35,12,2>": "", + "<2,35,12,3>": "", + "<2,35,12,4>": "" + }, + "<2,35,13>": { + "<2,35,13,1>": "", + "<2,35,13,2>": "", + "<2,35,13,3>": "", + "<2,35,13,4>": "" + }, + "<2,35,14>": { + "<2,35,14,1>": "", + "<2,35,14,2>": "", + "<2,35,14,3>": "", + "<2,35,14,4>": "" + }, + "<2,35,15>": { + "<2,35,15,1>": "", + "<2,35,15,2>": "", + "<2,35,15,3>": "", + "<2,35,15,4>": "" + }, + "<2,35,16>": { + "<2,35,16,1>": "", + "<2,35,16,2>": "", + "<2,35,16,3>": "", + "<2,35,16,4>": "" + }, + "<2,35,17>": { + "<2,35,17,1>": "", + "<2,35,17,2>": "", + "<2,35,17,3>": "", + "<2,35,17,4>": "" + }, + "<2,35,18>": { + "<2,35,18,1>": "", + "<2,35,18,2>": "", + "<2,35,18,3>": "", + "<2,35,18,4>": "" + }, + "<2,35,19>": { + "<2,35,19,1>": "", + "<2,35,19,2>": "", + "<2,35,19,3>": "", + "<2,35,19,4>": "" + }, + "<2,35,20>": { + "<2,35,20,1>": "", + "<2,35,20,2>": "", + "<2,35,20,3>": "", + "<2,35,20,4>": "" + }, + "<2,35,21>": { + "<2,35,21,1>": "", + "<2,35,21,2>": "", + "<2,35,21,3>": "", + "<2,35,21,4>": "" + }, + "<2,35,22>": { + "<2,35,22,1>": "", + "<2,35,22,2>": "", + "<2,35,22,3>": "", + "<2,35,22,4>": "" + }, + "<2,35,23>": { + "<2,35,23,1>": "", + "<2,35,23,2>": "", + "<2,35,23,3>": "", + "<2,35,23,4>": "" + }, + "<2,35,24>": { + "<2,35,24,1>": "", + "<2,35,24,2>": "", + "<2,35,24,3>": "", + "<2,35,24,4>": "" + }, + "<2,35,25>": { + "<2,35,25,1>": "", + "<2,35,25,2>": "", + "<2,35,25,3>": "", + "<2,35,25,4>": "" + }, + "<2,35,26>": { + "<2,35,26,1>": "", + "<2,35,26,2>": "", + "<2,35,26,3>": "", + "<2,35,26,4>": "" + }, + "<2,35,27>": { + "<2,35,27,1>": "", + "<2,35,27,2>": "", + "<2,35,27,3>": "", + "<2,35,27,4>": "" + }, + "<2,35,28>": { + "<2,35,28,1>": "", + "<2,35,28,2>": "", + "<2,35,28,3>": "", + "<2,35,28,4>": "" + }, + "<2,35,29>": { + "<2,35,29,1>": "", + "<2,35,29,2>": "", + "<2,35,29,3>": "", + "<2,35,29,4>": "" + }, + "<2,35,30>": { + "<2,35,30,1>": "", + "<2,35,30,2>": "", + "<2,35,30,3>": "", + "<2,35,30,4>": "" + }, + "<2,35,31>": { + "<2,35,31,1>": "", + "<2,35,31,2>": "", + "<2,35,31,3>": "", + "<2,35,31,4>": "" + } + }, + "<2,36>": "", + "<2,37>": "", + "<2,38>": "", + "<2,39>": { + "<2,39,1>": "80", + "<2,39,2>": "240", + "<2,39,3>": "80", + "<2,39,4>": "80" + }, + "<2,40>": "4", + "<2,41>": { + "<2,41,1>": "0", + "<2,41,2>": "3", + "<2,41,3>": "1", + "<2,41,4>": "-2", + "<2,41,5>": "-2", + "<2,41,6>": "", + "<2,41,7>": "", + "<2,41,8>": "40", + "<2,41,9>": "113", + "<2,41,10>": "115", + "<2,41,11>": "0", + "<2,41,12>": "-2", + "<2,41,13>": "-1", + "<2,41,14>": "1" + }, + "<2,42>": { + "<2,42,1>": "2147483648", + "<2,42,2>": "2147483650", + "<2,42,3>": "2147483650", + "<2,42,4>": "2147483650" + }, + "<2,43>": { + "<2,43,1>": "30", + "<2,43,2>": "240", + "<2,43,3>": "120", + "<2,43,4>": "80" + }, + "<2,44>": { + "<2,44,1>": "", + "<2,44,2>": "Name", + "<2,44,3>": "Description", + "<2,44,4>": "Type" + }, + "<2,45>": "", + "<2,46>": "", + "<2,47>": "", + "<2,48>": "", + "<2,49>": "", + "<2,50>": "", + "<2,51>": "", + "<2,52>": "", + "<2,53>": "", + "<2,54>": "", + "<2,55>": { + "<2,55,1>": "", + "<2,55,2>": "", + "<2,55,3>": "", + "<2,55,4>": "" + }, + "<2,56>": { + "<2,56,1>": "", + "<2,56,2>": "", + "<2,56,3>": "", + "<2,56,4>": "" + }, + "<2,57>": { + "<2,57,1>": "", + "<2,57,2>": "", + "<2,57,3>": "", + "<2,57,4>": "" + }, + "<2,58>": { + "<2,58,1>": "", + "<2,58,2>": "", + "<2,58,3>": "", + "<2,58,4>": "" + }, + "<2,59>": "", + "<2,60>": { + "<2,60,1>": "4178", + "<2,60,2>": "4178", + "<2,60,3>": "4178", + "<2,60,4>": "4178" + }, + "<2,61>": "", + "<2,62>": "0", + "<2,63>": "", + "<2,64>": "-2", + "<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,94,1>": "", + "<2,94,2>": "", + "<2,94,3>": "", + "<2,94,4>": "" + }, + "<2,95>": { + "<2,95,1>": "", + "<2,95,2>": "", + "<2,95,3>": "", + "<2,95,4>": "" + }, + "<2,96>": { + "<2,96,1>": { + "<2,96,1,1>": "", + "<2,96,1,2>": "" + }, + "<2,96,2>": { + "<2,96,2,1>": "", + "<2,96,2,2>": "" + }, + "<2,96,3>": { + "<2,96,3,1>": "", + "<2,96,3,2>": "" + }, + "<2,96,4>": { + "<2,96,4,1>": "", + "<2,96,4,2>": "" + } + }, + "<2,97>": { + "<2,97,1>": { + "<2,97,1,1>": "Segoe UI", + "<2,97,1,2>": "-12", + "<2,97,1,3>": "400", + "<2,97,1,4>": "0", + "<2,97,1,5>": "0", + "<2,97,1,6>": "0", + "<2,97,1,7>": "0", + "<2,97,1,8>": "34", + "<2,97,1,9>": "0", + "<2,97,1,10>": "3", + "<2,97,1,11>": "2", + "<2,97,1,12>": "1" + }, + "<2,97,2>": { + "<2,97,2,1>": "Segoe UI", + "<2,97,2,2>": "-12", + "<2,97,2,3>": "400", + "<2,97,2,4>": "0", + "<2,97,2,5>": "0", + "<2,97,2,6>": "0", + "<2,97,2,7>": "0", + "<2,97,2,8>": "34", + "<2,97,2,9>": "0", + "<2,97,2,10>": "3", + "<2,97,2,11>": "2", + "<2,97,2,12>": "1" + }, + "<2,97,3>": { + "<2,97,3,1>": "Segoe UI", + "<2,97,3,2>": "-12", + "<2,97,3,3>": "400", + "<2,97,3,4>": "0", + "<2,97,3,5>": "0", + "<2,97,3,6>": "0", + "<2,97,3,7>": "0", + "<2,97,3,8>": "34", + "<2,97,3,9>": "0", + "<2,97,3,10>": "3", + "<2,97,3,11>": "2", + "<2,97,3,12>": "1" + }, + "<2,97,4>": { + "<2,97,4,1>": "Segoe UI", + "<2,97,4,2>": "-12", + "<2,97,4,3>": "400", + "<2,97,4,4>": "0", + "<2,97,4,5>": "0", + "<2,97,4,6>": "0", + "<2,97,4,7>": "0", + "<2,97,4,8>": "34", + "<2,97,4,9>": "0", + "<2,97,4,10>": "3", + "<2,97,4,11>": "2", + "<2,97,4,12>": "1" + } + }, + "<2,98>": { + "<2,98,1>": { + "<2,98,1,1>": "Segoe UI", + "<2,98,1,2>": "-12", + "<2,98,1,3>": "400", + "<2,98,1,4>": "0", + "<2,98,1,5>": "0", + "<2,98,1,6>": "0", + "<2,98,1,7>": "0", + "<2,98,1,8>": "34", + "<2,98,1,9>": "0", + "<2,98,1,10>": "3", + "<2,98,1,11>": "2", + "<2,98,1,12>": "1" + }, + "<2,98,2>": { + "<2,98,2,1>": "Segoe UI", + "<2,98,2,2>": "-12", + "<2,98,2,3>": "400", + "<2,98,2,4>": "0", + "<2,98,2,5>": "0", + "<2,98,2,6>": "0", + "<2,98,2,7>": "0", + "<2,98,2,8>": "34", + "<2,98,2,9>": "0", + "<2,98,2,10>": "3", + "<2,98,2,11>": "2", + "<2,98,2,12>": "1" + }, + "<2,98,3>": { + "<2,98,3,1>": "Segoe UI", + "<2,98,3,2>": "-12", + "<2,98,3,3>": "400", + "<2,98,3,4>": "0", + "<2,98,3,5>": "0", + "<2,98,3,6>": "0", + "<2,98,3,7>": "0", + "<2,98,3,8>": "34", + "<2,98,3,9>": "0", + "<2,98,3,10>": "3", + "<2,98,3,11>": "2", + "<2,98,3,12>": "1" + }, + "<2,98,4>": { + "<2,98,4,1>": "Segoe UI", + "<2,98,4,2>": "-12", + "<2,98,4,3>": "400", + "<2,98,4,4>": "0", + "<2,98,4,5>": "0", + "<2,98,4,6>": "0", + "<2,98,4,7>": "0", + "<2,98,4,8>": "34", + "<2,98,4,9>": "0", + "<2,98,4,10>": "3", + "<2,98,4,11>": "2", + "<2,98,4,12>": "1" + } + }, + "<2,99>": { + "<2,99,1>": { + "<2,99,1,1>": "-2", + "<2,99,1,2>": "-2", + "<2,99,1,3>": "-2", + "<2,99,1,4>": "0", + "<2,99,1,5>": "0", + "<2,99,1,6>": "0", + "<2,99,1,7>": "0" + }, + "<2,99,2>": { + "<2,99,2,1>": "-2", + "<2,99,2,2>": "-2", + "<2,99,2,3>": "-2", + "<2,99,2,4>": "0", + "<2,99,2,5>": "0", + "<2,99,2,6>": "0", + "<2,99,2,7>": "0" + }, + "<2,99,3>": { + "<2,99,3,1>": "-2", + "<2,99,3,2>": "-2", + "<2,99,3,3>": "-2", + "<2,99,3,4>": "0", + "<2,99,3,5>": "0", + "<2,99,3,6>": "0", + "<2,99,3,7>": "0" + }, + "<2,99,4>": { + "<2,99,4,1>": "-2", + "<2,99,4,2>": "-2", + "<2,99,4,3>": "-2", + "<2,99,4,4>": "0", + "<2,99,4,5>": "0", + "<2,99,4,6>": "0", + "<2,99,4,7>": "0" + }, + "<2,99,5>": { + "<2,99,5,1>": "-2", + "<2,99,5,2>": "-2", + "<2,99,5,3>": "-2", + "<2,99,5,4>": "0", + "<2,99,5,5>": "0", + "<2,99,5,6>": "0", + "<2,99,5,7>": "0" + }, + "<2,99,6>": { + "<2,99,6,1>": "-2", + "<2,99,6,2>": "-2", + "<2,99,6,3>": "-2", + "<2,99,6,4>": "0", + "<2,99,6,5>": "0", + "<2,99,6,6>": "0", + "<2,99,6,7>": "0" + }, + "<2,99,7>": { + "<2,99,7,1>": "-2", + "<2,99,7,2>": "-2", + "<2,99,7,3>": "-2", + "<2,99,7,4>": "0", + "<2,99,7,5>": "0", + "<2,99,7,6>": "0", + "<2,99,7,7>": "0" + }, + "<2,99,8>": "", + "<2,99,9>": "", + "<2,99,10>": "", + "<2,99,11>": { + "<2,99,11,1>": "-2", + "<2,99,11,2>": "-2", + "<2,99,11,3>": "-2", + "<2,99,11,4>": "0", + "<2,99,11,5>": "0", + "<2,99,11,6>": "0", + "<2,99,11,7>": "0" + }, + "<2,99,12>": { + "<2,99,12,1>": "-2", + "<2,99,12,2>": "-2", + "<2,99,12,3>": "-2", + "<2,99,12,4>": "0", + "<2,99,12,5>": "0", + "<2,99,12,6>": "0", + "<2,99,12,7>": "0" + }, + "<2,99,13>": { + "<2,99,13,1>": "-2", + "<2,99,13,2>": "-2", + "<2,99,13,3>": "-2", + "<2,99,13,4>": "0", + "<2,99,13,5>": "0", + "<2,99,13,6>": "0", + "<2,99,13,7>": "0" + }, + "<2,99,14>": { + "<2,99,14,1>": "-2", + "<2,99,14,2>": "-2", + "<2,99,14,3>": "-2", + "<2,99,14,4>": "0", + "<2,99,14,5>": "0", + "<2,99,14,6>": "0", + "<2,99,14,7>": "0" + }, + "<2,99,15>": { + "<2,99,15,1>": "-2", + "<2,99,15,2>": "-2", + "<2,99,15,3>": "-2", + "<2,99,15,4>": "0", + "<2,99,15,5>": "0", + "<2,99,15,6>": "0", + "<2,99,15,7>": "0" + }, + "<2,99,16>": { + "<2,99,16,1>": "-2", + "<2,99,16,2>": "-2", + "<2,99,16,3>": "-2", + "<2,99,16,4>": "0", + "<2,99,16,5>": "0", + "<2,99,16,6>": "0", + "<2,99,16,7>": "0" + }, + "<2,99,17>": { + "<2,99,17,1>": "-2", + "<2,99,17,2>": "-2", + "<2,99,17,3>": "-2", + "<2,99,17,4>": "0", + "<2,99,17,5>": "0", + "<2,99,17,6>": "0", + "<2,99,17,7>": "0" + }, + "<2,99,18>": "", + "<2,99,19>": "", + "<2,99,20>": "", + "<2,99,21>": { + "<2,99,21,1>": "-2", + "<2,99,21,2>": "-2", + "<2,99,21,3>": "-2", + "<2,99,21,4>": "0", + "<2,99,21,5>": "0", + "<2,99,21,6>": "0", + "<2,99,21,7>": "0" + }, + "<2,99,22>": { + "<2,99,22,1>": "-2", + "<2,99,22,2>": "-2", + "<2,99,22,3>": "-2", + "<2,99,22,4>": "0", + "<2,99,22,5>": "0", + "<2,99,22,6>": "0", + "<2,99,22,7>": "0" + }, + "<2,99,23>": { + "<2,99,23,1>": "-2", + "<2,99,23,2>": "-2", + "<2,99,23,3>": "-2", + "<2,99,23,4>": "0", + "<2,99,23,5>": "0", + "<2,99,23,6>": "0", + "<2,99,23,7>": "0" + }, + "<2,99,24>": { + "<2,99,24,1>": "-2", + "<2,99,24,2>": "-2", + "<2,99,24,3>": "-2", + "<2,99,24,4>": "0", + "<2,99,24,5>": "0", + "<2,99,24,6>": "0", + "<2,99,24,7>": "0" + }, + "<2,99,25>": { + "<2,99,25,1>": "-2", + "<2,99,25,2>": "-2", + "<2,99,25,3>": "-2", + "<2,99,25,4>": "0", + "<2,99,25,5>": "0", + "<2,99,25,6>": "0", + "<2,99,25,7>": "0" + }, + "<2,99,26>": { + "<2,99,26,1>": "-2", + "<2,99,26,2>": "-2", + "<2,99,26,3>": "-2", + "<2,99,26,4>": "0", + "<2,99,26,5>": "0", + "<2,99,26,6>": "0", + "<2,99,26,7>": "0" + }, + "<2,99,27>": { + "<2,99,27,1>": "-2", + "<2,99,27,2>": "-2", + "<2,99,27,3>": "-2", + "<2,99,27,4>": "0", + "<2,99,27,5>": "0", + "<2,99,27,6>": "0", + "<2,99,27,7>": "0" + } + }, + "<2,100>": { + "<2,100,1>": "", + "<2,100,2>": "", + "<2,100,3>": "", + "<2,100,4>": "" + }, + "<2,101>": "", + "<2,102>": "", + "<2,103>": "", + "<2,104>": "", + "<2,105>": "", + "<2,106>": "", + "<2,107>": "", + "<2,108>": "" + }, + "<3>": { + "<3,1>": "PUB_CANCEL", + "<3,2>": "", + "<3,3>": "PUSHBUTTON", + "<3,4>": "NDW_ACTIVE_DIRECTORY_GROUPS", + "<3,5>": "-223", + "<3,6>": "-40", + "<3,7>": "96", + "<3,8>": "28", + "<3,9>": "Cancel", + "<3,10>": { + "<3,10,1>": "0x56002300", + "<3,10,2>": "0x0" + }, + "<3,11>": { + "<3,11,1>": "0x3000", + "<3,11,2>": "0x80000000" + }, + "<3,12>": "2", + "<3,13>": { + "<3,13,1>": "-2", + "<3,13,2>": "-2", + "<3,13,3>": "0" + }, + "<3,14>": "-2", + "<3,15>": { + "<3,15,1>": { + "<3,15,1,1>": "Segoe UI", + "<3,15,1,2>": "-12", + "<3,15,1,3>": "400", + "<3,15,1,4>": "0", + "<3,15,1,5>": "0", + "<3,15,1,6>": "0", + "<3,15,1,7>": "0", + "<3,15,1,8>": "34", + "<3,15,1,9>": "0", + "<3,15,1,10>": "3", + "<3,15,1,11>": "2", + "<3,15,1,12>": "1" + } + }, + "<3,16>": "", + "<3,17>": "", + "<3,18>": { + "<3,18,1>": { + "<3,18,1,1>": "X", + "<3,18,1,2>": "EXECUTE", + "<3,18,1,3>": "@WINDOW_EVENTS", + "<3,18,1,4>": { + "<3,18,1,4,1>": "@SELF", + "<3,18,1,4,2>": "@EVENT", + "<3,18,1,4,3>": "@PARAM1", + "<3,18,1,4,4>": "@PARAM2", + "<3,18,1,4,5>": "@PARAM3", + "<3,18,1,4,6>": "@PARAM4", + "<3,18,1,4,7>": "@PARAM5", + "<3,18,1,4,8>": "@PARAM6" + }, + "<3,18,1,5>": "", + "<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>": "COMMEVT", + "<3,18,1,16>": "0" + } + }, + "<3,19>": "CLICK", + "<3,20>": "", + "<3,21>": "", + "<3,22>": "", + "<3,23>": "", + "<3,24>": "", + "<3,25>": "", + "<3,26>": "", + "<3,27>": "", + "<3,28>": "", + "<3,29>": "", + "<3,30>": "", + "<3,31>": "", + "<3,32>": "", + "<3,33>": "", + "<3,34>": "", + "<3,35>": "", + "<3,36>": "", + "<3,37>": "", + "<3,38>": "", + "<3,39>": "", + "<3,40>": "-1", + "<3,41>": { + "<3,41,1>": "", + "<3,41,2>": "-1" + }, + "<3,42>": "", + "<3,43>": "", + "<3,44>": "", + "<3,45>": "", + "<3,46>": "", + "<3,47>": "", + "<3,48>": "", + "<3,49>": "", + "<3,50>": "", + "<3,51>": "", + "<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,64,1>": "-2", + "<3,64,2>": "-2", + "<3,64,3>": "0" + }, + "<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>": "PUB_OK", + "<4,2>": "", + "<4,3>": "PUSHBUTTON", + "<4,4>": "NDW_ACTIVE_DIRECTORY_GROUPS", + "<4,5>": "-111", + "<4,6>": "-40", + "<4,7>": "96", + "<4,8>": "28", + "<4,9>": "OK", + "<4,10>": { + "<4,10,1>": "0x56002300", + "<4,10,2>": "0x0" + }, + "<4,11>": { + "<4,11,1>": "0x3004", + "<4,11,2>": "0x80000000" + }, + "<4,12>": "1", + "<4,13>": { + "<4,13,1>": "-2", + "<4,13,2>": "-2", + "<4,13,3>": "0" + }, + "<4,14>": "-2", + "<4,15>": { + "<4,15,1>": { + "<4,15,1,1>": "Segoe UI", + "<4,15,1,2>": "-12", + "<4,15,1,3>": "400", + "<4,15,1,4>": "0", + "<4,15,1,5>": "0", + "<4,15,1,6>": "0", + "<4,15,1,7>": "0", + "<4,15,1,8>": "34", + "<4,15,1,9>": "0", + "<4,15,1,10>": "3", + "<4,15,1,11>": "2", + "<4,15,1,12>": "1" + } + }, + "<4,16>": "", + "<4,17>": "", + "<4,18>": { + "<4,18,1>": { + "<4,18,1,1>": "X", + "<4,18,1,2>": "EXECUTE", + "<4,18,1,3>": "@WINDOW_EVENTS", + "<4,18,1,4>": { + "<4,18,1,4,1>": "@SELF", + "<4,18,1,4,2>": "@EVENT", + "<4,18,1,4,3>": "@PARAM1", + "<4,18,1,4,4>": "@PARAM2", + "<4,18,1,4,5>": "@PARAM3", + "<4,18,1,4,6>": "@PARAM4", + "<4,18,1,4,7>": "@PARAM5", + "<4,18,1,4,8>": "@PARAM6" + }, + "<4,18,1,5>": "", + "<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>": "COMMEVT", + "<4,18,1,16>": "0" + } + }, + "<4,19>": "CLICK", + "<4,20>": "", + "<4,21>": "", + "<4,22>": "", + "<4,23>": "", + "<4,24>": "", + "<4,25>": "", + "<4,26>": "", + "<4,27>": "", + "<4,28>": "", + "<4,29>": "", + "<4,30>": "", + "<4,31>": "", + "<4,32>": "", + "<4,33>": "", + "<4,34>": "", + "<4,35>": "", + "<4,36>": "", + "<4,37>": "", + "<4,38>": "", + "<4,39>": "", + "<4,40>": "-1", + "<4,41>": { + "<4,41,1>": "", + "<4,41,2>": "-1" + }, + "<4,42>": "", + "<4,43>": "", + "<4,44>": "", + "<4,45>": "", + "<4,46>": "", + "<4,47>": "", + "<4,48>": "", + "<4,49>": "", + "<4,50>": "", + "<4,51>": "", + "<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,64,1>": "-2", + "<4,64,2>": "-2", + "<4,64,3>": "0" + }, + "<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>": "" + } + }, + "record4": { + "<1>": "" + } + } +} \ No newline at end of file diff --git a/LSL2/OIWIN/NDW_MAIN.json b/LSL2/OIWIN/NDW_MAIN.json index 46ad90c..fd15a0d 100644 --- a/LSL2/OIWIN/NDW_MAIN.json +++ b/LSL2/OIWIN/NDW_MAIN.json @@ -10391,13 +10391,23 @@ "<2,2,166>": { "<2,2,166,1>": "R", "<2,2,166,2>": "EXECUTE", - "<2,2,166,3>": "LSL2*OIWINEXE**NOTIFICATION", + "<2,2,166,3>": "LSL2*OIWINEXE**NDW_NOTIFICATION", "<2,2,166,4>": { - "<2,2,166,4,1>": "", + "<2,2,166,4,1>": "CreateParam", "<2,2,166,4,2>": "@WINDOW" }, "<2,2,166,5>": "", - "<2,2,166,6>": "" + "<2,2,166,6>": "", + "<2,2,166,7>": "", + "<2,2,166,8>": "", + "<2,2,166,9>": "", + "<2,2,166,10>": "", + "<2,2,166,11>": "", + "<2,2,166,12>": "", + "<2,2,166,13>": "", + "<2,2,166,14>": "", + "<2,2,166,15>": "STARTWIN", + "<2,2,166,16>": "0" }, "<2,2,167>": { "<2,2,167,1>": "R", diff --git a/LSL2/OIWIN/NDW_NOTIFICATION.json b/LSL2/OIWIN/NDW_NOTIFICATION.json new file mode 100644 index 0000000..86c720e --- /dev/null +++ b/LSL2/OIWIN/NDW_NOTIFICATION.json @@ -0,0 +1,5457 @@ +{ + "header": { + "version": 1, + "type": "record" + }, + "body": { + "record1": { + "<1>": "1010", + "<2>": "23", + "<3>": "" + }, + "record2": { + "<1>": { + "<1,1>": "NDW_NOTIFICATION", + "<1,2>": "", + "<1,3>": "WINDOW", + "<1,4>": "", + "<1,5>": "61", + "<1,6>": "144", + "<1,7>": "-1200", + "<1,8>": "-662", + "<1,9>": "Notifications", + "<1,10>": { + "<1,10,1>": "0x84CF0000", + "<1,10,2>": "0x100" + }, + "<1,11>": { + "<1,11,1>": "0x8100", + "<1,11,2>": "0x80000000" + }, + "<1,12>": "", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "", + "<1,15>": "", + "<1,16>": "", + "<1,17>": "", + "<1,18>": { + "<1,18,1>": { + "<1,18,1,1>": "X", + "<1,18,1,2>": "EXECUTE", + "<1,18,1,3>": "@WINDOW_EVENTS", + "<1,18,1,4>": { + "<1,18,1,4,1>": "@SELF", + "<1,18,1,4,2>": "@EVENT", + "<1,18,1,4,3>": "@PARAM1", + "<1,18,1,4,4>": "@PARAM2", + "<1,18,1,4,5>": "@PARAM3", + "<1,18,1,4,6>": "@PARAM4", + "<1,18,1,4,7>": "@PARAM5", + "<1,18,1,4,8>": "@PARAM6" + }, + "<1,18,1,5>": "", + "<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>": "COMMEVT", + "<1,18,1,16>": "0" + }, + "<1,18,2>": { + "<1,18,2,1>": "X", + "<1,18,2,2>": "EXECUTE", + "<1,18,2,3>": "@WINDOW_EVENTS", + "<1,18,2,4>": { + "<1,18,2,4,1>": "@SELF", + "<1,18,2,4,2>": "@EVENT", + "<1,18,2,4,3>": "@PARAM1", + "<1,18,2,4,4>": "@PARAM2", + "<1,18,2,4,5>": "@PARAM3", + "<1,18,2,4,6>": "@PARAM4", + "<1,18,2,4,7>": "@PARAM5", + "<1,18,2,4,8>": "@PARAM6" + }, + "<1,18,2,5>": "", + "<1,18,2,6>": "", + "<1,18,2,7>": "", + "<1,18,2,8>": "", + "<1,18,2,9>": "", + "<1,18,2,10>": "", + "<1,18,2,11>": "", + "<1,18,2,12>": "", + "<1,18,2,13>": "", + "<1,18,2,14>": "", + "<1,18,2,15>": "COMMEVT", + "<1,18,2,16>": "0" + }, + "<1,18,3>": { + "<1,18,3,1>": "X", + "<1,18,3,2>": "EXECUTE", + "<1,18,3,3>": "@WINDOW_EVENTS", + "<1,18,3,4>": { + "<1,18,3,4,1>": "@SELF", + "<1,18,3,4,2>": "@EVENT", + "<1,18,3,4,3>": "@PARAM1", + "<1,18,3,4,4>": "@PARAM2", + "<1,18,3,4,5>": "@PARAM3", + "<1,18,3,4,6>": "@PARAM4", + "<1,18,3,4,7>": "@PARAM5", + "<1,18,3,4,8>": "@PARAM6" + }, + "<1,18,3,5>": "", + "<1,18,3,6>": "", + "<1,18,3,7>": "", + "<1,18,3,8>": "", + "<1,18,3,9>": "", + "<1,18,3,10>": "", + "<1,18,3,11>": "", + "<1,18,3,12>": "", + "<1,18,3,13>": "", + "<1,18,3,14>": "", + "<1,18,3,15>": "COMMEVT", + "<1,18,3,16>": "0" + }, + "<1,18,4>": { + "<1,18,4,1>": "X", + "<1,18,4,2>": "EXECUTE", + "<1,18,4,3>": "@WINDOW_EVENTS", + "<1,18,4,4>": { + "<1,18,4,4,1>": "@SELF", + "<1,18,4,4,2>": "@EVENT", + "<1,18,4,4,3>": "@PARAM1", + "<1,18,4,4,4>": "@PARAM2", + "<1,18,4,4,5>": "@PARAM3", + "<1,18,4,4,6>": "@PARAM4", + "<1,18,4,4,7>": "@PARAM5", + "<1,18,4,4,8>": "@PARAM6" + }, + "<1,18,4,5>": "", + "<1,18,4,6>": "", + "<1,18,4,7>": "", + "<1,18,4,8>": "", + "<1,18,4,9>": "", + "<1,18,4,10>": "", + "<1,18,4,11>": "", + "<1,18,4,12>": "", + "<1,18,4,13>": "", + "<1,18,4,14>": "", + "<1,18,4,15>": "COMMEVT", + "<1,18,4,16>": "0" + }, + "<1,18,5>": { + "<1,18,5,1>": "X", + "<1,18,5,2>": "EXECUTE", + "<1,18,5,3>": "@WINDOW_EVENTS", + "<1,18,5,4>": { + "<1,18,5,4,1>": "@SELF", + "<1,18,5,4,2>": "@EVENT", + "<1,18,5,4,3>": "@PARAM1", + "<1,18,5,4,4>": "@PARAM2", + "<1,18,5,4,5>": "@PARAM3", + "<1,18,5,4,6>": "@PARAM4", + "<1,18,5,4,7>": "@PARAM5", + "<1,18,5,4,8>": "@PARAM6" + }, + "<1,18,5,5>": "", + "<1,18,5,6>": "", + "<1,18,5,7>": "", + "<1,18,5,8>": "", + "<1,18,5,9>": "", + "<1,18,5,10>": "", + "<1,18,5,11>": "", + "<1,18,5,12>": "", + "<1,18,5,13>": "", + "<1,18,5,14>": "", + "<1,18,5,15>": "COMMEVT", + "<1,18,5,16>": "0" + } + }, + "<1,19>": { + "<1,19,1>": "CREATE", + "<1,19,2>": "CLOSE", + "<1,19,3>": "CLEAR", + "<1,19,4>": "READ", + "<1,19,5>": "WRITE" + }, + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": "", + "<1,24>": { + "<1,24,1>": "", + "<1,24,2>": "0", + "<1,24,3>": "0", + "<1,24,4>": "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>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<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,39>": "", + "<1,40>": "", + "<1,41>": "", + "<1,42>": "", + "<1,43>": "", + "<1,44>": "", + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<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>": "LSL2*STPROC**NDW_NOTIFICATION_EVENTS", + "<1,104>": "", + "<1,105>": "", + "<1,106>": "0", + "<1,107>": "", + "<1,108>": "" + } + }, + "record3": { + "<1>": { + "<1,1>": "CHK_LIMIT_TO_ACTIVE_SHIFT", + "<1,2>": "", + "<1,3>": "CHECKBOX", + "<1,4>": "NDW_NOTIFICATION", + "<1,5>": "348", + "<1,6>": "160", + "<1,7>": "136", + "<1,8>": "28", + "<1,9>": "Limit to Active Shift", + "<1,10>": { + "<1,10,1>": "0x5E000103", + "<1,10,2>": "0x0" + }, + "<1,11>": { + "<1,11,1>": "0x0", + "<1,11,2>": "0x80000000" + }, + "<1,12>": "23", + "<1,13>": { + "<1,13,1>": "-2", + "<1,13,2>": "-2", + "<1,13,3>": "" + }, + "<1,14>": "-2", + "<1,15>": { + "<1,15,1>": { + "<1,15,1,1>": "Segoe UI", + "<1,15,1,2>": "-12", + "<1,15,1,3>": "400", + "<1,15,1,4>": "0", + "<1,15,1,5>": "0", + "<1,15,1,6>": "0", + "<1,15,1,7>": "0", + "<1,15,1,8>": "34", + "<1,15,1,9>": "0", + "<1,15,1,10>": "3", + "<1,15,1,11>": "2", + "<1,15,1,12>": "1" + } + }, + "<1,16>": "", + "<1,17>": "", + "<1,18>": "", + "<1,19>": "", + "<1,20>": "", + "<1,21>": "", + "<1,22>": "", + "<1,23>": "", + "<1,24>": "", + "<1,25>": "", + "<1,26>": "", + "<1,27>": "", + "<1,28>": "", + "<1,29>": "", + "<1,30>": "", + "<1,31>": "", + "<1,32>": "", + "<1,33>": "", + "<1,34>": "", + "<1,35>": "", + "<1,36>": "0", + "<1,37>": "", + "<1,38>": "", + "<1,39>": "", + "<1,40>": "", + "<1,41>": "", + "<1,42>": "", + "<1,43>": "", + "<1,44>": "", + "<1,45>": "", + "<1,46>": "", + "<1,47>": "", + "<1,48>": "", + "<1,49>": "", + "<1,50>": "", + "<1,51>": "", + "<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>": "CHK_USE_AD", + "<2,2>": "", + "<2,3>": "CHECKBOX", + "<2,4>": "NDW_NOTIFICATION", + "<2,5>": "104", + "<2,6>": "160", + "<2,7>": "216", + "<2,8>": "28", + "<2,9>": "Use IDMS / Active Directory Groups", + "<2,10>": { + "<2,10,1>": "0x5E000103", + "<2,10,2>": "0x0" + }, + "<2,11>": { + "<2,11,1>": "0x0", + "<2,11,2>": "0x80000000" + }, + "<2,12>": "7", + "<2,13>": { + "<2,13,1>": "-2", + "<2,13,2>": "-2", + "<2,13,3>": "" + }, + "<2,14>": "-2", + "<2,15>": { + "<2,15,1>": { + "<2,15,1,1>": "Segoe UI", + "<2,15,1,2>": "-12", + "<2,15,1,3>": "400", + "<2,15,1,4>": "0", + "<2,15,1,5>": "0", + "<2,15,1,6>": "0", + "<2,15,1,7>": "0", + "<2,15,1,8>": "34", + "<2,15,1,9>": "0", + "<2,15,1,10>": "3", + "<2,15,1,11>": "2", + "<2,15,1,12>": "1" + } + }, + "<2,16>": "", + "<2,17>": "", + "<2,18>": { + "<2,18,1>": { + "<2,18,1,1>": "X", + "<2,18,1,2>": "EXECUTE", + "<2,18,1,3>": "@WINDOW_EVENTS", + "<2,18,1,4>": { + "<2,18,1,4,1>": "@SELF", + "<2,18,1,4,2>": "@EVENT", + "<2,18,1,4,3>": "@PARAM1", + "<2,18,1,4,4>": "@PARAM2", + "<2,18,1,4,5>": "@PARAM3", + "<2,18,1,4,6>": "@PARAM4", + "<2,18,1,4,7>": "@PARAM5", + "<2,18,1,4,8>": "@PARAM6" + }, + "<2,18,1,5>": "", + "<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>": "COMMEVT", + "<2,18,1,16>": "0" + } + }, + "<2,19>": "CLICK", + "<2,20>": "", + "<2,21>": "", + "<2,22>": "", + "<2,23>": "", + "<2,24>": "", + "<2,25>": "", + "<2,26>": "", + "<2,27>": "", + "<2,28>": "", + "<2,29>": "", + "<2,30>": "", + "<2,31>": "", + "<2,32>": "", + "<2,33>": "", + "<2,34>": "", + "<2,35>": "", + "<2,36>": "0", + "<2,37>": "", + "<2,38>": "", + "<2,39>": "", + "<2,40>": "", + "<2,41>": "", + "<2,42>": "", + "<2,43>": "", + "<2,44>": "", + "<2,45>": "", + "<2,46>": "", + "<2,47>": "", + "<2,48>": "", + "<2,49>": "", + "<2,50>": "", + "<2,51>": "", + "<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,63,1>": "", + "<2,63,2>": "", + "<2,63,3>": "", + "<2,63,4>": "", + "<2,63,5>": "", + "<2,63,6>": "", + "<2,63,7>": "", + "<2,63,8>": "" + }, + "<2,64>": { + "<2,64,1>": "", + "<2,64,2>": "", + "<2,64,3>": "" + }, + "<2,65>": "-2", + "<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>": "0", + "<2,91>": "0", + "<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>": "GRB_AD_GROUPS", + "<3,2>": "", + "<3,3>": "GROUPBOX", + "<3,4>": "NDW_NOTIFICATION", + "<3,5>": "464", + "<3,6>": "200", + "<3,7>": "-14", + "<3,8>": "-41", + "<3,9>": "IDMS / Active Directory Groups", + "<3,10>": { + "<3,10,1>": "0x5E000000", + "<3,10,2>": "0x0" + }, + "<3,11>": { + "<3,11,1>": "0xC000", + "<3,11,2>": "0x80000000" + }, + "<3,12>": "12", + "<3,13>": { + "<3,13,1>": "-1", + "<3,13,2>": "-1", + "<3,13,3>": "" + }, + "<3,14>": "8388608", + "<3,15>": { + "<3,15,1>": { + "<3,15,1,1>": "Tahoma", + "<3,15,1,2>": "-11", + "<3,15,1,3>": "400", + "<3,15,1,4>": "0", + "<3,15,1,5>": "0", + "<3,15,1,6>": "0", + "<3,15,1,7>": "0", + "<3,15,1,8>": "34", + "<3,15,1,9>": "0", + "<3,15,1,10>": "3", + "<3,15,1,11>": "2", + "<3,15,1,12>": "1", + "<3,15,1,13>": "0", + "<3,15,1,14>": "0" + } + }, + "<3,16>": "", + "<3,17>": "", + "<3,18>": "", + "<3,19>": "", + "<3,20>": "", + "<3,21>": "", + "<3,22>": "", + "<3,23>": "", + "<3,24>": "", + "<3,25>": "", + "<3,26>": "", + "<3,27>": "", + "<3,28>": "", + "<3,29>": "", + "<3,30>": "", + "<3,31>": "", + "<3,32>": "", + "<3,33>": "", + "<3,34>": "", + "<3,35>": "", + "<3,36>": "", + "<3,37>": "", + "<3,38>": "", + "<3,39>": "", + "<3,40>": "", + "<3,41>": "", + "<3,42>": "", + "<3,43>": "", + "<3,44>": "", + "<3,45>": "", + "<3,46>": "", + "<3,47>": "", + "<3,48>": "", + "<3,49>": "", + "<3,50>": "", + "<3,51>": "", + "<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>": "-2", + "<3,63,3>": "", + "<3,63,4>": "", + "<3,63,5>": "", + "<3,63,6>": "", + "<3,63,7>": "", + "<3,63,8>": "0" + }, + "<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>": "", + "<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>": "PUB_ADD_GROUPS", + "<4,2>": "", + "<4,3>": "PUSHBUTTON", + "<4,4>": "NDW_NOTIFICATION.GRB_AD_GROUPS", + "<4,5>": "-104", + "<4,6>": "-38", + "<4,7>": "88", + "<4,8>": "28", + "<4,9>": "Add", + "<4,10>": { + "<4,10,1>": "0x5E002300", + "<4,10,2>": "0x0" + }, + "<4,11>": { + "<4,11,1>": "0x3000", + "<4,11,2>": "0x80000000" + }, + "<4,12>": "22", + "<4,13>": { + "<4,13,1>": "-2", + "<4,13,2>": "-2", + "<4,13,3>": "0" + }, + "<4,14>": "0", + "<4,15>": { + "<4,15,1>": { + "<4,15,1,1>": "Tahoma", + "<4,15,1,2>": "-11", + "<4,15,1,3>": "400", + "<4,15,1,4>": "0", + "<4,15,1,5>": "0", + "<4,15,1,6>": "0", + "<4,15,1,7>": "0", + "<4,15,1,8>": "34", + "<4,15,1,9>": "0", + "<4,15,1,10>": "3", + "<4,15,1,11>": "2", + "<4,15,1,12>": "1", + "<4,15,1,13>": "0", + "<4,15,1,14>": "0" + } + }, + "<4,16>": "", + "<4,17>": "", + "<4,18>": { + "<4,18,1>": { + "<4,18,1,1>": "X", + "<4,18,1,2>": "EXECUTE", + "<4,18,1,3>": "@WINDOW_EVENTS", + "<4,18,1,4>": { + "<4,18,1,4,1>": "@SELF", + "<4,18,1,4,2>": "@EVENT", + "<4,18,1,4,3>": "@PARAM1", + "<4,18,1,4,4>": "@PARAM2", + "<4,18,1,4,5>": "@PARAM3", + "<4,18,1,4,6>": "@PARAM4", + "<4,18,1,4,7>": "@PARAM5", + "<4,18,1,4,8>": "@PARAM6" + }, + "<4,18,1,5>": "", + "<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>": "COMMEVT", + "<4,18,1,16>": "0" + } + }, + "<4,19>": "CLICK", + "<4,20>": "", + "<4,21>": "", + "<4,22>": "", + "<4,23>": "", + "<4,24>": "", + "<4,25>": "", + "<4,26>": "", + "<4,27>": "", + "<4,28>": "", + "<4,29>": "", + "<4,30>": "", + "<4,31>": "", + "<4,32>": "", + "<4,33>": "", + "<4,34>": "", + "<4,35>": "", + "<4,36>": "", + "<4,37>": "", + "<4,38>": "", + "<4,39>": "", + "<4,40>": "1", + "<4,41>": { + "<4,41,1>": "", + "<4,41,2>": "-1" + }, + "<4,42>": "", + "<4,43>": "", + "<4,44>": "", + "<4,45>": "", + "<4,46>": "", + "<4,47>": "", + "<4,48>": "", + "<4,49>": "", + "<4,50>": "", + "<4,51>": "", + "<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,64,1>": "-2", + "<4,64,2>": "-2", + "<4,64,3>": "0" + }, + "<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>": "PUB_REM_GROUPS", + "<5,2>": "", + "<5,3>": "PUSHBUTTON", + "<5,4>": "NDW_NOTIFICATION.GRB_AD_GROUPS", + "<5,5>": "-204", + "<5,6>": "-38", + "<5,7>": "88", + "<5,8>": "28", + "<5,9>": "Remove", + "<5,10>": { + "<5,10,1>": "0x5E002300", + "<5,10,2>": "0x0" + }, + "<5,11>": { + "<5,11,1>": "0x3000", + "<5,11,2>": "0x80000000" + }, + "<5,12>": "21", + "<5,13>": { + "<5,13,1>": "-2", + "<5,13,2>": "-2", + "<5,13,3>": "0" + }, + "<5,14>": "0", + "<5,15>": { + "<5,15,1>": { + "<5,15,1,1>": "Tahoma", + "<5,15,1,2>": "-11", + "<5,15,1,3>": "400", + "<5,15,1,4>": "0", + "<5,15,1,5>": "0", + "<5,15,1,6>": "0", + "<5,15,1,7>": "0", + "<5,15,1,8>": "34", + "<5,15,1,9>": "0", + "<5,15,1,10>": "3", + "<5,15,1,11>": "2", + "<5,15,1,12>": "1", + "<5,15,1,13>": "0", + "<5,15,1,14>": "0" + } + }, + "<5,16>": "", + "<5,17>": "", + "<5,18>": { + "<5,18,1>": { + "<5,18,1,1>": "X", + "<5,18,1,2>": "EXECUTE", + "<5,18,1,3>": "@WINDOW_EVENTS", + "<5,18,1,4>": { + "<5,18,1,4,1>": "@SELF", + "<5,18,1,4,2>": "@EVENT", + "<5,18,1,4,3>": "@PARAM1", + "<5,18,1,4,4>": "@PARAM2", + "<5,18,1,4,5>": "@PARAM3", + "<5,18,1,4,6>": "@PARAM4", + "<5,18,1,4,7>": "@PARAM5", + "<5,18,1,4,8>": "@PARAM6" + }, + "<5,18,1,5>": "", + "<5,18,1,6>": "", + "<5,18,1,7>": "", + "<5,18,1,8>": "", + "<5,18,1,9>": "", + "<5,18,1,10>": "", + "<5,18,1,11>": "", + "<5,18,1,12>": "", + "<5,18,1,13>": "", + "<5,18,1,14>": "", + "<5,18,1,15>": "COMMEVT", + "<5,18,1,16>": "0" + } + }, + "<5,19>": "CLICK", + "<5,20>": "", + "<5,21>": "", + "<5,22>": "", + "<5,23>": "", + "<5,24>": "", + "<5,25>": "", + "<5,26>": "", + "<5,27>": "", + "<5,28>": "", + "<5,29>": "", + "<5,30>": "", + "<5,31>": "", + "<5,32>": "", + "<5,33>": "", + "<5,34>": "", + "<5,35>": "", + "<5,36>": "", + "<5,37>": "", + "<5,38>": "", + "<5,39>": "", + "<5,40>": "1", + "<5,41>": { + "<5,41,1>": "", + "<5,41,2>": "-1" + }, + "<5,42>": "", + "<5,43>": "", + "<5,44>": "", + "<5,45>": "", + "<5,46>": "", + "<5,47>": "", + "<5,48>": "", + "<5,49>": "", + "<5,50>": "", + "<5,51>": "", + "<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,64>": { + "<5,64,1>": "-2", + "<5,64,2>": "-2", + "<5,64,3>": "0" + }, + "<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>": "EDT_AD_GROUPS", + "<6,2>": "", + "<6,3>": "EDITTABLE", + "<6,4>": "NDW_NOTIFICATION.GRB_AD_GROUPS", + "<6,5>": "16", + "<6,6>": "28", + "<6,7>": "-16", + "<6,8>": "-52", + "<6,9>": "", + "<6,10>": { + "<6,10,1>": "0x5E0002D0", + "<6,10,2>": "0x200" + }, + "<6,11>": { + "<6,11,1>": "0xC000", + "<6,11,2>": "0x80000002" + }, + "<6,12>": "20", + "<6,13>": { + "<6,13,1>": "-2", + "<6,13,2>": "-2", + "<6,13,3>": "" + }, + "<6,14>": "0", + "<6,15>": { + "<6,15,1>": { + "<6,15,1,1>": "Tahoma", + "<6,15,1,2>": "-11", + "<6,15,1,3>": "400", + "<6,15,1,4>": "0", + "<6,15,1,5>": "0", + "<6,15,1,6>": "0", + "<6,15,1,7>": "0", + "<6,15,1,8>": "34", + "<6,15,1,9>": "0", + "<6,15,1,10>": "3", + "<6,15,1,11>": "2", + "<6,15,1,12>": "1", + "<6,15,1,13>": "0", + "<6,15,1,14>": "0" + } + }, + "<6,16>": "", + "<6,17>": "", + "<6,18>": { + "<6,18,1>": { + "<6,18,1,1>": "R", + "<6,18,1,2>": "EXECUTE", + "<6,18,1,3>": "LSL2*POPUP**SHOW_USERS", + "<6,18,1,4>": "@WINDOW", + "<6,18,1,5>": "@SELF", + "<6,18,1,6>": "TEXT", + "<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>": "POPUP" + }, + "<6,18,2>": { + "<6,18,2,1>": "X", + "<6,18,2,2>": "EXECUTE", + "<6,18,2,3>": "@WINDOW_EVENTS", + "<6,18,2,4>": { + "<6,18,2,4,1>": "@SELF", + "<6,18,2,4,2>": "@EVENT", + "<6,18,2,4,3>": "@PARAM1", + "<6,18,2,4,4>": "@PARAM2", + "<6,18,2,4,5>": "@PARAM3", + "<6,18,2,4,6>": "@PARAM4", + "<6,18,2,4,7>": "@PARAM5", + "<6,18,2,4,8>": "@PARAM6" + }, + "<6,18,2,5>": "", + "<6,18,2,6>": "", + "<6,18,2,7>": "", + "<6,18,2,8>": "", + "<6,18,2,9>": "", + "<6,18,2,10>": "", + "<6,18,2,11>": "", + "<6,18,2,12>": "", + "<6,18,2,13>": "", + "<6,18,2,14>": "", + "<6,18,2,15>": "COMMEVT", + "<6,18,2,16>": "0" + } + }, + "<6,19>": { + "<6,19,1>": "OPTIONS", + "<6,19,2>": "ROWSELCHANGED" + }, + "<6,20>": "", + "<6,21>": "", + "<6,22>": "", + "<6,23>": { + "<6,23,1>": "", + "<6,23,2>": "", + "<6,23,3>": "" + }, + "<6,24>": { + "<6,24,1>": "", + "<6,24,2>": "", + "<6,24,3>": "" + }, + "<6,25>": "", + "<6,26>": "", + "<6,27>": "", + "<6,28>": { + "<6,28,1>": "<>", + "<6,28,2>": "<>", + "<6,28,3>": "<>" + }, + "<6,29>": { + "<6,29,1>": "<>", + "<6,29,2>": "<>", + "<6,29,3>": "<>" + }, + "<6,30>": { + "<6,30,1>": "<>", + "<6,30,2>": "<>", + "<6,30,3>": "<>" + }, + "<6,31>": { + "<6,31,1>": "0", + "<6,31,2>": "0", + "<6,31,3>": "0" + }, + "<6,32>": "", + "<6,33>": "", + "<6,34>": "", + "<6,35>": { + "<6,35,1>": { + "<6,35,1,1>": "", + "<6,35,1,2>": "", + "<6,35,1,3>": "" + }, + "<6,35,2>": { + "<6,35,2,1>": "", + "<6,35,2,2>": "", + "<6,35,2,3>": "" + }, + "<6,35,3>": { + "<6,35,3,1>": "", + "<6,35,3,2>": "", + "<6,35,3,3>": "" + }, + "<6,35,4>": { + "<6,35,4,1>": "", + "<6,35,4,2>": "", + "<6,35,4,3>": "" + }, + "<6,35,5>": { + "<6,35,5,1>": "", + "<6,35,5,2>": "", + "<6,35,5,3>": "" + }, + "<6,35,6>": { + "<6,35,6,1>": "", + "<6,35,6,2>": "", + "<6,35,6,3>": "" + }, + "<6,35,7>": { + "<6,35,7,1>": "", + "<6,35,7,2>": "", + "<6,35,7,3>": "" + }, + "<6,35,8>": { + "<6,35,8,1>": "", + "<6,35,8,2>": "", + "<6,35,8,3>": "" + }, + "<6,35,9>": { + "<6,35,9,1>": "", + "<6,35,9,2>": "", + "<6,35,9,3>": "" + }, + "<6,35,10>": { + "<6,35,10,1>": "", + "<6,35,10,2>": "", + "<6,35,10,3>": "" + }, + "<6,35,11>": { + "<6,35,11,1>": "", + "<6,35,11,2>": "", + "<6,35,11,3>": "" + }, + "<6,35,12>": { + "<6,35,12,1>": "", + "<6,35,12,2>": "", + "<6,35,12,3>": "" + }, + "<6,35,13>": { + "<6,35,13,1>": "", + "<6,35,13,2>": "", + "<6,35,13,3>": "" + }, + "<6,35,14>": { + "<6,35,14,1>": "", + "<6,35,14,2>": "", + "<6,35,14,3>": "" + }, + "<6,35,15>": { + "<6,35,15,1>": "", + "<6,35,15,2>": "", + "<6,35,15,3>": "" + }, + "<6,35,16>": { + "<6,35,16,1>": "", + "<6,35,16,2>": "", + "<6,35,16,3>": "" + }, + "<6,35,17>": { + "<6,35,17,1>": "", + "<6,35,17,2>": "", + "<6,35,17,3>": "" + }, + "<6,35,18>": { + "<6,35,18,1>": "", + "<6,35,18,2>": "", + "<6,35,18,3>": "" + }, + "<6,35,19>": { + "<6,35,19,1>": "", + "<6,35,19,2>": "", + "<6,35,19,3>": "" + }, + "<6,35,20>": { + "<6,35,20,1>": "", + "<6,35,20,2>": "", + "<6,35,20,3>": "" + }, + "<6,35,21>": { + "<6,35,21,1>": "", + "<6,35,21,2>": "", + "<6,35,21,3>": "" + }, + "<6,35,22>": { + "<6,35,22,1>": "", + "<6,35,22,2>": "", + "<6,35,22,3>": "" + }, + "<6,35,23>": { + "<6,35,23,1>": "", + "<6,35,23,2>": "", + "<6,35,23,3>": "" + } + }, + "<6,36>": "", + "<6,37>": "", + "<6,38>": "", + "<6,39>": { + "<6,39,1>": "240", + "<6,39,2>": "80", + "<6,39,3>": "80" + }, + "<6,40>": "3", + "<6,41>": { + "<6,41,1>": "0", + "<6,41,2>": "2", + "<6,41,3>": "0", + "<6,41,4>": "-2", + "<6,41,5>": "-2", + "<6,41,6>": "", + "<6,41,7>": "", + "<6,41,8>": "40", + "<6,41,9>": "113", + "<6,41,10>": "115", + "<6,41,11>": "0", + "<6,41,12>": "-2", + "<6,41,13>": "-1", + "<6,41,14>": "1" + }, + "<6,42>": { + "<6,42,1>": "2147500546", + "<6,42,2>": "2147500034", + "<6,42,3>": "2147500034" + }, + "<6,43>": { + "<6,43,1>": "240", + "<6,43,2>": "251", + "<6,43,3>": "80" + }, + "<6,44>": { + "<6,44,1>": "Name", + "<6,44,2>": "Description", + "<6,44,3>": "Type" + }, + "<6,45>": "", + "<6,46>": "", + "<6,47>": "", + "<6,48>": "", + "<6,49>": "", + "<6,50>": "", + "<6,51>": "", + "<6,52>": "", + "<6,53>": "", + "<6,54>": "", + "<6,55>": { + "<6,55,1>": "", + "<6,55,2>": "", + "<6,55,3>": "" + }, + "<6,56>": { + "<6,56,1>": "", + "<6,56,2>": "", + "<6,56,3>": "" + }, + "<6,57>": { + "<6,57,1>": "", + "<6,57,2>": "", + "<6,57,3>": "" + }, + "<6,58>": { + "<6,58,1>": "", + "<6,58,2>": "", + "<6,58,3>": "" + }, + "<6,59>": "", + "<6,60>": { + "<6,60,1>": "18", + "<6,60,2>": "18", + "<6,60,3>": "18" + }, + "<6,61>": "", + "<6,62>": "0", + "<6,63>": "", + "<6,64>": "-2", + "<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,94,1>": "", + "<6,94,2>": "", + "<6,94,3>": "" + }, + "<6,95>": { + "<6,95,1>": "", + "<6,95,2>": "", + "<6,95,3>": "" + }, + "<6,96>": { + "<6,96,1>": { + "<6,96,1,1>": "", + "<6,96,1,2>": "" + }, + "<6,96,2>": { + "<6,96,2,1>": "", + "<6,96,2,2>": "" + }, + "<6,96,3>": { + "<6,96,3,1>": "", + "<6,96,3,2>": "" + } + }, + "<6,97>": { + "<6,97,1>": { + "<6,97,1,1>": "Tahoma", + "<6,97,1,2>": "-11", + "<6,97,1,3>": "400", + "<6,97,1,4>": "0", + "<6,97,1,5>": "0", + "<6,97,1,6>": "0", + "<6,97,1,7>": "0", + "<6,97,1,8>": "34", + "<6,97,1,9>": "0", + "<6,97,1,10>": "3", + "<6,97,1,11>": "2", + "<6,97,1,12>": "1" + }, + "<6,97,2>": { + "<6,97,2,1>": "Tahoma", + "<6,97,2,2>": "-11", + "<6,97,2,3>": "400", + "<6,97,2,4>": "0", + "<6,97,2,5>": "0", + "<6,97,2,6>": "0", + "<6,97,2,7>": "0", + "<6,97,2,8>": "34", + "<6,97,2,9>": "0", + "<6,97,2,10>": "3", + "<6,97,2,11>": "2", + "<6,97,2,12>": "1" + }, + "<6,97,3>": { + "<6,97,3,1>": "Tahoma", + "<6,97,3,2>": "-11", + "<6,97,3,3>": "400", + "<6,97,3,4>": "0", + "<6,97,3,5>": "0", + "<6,97,3,6>": "0", + "<6,97,3,7>": "0", + "<6,97,3,8>": "34", + "<6,97,3,9>": "0", + "<6,97,3,10>": "3", + "<6,97,3,11>": "2", + "<6,97,3,12>": "1" + } + }, + "<6,98>": { + "<6,98,1>": { + "<6,98,1,1>": "Tahoma", + "<6,98,1,2>": "-11", + "<6,98,1,3>": "400", + "<6,98,1,4>": "0", + "<6,98,1,5>": "0", + "<6,98,1,6>": "0", + "<6,98,1,7>": "0", + "<6,98,1,8>": "34", + "<6,98,1,9>": "0", + "<6,98,1,10>": "3", + "<6,98,1,11>": "2", + "<6,98,1,12>": "1" + }, + "<6,98,2>": { + "<6,98,2,1>": "Tahoma", + "<6,98,2,2>": "-11", + "<6,98,2,3>": "400", + "<6,98,2,4>": "0", + "<6,98,2,5>": "0", + "<6,98,2,6>": "0", + "<6,98,2,7>": "0", + "<6,98,2,8>": "34", + "<6,98,2,9>": "0", + "<6,98,2,10>": "3", + "<6,98,2,11>": "2", + "<6,98,2,12>": "1" + }, + "<6,98,3>": { + "<6,98,3,1>": "Tahoma", + "<6,98,3,2>": "-11", + "<6,98,3,3>": "400", + "<6,98,3,4>": "0", + "<6,98,3,5>": "0", + "<6,98,3,6>": "0", + "<6,98,3,7>": "0", + "<6,98,3,8>": "34", + "<6,98,3,9>": "0", + "<6,98,3,10>": "3", + "<6,98,3,11>": "2", + "<6,98,3,12>": "1" + } + }, + "<6,99>": { + "<6,99,1>": { + "<6,99,1,1>": "-2", + "<6,99,1,2>": "-2", + "<6,99,1,3>": "-2", + "<6,99,1,4>": "0", + "<6,99,1,5>": "0", + "<6,99,1,6>": "0", + "<6,99,1,7>": "0" + }, + "<6,99,2>": { + "<6,99,2,1>": "-2", + "<6,99,2,2>": "-2", + "<6,99,2,3>": "-2", + "<6,99,2,4>": "0", + "<6,99,2,5>": "0", + "<6,99,2,6>": "0", + "<6,99,2,7>": "0" + }, + "<6,99,3>": { + "<6,99,3,1>": "-2", + "<6,99,3,2>": "-2", + "<6,99,3,3>": "-2", + "<6,99,3,4>": "0", + "<6,99,3,5>": "0", + "<6,99,3,6>": "0", + "<6,99,3,7>": "0" + }, + "<6,99,4>": { + "<6,99,4,1>": "-2", + "<6,99,4,2>": "-2", + "<6,99,4,3>": "-2", + "<6,99,4,4>": "0", + "<6,99,4,5>": "0", + "<6,99,4,6>": "0", + "<6,99,4,7>": "0" + }, + "<6,99,5>": { + "<6,99,5,1>": "-2", + "<6,99,5,2>": "-2", + "<6,99,5,3>": "-2", + "<6,99,5,4>": "0", + "<6,99,5,5>": "0", + "<6,99,5,6>": "0", + "<6,99,5,7>": "0" + }, + "<6,99,6>": { + "<6,99,6,1>": "-2", + "<6,99,6,2>": "-2", + "<6,99,6,3>": "-2", + "<6,99,6,4>": "0", + "<6,99,6,5>": "0", + "<6,99,6,6>": "0", + "<6,99,6,7>": "0" + }, + "<6,99,7>": { + "<6,99,7,1>": "-2", + "<6,99,7,2>": "-2", + "<6,99,7,3>": "-2", + "<6,99,7,4>": "0", + "<6,99,7,5>": "0", + "<6,99,7,6>": "0", + "<6,99,7,7>": "0" + }, + "<6,99,8>": "", + "<6,99,9>": "", + "<6,99,10>": "", + "<6,99,11>": { + "<6,99,11,1>": "-2", + "<6,99,11,2>": "-2", + "<6,99,11,3>": "-2", + "<6,99,11,4>": "0", + "<6,99,11,5>": "0", + "<6,99,11,6>": "0", + "<6,99,11,7>": "0" + }, + "<6,99,12>": { + "<6,99,12,1>": "-2", + "<6,99,12,2>": "-2", + "<6,99,12,3>": "-2", + "<6,99,12,4>": "0", + "<6,99,12,5>": "0", + "<6,99,12,6>": "0", + "<6,99,12,7>": "0" + }, + "<6,99,13>": { + "<6,99,13,1>": "-2", + "<6,99,13,2>": "-2", + "<6,99,13,3>": "-2", + "<6,99,13,4>": "0", + "<6,99,13,5>": "0", + "<6,99,13,6>": "0", + "<6,99,13,7>": "0" + }, + "<6,99,14>": { + "<6,99,14,1>": "-2", + "<6,99,14,2>": "-2", + "<6,99,14,3>": "-2", + "<6,99,14,4>": "0", + "<6,99,14,5>": "0", + "<6,99,14,6>": "0", + "<6,99,14,7>": "0" + }, + "<6,99,15>": { + "<6,99,15,1>": "-2", + "<6,99,15,2>": "-2", + "<6,99,15,3>": "-2", + "<6,99,15,4>": "0", + "<6,99,15,5>": "0", + "<6,99,15,6>": "0", + "<6,99,15,7>": "0" + }, + "<6,99,16>": { + "<6,99,16,1>": "-2", + "<6,99,16,2>": "-2", + "<6,99,16,3>": "-2", + "<6,99,16,4>": "0", + "<6,99,16,5>": "0", + "<6,99,16,6>": "0", + "<6,99,16,7>": "0" + }, + "<6,99,17>": { + "<6,99,17,1>": "-2", + "<6,99,17,2>": "-2", + "<6,99,17,3>": "-2", + "<6,99,17,4>": "0", + "<6,99,17,5>": "0", + "<6,99,17,6>": "0", + "<6,99,17,7>": "0" + }, + "<6,99,18>": "", + "<6,99,19>": "", + "<6,99,20>": "", + "<6,99,21>": { + "<6,99,21,1>": "-2", + "<6,99,21,2>": "-2", + "<6,99,21,3>": "-2", + "<6,99,21,4>": "0", + "<6,99,21,5>": "0", + "<6,99,21,6>": "0", + "<6,99,21,7>": "0" + }, + "<6,99,22>": { + "<6,99,22,1>": "-2", + "<6,99,22,2>": "-2", + "<6,99,22,3>": "-2", + "<6,99,22,4>": "0", + "<6,99,22,5>": "0", + "<6,99,22,6>": "0", + "<6,99,22,7>": "0" + }, + "<6,99,23>": { + "<6,99,23,1>": "-2", + "<6,99,23,2>": "-2", + "<6,99,23,3>": "-2", + "<6,99,23,4>": "0", + "<6,99,23,5>": "0", + "<6,99,23,6>": "0", + "<6,99,23,7>": "0" + }, + "<6,99,24>": { + "<6,99,24,1>": "-2", + "<6,99,24,2>": "-2", + "<6,99,24,3>": "-2", + "<6,99,24,4>": "0", + "<6,99,24,5>": "0", + "<6,99,24,6>": "0", + "<6,99,24,7>": "0" + }, + "<6,99,25>": { + "<6,99,25,1>": "-2", + "<6,99,25,2>": "-2", + "<6,99,25,3>": "-2", + "<6,99,25,4>": "0", + "<6,99,25,5>": "0", + "<6,99,25,6>": "0", + "<6,99,25,7>": "0" + }, + "<6,99,26>": { + "<6,99,26,1>": "-2", + "<6,99,26,2>": "-2", + "<6,99,26,3>": "-2", + "<6,99,26,4>": "0", + "<6,99,26,5>": "0", + "<6,99,26,6>": "0", + "<6,99,26,7>": "0" + }, + "<6,99,27>": { + "<6,99,27,1>": "-2", + "<6,99,27,2>": "-2", + "<6,99,27,3>": "-2", + "<6,99,27,4>": "0", + "<6,99,27,5>": "0", + "<6,99,27,6>": "0", + "<6,99,27,7>": "0" + } + }, + "<6,100>": { + "<6,100,1>": "", + "<6,100,2>": "" + }, + "<6,101>": "", + "<6,102>": "", + "<6,103>": "", + "<6,104>": "", + "<6,105>": "", + "<6,106>": "", + "<6,107>": "", + "<6,108>": "" + }, + "<7>": { + "<7,1>": "EDL_NOTIFICATION_ID", + "<7,2>": "", + "<7,3>": "EDITFIELD", + "<7,4>": "NDW_NOTIFICATION", + "<7,5>": "105", + "<7,6>": "93", + "<7,7>": "180", + "<7,8>": "21", + "<7,9>": "", + "<7,10>": { + "<7,10,1>": "0x56000088", + "<7,10,2>": "0x200" + }, + "<7,11>": { + "<7,11,1>": "0x0", + "<7,11,2>": "0x80000000" + }, + "<7,12>": "2", + "<7,13>": { + "<7,13,1>": "-2", + "<7,13,2>": "-2", + "<7,13,3>": "" + }, + "<7,14>": "0", + "<7,15>": { + "<7,15,1>": { + "<7,15,1,1>": "Tahoma", + "<7,15,1,2>": "-11", + "<7,15,1,3>": "400", + "<7,15,1,4>": "0", + "<7,15,1,5>": "0", + "<7,15,1,6>": "0", + "<7,15,1,7>": "0", + "<7,15,1,8>": "34", + "<7,15,1,9>": "0", + "<7,15,1,10>": "3", + "<7,15,1,11>": "2", + "<7,15,1,12>": "1", + "<7,15,1,13>": "0", + "<7,15,1,14>": "0" + } + }, + "<7,16>": "", + "<7,17>": "", + "<7,18>": { + "<7,18,1>": { + "<7,18,1,1>": "X", + "<7,18,1,2>": "EXECUTE", + "<7,18,1,3>": "@WINDOW_EVENTS", + "<7,18,1,4>": { + "<7,18,1,4,1>": "@SELF", + "<7,18,1,4,2>": "@EVENT", + "<7,18,1,4,3>": "@PARAM1", + "<7,18,1,4,4>": "@PARAM2", + "<7,18,1,4,5>": "@PARAM3", + "<7,18,1,4,6>": "@PARAM4", + "<7,18,1,4,7>": "@PARAM5", + "<7,18,1,4,8>": "@PARAM6" + }, + "<7,18,1,5>": "", + "<7,18,1,6>": "", + "<7,18,1,7>": "", + "<7,18,1,8>": "", + "<7,18,1,9>": "", + "<7,18,1,10>": "", + "<7,18,1,11>": "", + "<7,18,1,12>": "", + "<7,18,1,13>": "", + "<7,18,1,14>": "", + "<7,18,1,15>": "COMMEVT", + "<7,18,1,16>": "0" + }, + "<7,18,2>": { + "<7,18,2,1>": "X", + "<7,18,2,2>": "EXECUTE", + "<7,18,2,3>": "@WINDOW_EVENTS", + "<7,18,2,4>": { + "<7,18,2,4,1>": "@SELF", + "<7,18,2,4,2>": "@EVENT", + "<7,18,2,4,3>": "@PARAM1", + "<7,18,2,4,4>": "@PARAM2", + "<7,18,2,4,5>": "@PARAM3", + "<7,18,2,4,6>": "@PARAM4", + "<7,18,2,4,7>": "@PARAM5", + "<7,18,2,4,8>": "@PARAM6" + }, + "<7,18,2,5>": "", + "<7,18,2,6>": "", + "<7,18,2,7>": "", + "<7,18,2,8>": "", + "<7,18,2,9>": "", + "<7,18,2,10>": "", + "<7,18,2,11>": "", + "<7,18,2,12>": "", + "<7,18,2,13>": "", + "<7,18,2,14>": "", + "<7,18,2,15>": "COMMEVT", + "<7,18,2,16>": "0" + }, + "<7,18,3>": { + "<7,18,3,1>": "X", + "<7,18,3,2>": "EXECUTE", + "<7,18,3,3>": "@WINDOW_EVENTS", + "<7,18,3,4>": { + "<7,18,3,4,1>": "@SELF", + "<7,18,3,4,2>": "@EVENT", + "<7,18,3,4,3>": "@PARAM1", + "<7,18,3,4,4>": "@PARAM2", + "<7,18,3,4,5>": "@PARAM3", + "<7,18,3,4,6>": "@PARAM4", + "<7,18,3,4,7>": "@PARAM5", + "<7,18,3,4,8>": "@PARAM6" + }, + "<7,18,3,5>": "", + "<7,18,3,6>": "", + "<7,18,3,7>": "", + "<7,18,3,8>": "", + "<7,18,3,9>": "", + "<7,18,3,10>": "", + "<7,18,3,11>": "", + "<7,18,3,12>": "", + "<7,18,3,13>": "", + "<7,18,3,14>": "", + "<7,18,3,15>": "COMMEVT", + "<7,18,3,16>": "0" + } + }, + "<7,19>": { + "<7,19,1>": "CHANGED", + "<7,19,2>": "OPTIONS", + "<7,19,3>": "LOSTFOCUS" + }, + "<7,20>": "", + "<7,21>": "", + "<7,22>": "", + "<7,23>": "", + "<7,24>": "", + "<7,25>": "", + "<7,26>": "", + "<7,27>": "", + "<7,28>": "", + "<7,29>": "", + "<7,30>": "<>", + "<7,31>": "0", + "<7,32>": "", + "<7,33>": "", + "<7,34>": "", + "<7,35>": "", + "<7,36>": { + "<7,36,1>": "0", + "<7,36,2>": "0" + }, + "<7,37>": "", + "<7,38>": "", + "<7,39>": "", + "<7,40>": "", + "<7,41>": "", + "<7,42>": "", + "<7,43>": "", + "<7,44>": "", + "<7,45>": "", + "<7,46>": "", + "<7,47>": "", + "<7,48>": "", + "<7,49>": "", + "<7,50>": "", + "<7,51>": "", + "<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,64>": "", + "<7,65>": "", + "<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>": "", + "<7,91>": "", + "<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>": "NOTIFY_ID_LABEL", + "<8,2>": "", + "<8,3>": "STATIC", + "<8,4>": "NDW_NOTIFICATION", + "<8,5>": "18", + "<8,6>": "96", + "<8,7>": "78", + "<8,8>": "15", + "<8,9>": "Notification ID:", + "<8,10>": { + "<8,10,1>": "0x56000800", + "<8,10,2>": "0x0" + }, + "<8,11>": { + "<8,11,1>": "0x4", + "<8,11,2>": "0x80000000" + }, + "<8,12>": "1", + "<8,13>": { + "<8,13,1>": "-1", + "<8,13,2>": "-1", + "<8,13,3>": "" + }, + "<8,14>": "0", + "<8,15>": { + "<8,15,1>": { + "<8,15,1,1>": "Tahoma", + "<8,15,1,2>": "-11", + "<8,15,1,3>": "400", + "<8,15,1,4>": "0", + "<8,15,1,5>": "0", + "<8,15,1,6>": "0", + "<8,15,1,7>": "0", + "<8,15,1,8>": "34", + "<8,15,1,9>": "0", + "<8,15,1,10>": "3", + "<8,15,1,11>": "2", + "<8,15,1,12>": "1", + "<8,15,1,13>": "0", + "<8,15,1,14>": "0" + } + }, + "<8,16>": "", + "<8,17>": "", + "<8,18>": "", + "<8,19>": "", + "<8,20>": "", + "<8,21>": "", + "<8,22>": "", + "<8,23>": "", + "<8,24>": "", + "<8,25>": "", + "<8,26>": "", + "<8,27>": "", + "<8,28>": "", + "<8,29>": "", + "<8,30>": "", + "<8,31>": "", + "<8,32>": "", + "<8,33>": "", + "<8,34>": "", + "<8,35>": "", + "<8,36>": "", + "<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,56>": "", + "<8,57>": "", + "<8,58>": "", + "<8,59>": "", + "<8,60>": "", + "<8,61>": "", + "<8,62>": "0", + "<8,63>": { + "<8,63,1>": "", + "<8,63,2>": "", + "<8,63,3>": "", + "<8,63,4>": "", + "<8,63,5>": "", + "<8,63,6>": "", + "<8,63,7>": "", + "<8,63,8>": "" + }, + "<8,64>": { + "<8,64,1>": "", + "<8,64,2>": "", + "<8,64,3>": "" + }, + "<8,65>": "-2", + "<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>": "0", + "<8,91>": "0", + "<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>": "EDL_DESCRIPTION", + "<9,2>": "", + "<9,3>": "EDITFIELD", + "<9,4>": "NDW_NOTIFICATION", + "<9,5>": "105", + "<9,6>": "126", + "<9,7>": "489", + "<9,8>": "21", + "<9,9>": "", + "<9,10>": { + "<9,10,1>": "0x5E000080", + "<9,10,2>": "0x200" + }, + "<9,11>": { + "<9,11,1>": "0x0", + "<9,11,2>": "0x80000000" + }, + "<9,12>": "6", + "<9,13>": { + "<9,13,1>": "-2", + "<9,13,2>": "-2", + "<9,13,3>": "" + }, + "<9,14>": "0", + "<9,15>": { + "<9,15,1>": { + "<9,15,1,1>": "Tahoma", + "<9,15,1,2>": "-11", + "<9,15,1,3>": "400", + "<9,15,1,4>": "0", + "<9,15,1,5>": "0", + "<9,15,1,6>": "0", + "<9,15,1,7>": "0", + "<9,15,1,8>": "34", + "<9,15,1,9>": "0", + "<9,15,1,10>": "3", + "<9,15,1,11>": "2", + "<9,15,1,12>": "1", + "<9,15,1,13>": "0", + "<9,15,1,14>": "0" + } + }, + "<9,16>": "", + "<9,17>": "", + "<9,18>": "", + "<9,19>": "", + "<9,20>": "", + "<9,21>": "", + "<9,22>": "", + "<9,23>": "", + "<9,24>": "", + "<9,25>": "", + "<9,26>": "", + "<9,27>": "", + "<9,28>": "", + "<9,29>": "", + "<9,30>": "<>", + "<9,31>": "0", + "<9,32>": "", + "<9,33>": "", + "<9,34>": "", + "<9,35>": "", + "<9,36>": { + "<9,36,1>": "0", + "<9,36,2>": "0" + }, + "<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,56>": "", + "<9,57>": "", + "<9,58>": "", + "<9,59>": "", + "<9,60>": "", + "<9,61>": "", + "<9,62>": "0", + "<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>": "DESC_LABEL", + "<10,2>": "", + "<10,3>": "STATIC", + "<10,4>": "NDW_NOTIFICATION", + "<10,5>": "63", + "<10,6>": "126", + "<10,7>": "33", + "<10,8>": "15", + "<10,9>": "Desc:", + "<10,10>": { + "<10,10,1>": "0x56000800", + "<10,10,2>": "0x0" + }, + "<10,11>": { + "<10,11,1>": "0x0", + "<10,11,2>": "0x80000000" + }, + "<10,12>": "5", + "<10,13>": { + "<10,13,1>": "-1", + "<10,13,2>": "-1", + "<10,13,3>": "" + }, + "<10,14>": "0", + "<10,15>": { + "<10,15,1>": { + "<10,15,1,1>": "Tahoma", + "<10,15,1,2>": "-11", + "<10,15,1,3>": "400", + "<10,15,1,4>": "0", + "<10,15,1,5>": "0", + "<10,15,1,6>": "0", + "<10,15,1,7>": "0", + "<10,15,1,8>": "34", + "<10,15,1,9>": "0", + "<10,15,1,10>": "3", + "<10,15,1,11>": "2", + "<10,15,1,12>": "1", + "<10,15,1,13>": "0", + "<10,15,1,14>": "0" + } + }, + "<10,16>": "", + "<10,17>": "", + "<10,18>": "", + "<10,19>": "", + "<10,20>": "", + "<10,21>": "", + "<10,22>": "", + "<10,23>": "", + "<10,24>": "", + "<10,25>": "", + "<10,26>": "", + "<10,27>": "", + "<10,28>": "", + "<10,29>": "", + "<10,30>": "", + "<10,31>": "", + "<10,32>": "", + "<10,33>": "", + "<10,34>": "", + "<10,35>": "", + "<10,36>": "", + "<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,56>": "", + "<10,57>": "", + "<10,58>": "", + "<10,59>": "", + "<10,60>": "", + "<10,61>": "", + "<10,62>": "0", + "<10,63>": { + "<10,63,1>": "", + "<10,63,2>": "", + "<10,63,3>": "", + "<10,63,4>": "", + "<10,63,5>": "", + "<10,63,6>": "", + "<10,63,7>": "", + "<10,63,8>": "" + }, + "<10,64>": { + "<10,64,1>": "", + "<10,64,2>": "", + "<10,64,3>": "" + }, + "<10,65>": "-2", + "<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>": "0", + "<10,91>": "0", + "<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>": "PUB_DELETE", + "<11,2>": "", + "<11,3>": "PUSHBMP", + "<11,4>": "NDW_NOTIFICATION", + "<11,5>": "-55", + "<11,6>": "6", + "<11,7>": "24", + "<11,8>": "24", + "<11,9>": "|Delete the entire Record", + "<11,10>": { + "<11,10,1>": "0x5E000300", + "<11,10,2>": "0x0" + }, + "<11,11>": { + "<11,11,1>": "0x1000", + "<11,11,2>": "0x80000000" + }, + "<11,12>": "18", + "<11,13>": { + "<11,13,1>": "-2", + "<11,13,2>": "-2", + "<11,13,3>": "0" + }, + "<11,14>": "0", + "<11,15>": { + "<11,15,1>": { + "<11,15,1,1>": "MS Sans Serif", + "<11,15,1,2>": "-11", + "<11,15,1,3>": "700", + "<11,15,1,4>": "0", + "<11,15,1,5>": "0", + "<11,15,1,6>": "0", + "<11,15,1,7>": "0", + "<11,15,1,8>": "34", + "<11,15,1,9>": "0", + "<11,15,1,10>": "1", + "<11,15,1,11>": "2", + "<11,15,1,12>": "1", + "<11,15,1,13>": "0", + "<11,15,1,14>": "0" + } + }, + "<11,16>": "", + "<11,17>": "", + "<11,18>": { + "<11,18,1>": { + "<11,18,1,1>": "E", + "<11,18,1,2>": "DELETE", + "<11,18,1,3>": "@WINDOW", + "<11,18,1,4>": "", + "<11,18,1,5>": "", + "<11,18,1,6>": "", + "<11,18,1,7>": "", + "<11,18,1,8>": "", + "<11,18,1,9>": "", + "<11,18,1,10>": "", + "<11,18,1,11>": "", + "<11,18,1,12>": "", + "<11,18,1,13>": "", + "<11,18,1,14>": "", + "<11,18,1,15>": "GEN" + } + }, + "<11,19>": "CLICK", + "<11,20>": "", + "<11,21>": "", + "<11,22>": "", + "<11,23>": "", + "<11,24>": "", + "<11,25>": "", + "<11,26>": "", + "<11,27>": "", + "<11,28>": "", + "<11,29>": "", + "<11,30>": "", + "<11,31>": "", + "<11,32>": "", + "<11,33>": "LSL2*IMAGE*BMP*DELETE2", + "<11,34>": "", + "<11,35>": "", + "<11,36>": "", + "<11,37>": "", + "<11,38>": "", + "<11,39>": "", + "<11,40>": "-1", + "<11,41>": { + "<11,41,1>": "", + "<11,41,2>": "-1" + }, + "<11,42>": "", + "<11,43>": "", + "<11,44>": "", + "<11,45>": "", + "<11,46>": "", + "<11,47>": "", + "<11,48>": "", + "<11,49>": "", + "<11,50>": "", + "<11,51>": "", + "<11,52>": "", + "<11,53>": "", + "<11,54>": { + "<11,54,1>": "-5", + "<11,54,2>": "0", + "<11,54,3>": "", + "<11,54,4>": "", + "<11,54,5>": "", + "<11,54,6>": "3", + "<11,54,7>": "", + "<11,54,8>": "", + "<11,54,9>": "", + "<11,54,10>": "0" + }, + "<11,55>": "", + "<11,56>": "", + "<11,57>": "", + "<11,58>": "", + "<11,59>": "", + "<11,60>": "", + "<11,61>": "", + "<11,62>": "0", + "<11,63>": "", + "<11,64>": { + "<11,64,1>": "-2", + "<11,64,2>": "-2", + "<11,64,3>": "0" + }, + "<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>": "PUB_SAVE", + "<12,2>": "", + "<12,3>": "PUSHBMP", + "<12,4>": "NDW_NOTIFICATION", + "<12,5>": "6", + "<12,6>": "5", + "<12,7>": "24", + "<12,8>": "24", + "<12,9>": "|Save the Data", + "<12,10>": { + "<12,10,1>": "0x5E000300", + "<12,10,2>": "0x0" + }, + "<12,11>": { + "<12,11,1>": "0x0", + "<12,11,2>": "0x80000000" + }, + "<12,12>": "14", + "<12,13>": { + "<12,13,1>": "-2", + "<12,13,2>": "-2", + "<12,13,3>": "0" + }, + "<12,14>": "0", + "<12,15>": { + "<12,15,1>": { + "<12,15,1,1>": "MS Sans Serif", + "<12,15,1,2>": "-11", + "<12,15,1,3>": "700", + "<12,15,1,4>": "0", + "<12,15,1,5>": "0", + "<12,15,1,6>": "0", + "<12,15,1,7>": "0", + "<12,15,1,8>": "34", + "<12,15,1,9>": "0", + "<12,15,1,10>": "1", + "<12,15,1,11>": "2", + "<12,15,1,12>": "1", + "<12,15,1,13>": "0", + "<12,15,1,14>": "0" + } + }, + "<12,16>": "", + "<12,17>": "", + "<12,18>": { + "<12,18,1>": { + "<12,18,1,1>": "X", + "<12,18,1,2>": "EXECUTE", + "<12,18,1,3>": "@WINDOW_EVENTS", + "<12,18,1,4>": { + "<12,18,1,4,1>": "@SELF", + "<12,18,1,4,2>": "@EVENT", + "<12,18,1,4,3>": "@PARAM1", + "<12,18,1,4,4>": "@PARAM2", + "<12,18,1,4,5>": "@PARAM3", + "<12,18,1,4,6>": "@PARAM4", + "<12,18,1,4,7>": "@PARAM5", + "<12,18,1,4,8>": "@PARAM6" + }, + "<12,18,1,5>": "", + "<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>": "COMMEVT", + "<12,18,1,16>": "0" + } + }, + "<12,19>": "CLICK", + "<12,20>": "", + "<12,21>": "", + "<12,22>": "", + "<12,23>": "", + "<12,24>": "", + "<12,25>": "", + "<12,26>": "", + "<12,27>": "", + "<12,28>": "", + "<12,29>": "", + "<12,30>": "", + "<12,31>": "", + "<12,32>": "", + "<12,33>": "SYSPROG*IMAGE*BMP*POPSAVE", + "<12,34>": "", + "<12,35>": "", + "<12,36>": "", + "<12,37>": "", + "<12,38>": "", + "<12,39>": "", + "<12,40>": "-1", + "<12,41>": { + "<12,41,1>": "", + "<12,41,2>": "-1" + }, + "<12,42>": "", + "<12,43>": "", + "<12,44>": "", + "<12,45>": "", + "<12,46>": "", + "<12,47>": "", + "<12,48>": "", + "<12,49>": "", + "<12,50>": "", + "<12,51>": "", + "<12,52>": "", + "<12,53>": "", + "<12,54>": { + "<12,54,1>": "-5", + "<12,54,2>": "0", + "<12,54,3>": "", + "<12,54,4>": "", + "<12,54,5>": "", + "<12,54,6>": "4", + "<12,54,7>": "", + "<12,54,8>": "", + "<12,54,9>": "", + "<12,54,10>": "0" + }, + "<12,55>": "", + "<12,56>": "", + "<12,57>": "", + "<12,58>": "", + "<12,59>": "", + "<12,60>": "", + "<12,61>": "", + "<12,62>": "0", + "<12,63>": "", + "<12,64>": { + "<12,64,1>": "-2", + "<12,64,2>": "-2", + "<12,64,3>": "0" + }, + "<12,65>": "-2", + "<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>": "0", + "<12,91>": "0", + "<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>": "PUB_CLEAR", + "<13,2>": "", + "<13,3>": "PUSHBMP", + "<13,4>": "NDW_NOTIFICATION", + "<13,5>": "32", + "<13,6>": "5", + "<13,7>": "24", + "<13,8>": "24", + "<13,9>": "|Clear the Screen", + "<13,10>": { + "<13,10,1>": "0x56000300", + "<13,10,2>": "0x0" + }, + "<13,11>": { + "<13,11,1>": "0x0", + "<13,11,2>": "0x80000000" + }, + "<13,12>": "15", + "<13,13>": { + "<13,13,1>": "-2", + "<13,13,2>": "-2", + "<13,13,3>": "0" + }, + "<13,14>": "0", + "<13,15>": { + "<13,15,1>": { + "<13,15,1,1>": "MS Sans Serif", + "<13,15,1,2>": "-11", + "<13,15,1,3>": "700", + "<13,15,1,4>": "0", + "<13,15,1,5>": "0", + "<13,15,1,6>": "0", + "<13,15,1,7>": "0", + "<13,15,1,8>": "34", + "<13,15,1,9>": "0", + "<13,15,1,10>": "1", + "<13,15,1,11>": "2", + "<13,15,1,12>": "1", + "<13,15,1,13>": "0", + "<13,15,1,14>": "0" + } + }, + "<13,16>": "", + "<13,17>": "", + "<13,18>": { + "<13,18,1>": { + "<13,18,1,1>": "X", + "<13,18,1,2>": "EXECUTE", + "<13,18,1,3>": "@WINDOW_EVENTS", + "<13,18,1,4>": { + "<13,18,1,4,1>": "@SELF", + "<13,18,1,4,2>": "@EVENT", + "<13,18,1,4,3>": "@PARAM1", + "<13,18,1,4,4>": "@PARAM2", + "<13,18,1,4,5>": "@PARAM3", + "<13,18,1,4,6>": "@PARAM4", + "<13,18,1,4,7>": "@PARAM5", + "<13,18,1,4,8>": "@PARAM6" + }, + "<13,18,1,5>": "", + "<13,18,1,6>": "", + "<13,18,1,7>": "", + "<13,18,1,8>": "", + "<13,18,1,9>": "", + "<13,18,1,10>": "", + "<13,18,1,11>": "", + "<13,18,1,12>": "", + "<13,18,1,13>": "", + "<13,18,1,14>": "", + "<13,18,1,15>": "COMMEVT", + "<13,18,1,16>": "0" + } + }, + "<13,19>": "CLICK", + "<13,20>": "", + "<13,21>": "", + "<13,22>": "", + "<13,23>": "", + "<13,24>": "", + "<13,25>": "", + "<13,26>": "", + "<13,27>": "", + "<13,28>": "", + "<13,29>": "", + "<13,30>": "", + "<13,31>": "", + "<13,32>": "", + "<13,33>": "LSL2*IMAGE*BMP*CLEAR", + "<13,34>": "", + "<13,35>": "", + "<13,36>": "", + "<13,37>": "", + "<13,38>": "", + "<13,39>": "", + "<13,40>": "-1", + "<13,41>": { + "<13,41,1>": "", + "<13,41,2>": "-1" + }, + "<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,54,1>": "-5", + "<13,54,2>": "2", + "<13,54,3>": "", + "<13,54,4>": "", + "<13,54,5>": "", + "<13,54,6>": "4", + "<13,54,7>": "", + "<13,54,8>": "", + "<13,54,9>": "", + "<13,54,10>": "0" + }, + "<13,55>": "", + "<13,56>": "", + "<13,57>": "", + "<13,58>": "", + "<13,59>": "", + "<13,60>": "", + "<13,61>": "", + "<13,62>": "0", + "<13,63>": "", + "<13,64>": { + "<13,64,1>": "-2", + "<13,64,2>": "-2", + "<13,64,3>": "0" + }, + "<13,65>": "-2", + "<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>": "0", + "<13,91>": "0", + "<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>": "CLOSE_BUTTON_FIX", + "<14,2>": "", + "<14,3>": "PUSHBMP", + "<14,4>": "NDW_NOTIFICATION", + "<14,5>": "60", + "<14,6>": "5", + "<14,7>": "24", + "<14,8>": "24", + "<14,9>": "|Close the Window", + "<14,10>": { + "<14,10,1>": "0x56000300", + "<14,10,2>": "0x0" + }, + "<14,11>": { + "<14,11,1>": "0x0", + "<14,11,2>": "0x80000000" + }, + "<14,12>": "16", + "<14,13>": { + "<14,13,1>": "-2", + "<14,13,2>": "-2", + "<14,13,3>": "0" + }, + "<14,14>": "0", + "<14,15>": { + "<14,15,1>": { + "<14,15,1,1>": "MS Sans Serif", + "<14,15,1,2>": "-11", + "<14,15,1,3>": "700", + "<14,15,1,4>": "0", + "<14,15,1,5>": "0", + "<14,15,1,6>": "0", + "<14,15,1,7>": "0", + "<14,15,1,8>": "34", + "<14,15,1,9>": "0", + "<14,15,1,10>": "1", + "<14,15,1,11>": "2", + "<14,15,1,12>": "1", + "<14,15,1,13>": "0", + "<14,15,1,14>": "0" + } + }, + "<14,16>": "", + "<14,17>": "", + "<14,18>": { + "<14,18,1>": { + "<14,18,1,1>": "E", + "<14,18,1,2>": "CLOSE", + "<14,18,1,3>": "@WINDOW", + "<14,18,1,4>": "", + "<14,18,1,5>": "", + "<14,18,1,6>": "", + "<14,18,1,7>": "", + "<14,18,1,8>": "", + "<14,18,1,9>": "", + "<14,18,1,10>": "", + "<14,18,1,11>": "", + "<14,18,1,12>": "", + "<14,18,1,13>": "", + "<14,18,1,14>": "", + "<14,18,1,15>": "GEN" + } + }, + "<14,19>": "CLICK", + "<14,20>": "", + "<14,21>": "", + "<14,22>": "", + "<14,23>": "", + "<14,24>": "", + "<14,25>": "", + "<14,26>": "", + "<14,27>": "", + "<14,28>": "", + "<14,29>": "", + "<14,30>": "", + "<14,31>": "", + "<14,32>": "", + "<14,33>": "LSL2*IMAGE*BMP*CLOSEWIN", + "<14,34>": "", + "<14,35>": "", + "<14,36>": "", + "<14,37>": "", + "<14,38>": "", + "<14,39>": "", + "<14,40>": "-1", + "<14,41>": { + "<14,41,1>": "", + "<14,41,2>": "-1" + }, + "<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,54,1>": "-5", + "<14,54,2>": "0", + "<14,54,3>": "", + "<14,54,4>": "", + "<14,54,5>": "", + "<14,54,6>": "3", + "<14,54,7>": "", + "<14,54,8>": "", + "<14,54,9>": "", + "<14,54,10>": "0" + }, + "<14,55>": "", + "<14,56>": "", + "<14,57>": "", + "<14,58>": "", + "<14,59>": "", + "<14,60>": "", + "<14,61>": "", + "<14,62>": "0", + "<14,63>": "", + "<14,64>": { + "<14,64,1>": "-2", + "<14,64,2>": "-2", + "<14,64,3>": "0" + }, + "<14,65>": "-2", + "<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>": "0", + "<14,91>": "0", + "<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>": "WINDOW_LABEL_FIX", + "<15,2>": "", + "<15,3>": "STATIC", + "<15,4>": "NDW_NOTIFICATION", + "<15,5>": "-224", + "<15,6>": "42", + "<15,7>": "132", + "<15,8>": "27", + "<15,9>": "Notifications", + "<15,10>": { + "<15,10,1>": "0x56000020", + "<15,10,2>": "0x0" + }, + "<15,11>": { + "<15,11,1>": "0x1000", + "<15,11,2>": "0x80000000" + }, + "<15,12>": "17", + "<15,13>": { + "<15,13,1>": "-1", + "<15,13,2>": "-1", + "<15,13,3>": "" + }, + "<15,14>": "8388608", + "<15,15>": { + "<15,15,1>": { + "<15,15,1,1>": "Tahoma", + "<15,15,1,2>": "-24", + "<15,15,1,3>": "400", + "<15,15,1,4>": "0", + "<15,15,1,5>": "0", + "<15,15,1,6>": "0", + "<15,15,1,7>": "0", + "<15,15,1,8>": "34", + "<15,15,1,9>": "0", + "<15,15,1,10>": "3", + "<15,15,1,11>": "2", + "<15,15,1,12>": "1", + "<15,15,1,13>": "0", + "<15,15,1,14>": "0" + } + }, + "<15,16>": "", + "<15,17>": "", + "<15,18>": "", + "<15,19>": "", + "<15,20>": "", + "<15,21>": "", + "<15,22>": "", + "<15,23>": "", + "<15,24>": "", + "<15,25>": "", + "<15,26>": "", + "<15,27>": "", + "<15,28>": "", + "<15,29>": "", + "<15,30>": "", + "<15,31>": "", + "<15,32>": "", + "<15,33>": "", + "<15,34>": "", + "<15,35>": "", + "<15,36>": "", + "<15,37>": "", + "<15,38>": "", + "<15,39>": "", + "<15,40>": "", + "<15,41>": "", + "<15,42>": "", + "<15,43>": "", + "<15,44>": "", + "<15,45>": "", + "<15,46>": "", + "<15,47>": "", + "<15,48>": "", + "<15,49>": "", + "<15,50>": "", + "<15,51>": "", + "<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>": "STATUSLINE_FIX", + "<16,2>": "", + "<16,3>": "EDITFIELD", + "<16,4>": "NDW_NOTIFICATION", + "<16,5>": "1", + "<16,6>": "-21", + "<16,7>": "-5", + "<16,8>": "18", + "<16,9>": "", + "<16,10>": { + "<16,10,1>": "0x56000080", + "<16,10,2>": "0x200" + }, + "<16,11>": { + "<16,11,1>": "0x6000", + "<16,11,2>": "0x80000000" + }, + "<16,12>": "13", + "<16,13>": { + "<16,13,1>": "15724527", + "<16,13,2>": "15724527", + "<16,13,3>": "" + }, + "<16,14>": "0", + "<16,15>": { + "<16,15,1>": { + "<16,15,1,1>": "MS Sans Serif", + "<16,15,1,2>": "-11", + "<16,15,1,3>": "400", + "<16,15,1,4>": "0", + "<16,15,1,5>": "0", + "<16,15,1,6>": "0", + "<16,15,1,7>": "0", + "<16,15,1,8>": "34", + "<16,15,1,9>": "0", + "<16,15,1,10>": "1", + "<16,15,1,11>": "2", + "<16,15,1,12>": "1", + "<16,15,1,13>": "0", + "<16,15,1,14>": "0" + } + }, + "<16,16>": "", + "<16,17>": "", + "<16,18>": "", + "<16,19>": "", + "<16,20>": "", + "<16,21>": "", + "<16,22>": "", + "<16,23>": "", + "<16,24>": "", + "<16,25>": "", + "<16,26>": "", + "<16,27>": "", + "<16,28>": "<>", + "<16,29>": "<>", + "<16,30>": "<>", + "<16,31>": "0", + "<16,32>": "", + "<16,33>": "", + "<16,34>": "", + "<16,35>": "", + "<16,36>": { + "<16,36,1>": "0", + "<16,36,2>": "0" + }, + "<16,37>": "", + "<16,38>": "", + "<16,39>": "", + "<16,40>": "", + "<16,41>": "", + "<16,42>": "", + "<16,43>": "", + "<16,44>": "", + "<16,45>": "", + "<16,46>": "", + "<16,47>": "", + "<16,48>": "", + "<16,49>": "", + "<16,50>": "", + "<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,65>": "", + "<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>": "", + "<16,91>": "", + "<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>": "PUB_LU_ID", + "<17,2>": "", + "<17,3>": "PUSHBMP", + "<17,4>": "NDW_NOTIFICATION", + "<17,5>": "291", + "<17,6>": "93", + "<17,7>": "21", + "<17,8>": "21", + "<17,9>": "|Lookup Notification ID", + "<17,10>": { + "<17,10,1>": "0x56002300", + "<17,10,2>": "0x0" + }, + "<17,11>": { + "<17,11,1>": "0x0", + "<17,11,2>": "0x80000000" + }, + "<17,12>": "3", + "<17,13>": { + "<17,13,1>": "-2", + "<17,13,2>": "-2", + "<17,13,3>": "0" + }, + "<17,14>": "0", + "<17,15>": { + "<17,15,1>": { + "<17,15,1,1>": "Tahoma", + "<17,15,1,2>": "-11", + "<17,15,1,3>": "400", + "<17,15,1,4>": "0", + "<17,15,1,5>": "0", + "<17,15,1,6>": "0", + "<17,15,1,7>": "0", + "<17,15,1,8>": "34", + "<17,15,1,9>": "0", + "<17,15,1,10>": "3", + "<17,15,1,11>": "2", + "<17,15,1,12>": "1", + "<17,15,1,13>": "0", + "<17,15,1,14>": "0" + } + }, + "<17,16>": "", + "<17,17>": "", + "<17,18>": { + "<17,18,1>": { + "<17,18,1,1>": "X", + "<17,18,1,2>": "EXECUTE", + "<17,18,1,3>": "@WINDOW_EVENTS", + "<17,18,1,4>": { + "<17,18,1,4,1>": "@SELF", + "<17,18,1,4,2>": "@EVENT", + "<17,18,1,4,3>": "@PARAM1", + "<17,18,1,4,4>": "@PARAM2", + "<17,18,1,4,5>": "@PARAM3", + "<17,18,1,4,6>": "@PARAM4", + "<17,18,1,4,7>": "@PARAM5", + "<17,18,1,4,8>": "@PARAM6" + }, + "<17,18,1,5>": "", + "<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>": "COMMEVT", + "<17,18,1,16>": "0" + } + }, + "<17,19>": "CLICK", + "<17,20>": "", + "<17,21>": "", + "<17,22>": "", + "<17,23>": "", + "<17,24>": "", + "<17,25>": "", + "<17,26>": "", + "<17,27>": "", + "<17,28>": "", + "<17,29>": "", + "<17,30>": "", + "<17,31>": "", + "<17,32>": "", + "<17,33>": "LSL2*IMAGE*BMP*SEARCH", + "<17,34>": "", + "<17,35>": "", + "<17,36>": "", + "<17,37>": "", + "<17,38>": "", + "<17,39>": "", + "<17,40>": "-1", + "<17,41>": { + "<17,41,1>": "", + "<17,41,2>": "-1" + }, + "<17,42>": "", + "<17,43>": "", + "<17,44>": "", + "<17,45>": "", + "<17,46>": "", + "<17,47>": "", + "<17,48>": "", + "<17,49>": "", + "<17,50>": "", + "<17,51>": "", + "<17,52>": "", + "<17,53>": "", + "<17,54>": { + "<17,54,1>": "-5", + "<17,54,2>": "2", + "<17,54,3>": "", + "<17,54,4>": "", + "<17,54,5>": "", + "<17,54,6>": "3", + "<17,54,7>": "", + "<17,54,8>": "", + "<17,54,9>": "", + "<17,54,10>": "0" + }, + "<17,55>": "", + "<17,56>": "", + "<17,57>": "", + "<17,58>": "", + "<17,59>": "", + "<17,60>": "", + "<17,61>": "", + "<17,62>": "0", + "<17,63>": "", + "<17,64>": { + "<17,64,1>": "-2", + "<17,64,2>": "-2", + "<17,64,3>": "0" + }, + "<17,65>": "-2", + "<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>": "0", + "<17,91>": "0", + "<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>": "" + }, + "<18>": { + "<18,1>": "PRINT_REPORT", + "<18,2>": "", + "<18,3>": "PUSHBUTTON", + "<18,4>": "NDW_NOTIFICATION", + "<18,5>": "396", + "<18,6>": "90", + "<18,7>": "150", + "<18,8>": "27", + "<18,9>": "Print Notifications Report", + "<18,10>": { + "<18,10,1>": "0x56002300", + "<18,10,2>": "0x0" + }, + "<18,11>": { + "<18,11,1>": "0x0", + "<18,11,2>": "0x80000000" + }, + "<18,12>": "4", + "<18,13>": { + "<18,13,1>": "-2", + "<18,13,2>": "-2", + "<18,13,3>": "0" + }, + "<18,14>": "0", + "<18,15>": { + "<18,15,1>": { + "<18,15,1,1>": "Tahoma", + "<18,15,1,2>": "-11", + "<18,15,1,3>": "400", + "<18,15,1,4>": "0", + "<18,15,1,5>": "0", + "<18,15,1,6>": "0", + "<18,15,1,7>": "0", + "<18,15,1,8>": "34", + "<18,15,1,9>": "0", + "<18,15,1,10>": "3", + "<18,15,1,11>": "2", + "<18,15,1,12>": "1", + "<18,15,1,13>": "0", + "<18,15,1,14>": "0" + } + }, + "<18,16>": "", + "<18,17>": "", + "<18,18>": { + "<18,18,1>": { + "<18,18,1,1>": "R", + "<18,18,1,2>": "EXECUTE", + "<18,18,1,3>": "LSL2*STPROCEXE**PRINT_NOTIFICATION", + "<18,18,1,4>": "", + "<18,18,1,5>": "", + "<18,18,1,6>": "", + "<18,18,1,7>": "", + "<18,18,1,8>": "", + "<18,18,1,9>": "", + "<18,18,1,10>": "", + "<18,18,1,11>": "", + "<18,18,1,12>": "", + "<18,18,1,13>": "", + "<18,18,1,14>": "", + "<18,18,1,15>": "STPROC" + } + }, + "<18,19>": "CLICK", + "<18,20>": "", + "<18,21>": "", + "<18,22>": "", + "<18,23>": "", + "<18,24>": "", + "<18,25>": "", + "<18,26>": "", + "<18,27>": "", + "<18,28>": "", + "<18,29>": "", + "<18,30>": "", + "<18,31>": "", + "<18,32>": "", + "<18,33>": "", + "<18,34>": "", + "<18,35>": "", + "<18,36>": "", + "<18,37>": "", + "<18,38>": "", + "<18,39>": "", + "<18,40>": "1", + "<18,41>": { + "<18,41,1>": "", + "<18,41,2>": "-1" + }, + "<18,42>": "", + "<18,43>": "", + "<18,44>": "", + "<18,45>": "", + "<18,46>": "", + "<18,47>": "", + "<18,48>": "", + "<18,49>": "", + "<18,50>": "", + "<18,51>": "", + "<18,52>": "", + "<18,53>": "", + "<18,54>": "", + "<18,55>": "", + "<18,56>": "", + "<18,57>": "", + "<18,58>": "", + "<18,59>": "", + "<18,60>": "", + "<18,61>": "", + "<18,62>": "0", + "<18,63>": "", + "<18,64>": { + "<18,64,1>": "-2", + "<18,64,2>": "-2", + "<18,64,3>": "0" + }, + "<18,65>": "-2", + "<18,66>": "", + "<18,67>": "", + "<18,68>": "", + "<18,69>": "", + "<18,70>": "", + "<18,71>": "", + "<18,72>": "", + "<18,73>": "", + "<18,74>": "", + "<18,75>": "", + "<18,76>": "", + "<18,77>": "", + "<18,78>": "", + "<18,79>": "", + "<18,80>": "", + "<18,81>": "", + "<18,82>": "", + "<18,83>": "", + "<18,84>": "", + "<18,85>": "", + "<18,86>": "", + "<18,87>": "", + "<18,88>": "", + "<18,89>": "", + "<18,90>": "0", + "<18,91>": "0", + "<18,92>": "", + "<18,93>": "", + "<18,94>": "", + "<18,95>": "", + "<18,96>": "", + "<18,97>": "", + "<18,98>": "", + "<18,99>": "", + "<18,100>": "", + "<18,101>": "", + "<18,102>": "", + "<18,103>": "", + "<18,104>": "", + "<18,105>": "", + "<18,106>": "", + "<18,107>": "", + "<18,108>": "" + }, + "<19>": { + "<19,1>": "TOOLBAR_FIX", + "<19,2>": "", + "<19,3>": "GROUPBOX", + "<19,4>": "NDW_NOTIFICATION", + "<19,5>": "-1194", + "<19,6>": "28", + "<19,7>": "-4", + "<19,8>": "9", + "<19,9>": "", + "<19,10>": { + "<19,10,1>": "0x56000000", + "<19,10,2>": "0x0" + }, + "<19,11>": { + "<19,11,1>": "0x5000", + "<19,11,2>": "0x80000000" + }, + "<19,12>": "19", + "<19,13>": { + "<19,13,1>": "-1", + "<19,13,2>": "-1", + "<19,13,3>": "" + }, + "<19,14>": "0", + "<19,15>": { + "<19,15,1>": { + "<19,15,1,1>": "MS Sans Serif", + "<19,15,1,2>": "-11", + "<19,15,1,3>": "700", + "<19,15,1,4>": "0", + "<19,15,1,5>": "0", + "<19,15,1,6>": "0", + "<19,15,1,7>": "0", + "<19,15,1,8>": "34", + "<19,15,1,9>": "0", + "<19,15,1,10>": "1", + "<19,15,1,11>": "2", + "<19,15,1,12>": "1", + "<19,15,1,13>": "0", + "<19,15,1,14>": "0" + } + }, + "<19,16>": "", + "<19,17>": "", + "<19,18>": "", + "<19,19>": "", + "<19,20>": "", + "<19,21>": "", + "<19,22>": "", + "<19,23>": "", + "<19,24>": "", + "<19,25>": "", + "<19,26>": "", + "<19,27>": "", + "<19,28>": "", + "<19,29>": "", + "<19,30>": "", + "<19,31>": "", + "<19,32>": "", + "<19,33>": "", + "<19,34>": "", + "<19,35>": "", + "<19,36>": "", + "<19,37>": "", + "<19,38>": "", + "<19,39>": "", + "<19,40>": "", + "<19,41>": "", + "<19,42>": "", + "<19,43>": "", + "<19,44>": "", + "<19,45>": "", + "<19,46>": "", + "<19,47>": "", + "<19,48>": "", + "<19,49>": "", + "<19,50>": "", + "<19,51>": "", + "<19,52>": "", + "<19,53>": "", + "<19,54>": "", + "<19,55>": "", + "<19,56>": "", + "<19,57>": "", + "<19,58>": "", + "<19,59>": "", + "<19,60>": "", + "<19,61>": "", + "<19,62>": "0", + "<19,63>": { + "<19,63,1>": "", + "<19,63,2>": "-2", + "<19,63,3>": "", + "<19,63,4>": "", + "<19,63,5>": "", + "<19,63,6>": "", + "<19,63,7>": "", + "<19,63,8>": "0" + }, + "<19,64>": { + "<19,64,1>": "", + "<19,64,2>": "", + "<19,64,3>": "" + }, + "<19,65>": "-2", + "<19,66>": "", + "<19,67>": "", + "<19,68>": "", + "<19,69>": "", + "<19,70>": "", + "<19,71>": "", + "<19,72>": "", + "<19,73>": "", + "<19,74>": "", + "<19,75>": "", + "<19,76>": "", + "<19,77>": "", + "<19,78>": "", + "<19,79>": "", + "<19,80>": "", + "<19,81>": "", + "<19,82>": "", + "<19,83>": "", + "<19,84>": "", + "<19,85>": "", + "<19,86>": "", + "<19,87>": "", + "<19,88>": "", + "<19,89>": "", + "<19,90>": "", + "<19,91>": "", + "<19,92>": "", + "<19,93>": "", + "<19,94>": "", + "<19,95>": "", + "<19,96>": "", + "<19,97>": "", + "<19,98>": "", + "<19,99>": "", + "<19,100>": "", + "<19,101>": "", + "<19,102>": "", + "<19,103>": "", + "<19,104>": "", + "<19,105>": "", + "<19,106>": "", + "<19,107>": "", + "<19,108>": "" + }, + "<20>": { + "<20,1>": "GRB_LSL_USERS", + "<20,2>": "", + "<20,3>": "GROUPBOX", + "<20,4>": "NDW_NOTIFICATION", + "<20,5>": "16", + "<20,6>": "-462", + "<20,7>": "416", + "<20,8>": "-41", + "<20,9>": "LSL Users", + "<20,10>": { + "<20,10,1>": "0x56000000", + "<20,10,2>": "0x0" + }, + "<20,11>": { + "<20,11,1>": "0xA000", + "<20,11,2>": "0x80000000" + }, + "<20,12>": "8", + "<20,13>": { + "<20,13,1>": "-1", + "<20,13,2>": "-1", + "<20,13,3>": "" + }, + "<20,14>": "8388608", + "<20,15>": { + "<20,15,1>": { + "<20,15,1,1>": "Tahoma", + "<20,15,1,2>": "-11", + "<20,15,1,3>": "400", + "<20,15,1,4>": "0", + "<20,15,1,5>": "0", + "<20,15,1,6>": "0", + "<20,15,1,7>": "0", + "<20,15,1,8>": "34", + "<20,15,1,9>": "0", + "<20,15,1,10>": "3", + "<20,15,1,11>": "2", + "<20,15,1,12>": "1", + "<20,15,1,13>": "0", + "<20,15,1,14>": "0" + } + }, + "<20,16>": "", + "<20,17>": "", + "<20,18>": "", + "<20,19>": "", + "<20,20>": "", + "<20,21>": "", + "<20,22>": "", + "<20,23>": "", + "<20,24>": "", + "<20,25>": "", + "<20,26>": "", + "<20,27>": "", + "<20,28>": "", + "<20,29>": "", + "<20,30>": "", + "<20,31>": "", + "<20,32>": "", + "<20,33>": "", + "<20,34>": "", + "<20,35>": "", + "<20,36>": "", + "<20,37>": "", + "<20,38>": "", + "<20,39>": "", + "<20,40>": "", + "<20,41>": "", + "<20,42>": "", + "<20,43>": "", + "<20,44>": "", + "<20,45>": "", + "<20,46>": "", + "<20,47>": "", + "<20,48>": "", + "<20,49>": "", + "<20,50>": "", + "<20,51>": "", + "<20,52>": "", + "<20,53>": "", + "<20,54>": "", + "<20,55>": "", + "<20,56>": "", + "<20,57>": "", + "<20,58>": "", + "<20,59>": "", + "<20,60>": "", + "<20,61>": "", + "<20,62>": "0", + "<20,63>": { + "<20,63,1>": "", + "<20,63,2>": "-2", + "<20,63,3>": "", + "<20,63,4>": "", + "<20,63,5>": "", + "<20,63,6>": "", + "<20,63,7>": "", + "<20,63,8>": "0" + }, + "<20,64>": { + "<20,64,1>": "", + "<20,64,2>": "", + "<20,64,3>": "" + }, + "<20,65>": "-2", + "<20,66>": "", + "<20,67>": "", + "<20,68>": "", + "<20,69>": "", + "<20,70>": "", + "<20,71>": "", + "<20,72>": "", + "<20,73>": "", + "<20,74>": "", + "<20,75>": "", + "<20,76>": "", + "<20,77>": "", + "<20,78>": "", + "<20,79>": "", + "<20,80>": "", + "<20,81>": "", + "<20,82>": "", + "<20,83>": "", + "<20,84>": "", + "<20,85>": "", + "<20,86>": "", + "<20,87>": "", + "<20,88>": "", + "<20,89>": "", + "<20,90>": "", + "<20,91>": "", + "<20,92>": "", + "<20,93>": "", + "<20,94>": "", + "<20,95>": "", + "<20,96>": "", + "<20,97>": "", + "<20,98>": "", + "<20,99>": "", + "<20,100>": "", + "<20,101>": "", + "<20,102>": "", + "<20,103>": "", + "<20,104>": "", + "<20,105>": "", + "<20,106>": "", + "<20,107>": "", + "<20,108>": "" + }, + "<21>": { + "<21,1>": "PUB_REM_USERS", + "<21,2>": "", + "<21,3>": "PUSHBUTTON", + "<21,4>": "NDW_NOTIFICATION.GRB_LSL_USERS", + "<21,5>": "213", + "<21,6>": "-38", + "<21,7>": "88", + "<21,8>": "28", + "<21,9>": "Remove", + "<21,10>": { + "<21,10,1>": "0x5E002300", + "<21,10,2>": "0x0" + }, + "<21,11>": { + "<21,11,1>": "0x2000", + "<21,11,2>": "0x80000000" + }, + "<21,12>": "10", + "<21,13>": { + "<21,13,1>": "-2", + "<21,13,2>": "-2", + "<21,13,3>": "0" + }, + "<21,14>": "0", + "<21,15>": { + "<21,15,1>": { + "<21,15,1,1>": "Tahoma", + "<21,15,1,2>": "-11", + "<21,15,1,3>": "400", + "<21,15,1,4>": "0", + "<21,15,1,5>": "0", + "<21,15,1,6>": "0", + "<21,15,1,7>": "0", + "<21,15,1,8>": "34", + "<21,15,1,9>": "0", + "<21,15,1,10>": "3", + "<21,15,1,11>": "2", + "<21,15,1,12>": "1", + "<21,15,1,13>": "0", + "<21,15,1,14>": "0" + } + }, + "<21,16>": "", + "<21,17>": "", + "<21,18>": { + "<21,18,1>": { + "<21,18,1,1>": "X", + "<21,18,1,2>": "EXECUTE", + "<21,18,1,3>": "@WINDOW_EVENTS", + "<21,18,1,4>": { + "<21,18,1,4,1>": "@SELF", + "<21,18,1,4,2>": "@EVENT", + "<21,18,1,4,3>": "@PARAM1", + "<21,18,1,4,4>": "@PARAM2", + "<21,18,1,4,5>": "@PARAM3", + "<21,18,1,4,6>": "@PARAM4", + "<21,18,1,4,7>": "@PARAM5", + "<21,18,1,4,8>": "@PARAM6" + }, + "<21,18,1,5>": "", + "<21,18,1,6>": "", + "<21,18,1,7>": "", + "<21,18,1,8>": "", + "<21,18,1,9>": "", + "<21,18,1,10>": "", + "<21,18,1,11>": "", + "<21,18,1,12>": "", + "<21,18,1,13>": "", + "<21,18,1,14>": "", + "<21,18,1,15>": "COMMEVT", + "<21,18,1,16>": "0" + } + }, + "<21,19>": "CLICK", + "<21,20>": "", + "<21,21>": "", + "<21,22>": "", + "<21,23>": "", + "<21,24>": "", + "<21,25>": "", + "<21,26>": "", + "<21,27>": "", + "<21,28>": "", + "<21,29>": "", + "<21,30>": "", + "<21,31>": "", + "<21,32>": "", + "<21,33>": "", + "<21,34>": "", + "<21,35>": "", + "<21,36>": "", + "<21,37>": "", + "<21,38>": "", + "<21,39>": "", + "<21,40>": "1", + "<21,41>": { + "<21,41,1>": "", + "<21,41,2>": "-1" + }, + "<21,42>": "", + "<21,43>": "", + "<21,44>": "", + "<21,45>": "", + "<21,46>": "", + "<21,47>": "", + "<21,48>": "", + "<21,49>": "", + "<21,50>": "", + "<21,51>": "", + "<21,52>": "", + "<21,53>": "", + "<21,54>": "", + "<21,55>": "", + "<21,56>": "", + "<21,57>": "", + "<21,58>": "", + "<21,59>": "", + "<21,60>": "", + "<21,61>": "", + "<21,62>": "0", + "<21,63>": "", + "<21,64>": { + "<21,64,1>": "-2", + "<21,64,2>": "-2", + "<21,64,3>": "0" + }, + "<21,65>": "-2", + "<21,66>": "", + "<21,67>": "", + "<21,68>": "", + "<21,69>": "", + "<21,70>": "", + "<21,71>": "", + "<21,72>": "", + "<21,73>": "", + "<21,74>": "", + "<21,75>": "", + "<21,76>": "", + "<21,77>": "", + "<21,78>": "", + "<21,79>": "", + "<21,80>": "", + "<21,81>": "", + "<21,82>": "", + "<21,83>": "", + "<21,84>": "", + "<21,85>": "", + "<21,86>": "", + "<21,87>": "", + "<21,88>": "", + "<21,89>": "", + "<21,90>": "0", + "<21,91>": "0", + "<21,92>": "", + "<21,93>": "", + "<21,94>": "", + "<21,95>": "", + "<21,96>": "", + "<21,97>": "", + "<21,98>": "", + "<21,99>": "", + "<21,100>": "", + "<21,101>": "", + "<21,102>": "", + "<21,103>": "", + "<21,104>": "", + "<21,105>": "", + "<21,106>": "", + "<21,107>": "", + "<21,108>": "" + }, + "<22>": { + "<22,1>": "PUB_ADD_USERS", + "<22,2>": "", + "<22,3>": "PUSHBUTTON", + "<22,4>": "NDW_NOTIFICATION.GRB_LSL_USERS", + "<22,5>": "313", + "<22,6>": "-38", + "<22,7>": "88", + "<22,8>": "28", + "<22,9>": "Add", + "<22,10>": { + "<22,10,1>": "0x5E002300", + "<22,10,2>": "0x0" + }, + "<22,11>": { + "<22,11,1>": "0x2000", + "<22,11,2>": "0x80000000" + }, + "<22,12>": "11", + "<22,13>": { + "<22,13,1>": "-2", + "<22,13,2>": "-2", + "<22,13,3>": "0" + }, + "<22,14>": "0", + "<22,15>": { + "<22,15,1>": { + "<22,15,1,1>": "Tahoma", + "<22,15,1,2>": "-11", + "<22,15,1,3>": "400", + "<22,15,1,4>": "0", + "<22,15,1,5>": "0", + "<22,15,1,6>": "0", + "<22,15,1,7>": "0", + "<22,15,1,8>": "34", + "<22,15,1,9>": "0", + "<22,15,1,10>": "3", + "<22,15,1,11>": "2", + "<22,15,1,12>": "1", + "<22,15,1,13>": "0", + "<22,15,1,14>": "0" + } + }, + "<22,16>": "", + "<22,17>": "", + "<22,18>": { + "<22,18,1>": { + "<22,18,1,1>": "X", + "<22,18,1,2>": "EXECUTE", + "<22,18,1,3>": "@WINDOW_EVENTS", + "<22,18,1,4>": { + "<22,18,1,4,1>": "@SELF", + "<22,18,1,4,2>": "@EVENT", + "<22,18,1,4,3>": "@PARAM1", + "<22,18,1,4,4>": "@PARAM2", + "<22,18,1,4,5>": "@PARAM3", + "<22,18,1,4,6>": "@PARAM4", + "<22,18,1,4,7>": "@PARAM5", + "<22,18,1,4,8>": "@PARAM6" + }, + "<22,18,1,5>": "", + "<22,18,1,6>": "", + "<22,18,1,7>": "", + "<22,18,1,8>": "", + "<22,18,1,9>": "", + "<22,18,1,10>": "", + "<22,18,1,11>": "", + "<22,18,1,12>": "", + "<22,18,1,13>": "", + "<22,18,1,14>": "", + "<22,18,1,15>": "COMMEVT", + "<22,18,1,16>": "0" + } + }, + "<22,19>": "CLICK", + "<22,20>": "", + "<22,21>": "", + "<22,22>": "", + "<22,23>": "", + "<22,24>": "", + "<22,25>": "", + "<22,26>": "", + "<22,27>": "", + "<22,28>": "", + "<22,29>": "", + "<22,30>": "", + "<22,31>": "", + "<22,32>": "", + "<22,33>": "", + "<22,34>": "", + "<22,35>": "", + "<22,36>": "", + "<22,37>": "", + "<22,38>": "", + "<22,39>": "", + "<22,40>": "1", + "<22,41>": { + "<22,41,1>": "", + "<22,41,2>": "-1" + }, + "<22,42>": "", + "<22,43>": "", + "<22,44>": "", + "<22,45>": "", + "<22,46>": "", + "<22,47>": "", + "<22,48>": "", + "<22,49>": "", + "<22,50>": "", + "<22,51>": "", + "<22,52>": "", + "<22,53>": "", + "<22,54>": "", + "<22,55>": "", + "<22,56>": "", + "<22,57>": "", + "<22,58>": "", + "<22,59>": "", + "<22,60>": "", + "<22,61>": "", + "<22,62>": "0", + "<22,63>": "", + "<22,64>": { + "<22,64,1>": "-2", + "<22,64,2>": "-2", + "<22,64,3>": "0" + }, + "<22,65>": "-2", + "<22,66>": "", + "<22,67>": "", + "<22,68>": "", + "<22,69>": "", + "<22,70>": "", + "<22,71>": "", + "<22,72>": "", + "<22,73>": "", + "<22,74>": "", + "<22,75>": "", + "<22,76>": "", + "<22,77>": "", + "<22,78>": "", + "<22,79>": "", + "<22,80>": "", + "<22,81>": "", + "<22,82>": "", + "<22,83>": "", + "<22,84>": "", + "<22,85>": "", + "<22,86>": "", + "<22,87>": "", + "<22,88>": "", + "<22,89>": "", + "<22,90>": "0", + "<22,91>": "0", + "<22,92>": "", + "<22,93>": "", + "<22,94>": "", + "<22,95>": "", + "<22,96>": "", + "<22,97>": "", + "<22,98>": "", + "<22,99>": "", + "<22,100>": "", + "<22,101>": "", + "<22,102>": "", + "<22,103>": "", + "<22,104>": "", + "<22,105>": "", + "<22,106>": "", + "<22,107>": "", + "<22,108>": "" + }, + "<23>": { + "<23,1>": "EDT_LSL_USERS", + "<23,2>": "", + "<23,3>": "EDITTABLE", + "<23,4>": "NDW_NOTIFICATION.GRB_LSL_USERS", + "<23,5>": "21", + "<23,6>": "28", + "<23,7>": "380", + "<23,8>": "-52", + "<23,9>": "", + "<23,10>": { + "<23,10,1>": "0x5E0002D0", + "<23,10,2>": "0x200" + }, + "<23,11>": { + "<23,11,1>": "0x8000", + "<23,11,2>": "0x80000002" + }, + "<23,12>": "9", + "<23,13>": { + "<23,13,1>": "-2", + "<23,13,2>": "-2", + "<23,13,3>": "" + }, + "<23,14>": "0", + "<23,15>": { + "<23,15,1>": { + "<23,15,1,1>": "Tahoma", + "<23,15,1,2>": "-11", + "<23,15,1,3>": "400", + "<23,15,1,4>": "0", + "<23,15,1,5>": "0", + "<23,15,1,6>": "0", + "<23,15,1,7>": "0", + "<23,15,1,8>": "34", + "<23,15,1,9>": "0", + "<23,15,1,10>": "3", + "<23,15,1,11>": "2", + "<23,15,1,12>": "1", + "<23,15,1,13>": "0", + "<23,15,1,14>": "0" + } + }, + "<23,16>": "", + "<23,17>": "", + "<23,18>": { + "<23,18,1>": { + "<23,18,1,1>": "R", + "<23,18,1,2>": "EXECUTE", + "<23,18,1,3>": "LSL2*POPUP**SHOW_USERS", + "<23,18,1,4>": "@WINDOW", + "<23,18,1,5>": "@SELF", + "<23,18,1,6>": "TEXT", + "<23,18,1,7>": "", + "<23,18,1,8>": "", + "<23,18,1,9>": "", + "<23,18,1,10>": "", + "<23,18,1,11>": "", + "<23,18,1,12>": "", + "<23,18,1,13>": "", + "<23,18,1,14>": "", + "<23,18,1,15>": "POPUP" + }, + "<23,18,2>": { + "<23,18,2,1>": "X", + "<23,18,2,2>": "EXECUTE", + "<23,18,2,3>": "@WINDOW_EVENTS", + "<23,18,2,4>": { + "<23,18,2,4,1>": "@SELF", + "<23,18,2,4,2>": "@EVENT", + "<23,18,2,4,3>": "@PARAM1", + "<23,18,2,4,4>": "@PARAM2", + "<23,18,2,4,5>": "@PARAM3", + "<23,18,2,4,6>": "@PARAM4", + "<23,18,2,4,7>": "@PARAM5", + "<23,18,2,4,8>": "@PARAM6" + }, + "<23,18,2,5>": "", + "<23,18,2,6>": "", + "<23,18,2,7>": "", + "<23,18,2,8>": "", + "<23,18,2,9>": "", + "<23,18,2,10>": "", + "<23,18,2,11>": "", + "<23,18,2,12>": "", + "<23,18,2,13>": "", + "<23,18,2,14>": "", + "<23,18,2,15>": "COMMEVT", + "<23,18,2,16>": "0" + } + }, + "<23,19>": { + "<23,19,1>": "OPTIONS", + "<23,19,2>": "ROWSELCHANGED" + }, + "<23,20>": "", + "<23,21>": "", + "<23,22>": "", + "<23,23>": { + "<23,23,1>": "", + "<23,23,2>": "" + }, + "<23,24>": { + "<23,24,1>": "", + "<23,24,2>": "" + }, + "<23,25>": "", + "<23,26>": "", + "<23,27>": "", + "<23,28>": { + "<23,28,1>": "", + "<23,28,2>": "<>" + }, + "<23,29>": { + "<23,29,1>": "", + "<23,29,2>": "<>" + }, + "<23,30>": { + "<23,30,1>": "<>", + "<23,30,2>": "<>" + }, + "<23,31>": { + "<23,31,1>": "0", + "<23,31,2>": "0" + }, + "<23,32>": "", + "<23,33>": "", + "<23,34>": "", + "<23,35>": { + "<23,35,1>": { + "<23,35,1,1>": "", + "<23,35,1,2>": "" + }, + "<23,35,2>": { + "<23,35,2,1>": "", + "<23,35,2,2>": "" + }, + "<23,35,3>": { + "<23,35,3,1>": "", + "<23,35,3,2>": "" + }, + "<23,35,4>": { + "<23,35,4,1>": "", + "<23,35,4,2>": "" + }, + "<23,35,5>": { + "<23,35,5,1>": "", + "<23,35,5,2>": "" + }, + "<23,35,6>": { + "<23,35,6,1>": "", + "<23,35,6,2>": "" + }, + "<23,35,7>": { + "<23,35,7,1>": "", + "<23,35,7,2>": "" + }, + "<23,35,8>": { + "<23,35,8,1>": "", + "<23,35,8,2>": "" + }, + "<23,35,9>": { + "<23,35,9,1>": "", + "<23,35,9,2>": "" + }, + "<23,35,10>": { + "<23,35,10,1>": "", + "<23,35,10,2>": "" + }, + "<23,35,11>": { + "<23,35,11,1>": "", + "<23,35,11,2>": "" + }, + "<23,35,12>": { + "<23,35,12,1>": "", + "<23,35,12,2>": "" + }, + "<23,35,13>": { + "<23,35,13,1>": "", + "<23,35,13,2>": "" + }, + "<23,35,14>": { + "<23,35,14,1>": "", + "<23,35,14,2>": "" + }, + "<23,35,15>": { + "<23,35,15,1>": "", + "<23,35,15,2>": "" + }, + "<23,35,16>": { + "<23,35,16,1>": "", + "<23,35,16,2>": "" + }, + "<23,35,17>": { + "<23,35,17,1>": "", + "<23,35,17,2>": "" + }, + "<23,35,18>": { + "<23,35,18,1>": "", + "<23,35,18,2>": "" + }, + "<23,35,19>": { + "<23,35,19,1>": "", + "<23,35,19,2>": "" + }, + "<23,35,20>": { + "<23,35,20,1>": "", + "<23,35,20,2>": "" + }, + "<23,35,21>": { + "<23,35,21,1>": "", + "<23,35,21,2>": "" + }, + "<23,35,22>": { + "<23,35,22,1>": "", + "<23,35,22,2>": "" + }, + "<23,35,23>": { + "<23,35,23,1>": "", + "<23,35,23,2>": "" + } + }, + "<23,36>": "", + "<23,37>": "", + "<23,38>": "", + "<23,39>": { + "<23,39,1>": "80", + "<23,39,2>": "80" + }, + "<23,40>": "2", + "<23,41>": { + "<23,41,1>": "0", + "<23,41,2>": "2", + "<23,41,3>": "0", + "<23,41,4>": "-2", + "<23,41,5>": "-2", + "<23,41,6>": "", + "<23,41,7>": "", + "<23,41,8>": "40", + "<23,41,9>": "113", + "<23,41,10>": "115", + "<23,41,11>": "0", + "<23,41,12>": "-2", + "<23,41,13>": "-1", + "<23,41,14>": "1" + }, + "<23,42>": { + "<23,42,1>": "2147500546", + "<23,42,2>": "2147500034" + }, + "<23,43>": { + "<23,43,1>": "109", + "<23,43,2>": "251" + }, + "<23,44>": { + "<23,44,1>": "User ID", + "<23,44,2>": "User Name" + }, + "<23,45>": "", + "<23,46>": "", + "<23,47>": "", + "<23,48>": "", + "<23,49>": "", + "<23,50>": "", + "<23,51>": "", + "<23,52>": "", + "<23,53>": "", + "<23,54>": "", + "<23,55>": { + "<23,55,1>": "", + "<23,55,2>": "" + }, + "<23,56>": { + "<23,56,1>": "", + "<23,56,2>": "" + }, + "<23,57>": { + "<23,57,1>": "", + "<23,57,2>": "" + }, + "<23,58>": { + "<23,58,1>": "", + "<23,58,2>": "" + }, + "<23,59>": "", + "<23,60>": { + "<23,60,1>": "18", + "<23,60,2>": "18" + }, + "<23,61>": "", + "<23,62>": "0", + "<23,63>": "", + "<23,64>": "-2", + "<23,65>": "", + "<23,66>": "", + "<23,67>": "", + "<23,68>": "", + "<23,69>": "", + "<23,70>": "", + "<23,71>": "", + "<23,72>": "", + "<23,73>": "", + "<23,74>": "", + "<23,75>": "", + "<23,76>": "", + "<23,77>": "", + "<23,78>": "", + "<23,79>": "", + "<23,80>": "", + "<23,81>": "", + "<23,82>": "", + "<23,83>": "", + "<23,84>": "", + "<23,85>": "", + "<23,86>": "", + "<23,87>": "", + "<23,88>": "", + "<23,89>": "", + "<23,90>": "", + "<23,91>": "", + "<23,92>": "", + "<23,93>": "", + "<23,94>": { + "<23,94,1>": "", + "<23,94,2>": "" + }, + "<23,95>": { + "<23,95,1>": "", + "<23,95,2>": "" + }, + "<23,96>": { + "<23,96,1>": { + "<23,96,1,1>": "", + "<23,96,1,2>": "" + }, + "<23,96,2>": { + "<23,96,2,1>": "", + "<23,96,2,2>": "" + } + }, + "<23,97>": { + "<23,97,1>": { + "<23,97,1,1>": "Tahoma", + "<23,97,1,2>": "-11", + "<23,97,1,3>": "400", + "<23,97,1,4>": "0", + "<23,97,1,5>": "0", + "<23,97,1,6>": "0", + "<23,97,1,7>": "0", + "<23,97,1,8>": "34", + "<23,97,1,9>": "0", + "<23,97,1,10>": "3", + "<23,97,1,11>": "2", + "<23,97,1,12>": "1" + }, + "<23,97,2>": { + "<23,97,2,1>": "Tahoma", + "<23,97,2,2>": "-11", + "<23,97,2,3>": "400", + "<23,97,2,4>": "0", + "<23,97,2,5>": "0", + "<23,97,2,6>": "0", + "<23,97,2,7>": "0", + "<23,97,2,8>": "34", + "<23,97,2,9>": "0", + "<23,97,2,10>": "3", + "<23,97,2,11>": "2", + "<23,97,2,12>": "1" + } + }, + "<23,98>": { + "<23,98,1>": { + "<23,98,1,1>": "Tahoma", + "<23,98,1,2>": "-11", + "<23,98,1,3>": "400", + "<23,98,1,4>": "0", + "<23,98,1,5>": "0", + "<23,98,1,6>": "0", + "<23,98,1,7>": "0", + "<23,98,1,8>": "34", + "<23,98,1,9>": "0", + "<23,98,1,10>": "3", + "<23,98,1,11>": "2", + "<23,98,1,12>": "1" + }, + "<23,98,2>": { + "<23,98,2,1>": "Tahoma", + "<23,98,2,2>": "-11", + "<23,98,2,3>": "400", + "<23,98,2,4>": "0", + "<23,98,2,5>": "0", + "<23,98,2,6>": "0", + "<23,98,2,7>": "0", + "<23,98,2,8>": "34", + "<23,98,2,9>": "0", + "<23,98,2,10>": "3", + "<23,98,2,11>": "2", + "<23,98,2,12>": "1" + } + }, + "<23,99>": { + "<23,99,1>": { + "<23,99,1,1>": "-2", + "<23,99,1,2>": "-2", + "<23,99,1,3>": "-2", + "<23,99,1,4>": "0", + "<23,99,1,5>": "0", + "<23,99,1,6>": "0", + "<23,99,1,7>": "0" + }, + "<23,99,2>": { + "<23,99,2,1>": "-2", + "<23,99,2,2>": "-2", + "<23,99,2,3>": "-2", + "<23,99,2,4>": "0", + "<23,99,2,5>": "0", + "<23,99,2,6>": "0", + "<23,99,2,7>": "0" + }, + "<23,99,3>": { + "<23,99,3,1>": "-2", + "<23,99,3,2>": "-2", + "<23,99,3,3>": "-2", + "<23,99,3,4>": "0", + "<23,99,3,5>": "0", + "<23,99,3,6>": "0", + "<23,99,3,7>": "0" + }, + "<23,99,4>": { + "<23,99,4,1>": "-2", + "<23,99,4,2>": "-2", + "<23,99,4,3>": "-2", + "<23,99,4,4>": "0", + "<23,99,4,5>": "0", + "<23,99,4,6>": "0", + "<23,99,4,7>": "0" + }, + "<23,99,5>": { + "<23,99,5,1>": "-2", + "<23,99,5,2>": "-2", + "<23,99,5,3>": "-2", + "<23,99,5,4>": "0", + "<23,99,5,5>": "0", + "<23,99,5,6>": "0", + "<23,99,5,7>": "0" + }, + "<23,99,6>": { + "<23,99,6,1>": "-2", + "<23,99,6,2>": "-2", + "<23,99,6,3>": "-2", + "<23,99,6,4>": "0", + "<23,99,6,5>": "0", + "<23,99,6,6>": "0", + "<23,99,6,7>": "0" + }, + "<23,99,7>": { + "<23,99,7,1>": "-2", + "<23,99,7,2>": "-2", + "<23,99,7,3>": "-2", + "<23,99,7,4>": "0", + "<23,99,7,5>": "0", + "<23,99,7,6>": "0", + "<23,99,7,7>": "0" + }, + "<23,99,8>": "", + "<23,99,9>": "", + "<23,99,10>": "", + "<23,99,11>": { + "<23,99,11,1>": "-2", + "<23,99,11,2>": "-2", + "<23,99,11,3>": "-2", + "<23,99,11,4>": "0", + "<23,99,11,5>": "0", + "<23,99,11,6>": "0", + "<23,99,11,7>": "0" + }, + "<23,99,12>": { + "<23,99,12,1>": "-2", + "<23,99,12,2>": "-2", + "<23,99,12,3>": "-2", + "<23,99,12,4>": "0", + "<23,99,12,5>": "0", + "<23,99,12,6>": "0", + "<23,99,12,7>": "0" + }, + "<23,99,13>": { + "<23,99,13,1>": "-2", + "<23,99,13,2>": "-2", + "<23,99,13,3>": "-2", + "<23,99,13,4>": "0", + "<23,99,13,5>": "0", + "<23,99,13,6>": "0", + "<23,99,13,7>": "0" + }, + "<23,99,14>": { + "<23,99,14,1>": "-2", + "<23,99,14,2>": "-2", + "<23,99,14,3>": "-2", + "<23,99,14,4>": "0", + "<23,99,14,5>": "0", + "<23,99,14,6>": "0", + "<23,99,14,7>": "0" + }, + "<23,99,15>": { + "<23,99,15,1>": "-2", + "<23,99,15,2>": "-2", + "<23,99,15,3>": "-2", + "<23,99,15,4>": "0", + "<23,99,15,5>": "0", + "<23,99,15,6>": "0", + "<23,99,15,7>": "0" + }, + "<23,99,16>": { + "<23,99,16,1>": "-2", + "<23,99,16,2>": "-2", + "<23,99,16,3>": "-2", + "<23,99,16,4>": "0", + "<23,99,16,5>": "0", + "<23,99,16,6>": "0", + "<23,99,16,7>": "0" + }, + "<23,99,17>": { + "<23,99,17,1>": "-2", + "<23,99,17,2>": "-2", + "<23,99,17,3>": "-2", + "<23,99,17,4>": "0", + "<23,99,17,5>": "0", + "<23,99,17,6>": "0", + "<23,99,17,7>": "0" + }, + "<23,99,18>": "", + "<23,99,19>": "", + "<23,99,20>": "", + "<23,99,21>": { + "<23,99,21,1>": "-2", + "<23,99,21,2>": "-2", + "<23,99,21,3>": "-2", + "<23,99,21,4>": "0", + "<23,99,21,5>": "0", + "<23,99,21,6>": "0", + "<23,99,21,7>": "0" + }, + "<23,99,22>": { + "<23,99,22,1>": "-2", + "<23,99,22,2>": "-2", + "<23,99,22,3>": "-2", + "<23,99,22,4>": "0", + "<23,99,22,5>": "0", + "<23,99,22,6>": "0", + "<23,99,22,7>": "0" + }, + "<23,99,23>": { + "<23,99,23,1>": "-2", + "<23,99,23,2>": "-2", + "<23,99,23,3>": "-2", + "<23,99,23,4>": "0", + "<23,99,23,5>": "0", + "<23,99,23,6>": "0", + "<23,99,23,7>": "0" + }, + "<23,99,24>": { + "<23,99,24,1>": "-2", + "<23,99,24,2>": "-2", + "<23,99,24,3>": "-2", + "<23,99,24,4>": "0", + "<23,99,24,5>": "0", + "<23,99,24,6>": "0", + "<23,99,24,7>": "0" + }, + "<23,99,25>": { + "<23,99,25,1>": "-2", + "<23,99,25,2>": "-2", + "<23,99,25,3>": "-2", + "<23,99,25,4>": "0", + "<23,99,25,5>": "0", + "<23,99,25,6>": "0", + "<23,99,25,7>": "0" + }, + "<23,99,26>": { + "<23,99,26,1>": "-2", + "<23,99,26,2>": "-2", + "<23,99,26,3>": "-2", + "<23,99,26,4>": "0", + "<23,99,26,5>": "0", + "<23,99,26,6>": "0", + "<23,99,26,7>": "0" + }, + "<23,99,27>": { + "<23,99,27,1>": "-2", + "<23,99,27,2>": "-2", + "<23,99,27,3>": "-2", + "<23,99,27,4>": "0", + "<23,99,27,5>": "0", + "<23,99,27,6>": "0", + "<23,99,27,7>": "0" + } + }, + "<23,100>": "", + "<23,101>": "", + "<23,102>": "", + "<23,103>": "", + "<23,104>": "", + "<23,105>": "", + "<23,106>": "", + "<23,107>": "", + "<23,108>": "" + } + }, + "record4": { + "<1>": { + "<1,1>": { + "<1,1,1>": "MENU", + "<1,1,2>": "3", + "<1,1,3>": "", + "<1,1,4>": "", + "<1,1,5>": "", + "<1,1,6>": "", + "<1,1,7>": "", + "<1,1,8>": "", + "<1,1,9>": "14" + }, + "<1,2>": { + "<1,2,1>": "POPUP", + "<1,2,2>": "7", + "<1,2,3>": "FILE", + "<1,2,4>": "&File", + "<1,2,5>": "0", + "<1,2,6>": "0", + "<1,2,7>": "0", + "<1,2,8>": "0", + "<1,2,9>": "", + "<1,2,10>": "", + "<1,2,11>": "0", + "<1,2,12>": "", + "<1,2,13>": "", + "<1,2,14>": "", + "<1,2,15>": "", + "<1,2,16>": "", + "<1,2,17>": "", + "<1,2,18>": "", + "<1,2,19>": "", + "<1,2,20>": "" + }, + "<1,3>": { + "<1,3,1>": "ITEM", + "<1,3,2>": "", + "<1,3,3>": "FILE.READ_ROW", + "<1,3,4>": "&Read Row\tCtrl+R", + "<1,3,5>": "0", + "<1,3,6>": "0", + "<1,3,7>": "0", + "<1,3,8>": "594", + "<1,3,9>": "", + "<1,3,10>": "", + "<1,3,11>": "32", + "<1,3,12>": "", + "<1,3,13>": "", + "<1,3,14>": "", + "<1,3,15>": "", + "<1,3,16>": "", + "<1,3,17>": "", + "<1,3,18>": "", + "<1,3,19>": "", + "<1,3,20>": "" + }, + "<1,4>": { + "<1,4,1>": "ITEM", + "<1,4,2>": "", + "<1,4,3>": "FILE.SAVE_ROW", + "<1,4,4>": "&Save Row\tF9", + "<1,4,5>": "0", + "<1,4,6>": "0", + "<1,4,7>": "0", + "<1,4,8>": "120", + "<1,4,9>": "", + "<1,4,10>": "", + "<1,4,11>": "32", + "<1,4,12>": "", + "<1,4,13>": "", + "<1,4,14>": "", + "<1,4,15>": "", + "<1,4,16>": "", + "<1,4,17>": "", + "<1,4,18>": "", + "<1,4,19>": "", + "<1,4,20>": "" + }, + "<1,5>": { + "<1,5,1>": "SEPARATOR", + "<1,5,2>": "", + "<1,5,3>": "FILE.SEP100", + "<1,5,4>": "SEP100", + "<1,5,5>": "0", + "<1,5,6>": "0", + "<1,5,7>": "0", + "<1,5,8>": "0", + "<1,5,9>": "", + "<1,5,10>": "", + "<1,5,11>": "0", + "<1,5,12>": "", + "<1,5,13>": "", + "<1,5,14>": "", + "<1,5,15>": "", + "<1,5,16>": "", + "<1,5,17>": "", + "<1,5,18>": "", + "<1,5,19>": "", + "<1,5,20>": "" + }, + "<1,6>": { + "<1,6,1>": "ITEM", + "<1,6,2>": "", + "<1,6,3>": "FILE.CLEAR_FORM", + "<1,6,4>": "C&lear Form\tF8", + "<1,6,5>": "0", + "<1,6,6>": "0", + "<1,6,7>": "0", + "<1,6,8>": "119", + "<1,6,9>": "", + "<1,6,10>": "", + "<1,6,11>": "0", + "<1,6,12>": "", + "<1,6,13>": "", + "<1,6,14>": "", + "<1,6,15>": "", + "<1,6,16>": "", + "<1,6,17>": "", + "<1,6,18>": "", + "<1,6,19>": "", + "<1,6,20>": "" + }, + "<1,7>": { + "<1,7,1>": "ITEM", + "<1,7,2>": "", + "<1,7,3>": "FILE.DELETE_ROW", + "<1,7,4>": "&Delete Row\tF7", + "<1,7,5>": "0", + "<1,7,6>": "0", + "<1,7,7>": "0", + "<1,7,8>": "118", + "<1,7,9>": "", + "<1,7,10>": "", + "<1,7,11>": "0", + "<1,7,12>": "", + "<1,7,13>": "", + "<1,7,14>": "", + "<1,7,15>": "", + "<1,7,16>": "", + "<1,7,17>": "", + "<1,7,18>": "", + "<1,7,19>": "", + "<1,7,20>": "" + }, + "<1,8>": { + "<1,8,1>": "SEPARATOR", + "<1,8,2>": "", + "<1,8,3>": "FILE.SEP101", + "<1,8,4>": "SEP101", + "<1,8,5>": "0", + "<1,8,6>": "0", + "<1,8,7>": "0", + "<1,8,8>": "0", + "<1,8,9>": "", + "<1,8,10>": "", + "<1,8,11>": "0", + "<1,8,12>": "", + "<1,8,13>": "", + "<1,8,14>": "", + "<1,8,15>": "", + "<1,8,16>": "", + "<1,8,17>": "", + "<1,8,18>": "", + "<1,8,19>": "", + "<1,8,20>": "" + }, + "<1,9>": { + "<1,9,1>": "ITEM", + "<1,9,2>": "", + "<1,9,3>": "FILE.CLOSE", + "<1,9,4>": "&Close\tAlt+C", + "<1,9,5>": "0", + "<1,9,6>": "0", + "<1,9,7>": "0", + "<1,9,8>": "1091", + "<1,9,9>": "", + "<1,9,10>": "", + "<1,9,11>": "0", + "<1,9,12>": "", + "<1,9,13>": "", + "<1,9,14>": "", + "<1,9,15>": "", + "<1,9,16>": "", + "<1,9,17>": "", + "<1,9,18>": "", + "<1,9,19>": "", + "<1,9,20>": "" + }, + "<1,10>": { + "<1,10,1>": "POPUP", + "<1,10,2>": "1", + "<1,10,3>": "EDIT", + "<1,10,4>": "&Edit", + "<1,10,5>": "0", + "<1,10,6>": "0", + "<1,10,7>": "0", + "<1,10,8>": "0", + "<1,10,9>": "", + "<1,10,10>": "", + "<1,10,11>": "0", + "<1,10,12>": "", + "<1,10,13>": "", + "<1,10,14>": "", + "<1,10,15>": "", + "<1,10,16>": "", + "<1,10,17>": "", + "<1,10,18>": "", + "<1,10,19>": "", + "<1,10,20>": "" + }, + "<1,11>": { + "<1,11,1>": "ITEM", + "<1,11,2>": "", + "<1,11,3>": "EDIT.OPTIONS", + "<1,11,4>": "&Options\tAlt+Down", + "<1,11,5>": "0", + "<1,11,6>": "0", + "<1,11,7>": "0", + "<1,11,8>": "1064", + "<1,11,9>": "", + "<1,11,10>": "", + "<1,11,11>": "0", + "<1,11,12>": "", + "<1,11,13>": "", + "<1,11,14>": "", + "<1,11,15>": "", + "<1,11,16>": "", + "<1,11,17>": "", + "<1,11,18>": "", + "<1,11,19>": "", + "<1,11,20>": "" + }, + "<1,12>": { + "<1,12,1>": "POPUP", + "<1,12,2>": "2", + "<1,12,3>": "HELP", + "<1,12,4>": "&Help", + "<1,12,5>": "0", + "<1,12,6>": "0", + "<1,12,7>": "0", + "<1,12,8>": "0", + "<1,12,9>": "", + "<1,12,10>": "", + "<1,12,11>": "0", + "<1,12,12>": "", + "<1,12,13>": "", + "<1,12,14>": "", + "<1,12,15>": "", + "<1,12,16>": "", + "<1,12,17>": "", + "<1,12,18>": "", + "<1,12,19>": "", + "<1,12,20>": "" + }, + "<1,13>": { + "<1,13,1>": "ITEM", + "<1,13,2>": "", + "<1,13,3>": "HELP.HELP", + "<1,13,4>": "&Help\tF1", + "<1,13,5>": "0", + "<1,13,6>": "0", + "<1,13,7>": "0", + "<1,13,8>": "112", + "<1,13,9>": "", + "<1,13,10>": "", + "<1,13,11>": "0", + "<1,13,12>": "", + "<1,13,13>": "", + "<1,13,14>": "", + "<1,13,15>": "", + "<1,13,16>": "", + "<1,13,17>": "", + "<1,13,18>": "", + "<1,13,19>": "", + "<1,13,20>": "" + }, + "<1,14>": { + "<1,14,1>": "ITEM", + "<1,14,2>": "", + "<1,14,3>": "HELP.QUICKHELP", + "<1,14,4>": "&QuickHelp\tCtrl+F1", + "<1,14,5>": "0", + "<1,14,6>": "0", + "<1,14,7>": "0", + "<1,14,8>": "624", + "<1,14,9>": "", + "<1,14,10>": "", + "<1,14,11>": "0", + "<1,14,12>": "", + "<1,14,13>": "", + "<1,14,14>": "", + "<1,14,15>": "", + "<1,14,16>": "", + "<1,14,17>": "", + "<1,14,18>": "", + "<1,14,19>": "", + "<1,14,20>": "" + } + }, + "<2>": { + "<2,1>": "", + "<2,2>": { + "<2,2,1>": { + "<2,2,1,1>": "E", + "<2,2,1,2>": "READ", + "<2,2,1,3>": "@WINDOW", + "<2,2,1,4>": "", + "<2,2,1,5>": "", + "<2,2,1,6>": "" + }, + "<2,2,2>": { + "<2,2,2,1>": "E", + "<2,2,2,2>": "WRITE", + "<2,2,2,3>": "@WINDOW", + "<2,2,2,4>": "", + "<2,2,2,5>": "", + "<2,2,2,6>": "" + }, + "<2,2,3>": { + "<2,2,3,1>": "E", + "<2,2,3,2>": "CLEAR", + "<2,2,3,3>": "@WINDOW", + "<2,2,3,4>": "", + "<2,2,3,5>": "", + "<2,2,3,6>": "" + }, + "<2,2,4>": { + "<2,2,4,1>": "E", + "<2,2,4,2>": "DELETE", + "<2,2,4,3>": "@WINDOW", + "<2,2,4,4>": "", + "<2,2,4,5>": "", + "<2,2,4,6>": "" + }, + "<2,2,5>": { + "<2,2,5,1>": "E", + "<2,2,5,2>": "CLOSE", + "<2,2,5,3>": "@WINDOW", + "<2,2,5,4>": "", + "<2,2,5,5>": "", + "<2,2,5,6>": "" + }, + "<2,2,6>": { + "<2,2,6,1>": "E", + "<2,2,6,2>": "OPTIONS", + "<2,2,6,3>": "@FOCUS", + "<2,2,6,4>": "", + "<2,2,6,5>": "", + "<2,2,6,6>": "", + "<2,2,6,7>": "", + "<2,2,6,8>": "", + "<2,2,6,9>": "", + "<2,2,6,10>": "", + "<2,2,6,11>": "", + "<2,2,6,12>": "", + "<2,2,6,13>": "", + "<2,2,6,14>": "", + "<2,2,6,15>": "GEN", + "<2,2,6,16>": "0" + }, + "<2,2,7>": { + "<2,2,7,1>": "E", + "<2,2,7,2>": "HELP", + "<2,2,7,3>": "@FOCUS", + "<2,2,7,4>": "", + "<2,2,7,5>": "", + "<2,2,7,6>": "" + } + }, + "<2,3>": { + "<2,3,1>": "FILE.READ_ROW", + "<2,3,2>": "FILE.SAVE_ROW", + "<2,3,3>": "FILE.CLEAR_FORM", + "<2,3,4>": "FILE.DELETE_ROW", + "<2,3,5>": "FILE.CLOSE", + "<2,3,6>": "EDIT.OPTIONS", + "<2,3,7>": "HELP.HELP" + }, + "<2,4>": "0" + } + } + } +} \ No newline at end of file diff --git a/LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt b/LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt index 4e4e296..6abff10 100644 --- a/LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt +++ b/LSL2/STPROC/ACTIVE_DIRECTORY_SERVICES.txt @@ -182,6 +182,7 @@ end service // 9/26/2024 - [JRO] Initial Programmer. //---------------------------------------------------------------------------------------------------------------------- Service GetADGroupsByString(SearchString, Domain=DOMAIN, SearchByDescription=DESCRIPTION_BOOL, GroupType=AD_GROUP_TYPE) + Set_Status(0) ErrMessage = '' ADGroups = '' diff --git a/LSL2/STPROC/COMM_NOTE_PTRS.txt b/LSL2/STPROC/COMM_NOTE_PTRS.txt index 8274f62..9d6d6d9 100644 --- a/LSL2/STPROC/COMM_NOTE_PTRS.txt +++ b/LSL2/STPROC/COMM_NOTE_PTRS.txt @@ -42,8 +42,8 @@ BEGIN CASE CASE Instruction = 'WriteNote' ; GOSUB WriteNote CASE Instruction = 'MsgGroups' ; GOSUB MsgGroups CASE Instruction = 'Delete' ; GOSUB Delete - - + + CASE 1 ErrorMsg = 'Unknown Instruction passed to routine' END CASE @@ -59,20 +59,21 @@ RETURN Result * * * * * * * Create: * * * * * * * - -obj_Appwindow('Create',@WINDOW) -Gosub Refresh -Set_Property( @WINDOW: '.NOTE_DATA', 'SELPOS', 0) -Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', 0) -Set_Property( @WINDOW: '.NOTE_DATA', 'PREVSELPOS', 0) -Set_Property( @WINDOW: '.NOTE_DATA2', 'PREVSELPOS', 0) - + + obj_Appwindow('Create',@WINDOW) + Gosub Refresh + Set_Property( @WINDOW: '.NOTE_DATA', 'SELPOS', 0) + Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', 0) + Set_Property( @WINDOW: '.NOTE_DATA', 'PREVSELPOS', 0) + Set_Property( @WINDOW: '.NOTE_DATA2', 'PREVSELPOS', 0) + RETURN + * * * * * * * Refresh: * * * * * * * - + PrevInbox = Get_Property( @WINDOW: '.NOTE_DATA', 'SELPOS')<2> PrevArchive = Get_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS')<2> @@ -89,174 +90,165 @@ Refresh: Set_Property( @WINDOW:'.NOTE_DATA2', 'ARRAY', ArchiveList) If PrevArchive NE 0 then Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', PrevArchive) end - + RETURN + * * * * * * * Rebuild: * * * * * * * - -NoteID = Get_Property(@WINDOW,'ID') - -Verify = Msg(@window,'','NOTE_PTRS_REBUILD') - -IF NOT(Verify) THEN RETURN - -Send_Event(@WINDOW,'CLEAR') - - -Def = "" -Def = "Rebuilding Messages for Last 90 Days..." -Def = "U" - -MsgUp = Msg(@window, Def) - -obj_Notes('Rebuild',NoteID) - -IF Get_Status(errCode) THEN - ErrMsg(errCode) - RETURN -END - -Msg(@window, MsgUp) - -GOSUB Refresh - + + NoteID = Get_Property(@WINDOW,'ID') + + Verify = Msg(@window,'','NOTE_PTRS_REBUILD') + + IF NOT(Verify) THEN RETURN + + Send_Event(@WINDOW,'CLEAR') + + + Def = "" + Def = "Rebuilding Messages for Last 90 Days..." + Def = "U" + + MsgUp = Msg(@window, Def) + + obj_Notes('Rebuild',NoteID) + + IF Get_Status(errCode) THEN + ErrMsg(errCode) + RETURN + END + + Msg(@window, MsgUp) + + GOSUB Refresh + RETURN - - * * * * * * * ReadNote: * * * * * * * - -PageNo = Get_Property(@WINDOW, 'VPOSITION') -If PageNo<1> = 1 then - NoteRow = Get_Property(@WINDOW:'.NOTE_DATA','ROWDATA') -end else - NoteRow = Get_Property(@WINDOW:'.NOTE_DATA2','ROWDATA') -end - -NoteId = NoteRow - -IF NoteID NE '' THEN - obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID:@RM) -END ELSE - ErrMsg('Read Note called without a Note ID.') -END - -npParms = 'NOTE_PTRS':@RM:@USER4 -UserRec = Database_Services('ReadDataRow', 'NOTE_PTRS', @USER4) - -IF Error_Services('HasError') THEN - ErrMsg(Error_Services('GetMessage')) - RETURN -END - -LOCATE NoteID IN UserRec USING @VM SETTING Fpos THEN - UserRec = 'No' + PageNo = Get_Property(@WINDOW, 'VPOSITION') + If PageNo<1> = 1 then + NoteRow = Get_Property(@WINDOW:'.NOTE_DATA','ROWDATA') + end else + NoteRow = Get_Property(@WINDOW:'.NOTE_DATA2','ROWDATA') + end + + NoteId = NoteRow + + IF NoteID NE '' THEN + obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID:@RM) + + END ELSE + ErrMsg('Read Note called without a Note ID.') + END + + npParms = 'NOTE_PTRS':@RM:@USER4 + UserRec = Database_Services('ReadDataRow', 'NOTE_PTRS', @USER4) + + IF Error_Services('HasError') THEN + ErrMsg(Error_Services('GetMessage')) + RETURN + END + + LOCATE NoteID IN UserRec USING @VM SETTING Fpos THEN + UserRec = 'No' + + //npParms = FIELDSTORE(npParms,@RM,4,0,UserRec) + //obj_Tables('WriteRec',npParms) + Database_Services('WriteDataRow', 'NOTE_PTRS', @USER4, UserRec, True$, False$, True$) + END + + GOSUB Refresh - //npParms = FIELDSTORE(npParms,@RM,4,0,UserRec) - //obj_Tables('WriteRec',npParms) - Database_Services('WriteDataRow', 'NOTE_PTRS', @USER4, UserRec, True$, False$, True$) -END - -GOSUB Refresh - RETURN * * * * * * WriteNote: * * * * * * - -NoteID = NextKey('NOTES') -obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID) - -GOSUB Refresh - + + NoteID = NextKey('NOTES') + obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID) + + GOSUB Refresh + RETURN * * * * * * * MsgGroups: * * * * * * * - -If Get_Property('NDW_MAIN', 'VISIBLE') then - AppMain = 'NDW_MAIN' -end else - AppMain = 'LSL_MAIN2' -end -Start_Window('MSG_GROUPS',@WINDOW,'*CENTER',AppMain) - -GOSUB Refresh - + + If Get_Property('NDW_MAIN', 'VISIBLE') then + AppMain = 'NDW_MAIN' + end else + AppMain = 'LSL_MAIN2' + end + Start_Window('MSG_GROUPS',@WINDOW,'*CENTER',AppMain) + + GOSUB Refresh + RETURN * * * * * * Delete: * * * * * * - -PageNo = Get_Property(@WINDOW, 'VPOSITION') -If PageNo<1> = 1 then - NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA','LIST') - CurrRow = Get_Property(@WINDOW:'.NOTE_DATA','SELPOS')<2> -end else - NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA2','LIST') - CurrRow = Get_Property(@WINDOW:'.NOTE_DATA2','SELPOS')<2> -end - -CONVERT @VM TO @SVM IN NoteDataList -CONVERT @FM TO @VM IN NoteDataList - -TypeOver = '' -TypeOver = NoteDataList -TypeOver = CurrRow - -NoteIDs = Popup(@WINDOW,TypeOver,'NOTE_PTRS') - - -IF NoteIDS = '' THEN RETURN -npParms = 'NOTE_PTRS':@RM:@USER4 -UserRec = obj_Tables('ReadRec',npParms) - -IF Get_Status(errCode) THEN - ErrMsg(errCode) - RETURN -END - -FOR I = 1 TO COUNT(NoteIDs,@VM) + (NoteIDs NE '') - NoteID = NoteIDs<1,I> + PageNo = Get_Property(@WINDOW, 'VPOSITION') + If PageNo<1> = 1 then + NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA','LIST') + CurrRow = Get_Property(@WINDOW:'.NOTE_DATA','SELPOS')<2> + end else + NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA2','LIST') + CurrRow = Get_Property(@WINDOW:'.NOTE_DATA2','SELPOS')<2> + end - LOCATE NoteID IN UserRec USING @VM SETTING Fpos THEN + CONVERT @VM TO @SVM IN NoteDataList + CONVERT @FM TO @VM IN NoteDataList - UserRec = DELETE( UserRec, NOTE_PTRS_SUBJECT$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_FROM$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_DATE$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_TIME$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_NEW$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_ATTACHMENT$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_NOTE_IDS$, Fpos, 0 ) - UserRec = DELETE( UserRec, NOTE_PTRS_ARCHIVED$, Fpos, 0 ) + TypeOver = '' + TypeOver = NoteDataList + TypeOver = CurrRow + + NoteIDs = Popup(@WINDOW,TypeOver,'NOTE_PTRS') + + + IF NoteIDS = '' THEN RETURN + + npParms = 'NOTE_PTRS':@RM:@USER4 + UserRec = obj_Tables('ReadRec',npParms) + + IF Get_Status(errCode) THEN + ErrMsg(errCode) + RETURN END -NEXT I -npParms = FIELDSTORE(npParms,@RM,4,0,UserRec) -obj_Tables('WriteRec',npParms) + FOR I = 1 TO COUNT(NoteIDs,@VM) + (NoteIDs NE '') + NoteID = NoteIDs<1,I> + + LOCATE NoteID IN UserRec USING @VM SETTING Fpos THEN + + UserRec = DELETE( UserRec, NOTE_PTRS_SUBJECT$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_FROM$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_DATE$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_TIME$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_NEW$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_ATTACHMENT$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_NOTE_IDS$, Fpos, 0 ) + UserRec = DELETE( UserRec, NOTE_PTRS_ARCHIVED$, Fpos, 0 ) + END + NEXT I + + npParms = FIELDSTORE(npParms,@RM,4,0,UserRec) + obj_Tables('WriteRec',npParms) + + GOSUB Refresh -GOSUB Refresh - RETURN - - - - - - - - diff --git a/LSL2/STPROC/COMM_NOTIFICATION.txt b/LSL2/STPROC/COMM_NOTIFICATION.txt index dc9c184..84a7588 100644 --- a/LSL2/STPROC/COMM_NOTIFICATION.txt +++ b/LSL2/STPROC/COMM_NOTIFICATION.txt @@ -37,7 +37,7 @@ BEGIN CASE CASE Instruction = 'Close' ; GOSUB Close CASE Instruction = 'LUNotifyID' ; GOSUB LUNotifyID CASE Instruction = 'AddUsers' ; GOSUB AddUsers - + CASE 1 ErrorMsg = 'Unknown Instruction passed to routine' END CASE @@ -53,59 +53,59 @@ RETURN Result * * * * * * * Create: * * * * * * * - -IF NOT(Admin_User( @USER4 )) THEN - Message = 'You do not have the proper security to enter Message Notifications...' - Message = 'H' - Msg( '', Message ) - send_event( @window, 'CLOSE' ) -END - - -obj_Appwindow('Create',@WINDOW) - -GOSUB Refresh - + + IF NOT(Admin_User( @USER4 )) THEN + Message = 'You do not have the proper security to enter Message Notifications...' + Message = 'H' + Msg( '', Message ) + send_event( @window, 'CLOSE' ) + END + + + obj_Appwindow('Create',@WINDOW) + + GOSUB Refresh + RETURN * * * * * * * Read: * * * * * * * - - -GOSUB Refresh - + + + GOSUB Refresh + RETURN * * * * * * * Write: * * * * * * * - + RETURN * * * * * * * Clear: * * * * * * * - -GOTO Refresh - + + GOTO Refresh + RETURN * * * * * * * Delete: * * * * * * * - -IF NOT(Security_Check('RDS',DELETE$)) THEN - Security_Err_Msg('RDS',DELETE$) - RETURN -END - -Result = 0 ;* OK to proceed with the delete - + + IF NOT(Security_Check('RDS',DELETE$)) THEN + Security_Err_Msg('RDS',DELETE$) + RETURN + END + + Result = 0 ;* OK to proceed with the delete + RETURN @@ -113,11 +113,11 @@ RETURN * * * * * * * Page: * * * * * * * - -obj_Appwindow('Page') - -GOSUB Refresh - + + obj_Appwindow('Page') + + GOSUB Refresh + RETURN @@ -125,74 +125,74 @@ RETURN * * * * * * * Close: * * * * * * * - - + + RETURN * * * * * * * Refresh: * * * * * * * - - -* QBF buttons - -Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED' - -IF Get_Property(@WINDOW,'QBFLIST') = '' THEN - Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0 -END ELSE - Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1 -END - -Set_Property(Ctrls,Props,Vals) - -* Turn edit table symbolic column backgrounds to green - -ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow - -ETCtrls = ETSymbolics<1> -ETCols = ETSymbolics<2> - -FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') - ETCtrl = ETCtrls<1,I> - IF ETCtrl NE @WINDOW:'.CASSETTES' THEN - ETList = Get_Property(ETCtrl,'LIST') - FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') - IF ETList NE '' THEN - FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') - stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) - NEXT N - END - NEXT Line + + + * QBF buttons + + Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM + Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED' + + IF Get_Property(@WINDOW,'QBFLIST') = '' THEN + Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0 + END ELSE + Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1 END -NEXT I - - + + Set_Property(Ctrls,Props,Vals) + + * Turn edit table symbolic column backgrounds to green + + ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow + + ETCtrls = ETSymbolics<1> + ETCols = ETSymbolics<2> + + FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') + ETCtrl = ETCtrls<1,I> + IF ETCtrl NE @WINDOW:'.CASSETTES' THEN + ETList = Get_Property(ETCtrl,'LIST') + FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') + IF ETList NE '' THEN + FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') + stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) + NEXT N + END + NEXT Line + END + NEXT I + + RETURN * * * * * * * LUNotifyID: * * * * * * * - - -IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1 -IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2 - -TypeOver = '' -TypeOver = 1 - -NotifyID = Popup(@WINDOW,TypeOver,'NOTIFICATION') -IF NotifyID NE '' THEN - obj_Appwindow('LUValReturn',NotifyID:@RM:FocusControl:@RM:FocusPos) -END - + + + IF NOT(ASSIGNED(Parm1)) THEN FocusControl = '' ELSE FocusControl = Parm1 + IF NOT(ASSIGNED(Parm2)) THEN FocusPos = '' ELSE FocusPos = Parm2 + + TypeOver = '' + TypeOver = 1 + + NotifyID = Popup(@WINDOW,TypeOver,'NOTIFICATION') + IF NotifyID NE '' THEN + obj_Appwindow('LUValReturn',NotifyID:@RM:FocusControl:@RM:FocusPos) + END + RETURN @@ -201,54 +201,35 @@ RETURN * * * * * * * AddUsers: * * * * * * * - -CtrlEntID = @WINDOW:'.USER_ID' - -CurrUserIDs = Get_Property(CtrlEntID,'ARRAY')<1> ;* Existing MFC codes in edit table -CurrUserIDsTrimmed = '' -FOR I = 1 TO COUNT(CurrUserIDs,@VM) + (CurrUserIDs NE '') - IF CurrUserIDs<1,I> NE '' THEN - CurrUserIDsTrimmed<1,I> = CurrUserIDs<1,I> - END -NEXT I -CurrUserIDs = CurrUserIDsTrimmed - -NewUserIDs = Popup(@WINDOW,'','SHOW_USERS') - -IF NewUserIDs = '' OR NewUserIDs = CHAR(27) THEN RETURN - -FOR I = 1 TO COUNT(NewUserIDs,@VM) + (NewUserIDs NE '') - NewUserID = NewUserIDs<1,I> - LOCATE NewUserID IN CurrUserIDs BY 'AL' USING @VM SETTING POS ELSE - CurrUserIDs = INSERT(CurrUserIDs,1,POS,0,NewUserID) - END -NEXT I - - -Set_Property(CtrlEntID,'DEFPROP',CurrUserIDs) -Send_Event(CtrlEntID,'CALCULATE',2) - -GOSUB Refresh - + CtrlEntID = @WINDOW:'.USER_ID' + + CurrUserIDs = Get_Property(CtrlEntID,'ARRAY')<1> ;* Existing MFC codes in edit table + CurrUserIDsTrimmed = '' + FOR I = 1 TO COUNT(CurrUserIDs,@VM) + (CurrUserIDs NE '') + IF CurrUserIDs<1,I> NE '' THEN + CurrUserIDsTrimmed<1,I> = CurrUserIDs<1,I> + END + NEXT I + CurrUserIDs = CurrUserIDsTrimmed + + NewUserIDs = Popup(@WINDOW,'','SHOW_USERS') + + IF NewUserIDs = '' OR NewUserIDs = CHAR(27) THEN RETURN + + FOR I = 1 TO COUNT(NewUserIDs,@VM) + (NewUserIDs NE '') + NewUserID = NewUserIDs<1,I> + LOCATE NewUserID IN CurrUserIDs BY 'AL' USING @VM SETTING POS ELSE + CurrUserIDs = INSERT(CurrUserIDs,1,POS,0,NewUserID) + END + + NEXT I + + + Set_Property(CtrlEntID,'DEFPROP',CurrUserIDs) + Send_Event(CtrlEntID,'CALCULATE',2) + + GOSUB Refresh + RETURN - - - - - - - - - - - - - - - - - - - diff --git a/LSL2/STPROC/COMM_WO_MAT_WFR.txt b/LSL2/STPROC/COMM_WO_MAT_WFR.txt index 5e108be..223fbed 100644 --- a/LSL2/STPROC/COMM_WO_MAT_WFR.txt +++ b/LSL2/STPROC/COMM_WO_MAT_WFR.txt @@ -866,8 +866,8 @@ AddMakeup: Convert @VM to '' in SlotWaferIDs // Flush/update pending index transactions. - Update_Index('WO_MAT', 'MU_PART_NO', False$) - Update_Index('WO_MAT', 'CURR_STATUS', False$) + Update_Index('WO_MAT', 'MU_PART_NO', False$, True$) + Update_Index('WO_MAT', 'CURR_STATUS', False$, True$) IF Get_Status(errCode) THEN ErrMsg(errCode) @@ -1197,3 +1197,4 @@ return + diff --git a/LSL2/STPROC/COMM_WO_MAT_WFR_DEV.txt b/LSL2/STPROC/COMM_WO_MAT_WFR_DEV.txt deleted file mode 100644 index b2e5960..0000000 --- a/LSL2/STPROC/COMM_WO_MAT_WFR_DEV.txt +++ /dev/null @@ -1,1335 +0,0 @@ -COMPILE FUNCTION Comm_WO_Mat_Wfr(Instruction, Parm1,Parm2) -#pragma precomp SRP_PreCompiler - -/* - Commuter module for WO_MAT_WFR (Work Order Material Wafer) window - - 01/25/2008 - John C. Henry, J.C. Henry & Co., Inc. - 11/12/2018 - djs - Updated VerifyFullBoxReject subroutine to set the SAP Batch No. as a rejected cassette. - Previously this was being done prematurely in OBJ_WO_MAT('SignNCR'). - 01/04/2019 - djs - Fixed an issue within the "Refresh" subroutine, which was preventing the "SLOT_NO" edit table - from being colored correctly. The coloring code was moved to be executed after the section of - code responsible for coloring edit tables with symbolic fields. -*/ - -DECLARE SUBROUTINE Set_Property, Set_Status, ErrMsg, Set_Property, obj_AppWindow, Send_Message, Logging_Services -DECLARE SUBROUTINE Btree.Extract, Send_Event, Security_Err_Msg, Forward_Event, End_Window, Start_Window -DECLARE SUBROUTINE EditCell, obj_NCR, obj_Notes, Post_Event, obj_WO_Mat, obj_WO_Mat_Log, obj_WO_Wfr, obj_Tables -DECLARE SUBROUTINE SRP_Stopwatch, Update_Index, Database_Services, obj_RDS, Create_Dialog, Dialog_Box -DECLARE FUNCTION Get_Property, Get_Status, Popup, Send_Message, Msg, Security_Check, Dialog_Box, RowExists -DECLARE FUNCTION Dialog_Box, obj_WO_Log, obj_NCR, Check_Notes, obj_MUWafers, obj_WO_Mat, Signature_Services -DECLARE FUNCTION MemberOf, obj_Tables, obj_RDS, Environment_Services, Logging_Services, Material_Services -DECLARE FUNCTION Database_Services - -$INSERT POPUP_EQUATES -$INSERT MSG_EQUATES -$INSERT APPCOLORS -$INSERT WM_IN_EQUATES -$INSERT WO_LOG_EQU -$INSERT WO_STEP_EQU -$INSERT WO_MAT_EQUATES -$INSERT ORDER_EQU -$INSERT RDS_EQUATES -$INSERT PROD_SPEC_EQU -$INSERT NOTIFICATION_EQU -$INSERT LSL_USERS_EQU -$INSERT SECURITY_RIGHTS_EQU -$INSERT LOGICAL -$INSERT WM_OUT_EQUATES - -EQU CRLF$ TO \0D0A\ - -EQU COL$SLOT TO 1 -EQU COL$WAFER_ID TO 2 -EQU COL$SLOT_NCR TO 3 -EQU COL$MET_NO$ TO 4 -EQU COL$MOVED_TO_SLOT TO 5 -EQU COL$MU_WAFER_ID TO 6 -EQU COL$MOVED_FROM_SLOT TO 7 -EQU COL$REPLACED_BY TO 8 -EQU COL$MU_ADD_DATE TO 9 -EQU COL$MU_REM_DATE TO 10 - -EQU COL$NCR_NO TO 1 -EQU COL$NCR_STATUS TO 2 -EQU COL$NCR_REJ_QTY TO 3 -EQU COL$NCR_RESP TO 4 -EQU COL$NCR_STAGE TO 5 -EQU COL$NCR_LOSS_DESC TO 6 -EQU COL$NCR_LOSS_COMM TO 7 -EQU COL$NCR_FIN_SIG TO 8 -EQU COL$NCR_FIN_SIG_DTM TO 9 - -EQU COL$LOG_FILE TO 1 -EQU COL$LOG_DTM TO 2 -EQU COL$ACTION TO 3 -EQU COL$WH_CD TO 4 -EQU COL$LOC_CD TO 5 -EQU COL$WO_NOS TO 6 -EQU COL$CASS_NOS TO 7 -EQU COL$USER_ID TO 8 -EQU COL$TAGS TO 9 -EQU COL$TOOL_ID TO 10 - -ErrTitle = 'Error in Comm_WO_MAT_WFR' -ErrorMsg = '' -ErrCode = '' - -Result = '' - -BEGIN CASE - CASE Instruction = 'Create' ; GOSUB Create - CASE Instruction = 'Refresh' ; GOSUB Refresh - CASE Instruction = 'Read' ; GOSUB Read - CASE Instruction = 'Write' ; GOSUB Write - CASE Instruction = 'Clear' ; GOSUB Clear - CASE Instruction = 'Delete' ; GOSUB Delete - CASE Instruction = 'Close' ; GOSUB Close - CASE Instruction = 'RejMat' ; GOSUB RejMat - CASE Instruction = 'RecallMat' ; GOSUB RecallMat - CASE Instruction = 'NCRKeysDC' ; GOSUB NCRKeysDC - CASE Instruction = 'AddMakeup' ; GOSUB AddMakeup - CASE Instruction = 'RemMakeup' ; GOSUB RemMakeup - CASE Instruction = 'MakeUpLot' ; GOSUB MakeUpLot - CASE Instruction = 'WOStepRdsDC' ; GOSUB WOStepRdsDC - - CASE 1 - ErrorMsg = 'Unknown Instruction passed to routine' -END CASE - -RETURN Result - - -* * * * * * * -Create: -* * * * * * * - - Start_Window('WO_MAT_WFR', '') - - IOOptions = Get_Property(@WINDOW, "IOOPTIONS") - IOOptions<2> = 2 ; // Do not lock - IOOptions<6> = 1 ; // Do not clear on write - Set_Property(@WINDOW, "IOOPTIONS", IOOptions) -* obj_Appwindow('Create','WO_MAT_WFR') - - * get the current style - - EQU MULTILINE_STYLE$ TO 512 ;* MultiLine Select - - Style = Get_Property('WO_MAT_WFR.SLOT_NO', 'STYLE') - - IF Style [1,2] _EQC "0x" THEN - CONVERT @LOWER.CASE TO @UPPER.CASE IN STYLE - Style = ICONV(Style [3,99], "MX") - END - - Style = BitOr(Style, MULTILINE_STYLE$) - Set_Property('WO_MAT_WFR.SLOT_NO', "STYLE", Style) - - * Provides compatibility with the existing messaging attachment system - - IF Parm1 NE '' THEN - PassedKeys = FIELD(Parm1,'*',1) - obj_Appwindow('ViewRelated','WO_MAT_WFR':@RM:PassedKeys) - END - - IF (MemberOf(@USER4,'OI_ADMIN')) THEN - Set_Property(@WINDOW:'.WO_STEP_RDS_NO','VISIBLE',1) - END - - GOSUB Refresh - -RETURN - - -* * * * * * * -Read: -* * * * * * * - - WONo = Get_Property(@WINDOW:'.WO_NO','DEFPROP') - CassNo = Get_Property(@WINDOW:'.CASS_NO','DEFPROP') - - IF RowExists('WO_MAT',WONo:'*':CassNo) THEN - IF NOT(Security_Check('RDS',READ$)) THEN - Send_Event(@WINDOW,'CLEAR') - Security_Err_Msg('Work Order Mat',READ$) - RETURN - END - - IF NOT(Security_Check('RDS',EDIT$)) THEN - obj_Appwindow('ReadOnly',@WINDOW) ;*Set to Read Only - END - - END ELSE - ErrMsg('Work Order Mat entries are only created by the program.') - Send_Event(@WINDOW,'CLEAR') - RETURN - END - - - IF Get_Property(@WINDOW,'PARENT') = 'RDS_UNLOAD' THEN - Set_Property(@WINDOW:'.RDS_NO','DEFPROP',Get_Property(@WINDOW,'@RDS_NO')) - Set_Property(@WINDOW:'.REACTOR','DEFPROP',Get_Property(@WINDOW,'@REACTOR')) - Set_Property(@WINDOW:'.WO_STEP_NO','DEFPROP',Get_Property(@WINDOW,'@WO_STEP_NO')) - END - - GOSUB Refresh - -RETURN - - -* * * * * * * -Write: -* * * * * * * - - RETURN - - -* * * * * * * -Clear: -* * * * * * * - - IF Get_Property(@WINDOW,'PARENT') = 'RDS_UNLOAD' THEN - Set_Property(@WINDOW:'.RDS_NO','DEFPROP','') - Set_Property(@WINDOW:'.REACTOR','DEFPROP','') - Set_Property(@WINDOW:'.WO_STEP_NO','DEFPROP','') - END - - GOTO Refresh - -RETURN - - -* * * * * * * -Delete: -* * * * * * * - - ErrMsg('Records may not be modified or deleted.') - - Result = 0 ;* No Deletes - -RETURN - - -* * * * * * * -Close: -* * * * * * * - - obj_Appwindow('DetailReturn') - -RETURN - - -* * * * * * * -Refresh: -* * * * * * * - -Ctrls = @WINDOW:@RM ; Props = '@RDS_NO':@RM -Ctrls := @WINDOW:@RM ; Props := '@REACTOR':@RM -Ctrls := @WINDOW ; Props := '@WO_STEP_NO' - -Vals = Get_Property(Ctrls,Props) - -Ctrls = @WINDOW:'.RDS_NO':@RM ; Props = 'DEFPROP':@RM -Ctrls := @WINDOW:'.REACTOR':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.WO_STEP_NO' ; Props := 'DEFPROP' - -Set_Property(Ctrls,Props,Vals) - -Ctrls = @WINDOW:'.MAKEUP_BOX':@RM:@WINDOW:'.HOLD':@RM:@WINDOW:'.HOTLOT':@RM:@WINDOW:'.MU_WAFER_FLAG' -Props = 'CHECK':@RM:'CHECK':@RM:'CHECK':@RM:'CHECK' - -Vals = Get_Property(Ctrls,Props) - -MakeupBox = Vals[1,@RM] -Hold = Vals[COL2()+1,@RM] -HotLot = Vals[COL2()+1,@RM] -UseMUWafers = Vals[COL2()+1,@RM] - -IF MemberOf(@USER4,'OI_ADMIN') THEN - Set_Property(@WINDOW:'.REM_MAKEUP_BUTTON','VISIBLE',1) -END - -IF NOT(MakeupBox) AND UseMUWafers THEN - Set_Property(@WINDOW:'.ADD_MAKEUP_BUTTON','VISIBLE',1) - Set_Property(@WINDOW:'.REM_MAKEUP_BUTTON','VISIBLE',1) - Set_Property(@WINDOW:'.MU_BOX_LABEL','VISIBLE',0) -END ELSE - IF MakeupBox = 1 THEN - Set_Property(@WINDOW:'.MU_BOX_LABEL','VISIBLE',1) - END ELSE - Set_Property(@WINDOW:'.MU_BOX_LABEL','VISIBLE',0) - END - Set_Property(@WINDOW:'.ADD_MAKEUP_BUTTON','VISIBLE',0) - Set_Property(@WINDOW:'.REM_MAKEUP_BUTTON','VISIBLE',0) -END - -IF MemberOf(@USER4,'OI_ADMIN') THEN - Set_Property(@WINDOW:'.REM_MAKEUP_BUTTON','VISIBLE',1) -END - -IF HotLot THEN - Set_Property(@WINDOW:'.HOT_LOT_LABEL','VISIBLE',1) -END ELSE - Set_Property(@WINDOW:'.HOT_LOT_LABEL','VISIBLE',0) -END - -Ctrls = 'WO_MAT_WFR.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM -Ctrls := 'WO_MAT_WFR.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := 'WO_MAT_WFR.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := 'WO_MAT_WFR.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := 'WO_MAT_WFR.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM -Ctrls := 'WO_MAT_WFR.QBF_STOP_FIX' ; Props := 'ENABLED' - -IF Get_Property('WO_MAT_WFR','QBFLIST') = '' THEN - Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0 -END ELSE - Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1 -END - -Set_Property(Ctrls,Props,Vals) - -* Turn edit table symbolic column backgrounds to green - -ETSymbolics = Get_Property('WO_MAT_WFR','@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow - -ETCtrls = ETSymbolics<1> -ETCols = ETSymbolics<2> - -FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') - ETCtrl = ETCtrls<1,I> - IF ETCtrl NE 'WO_MAT_WFR.SLOT_NO' THEN - ETList = Get_Property(ETCtrl,'LIST') - FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') - IF ETList NE '' THEN - FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') - stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) - NEXT N - END - NEXT Line - END -NEXT I - -CtrlName = 'WO_MAT_WFR.NCR_KEYS' -NCRList = Get_Property(CtrlName,'LIST') - -ColCount = COUNT(NCRList<1>,@VM) + (NCRList<1> NE '') -FOR Line = 1 TO COUNT(NCRList,@FM) + (NCRList NE '') - - Status = NCRList - - BEGIN CASE - CASE Status = '' ; Color = WHITE$ - CASE Status = 'Closed' ; Color = GREEN$ - CASE Status = 'Open' ; Color = RED$ - CASE Status = 'Verified' ; Color = YELLOW$ - - CASE 1 ; Color = WHITE$ - - END CASE - FOR Col = 1 TO ColCount - stat = Send_Message(CtrlName,'COLOR_BY_POS',Col,Line,Color) - NEXT Col - -NEXT Line - - -// Fill MU Rem Date and MU Add Date columns of the SLOT_NO edit table - -WONo = Get_Property(@Window : '.WO_NO', 'TEXT') -CassNo = Get_Property(@Window : '.CASS_NO', 'TEXT') -WOMatKey = WONo : '*' : CassNo -WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) -MUAddDTMS = WOMatRec -MURemDTMS = WOMatRec -List = Get_Property(@Window : '.SLOT_NO', 'LIST') -NumRows = DCount(List, @FM) -For fPos = 1 to NumRows - Row = List - Row<1, COL$MU_REM_DATE> = OConv(MURemDTMS<1, fPos, 1>, 'DT2/^H') ; // Grab only the most recent datetime to display - Row<1, COL$MU_ADD_DATE> = OConv(MUAddDTMS<1, fPos, 1>, 'DT2/^H') - List = Row -Next fPos -Set_Property(@Window : '.SLOT_NO', 'LIST', List) - -CtrlEntID = @WINDOW:'.SLOT_NO' - -SlotList = Get_Property(CtrlEntID,'LIST') -SlotListCnt = COUNT(SlotList,@FM) + (SlotList NE '') - -FOR Line = 1 TO SlotListCnt - WaferID = SlotList - RepBy = SlotList - BEGIN CASE - CASE SlotList = '' - LineColor = GREY$ - CASE WaferID EQ '' AND (NOT(UseMUWafers) OR (MakeupBox)) - LineColor = LTGREY$ - CASE WaferID EQ '' AND NOT(MakeupBox) AND UseMUWafers - LineColor = YELLOW$ - CASE WaferID NE '' AND RepBy NE '' - LineColor = GREEN$ - CASE WaferID NE '' AND RepBy EQ '' - LineColor = WHITE$ - CASE Otherwise$ - LineColor = WHITE$ - END CASE - - FOR Col = 1 TO 10 - stat = Send_Message(CtrlEntID,'COLOR_BY_POS',Col,Line,LineColor) - NEXT COL -NEXT Line - -RETURN - - -* * * * * * * -RejMat: -* * * * * * * - - GoSub FQAVerify - If Not(Authorized) then Return 0 - - SlotList = Get_Property('WO_MAT_WFR.SLOT_NO','LIST') - SlotSelection = Get_Property('WO_MAT_WFR.SLOT_NO','SELPOS') - SelectedRows = SlotSelection<2> - CONVERT @VM TO @FM in SelectedRows - - SelCnt = DCount(SelectedRows, @FM) - IF SelCnt = 0 THEN - ErrMsg('You must select at least one row in order to create an NCR.') - RETURN - END - - AllSlotsPermitted = True$ ; // Assume that all slots are permitted to be NCR'd for now. - For I = 1 TO SelCnt - MetNo = SlotList, COL$MET_NO$> - WfrID = SlotList, COL$WAFER_ID> - PrevNCR = SlotList, COL$SLOT_NCR> - MUWfrID = SlotList, COL$MU_WAFER_ID> - If ( (MetNo NE '') and (WfrID NE '') and (PrevNCR EQ '' or MUWfrID NE '') ) then - AllSlotsPermitted = False$ - end - Until AllSlotsPermitted EQ False$ - Next I - - If AllSlotsPermitted EQ False$ then - ErrMsg('Select slot #' : I : ' is not eligible for NCR.') - return - end - - - Ctrls = 'WO_MAT_WFR.WO_NO':@RM ; Props = 'DEFPROP':@RM - Ctrls := 'WO_MAT_WFR.CASS_NO':@RM ; Props := 'DEFPROP':@RM - Ctrls := 'WO_MAT_WFR.RDS_NO':@RM ; Props := 'DEFPROP':@RM - Ctrls := 'WO_MAT_WFR.WO_STEP_NO':@RM ; Props := 'DEFPROP':@RM - Ctrls := 'WO_MAT_WFR.REACTOR':@RM ; Props := 'DEFPROP':@RM - Ctrls := 'WO_MAT_WFR.NCR_KEYS' ; Props := 'DEFPROP' - - Vals = Get_Property(Ctrls,Props) - - WONo = Vals[1,@RM] - CassNo = Vals[COL2()+1,@RM] - RDSNo = Vals[COL2()+1,@RM] - WOStepNo = Vals[COL2()+1,@RM] - Reactor = Vals[COL2()+1,@RM] - NCRArray = Vals[COL2()+1,@RM] - - WOMatKey = WONo:'*':CassNo - - RejWaferIDs = '' - PrevNCRNos = '' - SlotNos = '' - - GoodLines = 0 - FOR I = 1 TO SelCnt - IF SlotList,COL$WAFER_ID> NE '' Then - GoodLines += 1 - RejWaferIDs<1,GoodLines> = SlotList,COL$WAFER_ID> - PrevNCRNos<1,GoodLines> = SlotList,COL$SLOT_NCR> - SlotNos<1,GoodLines> = SlotList,COL$SLOT> - END - NEXT I - - ncrParms = WONo:@RM - ncrParms := WOStepNo:@RM - ncrParms := CassNo:@RM ;* Place holder for WO_MAT_CASS_NO - ncrParms := RDSNo:@RM ;* Single RDS field - ncrParms := Reactor:@RM ;* Reactor No - ncrParms := '':@RM ;* Stage - ncrParms := '':@RM ;* InCassNos - ncrParms := SlotNos:@RM ;* InSlotNos - ncrParms := '':@RM ;* PockeNots - ncrParms := '':@RM ;* Zones - ncrParms := '':@RM ;* OutCassNos - ncrParms := '':@RM ;* OutSlotNos - ncrParms := '':@RM ;* Multiple RDSNos (EpiPro) - ncrParms := RejWaferIDs:@RM ;* Rejected Wafer ID's - ncrParms := PrevNCRNos ;* Previous NCR No's - - Set_Status(0) - NCRNo = obj_NCR('Create',ncrParms) ;* Create new NCR for this wafer/group of wafers - - IF Get_Status(errCode) THEN - ErrMsg(errCode) - - END ELSE - RejDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS') - - RejWfrIDs = '' - CurrSlotIDs = '' - - sCnt = COUNT(SlotNos,@VM) + (SlotNos NE '') - FOR N = 1 TO sCnt - - * * * * Added 3/23/2016 JCH - wafer history * * * * - - RejWfrID = RejWaferIDs<1,N> - CurrSlotID = WONo:'*':CassNo:'*':SlotNos<1,N> - - Convert '.' To '*' In RejWfrID - - RejWfrIDs<1,-1> = RejWfrID - CurrSlotIDs<1,-1> = CurrSlotID - - Parms = RejWfrID:@RM ;* WfrID - Parms := RejDTM:@RM ;* EventDtm - Parms := @USER4:@RM ;* EventBy - Parms := 'NCR':@RM ;* Event - Parms := '':@RM ;* NewSlotID - Parms := '':@RM ;* RunLoc - Parms := NCRNo:@RM ;* NCRNo - Parms := '':@RM ;* TWUse - Parms := CurrSlotID:@RM ;* CurrSlotID - Parms := '':@RM ;* NewToolID - Parms := '':@RM ;* CurrToolID - Parms := '':@RM ;* NewInvLoc - Parms := '':@RM ;* CurrInvLoc - Parms := 'O' ;* Wfr Side - - obj_WO_Wfr('AddEvent',Parms) - - * * * * * * * ** - LineNo = SlotNos<1,N> -* Set_Property('WO_MAT_WFR.SLOT_NO','CELLPOS',NCRNo,COL$SLOT_NCR:@FM:LineNo) ;* Add NCR number to slot -* Set_Property('WO_MAT_WFR.SLOT_NO','CELLPOS','',COL$MU_WAFER_ID:@FM:LineNo) ;* Added 11/5/2011 JCH -* Set_Property('WO_MAT_WFR.SLOT_NO','CELLPOS','',COL$REPLACED_BY:@FM:LineNo) ;* User ID - - NEXT N - - END - - Set_Property(@WINDOW:'.SLOT','SELPOS',SlotSelection) ;* Toggle WM_IN select off - -* NCRNos = NCRArray ;* Added 6/17/2010 JCH fixes bug NCR sigs being on the wrong line or just hanging -* -* LOOP -* UNTIL NCRNos[-1,'B':@VM] NE '' OR NCRNos = '' -* NCRNos[-1,1] = '' -* REPEAT -* -* LOCATE NCRNo IN NCRNos BY 'AR' USING @VM SETTING Pos ELSE -* NCRArray = INSERT(NCRArray,COL$NCR_FIN_SIG,Pos,0,'') -* NCRArray = INSERT(NCRArray,COL$NCR_FIN_SIG_DTM,Pos,0,'') -* END -* -* Set_Property('WO_MAT_WFR.NCR_KEYS','DEFPROP',NCRArray) ;* End of 6/17/2010 update -* If @USER4 EQ 'FRANCOIS_R' then debug - // Write using Database_Services to ignore all locks to ensure WO_MAT record is in sync with NCR record. -* AtRecord = Get_Property(@WINDOW, "ATRECORD") -* Database_Services('WriteDataRow', 'WO_MAT', WONo:'*':CassNo, AtRecord, True$, False$, True$) - Set_Property(@WINDOW, 'SAVEWARN', False$) - - rv = Dialog_Box('NCR', @WINDOW, NCRNo) - - Send_Event(@WINDOW, 'READ') - -* Send_Event(@WINDOW,'WRITE') - -* DetWindow = 'NCR' -* DetKeys = NCRNo -* DefaultRec = '' -* RetKey = WONo:'*':CassNo -* RetWin = @WINDOW -* RetPage = 1 -* RetCtrl = @WINDOW:'.SLOT' -* RetPos = 1:@FM:1 -* -* obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos) - -* IF Get_Status(errCode) THEN -* Errmsg(errCode) -* END - - GOSUB VerifyFullBoxReject - -RETURN - - -******************** -VerifyFullBoxReject: -******************** - - **************************************************************************** - * Verify the need to "Auto-Sign" the box after returning from the NCR form * - **************************************************************************** - - RejectedWafers = 0 - RejectedMUWafers = 0 - ProdTestWafers = 0 - - WOMatKey = WONo:'*':CassNo - - Set_Status(0) - ReactorType = XLATE('WO_LOG', WONo, 'REACT_TYPE', 'X') - CassetteQty = XLATE('WO_MAT', WOMatKey, 'WAFER_QTY', 'X') - RejectedWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_WFRS', 'X') - RejectedMUWafers = XLATE('WO_MAT', WOMatKey, 'TOT_REJ_MU_WFRS', 'X') - ProdTestWafers = XLATE('WO_MAT', WOMatKey, 'TW_PROD','X') - CurrWfrCount = XLATE('WO_Mat', WOMatKey, 'CURR_WFR_CNT', 'X') - - IF (RejectedWafers = '') then - RejectedWafers = 0 - END - IF (RejectedMUWafers = '') then - RejectedMUWafers = 0 - END - IF (ProdTestWafers = '') then - ProdTestWafers = 0 - END - - IF ((ReactorType = 'EPP') OR (ReactorType = 'EpiPro')) THEN - RejectedQty = RejectedWafers + RejectedMUWafers - END ELSE - RejectedQty = RejectedWafers + RejectedMUWafers + ProdTestWafers - END - -* IF (RejectedQty >= CassetteQty) THEN - If CurrWfrCount EQ 0 then - - **************************************************** - * Set SAP Batch as Rejected - full cassette reject * - **************************************************** - WOMatKey = WONo:'*':CassNo - WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - ProdOrdNo = XLATE('WO_LOG', WONo, WO_LOG_PROD_ORD_NO$, 'X') - ProdOrdNo[-1,1] = 'R' - SAPBatchNo = ProdOrdNo - WOMatRec = SAPBatchNo - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WoMatRec, True$, False$, True$) - - ***************** - * Auto-Sign FQA * - ***************** - SigDate = Date() - SigTime = Time() - SigDt = OCONV( SigDate, 'D2/' ) - SigTm = SigTime - SigTmPlusOne = OCONV(SigTm + 1, 'MTS' ) - SigTmPlusTwo = OCONV(SigTm + 2, 'MTS' ) - SigTm = OCONV(SigTm,'MTS') - - SignedBy = 'AUTO_FQA' - ToolID = '' - WHCode = 'CR' /* Warehouse Code = Cleanroom */ - LocCode = 'QA' /* Location Code = QA */ - ActionCode = 'REJ' /* Action Code = Rejected */ - Tag = '' - - IF (ReactorType = 'EPP') OR (ReactorType = 'EpiPro') THEN - // Sign WM_OUT - StatusStage = 'MO_QA' - WMOKey = Xlate('WO_MAT', WOMatKey, 'WMO_KEY', 'X') - WMORec = Database_Services('ReadDataRow', 'WM_OUT', WMOKey) - WMORec = SignedBy - WMORec = IConv(SigDt:' ':SigTm, 'DT') - Database_Services('WriteDataRow', 'WM_OUT', WMOKey, WMORec, True$, False$, True$) - - END ELSE - // Sign RDS FQA Signature - StatusStage = 'QA' - RDSNo = Xlate('WO_MAT', WOMatKey, 'RDS_NO', 'X') - RDSRec = Database_Services('ReadDataRow', 'RDS', RDSNo) - RDSRec = SignedBy - RDSRec = SigDate - RDSRec = SigTime - Database_Services('WriteDataRow', 'RDS', RDSNo, RDSRec, True$, False$, True$) - END - - *********************** - * Automated Signature * - *********************** - - Set_Status(0) - IgnoreLock = true$ - owmParms = WONo:@RM:CassNo:@RM:WOStepNo:@RM:StatusStage:@RM:SignedBy:@RM:SigDt:' ':SigTm:@RM:ToolID:@RM:WHCode:@RM:LocCode:@RM:Tag:@RM:IgnoreLock - - IF Get_Status(errCode) THEN - CALL ErrMsg(ErrCode) - RETURN 0 - END - - *************************** - * Log the signature event * - *************************** - Set_Status(0) - EventParms = '' - EventParms = 'WO_MAT' - EventParms = SigDt:' ':SigTm - EventParms = WOStepNo:'QA' - EventParms = WHCode - EventParms = LocCode - EventParms = WONo - EventParms = CassNo - EventParms = SignedBy - EventParms = '' - EventParms = '' - CONVERT @FM TO @RM IN EventParms - obj_WO_Mat_Log('Create', EventParms) - IF Get_Status(errCode) THEN - CALL ErrMsg(ErrCode) - RETURN 0 - END - - ********************************* - * Log the full box reject event * - ********************************* - Set_Status(0) - EventParms = '' - EventParms = 'WO_MAT' - EventParms = SigDt:' ':SigTmPlusTwo - EventParms = ActionCode - EventParms = WHCode - EventParms = LocCode - EventParms = WONo - EventParms = CassNo - EventParms = SignedBy - EventParms = '' - EventParms = '' - CONVERT @FM TO @RM IN EventParms - obj_WO_Mat_Log('Create',EventParms) - IF Get_Status(errCode) THEN - CALL ErrMsg(ErrCode) - RETURN 0 - END - - ********************************************************************** - * Synchonize the WO_MAT schedule wafers quatity with the RDS records * - ********************************************************************** - IF (RDSNo NE '') THEN - RDSRec = obj_Tables('ReadOnlyRec','RDS':@RM:RDSNo) - RDSRec = SignedBy - RDSRec = SigDate - RDSRec = SigTime - obj_Tables('WriteOnlyRec','RDS':@RM:RDSNo:@RM:@RM:RDSRec) - - WOMatRec = XLATE('WO_MAT',WOMatKey,'','X') - WMRDSNos = WOMatRec - LOCATE RDSNo IN WMRDSNos USING @VM SETTING Pos THEN - NextRDSNo = WMRDSNos<1,Pos+1> - IF (NextRDSNo NE '') THEN - CurrWfrQty = obj_WO_Mat('CurrWaferCnt', WOMatKey:@RM:WOMatRec) - Set_Status(0) - obj_RDS('SetSchedWfrQty', NextRDSNo:@RM:CurrWfrQty) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - END - END - END - END - -RETURN - - -* * * * * * -RecallMat: -* * * * * * - -Ctrls = 'WO_MAT_WFR.SLOT_NO':@RM:'WO_MAT_WFR.NCR_KEYS':@RM:'WO_MAT_WFR.WO_NO':@RM:'WO_MAT.CASS_NO' -Props = 'LIST':@RM:'ARRAY':@RM:'DEFPROP':@RM:'DEFPROP' - -Vals = Get_Property(Ctrls,Props) - -SlotList = Vals[1,@RM] -NCRArray = Vals[COL2()+1,@RM] -WONo = Vals[COL2()+1,@RM] -CassNo = Vals[COL2()+1,@RM] - -NCRKeys = NCRArray<1> -NCRStatuses = NCRArray<2> - -SlotSelection = Get_Property('WO_MAT_WFR.SLOT_NO','SELPOS') -SelectedRows = SlotSelection<2> - -CONVERT @VM TO @FM in SelectedRows - -SelCnt = COUNT(SelectedRows,@FM) + (SelectedRows NE '') -IF SelCnt = 0 THEN RETURN - -Ctrls = 'WO_MAT_WFR.WO_NO':@RM ; Props = 'DEFPROP':@RM -Ctrls := 'WO_MAT_WFR.CASS_NO' ; Props := 'DEFPROP' - -Vals = Get_Property(Ctrls,Props) - -WONo = Vals[1,@RM] -CassNo = Vals[COL2()+1,@RM] - -WOMatKey = WONo:'*':CassNo - -RecallNCRNos = '' -RecallSlotNos = '' - - ;******************************************************************************* - -RecallNCRCnt = 0 -FOR I = 1 TO SelCnt - IF SlotList,COL$WAFER_ID> = '' AND SlotList,COL$SLOT_NCR> NE '' THEN - SlotNCRNo = SlotList,COL$SLOT_NCR> - LOCATE SlotNCRNo IN NCRKeys USING @VM SETTING Pos THEN - NCRStatus = NCRStatuses<1,Pos> - *IF NcrStatus = 'Open' THEN ;* Rem'd for testing P U T T H I S B A C K ! ! ! ! ! ! - LOCATE SLotNCRNo IN RecallNCRNos USING @FM SETTING RPos THEN - RecallSlotNos = SlotList,COL$SLOT> - END ELSE - RecallNCRCnt += 1 - RecallNCRNos = INSERT(RecallNCRNos,RPos,0,0,SlotList,COL$SLOT_NCR>) - RecallSlotNos = INSERT(RecallSlotNos,RPos,1,0,SlotList,COL$SLOT>) - END - *END ELSE - * ErrMsg('NCR No ':SlotNCRNo:' is closed and may not be changed.') - *END - END - END -NEXT I - - - -FOR I = 1 TO RecallNCRCnt - RecallNCRNo = RecallNCRNos - RecallSlot = RecallSlotNos - - *SlotInfo = obj_NCR('RemWafers',RecallNCRNo:@RM:RecallSlot) ;* Returns <1> = SlotNos, <2> = PrevWaferID, <3> = PrevNCRNos - - SlotCnt = COUNT(SlotInfo<1>, @VM) + (SlotInfo<1> NE '') - FOR N = 1 TO SlotCnt - SlotNo = SlotInfo<1,N> - PrevWaferID = SlotInfo<2,N> - PrevNCR = SlotInfo<3,N> - - IF FIELD(PrevWaferID,'*',1,2) = WONo:'.':CassNo THEN - * MakeupWafer - END ELSE - * Original Wafer - END - - NEXT N -NEXT I - -RETURN - - - -* * * * * * * -NCRKeysDC: -* * * * * * * - -WMId = Get_Property('WO_MAT_WFR','ID') - -CtrlEntID = 'WO_MAT_WFR.NCR_KEYS' - -CurrPos = Get_Property(CtrlEntID,'SELPOS') -CurrCol = CurrPos<1> -CurrRow = CurrPos<2> - -NCRKey = Get_Property(CtrlEntID,'CELLPOS',1:@FM:CurrRow) - -Send_Event('WO_MAT_WFR','WRITE') - -Dialog_Box('NCR', @WINDOW, NCRKey) - -Send_Event(@WINDOW, 'READ') - -* DetWindow = 'NCR' -* DetKeys = NCRKey -* DefaultRec = '' -* RetKey = WMId -* RetWin = 'WO_MAT_WFR' -* RetPage = 1 -* RetCtrl = CtrlEntID -* RetPos = CurrPos -* -* obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos) - -RETURN - - - - -* * * * * * * -AddMakeup: -* * * * * * * - -GoSub FQAVerify -If Not(Authorized) then Return 0 - -* Build popup of available makeup wafers based on following priority: - -* LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\MUBox' -* LogDate = Oconv(Date(), 'D4/') -* LogTime = Oconv(Time(), 'MTS') -* LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv' -* Headers = 'Logging DTM' : @FM : 'Service Step' : @FM : 'Service Description' -* ColumnWidths = 20 : @FM : 10 : @FM : 200 -* objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$) -* LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM - -Ctrls = @WINDOW:'.WO_NO':@RM:@WINDOW:'.CASS_NO':@RM:@WINDOW:'.SLOT_NO' -Props = 'DEFPROP':@RM:'DEFPROP':@RM:'LIST' - -Vals = Get_Property(Ctrls,Props) - -WONo = Vals[1,@RM] -CassNo = Vals[COL2()+1,@RM] -SlotList = Vals[COL2()+1,@RM] - -WOMatKey = WONo:'*':CassNo - -SlotSelection = Get_Property(@WINDOW:'.SLOT_NO','SELPOS') -SelectedRows = SlotSelection<2> - -* This section added 11/5/2009 JCH - -CassShipQty = Get_Property(@WINDOW:'.CASS_SHIP_QTY','DEFPROP') - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 1' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Start Method.', @RM, @FM) - -IF CassShipQty NE '' AND CassShipQty > 0 THEN - - SlotSelection = Get_Property(@WINDOW:'.SLOT_NO','SELPOS') - SelectedRows = SlotSelection<2> - BadRows = '' - - SelCnt = COUNT(SelectedRows,@VM) + (SelectedRows NE '') - - FOR I = 1 TO SelCnt - IF SelectedRows<1,I> > CassShipQty THEN - BadRows<1,-1> = SelectedRows<1,I> - END - NEXT I - - IF BadRows NE '' THEN - ClearSelection = '' - ClearSelection<1> = SlotSelection<1> - ClearSelection<2> = BadRows - Set_Property(@WINDOW:'.SLOT_NO','SELPOS',ClearSelection) - ErrMsg('Only slots included in the shipping cassette may be selected for Makeup Wafers.') - RETURN - END -END - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 2' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Find Empty Slots.', @RM, @FM) - -CONVERT @VM TO @FM in SelectedRows - -SelCnt = COUNT(SelectedRows,@FM) + (SelectedRows NE '') -IF SelCnt = 0 THEN RETURN - -EmptySlots = SelectedRows -CONVERT @FM TO @VM IN EmptySlots - -IF EmptySlots = '' THEN - ErrMsg('No slots selected for makeup!') - RETURN -END - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 3' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Verify Empty Slots.', @RM, @FM) - -FOR I = 1 TO COUNT(EmptySlots,@VM) + (EmptySlots NE '') - EmptySlot = EmptySlots<1,I> - - IF SlotList NE '' THEN - ErrMsg('Slot ':EmptySlot:" isn't empty.") - RETURN - END -NEXT I - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 4' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', obj_MUWafers:AvailWafers.', @RM, @FM) - -Parms = WONo:@RM ;* -Parms := @RM ;* WOLogRec -Parms := 1:@RM ;* ReturnKeys Flag -Parms := 1 ;* Use Reactor Run Table Flag - -If 1 then - Response = Dialog_Box('NDW_MAKEUP_WAFERS', @Window, WOMatKey) - Begin Case - Case Response EQ True$ - // User requested to convert the current cassette into a makeup box. - AvailMU_WOMatKeys = '' - UserResp = Response - MakeupBox = '' - Case Response EQ '' - // User has cancelled this process. - Return - Case Otherwise$ - // User has selected a makeup box to use and backfill. - AvailMU_WOMatKeys = Response - MakeupBox = Response - End Case - If Response EQ True$ then - // User requested to convert the current cassette into a makeup box. - end - -end else - AvailMU_WOMatKeys = obj_MUWafers('AvailWafers',WONo:@RM:@RM:1:@RM:1) -end - -LOCATE WOMatKey IN AvailMU_WOMatKeys USING @VM SETTING Pos THEN - AvailMU_WOMatKeys = DELETE(AvailMU_WOMatKeys,1,Pos,0) ;* Remove current cassette from list -END - -IF AvailMU_WOMatKeys = '' THEN - - RDSNo = Get_Property(@Window : '.RDS_NO', 'TEXT') ; // Get the RDS No now before the WRITE in case it is needed to toggle the index. -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 5' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Msg:MAKEUP_WAFERS.', @RM, @FM) - If 0 then -* If @User4 NE 'FRANCOIS_R' then - UserResp = Msg(@WINDOW,'','MAKEUP_WAFERS') ;* This box is being made into m/u wafers message - end -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 6' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', UserResp:' : UserResp, @RM, @FM) - - IF UserResp = CHAR(27) THEN RETURN - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 7' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Send_Event:WRITE.', @RM, @FM) - Send_Event(@WINDOW,'WRITE') - - FieldNo = WO_MAT_MAKEUP_BOX$ - CheckValue = 1 - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Pre obj_WO_Mat:ChangeFlag.', @RM, @FM) - - obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue) - WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey) - WOMatRow<12> = '' ; // Clear the RDS No so the index will be forced to recalculate. - WOMatRow<23> = False$ ; // Clear the MakeUp box flag so the index will be forced to recalculate. - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$) - WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value. - WOMatRow<23> = True$ ; // Restore the MakeUp box flag so the index will be forced to recalculate. - Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False$, True$) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.1' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Pre Update_Index.', @RM, @FM) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.2' : @FM : @USER4 : ', - Makeup Box = ' : Xlate('WO_MAT', WOMatKey, 'MAKEUP_BOX', 'X'), @RM, @FM) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.3' : @FM : @USER4 : ', - RDS Final Sig = ' : Xlate('WO_MAT', WOMatKey, 'RDS_FINAL_SIG', 'X')[1,@VM], @RM, @FM) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.4' : @FM : @USER4 : ', - Part No = ' : Xlate('WO_MAT', WOMatKey, 'PART_NO', 'X'), @RM, @FM) - SlotWaferIDs = Xlate('WO_MAT', WOMatKey, 'SLOT_WAFER_ID', 'X') - Convert @VM to '' in SlotWaferIDs -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.5' : @FM : @USER4 : ', - Slot Wafer IDs = ' : SlotWaferIDs, @RM, @FM) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.6' : @FM : @USER4 : ', - Curr Status = ' : Xlate('WO_MAT', WOMatKey, 'CURR_STATUS', 'X'), @RM, @FM) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 8.7' : @FM : @USER4 : ', - RDS No = ' : RDSNo, @RM, @FM) - - // Flush/update pending index transactions. - Update_Index('WO_MAT', 'MU_PART_NO', False$) - Update_Index('WO_MAT', 'CURR_STATUS', False$) - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 9' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Post obj_WO_Mat:ChangeFlag.', @RM, @FM) - - IF Get_Status(errCode) THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 9.1' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Error = ' : ErrCode, @RM, @FM) - ErrMsg(errCode) - end - - * Check the curr Status of the box -> IF 'RTU' then Log It IN INV_ACTIONS ********************************************************\ -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 10' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Pre obj_WO_Mat:CurrStatus.', @RM, @FM) - CurrStatus = obj_WO_Mat('CurrStatus',WOMatKey) - CurrDTM = OCONV(Date(),'D2/'):' ':OCONV(Time(),'MTS') -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 11' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Post obj_WO_Mat:CurrStatus.', @RM, @FM) - - IF CurrStatus = 'RTU' THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 12' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Pre obj_WO_Mat_Log:Create.', @RM, @FM) - EventParms = '' - EventParms = 'WO_MAT' - EventParms = CurrDTM - EventParms = 'RTU' - EventParms = 'CR' - EventParms = 'MU' - EventParms = WONo - EventParms = CassNo - EventParms = @USER4 - EventParms = '' - EventParms = '' - - CONVERT @FM TO @RM IN EventParms - - obj_WO_Mat_Log('Create',EventParms) ;* * * * * INV EVENT LOG * * * * * - - IF Get_Status(errCode) THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 12.1' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Error = ' : ErrCode, @RM, @FM, '', 'dbakke@srpcs.com,francois.rivard@infineon.com', LoggingDTM : ' ' : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Error = ' : ErrCode) - CALL ErrMsg(ErrCode) - END -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 13' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Post obj_WO_Mat_Log:Create.', @RM, @FM) - - END - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 14' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', obj_AppWindow:LoadFormKeys.', @RM, @FM) - obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WOMatKey) - -END - -TypeOver = '' -TypeOver = AvailMU_WOMatKeys - -If 0 then -* If @User4 NE 'FRANCOIS_R' then - MakeupBox = Popup(@WINDOW,TypeOver,'WO_MAT_MAKEUP') -end - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 15' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', WO_MAT_MAKEUP Popup.', @RM, @FM) -* IF Get_Status(errCode) THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 15.1' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Error = ' : ErrCode, @RM, @FM) -* end - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 16' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', OI_ADMIN check.', @RM, @FM) -IF NOT(MemberOf(@USER4,'OI_ADMIN')) THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 17' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', MakeUp Box Compare.', @RM, @FM) - IF MakeupBox NE AvailMU_WOMatKeys<1,1> THEN -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 18' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', MakeUp Box not first available cassette.', @RM, @FM) - ErrMsg('Only the first available cassette can be used for makeup.') - MakeupBox = '' - END -END -IF MakeupBox = '' THEN RETURN - -* Signature block added 10/6/2010 JCH * -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 19' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Pre QUOTE_SIG_PWD_ENTRY.', @RM, @FM) -Valid = Dialog_Box( 'QUOTE_SIG_PWD_ENTRY', @WINDOW, @USER4:@VM:XLATE( 'LSL_USERS', @USER4, LSL_USERS_PASSWORD$, 'X' ) ) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 20' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', Post QUOTE_SIG_PWD_ENTRY.', @RM, @FM) - -IF NOT(Valid) THEN RETURN ;* User is not worthy or can't type - -Send_Event(@WINDOW,'WRITE') - -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 21' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', obj_WO_Mat:AddMakeupWafers.', @RM, @FM) -obj_WO_Mat('AddMakeupWafers',WOMatKey:@RM:EmptySlots:@RM:MakeupBox) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 22' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', obj_Appwindow:LoadFormKeys.', @RM, @FM) -* obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WOMatKey) -* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 23' : @FM : @USER4 : ', WONo = ' : WONo : ', CassNo = ' : CassNo : ', End Method.', @RM, @FM) -Send_Event(@WINDOW,'READ') -RETURN - - -* * * * * * * -RemMakeup: -* * * * * * * - -GoSub FQAVerify -If Not(Authorized) then Return 0 - -Ctrls = @WINDOW:'.WO_NO':@RM:@WINDOW:'.CASS_NO':@RM:@WINDOW:'.SLOT_NO' -Props = 'DEFPROP':@RM:'DEFPROP':@RM:'LIST' - -Vals = Get_Property(Ctrls,Props) - -WONo = Vals[1,@RM] -CassNo = Vals[COL2()+1,@RM] -SlotList = Vals[COL2()+1,@RM] - -WOMatKey = WONo:'*':CassNo - -SlotSelection = Get_Property(@WINDOW:'.SLOT_NO','SELPOS') -SelectedRows = SlotSelection<2> - -CONVERT @VM TO @FM in SelectedRows - -SelCnt = COUNT(SelectedRows,@FM) + (SelectedRows NE '') -IF SelCnt = 0 THEN RETURN - -MadeupSlots = SelectedRows -CONVERT @FM TO @VM IN MadeupSlots - -IF MadeupSlots = '' THEN - ErrMsg('No madeup slots selected for removing makeup wafers!') - RETURN -END - -FOR I = 1 TO COUNT(MadeupSlots,@VM) + (MadeupSlots NE '') - MadeupSlot = MadeupSlots<1,I> - - IF SlotList = '' THEN - ErrMsg('Slot ':MadeupSlot:" does not contain a makeup wafer.") - RETURN - END -NEXT I - -Send_Event(@WINDOW,'WRITE') - - -MUWaferData = obj_WO_Mat('SubMakeupWafers',WOMatKey:@RM:MadeupSlots) ;* This needs to return the waferIDs (4/7/2008 JCH) - -IF Get_Status(errCode) THEN - ErrMsg(errCode) -END - - -IF MUWaferData NE '' THEN - obj_WO_Mat('RepMakeupWafers',WOMatKey:@RM:MUWaferData) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END -END - -obj_Appwindow('LoadFormKeys',@WINDOW:@RM:WOMatKey) - -RETURN - - -********** -MakeUpLot: -********** - -Ctrls = @WINDOW:'.WO_NO':@RM:@WINDOW:'.CASS_NO':@RM:@WINDOW:'.SLOT_NO' -Props = 'DEFPROP':@RM:'DEFPROP':@RM:'LIST' - -Vals = Get_Property(Ctrls,Props) - -WONo = Vals[1,@RM] -CassNo = Vals[COL2()+1,@RM] -SlotList = Vals[COL2()+1,@RM] - -WOMatKey = WONo:'*':CassNo - -CtrlEnt = Get_Property(@WINDOW,'FOCUS') -FieldNo = Get_Property(CtrlEnt,'POS') - -Send_Event(CtrlEnt,'GOTFOCUS') -CheckValue = Get_Property(CtrlEnt,'DEFPROP') -InvalidRequest = 0 - -IF ((WONo NE '') AND (CassNo NE '')) THEN - - IF (MemberOf(@USER4,'MASTER_SCHED')) | - OR (MemberOf(@USER4,'SUPERVISOR')) | - OR (MemberOf(@USER4,'ENGINEERING')) | - OR (MemberOf(@USER4,'LEAD')) | - OR (MemberOf(@USER4,'OI_ADMIN')) THEN - - Set_Property(@WINDOW,'SAVEWARN','0') - Send_Event(@WINDOW,'CLEAR') - - obj_WO_Mat('ChangeFlag',WOMatKey:@RM:FieldNo:@RM:CheckValue) - - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - - END ELSE - InvalidRequest = 1 - ErrMsg('INFO: This function is limited to authorized users only.') - END - -END ELSE - InvalidRequest = 1 - ErrMsg('WARNING: Work Order/Cassette information is missing.') -END - -IF (InvalidRequest = 1) then - /* Toggle back the checkbox flag */ - IF (CheckValue = 0) THEN - Set_Property(CtrlEnt, 'DEFPROP', 1) - END ELSE - Set_Property(CtrlEnt, 'DEFPROP', 0) - END -END - -obj_AppWindow('LoadFormKeys',@WINDOW:@RM:WOMatKey) - -RETURN - - -* * * * * * * -WOStepRdsDC: -* * * * * * * - -****************** This is a temporary hook to the old RDS_MAKEUP window for conversion JCH 4/8/2008 - -CtrlEntId = @WINDOW:'.WO_STEP_RDS_NO' - -CurrPos = Get_Property(CtrlEntId,'SELPOS') -RowData = Get_Property(CtrlEntId,'ROWDATA') -ColData = Get_Property(CtrlEntId,'ARRAY') - -CurrCol = CurrPos<1> -CurrRow = CurrPos<2> - -IF CurrCol = 1 AND RowData NE '' THEN - RDSNo = RowData -END ELSE - RDSNo = '' -END - -IF RDSNo = '' THEN RETURN - -IF Get_Property(@WINDOW,'SAVEWARN') THEN - Send_Event(@WINDOW,'WRITE') -END - -obj_AppWindow('ViewRelated','RDS_MAKEUP':@RM:RDSNo) - -RETURN - - -* * * * * * -FQAVerify: -* * * * * * - - // Check if FQA'd. If so, prompt for override. - Authorized = False$ - WorkOrdNo = Get_Property(@Window : '.WO_NO', 'TEXT') - CassNo = Get_Property(@Window : '.CASS_NO', 'TEXT') - WoMatKey = WorkOrdNo:'*':CassNo - WoMatRec = Database_Services('ReadDataRow', 'WO_MAT', WoMatKey) - - FQASig = '' - FQADate = '' - ReactorType = XLATE('WO_LOG', WorkOrdNo, 'REACT_TYPE', 'X') - SigArray = Signature_Services('GetSigProfile', WOMatKey) - SigProfile = SigArray<1> - Signatures = SigArray<2> - SigDTMS = SigArray<3> - - IF (ReactorType = 'EPP') OR (ReactorType = 'EpiPro') THEN - StatusStage = 'MO_QA' - END ELSE - StatusStage = 'QA' - END - - LOCATE StatusStage IN SigProfile USING @VM SETTING Pos THEN - FQASig = Signatures<1, Pos> - FQADate = SigDTMS<1, Pos> - end - - If (FQASig NE '') and (FQADate NE '') then - // Cassette FQA'd - OverrideMsg = "Cassette already FQA'd. SUPERVISOR, LEAD OR ENG. TECH must override." - Response = Msg(@Window, '', 'OVERRIDE', '', OverrideMsg) - - Begin Case - Case Response EQ 1 - Response = True$ ; // User Clicked Override - Case Response EQ 2 - Response = False$ ; // User Clicked Cancel - Case Response EQ char(27) - Response = False$ ; // User Pressed Escape Key - End Case - - If Response EQ True$ then - Response = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:'LEAD':@VM:'SUPERVISOR':@VM:'ENG_TECH') - Authorized = Response<1> - end else - Authorized = False$ - end - end else - Authorized = True$ - end - -return - diff --git a/LSL2/STPROC/DATABASE_SERVICES.txt b/LSL2/STPROC/DATABASE_SERVICES.txt index c136c5b..da11eb4 100644 --- a/LSL2/STPROC/DATABASE_SERVICES.txt +++ b/LSL2/STPROC/DATABASE_SERVICES.txt @@ -666,7 +666,6 @@ Service SearchIndex(TableName, ColumnName, SearchValue, UpdateIndex) ServiceKeyID := '*' : TableName : '*' : ColumnName : '*' : SearchValue ServiceKeyID = SRP_Encode(ServiceKeyID, 'BASE64') -* KeyIDList = Memory_Services('GetValue', ServiceKeyID, True$, 5) KeyIDList = '' If TableName NE '' AND ColumnName NE '' AND SearchValue NE '' then @@ -674,7 +673,7 @@ Service SearchIndex(TableName, ColumnName, SearchValue, UpdateIndex) DictTableHandle = Database_Services('GetTableHandle', 'DICT.' : TableName) If Error_Services('NoError') then Set_Status(0) - If UpdateIndex then Update_Index(TableName, ColumnName 0) + If UpdateIndex then Update_Index(TableName, ColumnName, False$, True$) Set_Status(0) Flag = '' Btree.Extract(ColumnName : @VM : SearchValue : @FM, Tablename, DictTableHandle, KeyIDList, 'S', Flag) @@ -1045,3 +1044,4 @@ end service //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + diff --git a/LSL2/STPROC/LSL_USERS_SERVICES.txt b/LSL2/STPROC/LSL_USERS_SERVICES.txt index 72af053..761aa3b 100644 --- a/LSL2/STPROC/LSL_USERS_SERVICES.txt +++ b/LSL2/STPROC/LSL_USERS_SERVICES.txt @@ -25,6 +25,7 @@ $insert LOGICAL $insert SERVICE_SETUP $Insert LSL_USERS_EQU $Insert RLIST_EQUATES +$Insert NOTIFICATION_EQUATES equ crlf$ to \0D0A\ equ tab$ to char(09) @@ -40,11 +41,17 @@ EQU FRIDAY$ to 5 EQU SATURDAY$ to 6 EQU SUNDAY$ to 7 -Declare Function Get.RecCount, SRP_Datetime, Datetime, SRP_MATH, Lsl_Users_Services -Declare Function DCount -Declare Function Database_Services, -Declare Function Environment_Services -Declare subroutine Btree.Extract +Declare Function Get.RecCount, SRP_Datetime, Datetime, SRP_MATH, Lsl_Users_Services, Active_Directory_Services +Declare Function DCount, Database_Services, Environment_Services, SRP_Array, Logging_Services +Declare subroutine Btree.Extract, Logging_Services + +LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\LSLUsers' +LogDate = Oconv(Date(), 'D4/') +LogTime = Oconv(Time(), 'MTS') +LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Notification Groups Update Log.csv' +Headers = 'Logging DTM' : @FM : 'Notification ID' : @FM : 'Notes' +objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) +LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM GoToService else Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.') @@ -187,6 +194,28 @@ Service GetOnShiftUsersByClass(Class, IncludeNextShift) end service +Service GetOnShiftUsers() + + DatetimeNow = OConv(SRP_DateTime("Now"), 'DT') + CurrentShift = Lsl_Users_Services('GetShiftByDate', DatetimeNow) + Open 'DICT.LSL_USERS' to DictLSLUsers then + SearchString = '' + SearchString := 'SHIFT' : @VM : CurrentShift : @VM : '' : @FM ; // Include office personnel (i.e. no shift assigned) + SearchString := 'ACTIVE' : @VM : True$ : @FM + LSLUsersKeys = '' + Btree.Extract(SearchString, 'LSL_USERS', DictLSLUsers, LSLUsersKeys, '', '') + ErrCode = '' + IF Get_Status(ErrCode) then + ErrorMsg = 'Error in ':Service:' service. Error calling Btree.Extract. Error code ':ErrCode:'.' + end + Response = LSLUsersKeys + end else + ErrorMsg = 'Error in ':Service:' service. Error opening LSL_USERS dictionary.' + end + +end service + + Service GetShiftByDate(Date, GenerateFlag) OnShift = ''; *Return Value @@ -350,3 +379,86 @@ Service GetShiftByDate(Date, GenerateFlag) end service + +Service UpdateNotificationGroups() + + hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') + Lock hSysLists, ServiceKeyID then + Open 'NOTIFICATION' to hTable then + EOF = False$ + Select hTable + Loop + ReadNext KeyId else EOF = True$ + Until EOF + Lock hTable, KeyId then + Read Rec from hTable, KeyId then + UseAD = Rec + If UseAD then + LSLUserList = '' + // Update LSL_User list based on current members in Active Directory groups + ADGroups = Rec + For each GroupName in ADGroups using @VM + MemberList = Active_Directory_Services('GetADGroupMembersByGroupName', GroupName, 'INFINEON') + MemberList = SRP_Array('Rotate', MemberList, @FM, @VM) + ADUserNames = MemberList<1> + LSLUserNames = '' + LSLNames = '' + Open 'DICT.LSL_USERS' to hDict then + For each ADUserName in ADUserNames using @VM setting vPos + Query = 'DOMAIN_USERNAME':@VM:ADUserName:@FM:'ACTIVE':@VM:True$:@FM + Flag = '' + LSLUsername = '' + Btree.Extract(Query, 'LSL_USERS', hDict, LSLUsername, '', Flag) + If Flag EQ 0 then + If LSLUsername NE '' then + LSLUserList<0, -1> = LSLUsername + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = KeyId + LogData<3> = 'No LSL_USERS record found for active directory member "':ADUserName:'".' + Logging_Services('AppendLog', objLog, LogData, @RM, @FM) + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = KeyId + LogData<3> = 'Btree.Extract call failed for DOMAIN_USERNAME "':ADUserName:'".' + Logging_Services('AppendLog', objLog, LogData, @RM, @FM) + end + Next ADUserName + end + Next GroupName + LSLUserList = SRP_Array('Clean', LSLUserList, 'TrimAndMakeUnique', @VM) + LSLUserList = SRP_Array('SortSimpleList', LSLUserList, 'AscendingText', @VM) + Rec = LSLUserList + Write Rec on hTable, KeyId else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = KeyId + LogData<3> = 'Failed to write record during update.' + Logging_Services('AppendLog', objLog, LogData, @RM, @FM) + end + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = KeyId + LogData<3> = 'Failed to read record during update.' + Logging_Services('AppendLog', objLog, LogData, @RM, @FM) + end + Unlock hTable, KeyId else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = KeyId + LogData<3> = 'Failed to unlock record during update.' + Logging_Services('AppendLog', objLog, LogData, @RM, @FM) + end + end + Repeat + end + Unlock hSysLists, ServiceKeyID else Null + end + +end service + diff --git a/LSL2/STPROC/NDW_ACTIVE_DIRECTORY_GROUPS_EVENTS.txt b/LSL2/STPROC/NDW_ACTIVE_DIRECTORY_GROUPS_EVENTS.txt new file mode 100644 index 0000000..60a0ea2 --- /dev/null +++ b/LSL2/STPROC/NDW_ACTIVE_DIRECTORY_GROUPS_EVENTS.txt @@ -0,0 +1,151 @@ +Compile function NDW_ACTIVE_DIRECTORY_GROUPS_EVENTS(CtrlEntId, Event, @PARAMS) +/*********************************************************************************************************************** + + This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written + permission from Infineon. + + Name : NDW_Active_Directory_Groups_Events + + Description : This function acts as a commuter module for all events related to this window. + + Notes : Commuter Modules are automatically called from the Promoted_Events function which is called by the + application-specific promoted event handler. This makes it possible to add QuickEvents that need to + execute Basic+ logic without having use the Form Designer to make the association, although this is + limited to the events which are currently promoted. + + If the form needs to call the commuter module directly then the QuickEvent parameters should be + formatted like this: + + '@SELF','@EVENT',['@PARAM1','@PARAMx'] + + Parameters : + CtrlEntId [in] -- The fully qualified name of the control calling the promoted event + Event [in] -- The event being executed. See the Notes section regarding "PRE" events + Param1-15 [in] -- Additional event parameter holders + EventFlow [out] -- Set to 1 or 0 so the calling event knows whether or not to chain forward. See comments in + EVENT_SETUP insert + + History : (Date, Initials, Notes) + 10/01/24 djs Created initial commuter module. + +***********************************************************************************************************************/ +#pragma precomp SRP_PreCompiler +#window NDW_ACTIVE_DIRECTORY_GROUPS + +$Insert EVENT_SETUP +$Insert LOGICAL +$Insert RTI_STYLE_EQUATES +$Insert MSG_EQUATES + +Declare function Active_Directory_Services, Send_Message, SRP_Array +Declare subroutine End_Dialog, Set_Property, Btree.Extract + +GoToEvent Event for CtrlEntId else + // Event not implemented +end + +Return EventFlow or 1 + +//----------------------------------------------------------------------------- +// EVENT HANDLERS +//----------------------------------------------------------------------------- + +Event WINDOW.CREATE(CreateParam) + + SelGroups = CreateParam + Def = "" + Def = -2 + Def = -2 + Def = "Loading groups..." + Def = "U" + MsgUp = Msg(@window, Def) ;* display the processing message + + ADGroupData = Active_Directory_Services('GetADGroupsByString', 'MES-Mesa*', 'INFINEON') + ADGroupData<-1> = Active_Directory_Services('GetADGroupsByString', 'IFX-IRF-Mesa*', 'INFINEON') + ADGroupData<-1> = Active_Directory_Services('GetADGroupsByString', 'KLU-Mesa*', 'INFINEON') + + ADGroupData = SRP_Array('Clean', ADGroupData, 'TrimAndMakeUnique', @FM) + NumRows = DCount(ADGroupData, @FM) + If NumRows GT 0 then + For RowIndex = 1 to NumRows + ThisGroupID = ADGroupData + Selected = InList(SelGroups, ThisGroupID, @VM) + ADGroupData = Insert(ADGroupData, RowIndex, 1, 0, Selected) + Next RowIndex + end + Set_Property(@Window:'.EDT_AD_GROUPS', 'LIST', ADGroupData) + + ColStyles = Send_Message(@Window:'.EDT_AD_GROUPS','COLSTYLE',0,'') + + ColStyles<1> = BitOr(ColStyles<1>,DTCS_CHECKBOX$) + ColStyles<1> = BitOr(ColStyles<1>,DTCS_CHECKBOXCENTER$) + + void = Send_Message(@Window:'.EDT_AD_GROUPS','COLSTYLE',0,ColStyles) + + Msg(@window, MsgUp) ;* take down the processing message + +End Event + + +Event PUB_OK.CLICK() + + SelGroups = '' + List = Get_Property(@Window:'.EDT_AD_GROUPS', 'LIST') + If List NE '' then + For each Row in List using @FM setting RowIndex + RowSelected = Row<0, 1> + If RowSelected then + SelGroups<-1> = Row<0, 2> : @VM : Row<0, 3> : @VM : Row<0, 4> + end + Next Row + end + End_Dialog(@Window, SelGroups) + +end event + + +Event PUB_CANCEL.CLICK() + + End_Dialog(@Window, '') + +end event + + +Event EDT_AD_GROUPS.ROWSELCHANGED(SelRow, SelState) + + Def = "" + Def = -2 + Def = -2 + Def = "Loading group data..." + Def = "U" + MsgUp = Msg(@window, Def) ;* display the processing message + + List = Get_Property(CtrlEntId, 'LIST') + RowData = List + GroupName = RowData<0, 2> + Array = Get_Property(@Window, '@':GroupName) + If Array EQ '' then + MemberList = Active_Directory_Services('GetADGroupMembersByGroupName', GroupName, 'INFINEON') + MemberList = SRP_Array('Rotate', MemberList, @FM, @VM) + ADUserNames = MemberList<1> + LSLUserNames = '' + LSLNames = '' + Open 'DICT.LSL_USERS' to hDict then + For each ADUserName in ADUserNames using @VM setting vPos + Query = 'DOMAIN_USERNAME':@VM:ADUserName:@FM + Flag = '' + LSLUsername = '' + Btree.Extract(Query, 'LSL_USERS', hDict, LSLUsername, '', Flag) + LSLUsernames<0, vPos> = LSLUsername<0, 1> + LSLNames<0, vPos> = Xlate('LSL_USERS', LSLUserName<0, 1>, 'FIRST_LAST', 'X') + Next ADUserName + end + Array = ADUsernames : @FM : LSLUsernames : @FM : LSLNames + Set_Property(@Window, '@':GroupName, Array) + end + Set_Property(@Window:'.EDT_AD_MEMBERS', 'ARRAY', Array) + + Msg(@window, MsgUp) ;* take down the processing message + +end event + diff --git a/LSL2/STPROC/NDW_AUDIT_REPORT_EVENTS.txt b/LSL2/STPROC/NDW_AUDIT_REPORT_EVENTS.txt index a88a31b..8fa6846 100644 --- a/LSL2/STPROC/NDW_AUDIT_REPORT_EVENTS.txt +++ b/LSL2/STPROC/NDW_AUDIT_REPORT_EVENTS.txt @@ -93,7 +93,7 @@ Set_List: List = "" Table = "AUDIT_WO_MAST_SCHED" Field = "DATE_IN" - Update_Index(Table, Field, No$) + Update_Index(Table, Field, No$, True$) Open Table to hTable else null @@ -133,3 +133,4 @@ Set_List: Set_Property(@Window:".RPT_LIST", "OLE.List", List) return + diff --git a/LSL2/STPROC/NDW_MAIN_EVENTS.txt b/LSL2/STPROC/NDW_MAIN_EVENTS.txt index 3567b9e..0e031e5 100644 --- a/LSL2/STPROC/NDW_MAIN_EVENTS.txt +++ b/LSL2/STPROC/NDW_MAIN_EVENTS.txt @@ -378,6 +378,7 @@ Event WINDOW.TIMER() end Notes_Services('UpdateNotes', @User4) + If Error_Services('HasError') then Error_Services('DisplayError') NewMessages = Notes_Services('GetUnreadMessageCount', @User4) ColorFill = '' @@ -852,3 +853,4 @@ return + diff --git a/LSL2/STPROC/NDW_NOTIFICATION_EVENTS.txt b/LSL2/STPROC/NDW_NOTIFICATION_EVENTS.txt new file mode 100644 index 0000000..ca566d3 --- /dev/null +++ b/LSL2/STPROC/NDW_NOTIFICATION_EVENTS.txt @@ -0,0 +1,438 @@ +Compile function NDW_NOTIFICATION_EVENTS(CtrlEntId, Event, @PARAMS) +/*********************************************************************************************************************** + + This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written + permission from Infineon. + + Name : NDW_Notification_Events + + Description : This function acts as a commuter module for all events related to this window. + + Notes : Commuter Modules are automatically called from the Promoted_Events function which is called by the + application-specific promoted event handler. This makes it possible to add QuickEvents that need to + execute Basic+ logic without having use the Form Designer to make the association, although this is + limited to the events which are currently promoted. + + If the form needs to call the commuter module directly then the QuickEvent parameters should be + formatted like this: + + '@SELF','@EVENT',['@PARAM1','@PARAMx'] + + Parameters : + CtrlEntId [in] -- The fully qualified name of the control calling the promoted event + Event [in] -- The event being executed. See the Notes section regarding "PRE" events + Param1-15 [in] -- Additional event parameter holders + EventFlow [out] -- Set to 1 or 0 so the calling event knows whether or not to chain forward. See comments in + EVENT_SETUP insert + + History : (Date, Initials, Notes) + 09/30/24 djs Created initial commuter module. + +***********************************************************************************************************************/ +#pragma precomp SRP_PreCompiler +#window NDW_NOTIFICATION + +$Insert EVENT_SETUP +$Insert APP_INSERTS +$Insert MSG_EQUATES +$Insert POPUP_EQUATES +$Insert NOTIFICATION_EQUATES + +EQU READONLY_GREEN$ TO 192 + (220*256) + (192*65536) + +Declare function Admin_User, Database_Services, Error_Services, Active_Directory_Services, SRP_Array +Declare subroutine PlaceDialog, Error_Services, Database_Services, Btree.Extract + +GoToEvent Event for CtrlEntId else + // Event not implemented +end + +Return EventFlow or 1 + +//----------------------------------------------------------------------------- +// EVENT HANDLERS +//----------------------------------------------------------------------------- + +Event WINDOW.CREATE(CreateParam) + + PlaceDialog(-2, -2) + ColorArray = Send_Message(@Window:'.EDT_LSL_USERS', "COLOR_BY_POS", 2, 0) + ColorArray<1> = READONLY_GREEN$ + Send_Message(@Window:'.EDT_LSL_USERS', "COLOR_BY_POS", 1, 0, ColorArray) + Send_Message(@Window:'.EDT_LSL_USERS', "COLOR_BY_POS", 2, 0, ColorArray) + Send_Message(@Window:'.EDT_AD_GROUPS', "COLOR_BY_POS", 1, 0, ColorArray) + Send_Message(@Window:'.EDT_AD_GROUPS', "COLOR_BY_POS", 2, 0, ColorArray) + Send_Message(@Window:'.EDT_AD_GROUPS', "COLOR_BY_POS", 3, 0, ColorArray) + +End Event + + +Event WINDOW.READ() + + Key = Get_Property(@Window:'.EDL_NOTIFICATION_ID', 'TEXT') + Begin Case + Case Key EQ '' + Set_Property(@Window:'.EDT_LSL_USERS', 'ENABLED', False$) + Case RowExists('NOTIFICATION', Key) + // Populate form + HaveLock = Database_Services('GetKeyIDLock', 'NOTIFICATION', Key, True$) + If HaveLock then + Set_Property(@Window, '@HAVE_LOCK', HaveLock) + Set_Property(@Window, '@LOCK_KEY', Key) + + Set_Property(@Window:'.EDL_DESCRIPTION', 'ENABLED', True$) + Set_Property(@Window:'.CHK_USE_AD', 'ENABLED', True$) + Set_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', True$) + Set_Property(@Window:'.PUB_CLEAR', 'ENABLED', True$) + Set_Property(@Window:'.PUB_DELETE', 'ENABLED', True$) + Set_Property(@Window:'.PUB_SAVE', 'ENABLED', True$) + NotifyRec = Database_Services('ReadDataRow', 'NOTIFICATION', Key) + If Error_Services('NoError') then + Set_Property(@Window, '@RECORD', NotifyRec) + Set_Property(@Window:'.EDL_DESCRIPTION', 'TEXT', NotifyRec) + UseAD = NotifyRec + Set_Property(@Window:'.CHK_USE_AD', 'DEFPROP', UseAD) + LimitOnShift = NotifyRec + Set_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', 'DEFPROP', LimitOnShift) + + LSLUsers = NotifyRec + LSLUsernames = Xlate('LSL_USERS', LSLUsers, 'FIRST_LAST', 'X') + LSLUsersArray = LSLUsers : @FM : LSLUsernames + Set_Property(@Window:'.EDT_LSL_USERS', 'ARRAY', LSLUsersArray) + ADGroups = NotifyRec + GroupList = '' + If ADGroups NE '' then + For each ADGroup in ADGroups using @VM setting vPos + GroupList<-1> = Active_Directory_Services('GetADGroupsByString', ADGroup, 'INFINEON') + Next ADGroup + end + Set_Property(@Window:'.EDT_AD_GROUPS', 'LIST', GroupList) + GoSub EnableControls + end else + Msg(@Window, '', 'OK', '', 'Error':@FM:'Error locking NOTIFICATION record "':Key:'" for update!') + end + end else + Msg(@Window, '', 'OK', '', 'Error':@FM:'Error reading NOTIFICATION record "':Key:'"!') + end + Case Otherwise$ + // User is creating a new record + Set_Property(@Window:'.PUB_ADD_USERS', 'ENABLED', True$) + GoSub EnableControls + End Case + +end event + + +Event WINDOW.CLEAR(bSaveKey, bSuppressWarning, bMaintainFocus) + + GoSub EnableControls + Set_Property(@Window:'.PUB_DELETE', 'ENABLED', False$) + Set_Property(@Window:'.PUB_CLEAR', 'ENABLED', True$) + Set_Property(@Window:'.EDL_DESCRIPTION', 'ENABLED', False$) + Set_Property(@Window:'.CHK_USE_AD', 'ENABLED', False$) + Set_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', 'ENABLED', False$) + + Set_Property(@Window:'.PUB_ADD_USERS', 'ENABLED', False$) + Set_Property(@Window:'.REM_ADD_USERS', 'ENABLED', False$) + + Set_Property(@Window:'.GRB_AD_GROUPS', 'ENABLED', False$) + Set_Property(@Window:'.EDT_AD_GROUPS', 'ENABLED', False$) + Set_Property(@Window:'.PUB_ADD_GROUPS', 'ENABLED', False$) + Set_Property(@Window:'.REM_ADD_GROUPS', 'ENABLED', False$) + +end event + + +Event WINDOW.WRITE() + + Key = Get_Property(@Window:'.EDL_NOTIFICATION_ID', 'TEXT') + NotifyRec = Get_Property(@Window, '@RECORD') + NotifyRec = Get_Property(@Window:'.EDL_DESCRIPTION', 'TEXT') + UserArray = Get_Property(@Window:'.EDT_LSL_USERS', 'ARRAY') + UserIds = UserArray<1> + NotifyRec = UserIds + GroupArray = Get_Property(@Window:'.EDT_AD_GROUPS', 'ARRAY') + GroupIds = GroupArray<1> + NotifyRec = GroupIds + NotifyRec = Get_Property(@Window:'.CHK_USE_AD', 'DEFPROP') + NotifyRec = Get_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', 'DEFPROP') + Database_Services('WriteDataRow', 'NOTIFICATION', Key, NotifyRec, True$, False$, True$) + If Error_Services('NoError') then + GoSub UnlockRec + Post_Event(@Window, 'CLEAR') + end else + Msg(@Window, '', 'OK', '', 'Error':@FM:Error_Services('GetMessage')) + end + +end event + + +Event WINDOW.CLOSE(CancelFlag, CloseFlags) + + GoSub UnlockRec + +end event + + +Event PUB_SAVE.CLICK() + + Post_Event(@Window, 'WRITE') + +end event + + +Event PUB_CLEAR.CLICK() + + GoSub UnlockRec + Post_Event(@Window, 'CLEAR') + +end event + + +Event PUB_LU_ID.CLICK() + + TypeOver = '' + TypeOver = 1 + NotifyID = Popup(@WINDOW,TypeOver,'NOTIFICATION') + IF NotifyID NE '' THEN + Set_Property(@Window:'.EDL_NOTIFICATION_ID', 'TEXT', NotifyID) + end + +end event + + +Event EDT_LSL_USERS.ROWSELCHANGED(SelRow, SelState) + + GoSub EnableControls + +end event + + +Event EDT_AD_GROUPS.ROWSELCHANGED(SelRow, SelState) + + GoSub EnableControls + +end event + + +Event EDL_NOTIFICATION_ID.CHANGED(NewData) + + If NewData NE '' then + GoSub UnlockRec + Post_Event(@Window, 'READ') + end + +end event + + +Event EDL_NOTIFICATION_ID.LOSTFOCUS(Flag, FocusID) + + If Flag EQ 1 then + GoSub UnlockRec + Post_Event(@Window, 'READ') + end + +end event + + +Event PUB_ADD_USERS.CLICK() + + CurrUserIDs = Get_Property(@Window:'.EDT_LSL_USERS','ARRAY')<1> + CurrUserIDsTrimmed = '' + FOR I = 1 TO COUNT(CurrUserIDs,@VM) + (CurrUserIDs NE '') + IF CurrUserIDs<1,I> NE '' THEN + CurrUserIDsTrimmed<1,I> = CurrUserIDs<1,I> + END + NEXT I + CurrUserIDs = CurrUserIDsTrimmed + + NewUserIDs = Popup(@WINDOW,'','SHOW_USERS') + + IF NewUserIDs = '' OR NewUserIDs = CHAR(27) THEN RETURN + + FOR I = 1 TO COUNT(NewUserIDs,@VM) + (NewUserIDs NE '') + NewUserID = NewUserIDs<1,I> + LOCATE NewUserID IN CurrUserIDs BY 'AL' USING @VM SETTING POS ELSE + CurrUserIDs = INSERT(CurrUserIDs,1,POS,0,NewUserID) + END + + NEXT I + + LSLNames = Xlate('LSL_USERS', CurrUserIDs, 'FIRST_LAST', 'X') + NewArray = CurrUserIDs : @FM : LSLNames + Set_Property(@Window:'.EDT_LSL_USERS', 'ARRAY', NewArray) + +end event + + +Event PUB_REM_USERS.CLICK() + + SelRows = Get_Property(@Window:'.EDT_LSL_USERS', 'SELPOS') + SelRows = SelRows<2> + SelData = '' + NewList = '' + If SelRows NE '' then + DataList = Get_Property(@Window:'.EDT_LSL_USERS', 'LIST') + For each Row in DataList using @FM setting RowIndex + If Not(InList(SelRows, RowIndex, @VM)) then NewList<-1> = Row + Next Row + Set_Property(@Window:'.EDT_LSL_USERS', 'LIST', NewList) + GoSub EnableControls + end + +end event + + +Event PUB_ADD_GROUPS.CLICK() + + GroupArray = Get_Property(@Window:'.EDT_AD_GROUPS', 'ARRAY') + GroupIds = GroupArray<1> + SelGroups = Dialog_Box('NDW_ACTIVE_DIRECTORY_GROUPS', @Window, GroupIds) + Set_Property(@Window:'.EDT_AD_GROUPS', 'LIST', SelGroups) + + Def = "" + Def = -2 + Def = -2 + Def = "Updating LSL user list..." + Def = "U" + MsgUp = Msg(@window, Def) ;* display the processing message + + GroupArray = Get_Property(@Window:'.EDT_AD_GROUPS', 'ARRAY') + GroupIds = GroupArray<1> + + If GroupIds NE '' then + LSLUserNames = '' + LSLNames = '' + For each GroupId in GroupIds using @VM + MemberList = Active_Directory_Services('GetADGroupMembersByGroupName', GroupId, 'INFINEON') + MemberList = SRP_Array('Rotate', MemberList, @FM, @VM) + ADUserNames = MemberList<1> + + Open 'DICT.LSL_USERS' to hDict then + For each ADUserName in ADUserNames using @VM setting vPos + Query = 'DOMAIN_USERNAME':@VM:ADUserName:@FM + Flag = '' + LSLUsername = '' + Btree.Extract(Query, 'LSL_USERS', hDict, LSLUsername, '', Flag) + If LSLUsername NE '' then LSLUsernames<0, -1> = LSLUsername<0, 1> + Next ADUserName + end + Next GroupId + If LSLUsernames NE '' then + LSLNames = Xlate('LSL_USERS', LSLUserNames, 'FIRST_LAST', 'X') + end + end + Array = LSLUsernames : @FM : LSLNames + Set_Property(@Window:'.EDT_LSL_USERS', 'ARRAY', Array) + + Msg(@window, MsgUp) ;* take down the processing message + +end event + + +Event PUB_REM_GROUPS.CLICK() + + SelRows = Get_Property(@Window:'.EDT_AD_GROUPS', 'SELPOS') + SelRows = SelRows<2> + SelData = '' + NewList = '' + If SelRows NE '' then + DataList = Get_Property(@Window:'.EDT_AD_GROUPS', 'LIST') + For each Row in DataList using @FM setting RowIndex + If Not(InList(SelRows, RowIndex, @VM)) then NewList<-1> = Row + Next Row + Set_Property(@Window:'.EDT_AD_GROUPS', 'LIST', NewList) + GoSub EnableControls + end + +end event + + +Event CHK_USE_AD.CLICK() + + GoSub EnableControls + +end event + + +EnableControls: + + NotifyID = Get_Property(@Window:'.EDL_NOTIFICATION_ID', 'TEXT') + UseAD = Get_Property(@Window:'.CHK_USE_AD', 'DEFPROP') + + Set_Property(@Window:'.PUB_CLEAR', 'ENABLED', (NotifyID NE '')) + Set_Property(@Window:'.EDL_DESCRIPTION', 'ENABLED', (NotifyID NE '')) + Set_Property(@Window:'.CHK_USE_AD', 'ENABLED', (NotifyID NE '')) + + If UseAD NE True$ then Set_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', 'DEFPROP', False$) + Set_Property(@Window:'.CHK_LIMIT_TO_ACTIVE_SHIFT', 'ENABLED', UseAD) + + Set_Property(@Window:'.PUB_ADD_USERS', 'ENABLED', (UseAD NE True$)) + Set_Property(@Window:'.EDT_LSL_USERS', 'ENABLED', (NotifyID NE '')) + + If NotifyID NE '' then + Backcolor = WHITE$ + end else + Backcolor = GREY$ + end + + Set_Property(@Window:'.EDT_LSL_USERS', 'BACKCOLOR', Backcolor) + + Set_Property(@Window:'.GRB_AD_GROUPS', 'ENABLED', (UseAD EQ True$)) + Set_Property(@Window:'.PUB_ADD_GROUPS', 'ENABLED', (UseAD EQ True$)) + Set_Property(@Window:'.EDT_AD_GROUPS', 'ENABLED', (UseAD EQ True$)) + + If ( (NotifyID NE '') and (UseAD EQ True$) ) then + Backcolor = WHITE$ + end else + Backcolor = GREY$ + end + Set_Property(@Window:'.EDT_AD_GROUPS', 'BACKCOLOR', Backcolor) + + DelBtnEnabled = False$ + SelRows = Get_Property(@Window:'.EDT_LSL_USERS', 'SELPOS') + SelRows = SelRows<2> + SelData = '' + If SelRows NE '' then + Data = Get_Property(@Window:'.EDT_LSL_USERS', 'LIST') + Convert @VM to '' in Data + For each Row in SelRows using @VM + If Data NE '' then + SelData<-1> = Data + end + Next Row + If (SelData NE '') and (UseAD NE True$) then DelBtnEnabled = True$ + end + Set_Property(@Window:'.PUB_REM_USERS', 'ENABLED', DelBtnEnabled) + + DelBtnEnabled = False$ + SelRows = Get_Property(@Window:'.EDT_AD_GROUPS', 'SELPOS') + SelRows = SelRows<2> + SelData = '' + If SelRows NE '' then + Data = Get_Property(@Window:'.EDT_AD_GROUPS', 'LIST') + Convert @VM to '' in Data + For each Row in SelRows using @VM + If Data NE '' then + SelData<-1> = Data + end + Next Row + If (SelData NE '') and (UseAD EQ True$) then DelBtnEnabled = True$ + end + Set_Property(@Window:'.PUB_REM_GROUPS', 'ENABLED', DelBtnEnabled) + +return + + +UnlockRec: + + Key = Get_Property(@Window, '@LOCK_KEY') + If Key NE '' then + HaveLock = Get_Property(@Window, '@HAVE_LOCK') + If HaveLock then + Database_Services('ReleaseKeyIDLock', 'NOTIFICATION', Key) + end + end + +return + diff --git a/LSL2/STPROC/NDW_SCHEDULE_SEARCH_EVENTS.txt b/LSL2/STPROC/NDW_SCHEDULE_SEARCH_EVENTS.txt index c9109d3..e1a6a21 100644 --- a/LSL2/STPROC/NDW_SCHEDULE_SEARCH_EVENTS.txt +++ b/LSL2/STPROC/NDW_SCHEDULE_SEARCH_EVENTS.txt @@ -67,7 +67,7 @@ OnClick.HYP_FIND: Case Field EQ "WO" ; Field = "WO_NO2" Case Field EQ "PSN" ; Field = "PSN_NO" End Case - Update_Index(Table, Field, No$) + Update_Index(Table, Field, No$, Yes$) Extract_SI_Keys(Table, Field, Find, Keys) rv = Xlate(Table, Keys, "REACT_NO", "X") :@FM: Xlate(Table, Keys, "WO_NO", "X") :@FM: Keys Appts = "";!! @@ -109,3 +109,4 @@ Window.CREATE: SRP_Redirect_OLE_Events() return + diff --git a/LSL2/STPROC/NOTES_SERVICES.txt b/LSL2/STPROC/NOTES_SERVICES.txt index 23c5b62..08ca66c 100644 --- a/LSL2/STPROC/NOTES_SERVICES.txt +++ b/LSL2/STPROC/NOTES_SERVICES.txt @@ -1,15 +1,80 @@ Compile function Notes_Services(@Service, @Params) +/*********************************************************************************************************************** -Declare function Database_Services,obj_Notes_Sent, Get_Status, Error_Services, Obj_Tables, Datetime, SRP_Datetime -Declare subroutine Obj_Tables, Obj_Notes_Sent, Update_Index, Errmsg, Database_Services, Btree.Extract, Error_Services -Declare subroutine Notes_Services + Name : RDS_Services + + Description : Handler program for all RDS services. + + Notes : Application errors should be logged using the Error Services module. There are a few methodological + assumptions built into way errors are managed which are important to understand in order to properly + work with Error Services: + + - The term 'top' refers to the originating procedure of a call stack and the term 'bottom' refers to + the last routine (or the current routine) within a call stack. Within the OpenInsight Debugger + this will appear backwards since the originating procedure always appears at the bottom of the + list and the current routine appears at the top of the list. We are using this orientation because + it is common to refer to the process of calling other procedures as 'drilling down'. + + - The reason for defining the orientation of the call stack is because Error_Services allows for + multiple error conditions to be appended to an original error. In most cases this will happen when + a procedure at the bottom of the stack generates an error condition and then returns to its + calling procedure. This higher level procedure can optionally add more information relevant to + itself. This continues as the call stack 'bubbles' its way back to the top to where the + originating procedure is waiting. + + - Native OpenInsight commands that handle errors (e.g., Set_Status, Set_FSError, Set_EventStatus) + preserve their error state until explicitly cleared. This can hinder the normal execution of code + since subsequent procedures (usually SSPs) will fail if a pre-existing error condition exists. + Our philosophy is that error conditions should automatically be cleared before a new procedure + is executed to avoid this problem. However, the nature of Basic+ does not make this easy to + automate for any given stored procedure. Therefore, if a stored procedure wants to conform to our + philosophy then it should include a call into the 'Clear' service request at the top of the + program. Alternatively this can be done through a common insert (see SERVICE_SETUP for example.) + + - Service modules will use the SERVICE_SETUP insert and therefore automatically clear out any + error conditions that were set before. + + Parameters : + Service [in] -- Name of the service being requested + Param1-10 [in/out] -- Additional request parameter holders + Response [out] -- Response to be sent back to the Controller (MCP) or requesting procedure + + Metadata : + + History : (Date, Initials, Notes) + 10/16/24 djs Added service to process notes queue. + +***********************************************************************************************************************/ #pragma precomp SRP_PreCompiler -$insert LOGICAL -$insert NOTE_PTRS_EQU -$insert MSG_EQUATES -$Insert NOTES_EQU -*$Insert NOTES_EQUATES +$Insert SERVICE_SETUP +$Insert LOGICAL +$Insert NOTE_PTRS_EQUATES +$Insert MSG_EQUATES +$Insert NOTES_EQUATES +$Insert LSL_USERS_EQUATES +$Insert EMAIL_BOX_EQUATES +$Insert NOTES_QUEUE_EQUATES +$Insert NOTIFICATION_EQUATES + +Declare function Database_Services, obj_Notes_Sent, Get_Status, Error_Services, Obj_Tables, Datetime, SRP_Datetime +Declare function SRP_Array, Environment_Services, Logging_Services, RTI_CreateGuid, LSL_Users_Services +Declare subroutine Obj_Tables, Obj_Notes_Sent, Update_Index, Errmsg, Database_Services, Btree.Extract, Error_Services +Declare subroutine Notes_Services, Logging_Services + +LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\NOTES' +LogDate = Oconv(Date(), 'D4/') +LogTime = Oconv(Time(), 'MTS') + +LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Notes Queue Processing Log.csv' +Headers = 'Logging DTM' : @FM : 'Notes Queue ID' : @FM : 'Notes' +objNotesQProcLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) + +LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Notes Queue Log.csv' +Headers = 'Logging DTM' : @FM : 'Notes Queue ID' : @FM : 'Notes' +objNotesQueueLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$) + +LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM GoToService @@ -20,36 +85,40 @@ Return Response or "" //----------------------------------------------------------------------------- Service SnoozeNewMessageNotifications(UserID) + Open 'NOTE_PTRS' to hTable then - SnoozeTime = Datetime() - WriteV SnoozeTime to hTable, UserID, NOTE_PTRS_SNOOZE$ else - Errmsg('Error setting snooze.') - end + SnoozeTime = Datetime() + WriteV SnoozeTime to hTable, UserID, NOTE_PTRS_SNOOZE$ else + Errmsg('Error setting snooze.') + end end else - Errmsg('Error setting snooze.') + Errmsg('Error setting snooze.') end end service + Service AllowNewMessageNotifications(UserID) + Open 'NOTE_PTRS' to hTable then - SnoozeTime = '' - WriteV SnoozeTime to hTable, UserID, NOTE_PTRS_SNOOZE$ else - Errmsg('Error setting snooze.') - end + SnoozeTime = '' + WriteV SnoozeTime to hTable, UserID, NOTE_PTRS_SNOOZE$ else + Errmsg('Error setting snooze.') + end end else - Errmsg('Error setting snooze.') + Errmsg('Error setting snooze.') end end service + Service CheckForNotificationSnooze(UserID) - - SnoozeRow = '' - Snoozed = FALSE$ - UserRec = Database_Services('ReadDataRow','NOTE_PTRS', @USER4, '', '', '') + + SnoozeRow = '' + Snoozed = FALSE$ + UserRec = Database_Services('ReadDataRow','NOTE_PTRS', @USER4, '', '', '') CurrentTime = Datetime() - SnoozeRow = UserRec + SnoozeRow = UserRec If SnoozeRow NE '' then CutoffTime = SRP_DateTime("AddMinutes", SnoozeRow, 30) If CurrentTime LE CutoffTime then @@ -62,8 +131,9 @@ Service CheckForNotificationSnooze(UserID) end service + Service GetInboxMessages(UserID) - //debug + InboxList = '' UserRec = Database_Services('ReadDataRow','NOTE_PTRS', @USER4, '', '', '') MessageCount = Dcount(UserRec<1>, @VM) @@ -80,10 +150,12 @@ Service GetInboxMessages(UserID) end Next index Response = InboxList + end service + Service GetArchivedMessages(UserID) - //debug + ArchiveList = '' UserRec = Database_Services('ReadDataRow','NOTE_PTRS', @USER4, '', '', '') MessageCount = Dcount(UserRec<1>, @VM) @@ -100,142 +172,379 @@ Service GetArchivedMessages(UserID) end Next index Response = ArchiveList + end service + Service UpdateNotes(UserID) -ErrorMsg = '' -IF UserID = '' THEN ErrorMsg = 'Unassigned Parameter "UserID" passed to object. (':Method:')' - - -IF ErrorMsg NE '' THEN RETURN - -//OtParms = 'NOTE_PTRS':@RM:UserID - -//NPRec = obj_Tables('ReadRec',OtParms) ;* If not found then returns null, otherwise reads and sets the lock -NPRec = Database_Services('ReadDataRow', 'NOTE_PTRS', UserID) - -IF LEN(NPRec) > 60000 THEN - * Dump the oldest note pointers - PtrCnt = COUNT(NPRec, @vm) + (NPRec NE '') - FOR N = PtrCnt TO (PtrCnt - 100) STEP -1 - NPRec = Delete(NPRec, note_ptrs_subject$, N, 0) - NPRec = Delete(NPRec, note_ptrs_from$, N, 0) - NPRec = Delete(NPRec, note_ptrs_date$, N, 0) - NPRec = Delete(NPRec, note_ptrs_time$, N, 0) - NPRec = Delete(NPRec, note_ptrs_new$, N, 0) - NPRec = Delete(NPRec, note_ptrs_note_ids$, N, 0) - NPRec = Delete(NPRec, note_ptrs_attachment$, N, 0) - NPRec = Delete(NPRec, note_ptrs_archived$, N, 0) - NEXT N - TLen = LEN(NPRec) -END - -NotesSentKeys = obj_Notes_Sent('GetUserKeys',UserID) - -IF NotesSentKeys NE '' THEN - FOR I = 1 TO COUNT(NotesSentKeys,@VM) + (NotesSentKeys NE '') - - NotesSentKey = NotesSentKeys<1,I> - NoteID = FIELD(NotesSentKey,'*',2) - - LOCATE NoteID IN NPRec USING @VM SETTING POS ELSE - - NoteRec = XLATE('NOTES',NoteID,'','X') - - SentFrom = NoteRec - SentDate = NoteRec - SentTime = NoteRec - AttachWindow = NoteRec - AttachKeys = NoteRec - Subject = NoteRec - - IF AttachWindow NE '' AND AttachKeys NE '' THEN - Attachment = 'Yes' - END ELSE - Attachment = 'No' + + ErrorMsg = '' + IF UserID NE '' then + NPRec = Database_Services('ReadDataRow', 'NOTE_PTRS', UserID) + If Error_Services('NoError') then + IF LEN(NPRec) > 60000 THEN + * Dump the oldest note pointers + PtrCnt = COUNT(NPRec, @vm) + (NPRec NE '') + FOR N = PtrCnt TO (PtrCnt - 100) STEP -1 + NPRec = Delete(NPRec, note_ptrs_subject$, N, 0) + NPRec = Delete(NPRec, note_ptrs_from$, N, 0) + NPRec = Delete(NPRec, note_ptrs_date$, N, 0) + NPRec = Delete(NPRec, note_ptrs_time$, N, 0) + NPRec = Delete(NPRec, note_ptrs_new$, N, 0) + NPRec = Delete(NPRec, note_ptrs_note_ids$, N, 0) + NPRec = Delete(NPRec, note_ptrs_attachment$, N, 0) + NPRec = Delete(NPRec, note_ptrs_archived$, N, 0) + NEXT N + TLen = LEN(NPRec) END - NPRec = INSERT( NPRec, note_ptrs_subject$, 1, 0, Subject ) ;* Add the subject - - ConvSentFrom = OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') - IF ConvSentFrom NE '' THEN SentFrom = ConvSentFrom - - NPRec = INSERT( NPRec, note_ptrs_from$, 1, 0, SentFrom ) - NPRec = INSERT( NPRec, note_ptrs_date$, 1, 0, OCONV(SentDate,'D2/') ) - NPRec = INSERT( NPRec, note_ptrs_time$, 1, 0, OCONV(SentTime,'MTH') ) - NPRec = INSERT( NPRec, note_ptrs_new$, 1, 0, 'Yes' ) - NPRec = INSERT( NPRec, note_ptrs_note_ids$, 1, 0, NoteID ) - NPRec = INSERT( NPRec, note_ptrs_attachment$, 1, 0, Attachment ) - NPRec = INSERT( NPRec, note_ptrs_archived$, 1, 0, '0' ) - END - Database_Services('WriteDataRow', 'NOTE_PTRS', UserID, NPRec, True$, False$, True$) - NEXT I - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END ELSE - obj_Notes_Sent('Delete',NotesSentKeys) - - Update_Index('NOTES_SENT','USER_ID','') - END -END ELSE - //obj_Tables('UnlockRec',OtParms) -END - + NotesSentKeys = obj_Notes_Sent('GetUserKeys',UserID) + + IF NotesSentKeys NE '' THEN + FOR I = 1 TO COUNT(NotesSentKeys,@VM) + (NotesSentKeys NE '') + + NotesSentKey = NotesSentKeys<1,I> + NoteID = FIELD(NotesSentKey,'*',2) + + LOCATE NoteID IN NPRec USING @VM SETTING POS ELSE + + NoteRec = XLATE('NOTES',NoteID,'','X') + + SentFrom = NoteRec + SentDate = NoteRec + SentTime = NoteRec + AttachWindow = NoteRec + AttachKeys = NoteRec + Subject = NoteRec + + IF AttachWindow NE '' AND AttachKeys NE '' THEN + Attachment = 'Yes' + END ELSE + Attachment = 'No' + END + + NPRec = INSERT( NPRec, note_ptrs_subject$, 1, 0, Subject ) ;* Add the subject + + ConvSentFrom = OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') + IF ConvSentFrom NE '' THEN SentFrom = ConvSentFrom + + NPRec = INSERT( NPRec, note_ptrs_from$, 1, 0, SentFrom ) + NPRec = INSERT( NPRec, note_ptrs_date$, 1, 0, OCONV(SentDate,'D2/') ) + NPRec = INSERT( NPRec, note_ptrs_time$, 1, 0, OCONV(SentTime,'MTH') ) + NPRec = INSERT( NPRec, note_ptrs_new$, 1, 0, 'Yes' ) + NPRec = INSERT( NPRec, note_ptrs_note_ids$, 1, 0, NoteID ) + NPRec = INSERT( NPRec, note_ptrs_attachment$, 1, 0, Attachment ) + NPRec = INSERT( NPRec, note_ptrs_archived$, 1, 0, '0' ) + END + Database_Services('WriteDataRow', 'NOTE_PTRS', UserID, NPRec, True$, False$, True$) + NEXT I + IF Get_Status(errCode) THEN + ErrorMsg = 'Error in service: ':Service:'. Error code: ':errCode + END ELSE + obj_Notes_Sent('Delete',NotesSentKeys) + Update_Index('NOTES_SENT','USER_ID', False$, True$) + END + END + end else + ErrorMsg = Error_Services('GetMessage') + end + end else + ErrorMsg = 'Error in service: ':Service:'. Unassigned Parameter "UserID" passed into service.' + end + + If ErrorMsg NE '' then Error_Services('Add', ErrorMsg) + end service + Service GetUnreadMessageCount(UserID) - unreadMessageCount = 0 - IF UserID NE '' then - if xlate( 'NOTE_PTRS', @user4, 'NEW_MESSAGES', 'X' ) then - NotePtrRec = xlate( 'NOTE_PTRS', @user4, '', 'X' ) - LOCATE 'Yes' in NotePtrRec using @VM setting mPos then - *If any are marked as yes, that means there are unread messages - for each messageRead in NotePtrRec using @VM - if messageRead EQ 'Yes' then unreadMessageCount += 1 - Next message - end - end - end - Response = unreadMessageCount + + unreadMessageCount = 0 + IF UserID NE '' then + if xlate( 'NOTE_PTRS', @user4, 'NEW_MESSAGES', 'X' ) then + NotePtrRec = xlate( 'NOTE_PTRS', @user4, '', 'X' ) + LOCATE 'Yes' in NotePtrRec using @VM setting mPos then + *If any are marked as yes, that means there are unread messages + for each messageRead in NotePtrRec using @VM + if messageRead EQ 'Yes' then unreadMessageCount += 1 + Next message + end + end + end + Response = unreadMessageCount + end service + Service GetNewMessages(UserId) - NotesSentKeys = '' - IF UserId NE '' THEN - - OPEN 'DICT.NOTES_SENT' TO DictVar THEN - SearchString = 'USER_ID':@VM:UserId:@FM - Flag = '' - Btree.Extract(SearchString,'NOTES_SENT',DictVar,NotesSentKeys,'',Flag) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - RETURN - END - END - end - Response = NotesSentKeys + + NotesSentKeys = '' + IF UserId NE '' THEN + + OPEN 'DICT.NOTES_SENT' TO DictVar THEN + SearchString = 'USER_ID':@VM:UserId:@FM + Flag = '' + Btree.Extract(SearchString,'NOTES_SENT',DictVar,NotesSentKeys,'',Flag) + IF Get_Status(errCode) THEN + ErrMsg(errCode) + RETURN + END + END + end + Response = NotesSentKeys + end service + Service MarkAllAsRead(UserId) - if UserID NE '' then - NotePtrsRec = Database_Services('ReadDataRow', 'NOTE_PTRS', UserId) - NotePtrsStatus = NotePtrsRec - for each NotePtrsRead in NotePtrsStatus using @VM setting nPos - NotePtrsRec = 'No' - Next NotePtrsRead - isNPRecCurrent = NotePtrsRec EQ Database_Services('ReadDataRow', 'NOTE_PTRS', UserId) - if isNPRecCurrent then - Database_Services('WriteDataRow','NOTE_PTRS', UserId, NotePtrsRec, '','', true$) - end - end else - Error_Services('Set', 'Error in Notes Service, MarkAllAsRead. UserId parameter not supplied') - end + + if UserID NE '' then + NotePtrsRec = Database_Services('ReadDataRow', 'NOTE_PTRS', UserId) + NotePtrsStatus = NotePtrsRec + for each NotePtrsRead in NotePtrsStatus using @VM setting nPos + NotePtrsRec = 'No' + Next NotePtrsRead + isNPRecCurrent = NotePtrsRec EQ Database_Services('ReadDataRow', 'NOTE_PTRS', UserId) + if isNPRecCurrent then + Database_Services('WriteDataRow','NOTE_PTRS', UserId, NotePtrsRec, '','', true$) + end + end else + Error_Services('Set', 'Error in Notes Service, MarkAllAsRead. UserId parameter not supplied') + end + end service +Service SendNotes() + + hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') + Lock hSysLists, ServiceKeyID then + ErrorMsg = '' + Open 'NOTES_QUEUE' to hNotesQueue then + Select hNotesQueue + EOF = False$ + Loop + ReadNext NotesQueueId else EOF = True$ + Until EOF + // Send NOTES record + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Being processing NOTES_QUEUE record, "':NotesQueueID:'".' + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + + DeleteRec = False$ + Read NotesQueueRec from hNotesQueue, NotesQueueId then + NotesId = NotesQueueRec + If NotesId NE '' then + NotesRec = Database_Services('ReadDataRow', 'NOTES', NotesId) + If Error_Services('NoError') then + If NotesRec NE '' then + DeleteRec = True$ + + Recipients = NotesRec + SentFrom = NotesRec + Subject = NotesRec + Message = NotesRec + AttachWindow = NotesRec + AttachKeys = NotesRec + SendToGroup = NotesRec + + GroupRecipients = '' + + If SendToGroup NE '' then + NotifyGroupRecipients = '' + SecGroupRecipients = '' + For each GroupID in SendToGroup using @VM + If RowExists('NOTIFICATION', GroupID) then + GroupRec = Database_Services('ReadDataRow', 'NOTIFICATION', GroupID) + If Error_Services('NoError') then + GroupUsers = GroupRec + LimitToOnShift = GroupRec + If LimitToOnShift then + UsersOnShift = LSL_Users_Services('GetOnShiftUsers') + NotifyGroupRecipients = SRP_Array('Join', GroupUsers, UsersOnShift, 'AND', @VM) + end else + NotifyGroupRecipients = GroupUsers + end + end + end + If RowExists('SEC_GROUPS', GroupID) then + ! Todo: Add SEC_GROUPS support + end + GroupRecipients = SRP_Array('Join', NotifyGroupRecipients, GroupRecipients, 'OR', @VM) + GroupRecipients = SRP_Array('Join', SecGroupRecipients, GroupRecipients, 'OR', @VM) + Next GroupID + end + + thisRecipients = '' + RecipCnt = 0 + Recipients = SRP_Array('Join', GroupRecipients, Recipients, 'OR', @VM) + thisRecipients = SRP_Array('Clean', Recipients, 'TrimAndMakeUnique', @VM) + RecipCnt = DCount(thisRecipients, @VM) + + // Previous logic from obj_Notes + CurrDTM = OConv(Date(),'D4/'):' ':OConv(Time(),'MTHS') + + RecipientsText = thisRecipients + + SWAP @VM WITH ', ' IN RecipientsText + + FOR RecipIndex = 1 TO RecipCnt + + thisRecipient = thisRecipients<1, RecipIndex> + + obj_Notes_Sent('Create',thisRecipient:@RM:NotesId:@RM:CurrDTM) ;* Add to Notes Sent buffer table + + UserRec = XLATE('LSL_USERS',thisRecipient,'','X') + FwdFlag = UserRec + eMailAddr = UserRec + + IF FwdFlag = 1 AND eMailAddr NE '' THEN + + Text = '' + Text<-1> = 'OI eMail From: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM + Text<-1> = '' + Text<-1> = 'Recipients: ':RecipientsText + Text<-1> = '' + Text<-1> = 'Subject: ':Subject + Text<-1> = '' + Text<-1> = 'Message: ' + Text<-1> = '' + Text<-1> = Message + Text<-1> = '' + + IF AttachWindow NE '' THEN + Text<-1> = '' + Text<-1> = 'Attached Window: ':AttachWindow + END + + IF AttachKeys NE '' THEN + Text<-1> = '' + Text<-1> = 'Record Key: ':AttachKeys + END + + IF SendToGroup NE '' THEN + Text<-1> = '' + Text<-1> = 'Sent to Group: ':SendToGroup + END + + HeaderText = Text<1> + + CONVERT \00\ TO ',' IN Text + SWAP @VM WITH ':@VM:' IN Text + SWAP @FM WITH CHAR(13):CHAR(10) IN Text + SWAP @TM WITH CHAR(13):CHAR(10) IN Text + + eMailBoxKey = NotesId:'*':thisRecipient + + eMailBoxRec = '' + eMailBoxRec = eMailAddr + eMailBoxRec = Text + eMailBoxRec = HeaderText + eMailBoxRec = SentFrom + + ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec + obj_Tables('WriteRec',ebParms) + + END ;* End of check for forwarding flag + + Next RecipIndex + end else + // Log this condition, but delete record since we have nothing to send. + DeleteRec = True$ + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Error in ':Service:' service. Failed to send Note due to null NOTES record, "':NotesId:'", read in.' + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Error in ':Service:' service. Failed to read NOTES record, "':NotesId:'". Error message: ':Error_Services('GetMessage') + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end else + // Log this condition, but delete record since we have nothing to send. + DeleteRec = True$ + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Error in ':Service:' service. Null NotesId in NOTES_QUEUE record, "':NotesQueueId:'".' + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Error in ':Service:' service. Error reading NOTES_QUEUE record, "':NotesQueueId:'". File error: ':@File.Error + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + If DeleteRec then + Database_Services('DeleteDataRow', 'NOTES_QUEUE', NotesQueueId, True$, False$) + If Error_Services('NoError') then + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Successfuly deleted NOTES_QUEUE record, "':NotesQueueID:'".' + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end + Repeat + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesQueueId + LogData<3> = 'Error in ':Service:' service. Failed to open NOTES_QUEUE table.' + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + Unlock hSysLists, ServiceKeyID else Null + end + +end service - - - +Service AddToQueue(NotesId) + + If NotesId NE '' then + If RowExists('NOTES', NotesId) then + QueueId = RTI_CreateGuid() + If QueueId NE '' then + QueueRec = NotesId + Database_Services('WriteDataRow', 'NOTES_QUEUE', QueueId, QueueRec) + If Error_Services('HasError') then + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesId + ErrorMsg = 'Error in ':Service:' service. Failed to write NOTES_QUEUE record, "':QueueID:'", for NOTES record, "':NotesId:'".' + ErrorMsg := 'Error message: ':Error_Services('GetMessage') + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesId + ErrorMsg = 'Error in ':Service:' service. Failed to genereate NOTES_QUEUE Id for NOTES record, "':NotesId:'".' + LogData<3> = ErrorMsg + Logging_Services('AppendLog', objNotesQProcLog, LogData, @RM, @FM) + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesId + ErrorMsg = 'Error in ':Service:' service. NOTES record, "':NotesId:'", does not exist!.' + LogData<3> = ErrorMsg + end + end else + LogData = '' + LogData<1> = LoggingDtm + LogData<2> = NotesId + ErrorMsg = 'Error in ':Service:' service. Null NOTES Id passed into service.' + LogData<3> = ErrorMsg + end + +end service diff --git a/LSL2/STPROC/NOTE_MESSAGE.txt b/LSL2/STPROC/NOTE_MESSAGE.txt index ccd0c35..9ef3bc4 100644 --- a/LSL2/STPROC/NOTE_MESSAGE.txt +++ b/LSL2/STPROC/NOTE_MESSAGE.txt @@ -7,7 +7,7 @@ COMPILE FUNCTION Note_Message(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5) */ DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event, RList -DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow +DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow, Notes_Services DECLARE SUBROUTINE obj_Notes, Security_Err_Msg, End_Window, Forward_Event, Start_Window, Create_Note, obj_Notes_Sent DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Popup, Collect.Ixvals, Admin_User, Printer_Select, obj_Notes @@ -41,9 +41,6 @@ BEGIN CASE CASE Event = 'CLOSE' ; GOSUB Close CASE Event = 'READ' ; GOSUB Read CASE Event = 'WRITE' ; GOSUB Write - - - END CASE CASE EntID = @WINDOW:'.YOUR_GROUPS' AND Event = 'CLICK' ; GOSUB YourGroupsClick @@ -70,24 +67,23 @@ END RETURN Result - * * * * * * * Create: * * * * * * * -obj_Appwindow('Create',@WINDOW) + obj_Appwindow('Create',@WINDOW) -IF Parm1 NE '' THEN - AttachWindow = Parm1[1,@FM] - AttachKey = Parm1[COL2()+1,@FM] - - IF AttachWindow NE '' THEN - Set_Property(@WINDOW,'@ATTACH_WINDOW',AttachWindow) - Set_Property(@WINDOW,'@ATTACH_KEY',AttachKey) + IF Parm1 NE '' THEN + AttachWindow = Parm1[1,@FM] + AttachKey = Parm1[COL2()+1,@FM] + + IF AttachWindow NE '' THEN + Set_Property(@WINDOW,'@ATTACH_WINDOW',AttachWindow) + Set_Property(@WINDOW,'@ATTACH_KEY',AttachKey) + END END -END -GOSUB Refresh + GOSUB Refresh RETURN @@ -96,106 +92,105 @@ RETURN Close: * * * * * * * -End_Dialog(@WINDOW,'') + End_Dialog(@WINDOW,'') RETURN - * * * * * * * Refresh: * * * * * * * -IF MemberOf(@USER4,'OI_ADMIN') THEN - Set_Property(@WINDOW:'.SEQ','VISIBLE',1) -END ELSE - Set_Property(@WINDOW:'.SEQ','VISIBLE',0) -END + IF MemberOf(@USER4,'OI_ADMIN') THEN + Set_Property(@WINDOW:'.SEQ','VISIBLE',1) + END ELSE + Set_Property(@WINDOW:'.SEQ','VISIBLE',0) + END -IF Get_Property(@WINDOW:'.ENTRY_ID','DEFPROP') = '' THEN - Set_Property(@WINDOW:'.ENTRY_ID','ENABLED',1) -END ELSE - Set_Property(@WINDOW:'.ENTRY_ID','ENABLED',0) -END + IF Get_Property(@WINDOW:'.ENTRY_ID','DEFPROP') = '' THEN + Set_Property(@WINDOW:'.ENTRY_ID','ENABLED',1) + END ELSE + Set_Property(@WINDOW:'.ENTRY_ID','ENABLED',0) + END -IF Get_Property(@WINDOW:'.ENTRY_DATE','DEFPROP') = '' THEN - Set_Property(@WINDOW:'.ENTRY_DATE','ENABLED',1) -END ELSE - Set_Property(@WINDOW:'.ENTRY_DATE','ENABLED',0) -END + IF Get_Property(@WINDOW:'.ENTRY_DATE','DEFPROP') = '' THEN + Set_Property(@WINDOW:'.ENTRY_DATE','ENABLED',1) + END ELSE + Set_Property(@WINDOW:'.ENTRY_DATE','ENABLED',0) + END -IF Get_Property(@WINDOW:'.ENTRY_TIME','DEFPROP') = '' THEN - Set_Property(@WINDOW:'.ENTRY_TIME','ENABLED',1) -END ELSE - Set_Property(@WINDOW:'.ENTRY_TIME','ENABLED',0) -END + IF Get_Property(@WINDOW:'.ENTRY_TIME','DEFPROP') = '' THEN + Set_Property(@WINDOW:'.ENTRY_TIME','ENABLED',1) + END ELSE + Set_Property(@WINDOW:'.ENTRY_TIME','ENABLED',0) + END -AttachWindow = Get_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP') -IF AttachWindow NE '' THEN - Set_Property(@WINDOW:'.ATTACH_GROUP','ENABLED',1) -END ELSE - Set_Property(@WINDOW:'.ATTACH_GROUP','ENABLED',0) -END + AttachWindow = Get_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP') + IF AttachWindow NE '' THEN + Set_Property(@WINDOW:'.ATTACH_GROUP','ENABLED',1) + END ELSE + Set_Property(@WINDOW:'.ATTACH_GROUP','ENABLED',0) + END -* Turn edit table symbolic column backgrounds to green + * Turn edit table symbolic column backgrounds to green -ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow + ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow -ETCtrls = ETSymbolics<1> -ETCols = ETSymbolics<2> + ETCtrls = ETSymbolics<1> + ETCols = ETSymbolics<2> -FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') - ETCtrl = ETCtrls<1,I> - - ETList = Get_Property(ETCtrl,'LIST') - FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') - IF ETList NE '' THEN - FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') - stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) - NEXT N - END - NEXT Line - -NEXT I + FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '') + ETCtrl = ETCtrls<1,I> + + ETList = Get_Property(ETCtrl,'LIST') + FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '') + IF ETList NE '' THEN + FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '') + stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$) + NEXT N + END + NEXT Line + + NEXT I -RETURN + RETURN * * * * * * * Read: * * * * * * * -EntryID = Get_Property(@WINDOW:'.ENTRY_ID','DEFPROP') + EntryID = Get_Property(@WINDOW:'.ENTRY_ID','DEFPROP') -IF EntryID = '' THEN - Set_Property(@WINDOW:'.ENTRY_ID','DEFPROP',@USER4) - Send_Event(@WINDOW:'.ENTRY_ID','LOSTFOCUS') - Set_Property(@WINDOW:'.ENTRY_DATE','DEFPROP',OCONV(Date(),'D4/')) - Set_Property(@WINDOW:'.ENTRY_TIME','DEFPROP',OCONV(Time(),'MTS')) - - AttachWindow = Get_Property(@WINDOW,'@ATTACH_WINDOW') - AttachKey = Get_Property(@WINDOW,'@ATTACH_KEY') - - IF AttachWindow NE '' THEN Set_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP',AttachWindow) - IF AttachKey NE '' THEN Set_Property(@WINDOW:'.ATTACH_KEY','DEFPROP',AttachKey) - - Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) - Send_Event(@WINDOW:'.FROM','LOSTFOCUS') - Send_Event(@WINDOW:'.ENTRY_ID','LOSTFOCUS') - - Set_Property('SYSTEM','FOCUS',@WINDOW:'.SUBJECT') - - Set_Property(@WINDOW:'.REPLY','ENABLED',0) - Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) - Set_Property(@WINDOW:'.FORWARD','ENABLED',0) - Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) - -END ELSE - Set_Property(@WINDOW:'.SEND','ENABLED',0) -END + IF EntryID = '' THEN + Set_Property(@WINDOW:'.ENTRY_ID','DEFPROP',@USER4) + Send_Event(@WINDOW:'.ENTRY_ID','LOSTFOCUS') + Set_Property(@WINDOW:'.ENTRY_DATE','DEFPROP',OCONV(Date(),'D4/')) + Set_Property(@WINDOW:'.ENTRY_TIME','DEFPROP',OCONV(Time(),'MTS')) + + AttachWindow = Get_Property(@WINDOW,'@ATTACH_WINDOW') + AttachKey = Get_Property(@WINDOW,'@ATTACH_KEY') + + IF AttachWindow NE '' THEN Set_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP',AttachWindow) + IF AttachKey NE '' THEN Set_Property(@WINDOW:'.ATTACH_KEY','DEFPROP',AttachKey) + + Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) + Send_Event(@WINDOW:'.FROM','LOSTFOCUS') + Send_Event(@WINDOW:'.ENTRY_ID','LOSTFOCUS') + + Set_Property('SYSTEM','FOCUS',@WINDOW:'.SUBJECT') + + Set_Property(@WINDOW:'.REPLY','ENABLED',0) + Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) + Set_Property(@WINDOW:'.FORWARD','ENABLED',0) + Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) + + END ELSE + Set_Property(@WINDOW:'.SEND','ENABLED',0) + END -GOSUB Refresh + GOSUB Refresh RETURN @@ -204,88 +199,68 @@ RETURN Write: * * * * * * * -NoteID = Get_Property(@WINDOW:'.SEQ','DEFPROP') + NoteID = Get_Property(@WINDOW:'.SEQ','DEFPROP') -SendToArray = Get_Property(@WINDOW:'.SEND_TO','ARRAY') -SendToIDs = SendToArray + SendToArray = Get_Property(@WINDOW:'.SEND_TO','ARRAY') + SendToIDs = SendToArray -IF RowExists('NOTES',NoteID) THEN + IF RowExists('NOTES',NoteID) THEN - Send_Event(@WINDOW,'CLEAR',0,1,1) - Send_Event(@WINDOW,'CLOSE') - -END ELSE + Send_Event(@WINDOW,'CLEAR',0,1,1) + Send_Event(@WINDOW,'CLOSE') + + END ELSE + + Forward_Event() + Notes_Services('AddToQueue', NoteId) - Forward_Event() - - obj_Notes('PostEMail',NoteID) ;* Forwards to Outlook eMail if the users flag is set - - IF Get_Status(errCode) THEN - ErrMsg(errCode) END - - CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') - - Pos = 1 - Flag = "" - LOOP - REMOVE SendToID FROM SendToIDs AT Pos SETTING FLAG - IF SendToID NE '' THEN - obj_Notes_Sent('Create',SendToID:@RM:NoteID:@RM:CurrDTM) - END - WHILE Flag - REPEAT - -END RETURN 0 - - * * * * * * * YourGroupsClick: * * * * * * * -SelectSent = 'SELECT MSG_GROUPS WITH ENTRY_ID = ':QUOTE(@USER4):' BY GROUP_NAME' + SelectSent = 'SELECT MSG_GROUPS WITH ENTRY_ID = ':QUOTE(@USER4):' BY GROUP_NAME' -RList(SelectSent,TARGET_ACTIVELIST$, '', '', '' ) + RList(SelectSent,TARGET_ACTIVELIST$, '', '', '' ) -IF @RECCOUNT THEN - - GroupNames = Popup(@WINDOW,'','SHOW_GROUP_NAMES') - - IF GroupNames NE '' THEN - - LOCATE 'ALL_ACTIVE_USERS' IN GroupNames USING @VM SETTING Pos THEN - NewSendToIDs = obj_Notes('AllActiveUsers') - END ELSE - NewSendToIDs = XLATE('MSG_GROUPS',GroupNames,'USER_IDS','X') - END + IF @RECCOUNT THEN + + GroupNames = Popup(@WINDOW,'','SHOW_GROUP_NAMES') - IF NewSendToIDs NE '' THEN - GOSUB AddSendToIDs - END + IF GroupNames NE '' THEN + + LOCATE 'ALL_ACTIVE_USERS' IN GroupNames USING @VM SETTING Pos THEN + NewSendToIDs = obj_Notes('AllActiveUsers') + END ELSE + NewSendToIDs = XLATE('MSG_GROUPS',GroupNames,'USER_IDS','X') + END + + IF NewSendToIDs NE '' THEN + GOSUB AddSendToIDs + END - END - -END ELSE - - ErrMsg('You do not have any group names...') - -END + END + + END ELSE + + ErrMsg('You do not have any group names...') + + END RETURN - * * * * * * * CopyYourSelfClick: * * * * * * * -NewSendToIDs = '' + NewSendToIDs = '' -GOSUB AddSendToIDs + GOSUB AddSendToIDs RETURN @@ -294,15 +269,15 @@ RETURN AllActiveUsersClick: * * * * * * * -Check = Msg(@WINDOW,'','CC_ALL_USERS') + Check = Msg(@WINDOW,'','CC_ALL_USERS') -IF Check = CHAR(27) THEN RETURN + IF Check = CHAR(27) THEN RETURN -NewSendToIDs = obj_Notes('AllActiveUsers') + NewSendToIDs = obj_Notes('AllActiveUsers') -Set_Property(@WINDOW:'.SEND_TO','ARRAY','') + Set_Property(@WINDOW:'.SEND_TO','ARRAY','') -GOSUB AddSendToIDs + GOSUB AddSendToIDs RETURN @@ -311,12 +286,11 @@ RETURN AllUsersClick: * * * * * * * + NewSendToIDs = Popup(@WINDOW,'','USER_ID') -NewSendToIDs = Popup(@WINDOW,'','USER_ID') + IF NewSendToIDs = CHAR(27) THEN RETURN -IF NewSendToIDs = CHAR(27) THEN RETURN - -GOSUB AddSendToIDs + GOSUB AddSendToIDs RETURN @@ -325,44 +299,44 @@ RETURN AddSendToIDs: * * * * * * * -SendToArray = Get_Property(@WINDOW:'.SEND_TO','ARRAY') -RawSendToIDs = SendToArray + SendToArray = Get_Property(@WINDOW:'.SEND_TO','ARRAY') + RawSendToIDs = SendToArray -SendToCnt = 0 -SendToIDs = '' + SendToCnt = 0 + SendToIDs = '' -TestCnt = COUNT(RawSendToIDs,@VM) + (RawSendToIDs NE '') -FOR I = 1 TO TestCnt - IF RawSendToIDs<1,I> NE '' THEN - SendToIDs<1,-1> = RawSendToIDs<1,I> - SendToCnt += 1 + TestCnt = COUNT(RawSendToIDs,@VM) + (RawSendToIDs NE '') + FOR I = 1 TO TestCnt + IF RawSendToIDs<1,I> NE '' THEN + SendToIDs<1,-1> = RawSendToIDs<1,I> + SendToCnt += 1 + END + NEXT I + + NewCnt = COUNT(NewSendToIDs,@VM) + (NewSendToIDs NE '') + + FOR I = 1 TO NewCnt + NewSendToID = NewSendToIDs<1,I> + LOCATE NewSendToID IN SendToIDs BY 'AL' USING @VM SETTING Pos ELSE + SendToIDs = INSERT(SendToIDs,1,Pos,0,NewSendToID) + END + NEXT I + + SendToYourself = Get_Property(@WINDOW:'.COPY_YOURSELF','CHECK') + + Myself = @USER4 + + LOCATE Myself IN SendToIDs BY 'AL' USING @VM SETTING Pos THEN + IF SendToYourSelf = 0 THEN SendToIDs = DELETE(SendToIDS,1,Pos,0) + END ELSE + IF SendToYourSelf = 1 THEN SendToIDs = INSERT(SendToIDs,1,Pos,0,Myself) END -NEXT I -NewCnt = COUNT(NewSendToIDs,@VM) + (NewSendToIDs NE '') + SendToIDs := @VM ;* BlankLine on end -FOR I = 1 TO NewCnt - NewSendToID = NewSendToIDs<1,I> - LOCATE NewSendToID IN SendToIDs BY 'AL' USING @VM SETTING Pos ELSE - SendToIDs = INSERT(SendToIDs,1,Pos,0,NewSendToID) - END -NEXT I - -SendToYourself = Get_Property(@WINDOW:'.COPY_YOURSELF','CHECK') - -Myself = @USER4 - -LOCATE Myself IN SendToIDs BY 'AL' USING @VM SETTING Pos THEN - IF SendToYourSelf = 0 THEN SendToIDs = DELETE(SendToIDS,1,Pos,0) -END ELSE - IF SendToYourSelf = 1 THEN SendToIDs = INSERT(SendToIDs,1,Pos,0,Myself) -END - -SendToIDs := @VM ;* BlankLine on end - -SendToArray = SendToIDs -Set_Property(@WINDOW:'.SEND_TO','DEFPROP',SendToArray) -Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) + SendToArray = SendToIDs + Set_Property(@WINDOW:'.SEND_TO','DEFPROP',SendToArray) + Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) RETURN @@ -371,174 +345,171 @@ RETURN Reply: * * * * * * -Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM -Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.FROM':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.SEND_TO':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' + Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM + Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.FROM':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.SEND_TO':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' -Vals = Get_Property(Ctrls,Props) + Vals = Get_Property(Ctrls,Props) -Message = Vals[1,@RM] -Subject = Vals[COL2()+1,@RM] -FromID = Vals[COL2()+1,@RM] -SendTo = Vals[COL2()+1,@RM] -AttachWindow = Vals[COL2()+1,@RM] -AttachKey = Vals[COL2()+1,@RM] -EntryID = Vals[COL2()+1,@RM] -EntryDate = Vals[COL2()+1,@RM] -EntryTime = Vals[COL2()+1,@RM] + Message = Vals[1,@RM] + Subject = Vals[COL2()+1,@RM] + FromID = Vals[COL2()+1,@RM] + SendTo = Vals[COL2()+1,@RM] + AttachWindow = Vals[COL2()+1,@RM] + AttachKey = Vals[COL2()+1,@RM] + EntryID = Vals[COL2()+1,@RM] + EntryDate = Vals[COL2()+1,@RM] + EntryTime = Vals[COL2()+1,@RM] -EntryDate = OCONV(Date(),'D2/') ;* JCH 7/15/2010 -EntryTime = OCONV(Time(),'MTH') ;* JCH 7/15/2010 + EntryDate = OCONV(Date(),'D2/') ;* JCH 7/15/2010 + EntryTime = OCONV(Time(),'MTH') ;* JCH 7/15/2010 -SWAP @TM WITH @TM:'>' IN Message + SWAP @TM WITH @TM:'>' IN Message -Subject = 'RE: ':Subject -Message = CRLF$:CRLF$:'>':Message + Subject = 'RE: ':Subject + Message = CRLF$:CRLF$:'>':Message -Set_Property(@WINDOW,'SAVEWARN',0) -Send_Event(@WINDOW,'CLEAR',0,1,1) + Set_Property(@WINDOW,'SAVEWARN',0) + Send_Event(@WINDOW,'CLEAR',0,1,1) + + IF EntID = 'NOTE_MESSAGE.REPLY_ALL' THEN + Set_Property('NOTE_MESSAGE.SEND_TO','DEFPROP',SendTo) + NewSendToIDs = FromID + GOSUB AddSendToIDs + Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) + END ELSE + Ctrls = @WINDOW:'.FROM':@RM ; Props = 'DEFPROP':@RM ; Vals = @USER4:@RM + Ctrls := @WINDOW:'.SEND_TO' ; Props := 'DEFPROP' ; Vals := FromID + Set_Property(Ctrls,Props,Vals) + END + + SeqNo = NextKey('NOTES') + Set_Property(@WINDOW:'.SEQ','DEFPROP',SeqNo) + + Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM ; Vals = Message:@RM + Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM ; Vals := Subject:@RM + Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM ; Vals := Attachwindow:@RM + Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachKey:@RM + Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryID:@RM + Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryDate:@RM + Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' ; Vals := EntryTime -IF EntID = 'NOTE_MESSAGE.REPLY_ALL' THEN - Set_Property('NOTE_MESSAGE.SEND_TO','DEFPROP',SendTo) - NewSendToIDs = FromID - GOSUB AddSendToIDs - Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) -END ELSE - Ctrls = @WINDOW:'.FROM':@RM ; Props = 'DEFPROP':@RM ; Vals = @USER4:@RM - Ctrls := @WINDOW:'.SEND_TO' ; Props := 'DEFPROP' ; Vals := FromID Set_Property(Ctrls,Props,Vals) -END -SeqNo = NextKey('NOTES') -Set_Property(@WINDOW:'.SEQ','DEFPROP',SeqNo) + Send_Event(@WINDOW:'.FROM_NAME','CALCULATE') + Send_Event(@WINDOW:'.ENTRY_ID_NAME','CALCULATE') + Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) -Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM ; Vals = Message:@RM -Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM ; Vals := Subject:@RM -Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM ; Vals := Attachwindow:@RM -Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachKey:@RM -Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryID:@RM -Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryDate:@RM -Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' ; Vals := EntryTime + IOOptions = Get_Property( @WINDOW, 'IOOPTIONS' ) -Set_Property(Ctrls,Props,Vals) + IOOptions<2> = 0 ;* do the lock creating a new reply another WTFO?????? -Send_Event(@WINDOW:'.FROM_NAME','CALCULATE') -Send_Event(@WINDOW:'.ENTRY_ID_NAME','CALCULATE') -Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) - -IOOptions = Get_Property( @WINDOW, 'IOOPTIONS' ) - -IOOptions<2> = 0 ;* do the lock creating a new reply another WTFO?????? - -Set_Property( @WINDOW, 'IOOPTIONS', IoOptions ) + Set_Property( @WINDOW, 'IOOPTIONS', IoOptions ) -Set_Property(@WINDOW:'.SEND','ENABLED',1) -Set_Property(@WINDOW:'.REPLY','ENABLED',0) -Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) -Set_Property(@WINDOW:'.FORWARD','ENABLED',0) -Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) -Set_Property(@WINDOW:'.MESSAGE', "FOCUS", 1) + Set_Property(@WINDOW:'.SEND','ENABLED',1) + Set_Property(@WINDOW:'.REPLY','ENABLED',0) + Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) + Set_Property(@WINDOW:'.FORWARD','ENABLED',0) + Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) + Set_Property(@WINDOW:'.MESSAGE', "FOCUS", 1) RETURN - - - * * * * * * * Forward: * * * * * * * -Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM -Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.FROM':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.SEND_TO':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM -Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' + Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM + Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.FROM':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.SEND_TO':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM + Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' -Vals = Get_Property(Ctrls,Props) + Vals = Get_Property(Ctrls,Props) -OrgMessage = Vals[1,@RM] -Subject = Vals[COL2()+1,@RM] -FromID = Vals[COL2()+1,@RM] -SendTo = Vals[COL2()+1,@RM] -AttachWindow = Vals[COL2()+1,@RM] -AttachKey = Vals[COL2()+1,@RM] -EntryID = Vals[COL2()+1,@RM] -EntryDate = Vals[COL2()+1,@RM] -EntryTime = Vals[COL2()+1,@RM] + OrgMessage = Vals[1,@RM] + Subject = Vals[COL2()+1,@RM] + FromID = Vals[COL2()+1,@RM] + SendTo = Vals[COL2()+1,@RM] + AttachWindow = Vals[COL2()+1,@RM] + AttachKey = Vals[COL2()+1,@RM] + EntryID = Vals[COL2()+1,@RM] + EntryDate = Vals[COL2()+1,@RM] + EntryTime = Vals[COL2()+1,@RM] -SWAP @TM WITH @TM:'>' IN OrgMessage + SWAP @TM WITH @TM:'>' IN OrgMessage -SendToUserIDs = SendTo -SWAP @VM WITH ', ' IN SendToUserIDs + SendToUserIDs = SendTo + SWAP @VM WITH ', ' IN SendToUserIDs -Subject = '[FW: ':Subject:']' + Subject = '[FW: ':Subject:']' -Message = CRLF$:CRLF$ -Message := '--------- Original Message ---------':CRLF$:CRLF$ -Message := 'Subject: ':Subject:CRLF$ -Message := ' Date: ':OCONV(EntryDate,'D4/'):' ':OCONV(EntryTime,'MTS'):CRLF$ -Message := ' From: ':FromID:CRLF$ -Message := ' To: ':SendToUserIDs:CRLF$ -Message := CRLF$:CRLF$ + Message = CRLF$:CRLF$ + Message := '--------- Original Message ---------':CRLF$:CRLF$ + Message := 'Subject: ':Subject:CRLF$ + Message := ' Date: ':OCONV(EntryDate,'D4/'):' ':OCONV(EntryTime,'MTS'):CRLF$ + Message := ' From: ':FromID:CRLF$ + Message := ' To: ':SendToUserIDs:CRLF$ + Message := CRLF$:CRLF$ -Message := CRLF$:CRLF$:'>':OrgMessage + Message := CRLF$:CRLF$:'>':OrgMessage -Set_Property(@WINDOW,'SAVEWARN',0) -Send_Event(@WINDOW,'CLEAR',0,1,1) + Set_Property(@WINDOW,'SAVEWARN',0) + Send_Event(@WINDOW,'CLEAR',0,1,1) + + IF EntID = 'NOTE_MESSAGE.REPLY_ALL' THEN + Set_Property('NOTE_MESSAGE.SEND_TO','DEFPROP',SendTo) + NewSendToIDs = FromID + GOSUB AddSendToIDs + Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) + END ELSE + Ctrls = @WINDOW:'.FROM':@RM ; Props = 'DEFPROP':@RM ; Vals = @USER4:@RM + Ctrls := @WINDOW:'.SEND_TO' ; Props := 'DEFPROP' ; Vals := '' + Set_Property(Ctrls,Props,Vals) + END + + SeqNo = NextKey('NOTES') + Set_Property(@WINDOW:'.SEQ','DEFPROP',SeqNo) + + Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM ; Vals = Message:@RM + Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM ; Vals := Subject:@RM + Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachWindow:@RM + Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachKey:@RM + Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryID:@RM + Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryDate:@RM + Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' ; Vals := EntryTime -IF EntID = 'NOTE_MESSAGE.REPLY_ALL' THEN - Set_Property('NOTE_MESSAGE.SEND_TO','DEFPROP',SendTo) - NewSendToIDs = FromID - GOSUB AddSendToIDs - Set_Property(@WINDOW:'.FROM','DEFPROP',@USER4) -END ELSE - Ctrls = @WINDOW:'.FROM':@RM ; Props = 'DEFPROP':@RM ; Vals = @USER4:@RM - Ctrls := @WINDOW:'.SEND_TO' ; Props := 'DEFPROP' ; Vals := '' Set_Property(Ctrls,Props,Vals) -END -SeqNo = NextKey('NOTES') -Set_Property(@WINDOW:'.SEQ','DEFPROP',SeqNo) + Send_Event(@WINDOW:'.FROM_NAME','CALCULATE') + Send_Event(@WINDOW:'.ENTRY_ID_NAME','CALCULATE') + Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) -Ctrls = @WINDOW:'.MESSAGE':@RM ; Props = 'DEFPROP':@RM ; Vals = Message:@RM -Ctrls := @WINDOW:'.SUBJECT':@RM ; Props := 'DEFPROP':@RM ; Vals := Subject:@RM -Ctrls := @WINDOW:'.ATTACH_WINDOW':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachWindow:@RM -Ctrls := @WINDOW:'.ATTACH_KEY':@RM ; Props := 'DEFPROP':@RM ; Vals := AttachKey:@RM -Ctrls := @WINDOW:'.ENTRY_ID':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryID:@RM -Ctrls := @WINDOW:'.ENTRY_DATE':@RM ; Props := 'DEFPROP':@RM ; Vals := EntryDate:@RM -Ctrls := @WINDOW:'.ENTRY_TIME' ; Props := 'DEFPROP' ; Vals := EntryTime + IOOptions = Get_Property( @WINDOW, 'IOOPTIONS' ) -Set_Property(Ctrls,Props,Vals) + IOOptions<2> = 0 ;* do the lock creating a new reply another WTFO?????? -Send_Event(@WINDOW:'.FROM_NAME','CALCULATE') -Send_Event(@WINDOW:'.ENTRY_ID_NAME','CALCULATE') -Send_Event(@WINDOW:'.SEND_TO','CALCULATE',COL$ST_NAME) + Set_Property( @WINDOW, 'IOOPTIONS', IoOptions ) -IOOptions = Get_Property( @WINDOW, 'IOOPTIONS' ) - -IOOptions<2> = 0 ;* do the lock creating a new reply another WTFO?????? - -Set_Property( @WINDOW, 'IOOPTIONS', IoOptions ) - -Set_Property(@WINDOW:'.SEND','ENABLED',1) -Set_Property(@WINDOW:'.REPLY','ENABLED',0) -Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) -Set_Property(@WINDOW:'.FORWARD','ENABLED',0) -Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) -Set_Property(@WINDOW:'.MESSAGE', "FOCUS", 1) + Set_Property(@WINDOW:'.SEND','ENABLED',1) + Set_Property(@WINDOW:'.REPLY','ENABLED',0) + Set_Property(@WINDOW:'.REPLY_ALL','ENABLED',0) + Set_Property(@WINDOW:'.FORWARD','ENABLED',0) + Set_Property(@WINDOW:'.MENU.FILE.SAVE_ROW','ENABLED',1) + Set_Property(@WINDOW:'.MESSAGE', "FOCUS", 1) RETURN @@ -547,12 +518,12 @@ RETURN ViewAttachment: * * * * * * * -AttachWindow = Get_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP') -AttachKey = Get_Property(@WINDOW:'.ATTACH_KEY','DEFPROP') + AttachWindow = Get_Property(@WINDOW:'.ATTACH_WINDOW','DEFPROP') + AttachKey = Get_Property(@WINDOW:'.ATTACH_KEY','DEFPROP') -IF AttachWindow NE '' AND AttachKey NE '' THEN - obj_Appwindow('ViewRelated',AttachWindow:@RM:AttachKey) -END + IF AttachWindow NE '' AND AttachKey NE '' THEN + obj_Appwindow('ViewRelated',AttachWindow:@RM:AttachKey) + END RETURN @@ -561,93 +532,84 @@ RETURN SendToPC: * * * * * * * -NextColumn = Parm1 -NextRow = Parm2 + NextColumn = Parm1 + NextRow = Parm2 -Forward_Event(NextColumn,NextRow) + Forward_Event(NextColumn,NextRow) -CurrRow = Get_Property(@WINDOW:'.SEND_TO','ROWDATA') + CurrRow = Get_Property(@WINDOW:'.SEND_TO','ROWDATA') -CurrRow = OCONV(CurrRow<1,COL$ST_ID>,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') + CurrRow = OCONV(CurrRow<1,COL$ST_ID>,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') -Set_Property(@WINDOW:'.SEND_TO','ROWDATA',CurrRow) + Set_Property(@WINDOW:'.SEND_TO','ROWDATA',CurrRow) -GOSUB Refresh + GOSUB Refresh RETURN - - * * * * * * * Print: * * * * * * * -PrintPath = Printer_Select('',1) ;* Get default printer + PrintPath = Printer_Select('',1) ;* Get default printer -Stat = Set_Printer( 'INIT', '', '', 1.25:@FM:'':@FM:1.0:@FM:'', 0,'',PrintPath ) -GOSUB CheckErr + Stat = Set_Printer( 'INIT', '', '', 1.25:@FM:'':@FM:1.0:@FM:'', 0,'',PrintPath ) + GOSUB CheckErr -Font = "Courier New,12,L,1" -CONVERT ',' TO @FM IN Font -Hf = Font -Stat = Set_Printer( 'FONT', Font ) -GOSUB CheckErr + Font = "Courier New,12,L,1" + CONVERT ',' TO @FM IN Font + Hf = Font + Stat = Set_Printer( 'FONT', Font ) + GOSUB CheckErr -SendTo = Get_Property(@WINDOW:'.SEND_TO','ARRAY') + SendTo = Get_Property(@WINDOW:'.SEND_TO','ARRAY') -Void = Set_Printer( 'TEXT', 'TO:' ) -Table = '' + Void = Set_Printer( 'TEXT', 'TO:' ) + Table = '' -SendTo<1> = ex_vm_rem( SendTo<1> ) -Rcnt = COUNT(SendTo<1>,@VM) + (SendTo NE '') + SendTo<1> = ex_vm_rem( SendTo<1> ) + Rcnt = COUNT(SendTo<1>,@VM) + (SendTo NE '') -FOR I = 1 TO Rcnt - Tvar = SendTo<2,I>:@VM:SendTo<2,I+1>:@VM:SendTo<2,I+2> - Table<-1> = Tvar - I = I+2 ; *skip column 2 & 3 that just got appended -next i -Void = Set_Printer( 'ADDTABLE', '2880':@VM:'2880':@VM:'2880', '', Table, '','','', TB_ALL ) -Void = Set_Printer( 'TEXT', '' ) -Void = Set_Printer( 'TEXT', 'From: ':Get_Property(@WINDOW:'.FROM','DEFPROP'):' ':Get_Property(@WINDOW:'.FROM_NAME','DEFPROP')) -Void = Set_Printer( 'TEXT', '' ) -Void = Set_Printer( 'TEXT', 'Date: ':Get_Property(@WINDOW:'.ENTRY_DATE','DEFPROP')) -Void = Set_Printer( 'TEXT', '' ) -Void = Set_Printer( 'TEXT', 'Subject: ':Get_Property(@WINDOW:'.SUBJECT')) -Void = Set_Printer( 'TEXT', '' ) -Void = Set_Printer( 'TEXT', ' M E S S A G E' ) -Void = Set_Printer( 'TEXT', '' ) - -MessageText = Get_Property(@WINDOW:'.MESSAGE','DEFPROP') + FOR I = 1 TO Rcnt + Tvar = SendTo<2,I>:@VM:SendTo<2,I+1>:@VM:SendTo<2,I+2> + Table<-1> = Tvar + I = I+2 ; *skip column 2 & 3 that just got appended + next i + Void = Set_Printer( 'ADDTABLE', '2880':@VM:'2880':@VM:'2880', '', Table, '','','', TB_ALL ) + Void = Set_Printer( 'TEXT', '' ) + Void = Set_Printer( 'TEXT', 'From: ':Get_Property(@WINDOW:'.FROM','DEFPROP'):' ':Get_Property(@WINDOW:'.FROM_NAME','DEFPROP')) + Void = Set_Printer( 'TEXT', '' ) + Void = Set_Printer( 'TEXT', 'Date: ':Get_Property(@WINDOW:'.ENTRY_DATE','DEFPROP')) + Void = Set_Printer( 'TEXT', '' ) + Void = Set_Printer( 'TEXT', 'Subject: ':Get_Property(@WINDOW:'.SUBJECT')) + Void = Set_Printer( 'TEXT', '' ) + Void = Set_Printer( 'TEXT', ' M E S S A G E' ) + Void = Set_Printer( 'TEXT', '' ) + + MessageText = Get_Property(@WINDOW:'.MESSAGE','DEFPROP') -SWAP @TM WITH CRLF$ IN MessageText + SWAP @TM WITH CRLF$ IN MessageText -TableColInfo = '9360' -x = Set_Printer("ADDTABLE", TableColInfo, '', MessageText, '', '', 1, TB_NONE) + TableColInfo = '9360' + x = Set_Printer("ADDTABLE", TableColInfo, '', MessageText, '', '', 1, TB_NONE) -Stat = Set_Printer( 'TERM' ) + Stat = Set_Printer( 'TERM' ) -GOSUB CheckErr + GOSUB CheckErr + RETURN + * * * * * * * CheckErr: * * * * * * * -IF Stat < 0 THEN - Void = msg( '', Stat ) - Stat = Set_Printer( 'TERM' ) -END + IF Stat < 0 THEN + Void = msg( '', Stat ) + Stat = Set_Printer( 'TERM' ) + END RETURN - - - - - - - - - diff --git a/LSL2/STPROC/OBJ_NOTES.txt b/LSL2/STPROC/OBJ_NOTES.txt index 60cadef..fa80952 100644 --- a/LSL2/STPROC/OBJ_NOTES.txt +++ b/LSL2/STPROC/OBJ_NOTES.txt @@ -15,9 +15,9 @@ COMPILE FUNCTION obj_Notes(Method,Parms) */ -DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, SRP_Send_Mail, obj_Calendar, Database_Services, SRP_Stopwatch +DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, SRP_Send_Mail, obj_Calendar, Database_Services, SRP_Stopwatch DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, RList, ErrMsg, obj_Notes_Sent, Btree.Extract, Send_Info, obj_Notes -Declare subroutine Obj_Post_Log, SRP_Stopwatch +DECLARE SUBROUTINE Obj_Post_Log, SRP_Stopwatch, Notes_Services $INSERT MSG_EQUATES $INSERT NOTES_EQU @@ -69,342 +69,276 @@ RETURN Result Inbox: * * * * * * * -UserName = Parms[1,@RM] + UserName = Parms[1,@RM] -IF UserName = '' THEN UserName = @USER4 + IF UserName = '' THEN UserName = @USER4 -IF XLATE( 'NOTE_PTRS', UserName, 'NEW_MESSAGES', 'X' ) THEN - NotePtrRec = XLATE( 'NOTE_PTRS', UserName, '', 'X' ) - IF NotePtrRec = 'Yes' THEN - - * the top one is new + IF XLATE( 'NOTE_PTRS', UserName, 'NEW_MESSAGES', 'X' ) THEN + NotePtrRec = XLATE( 'NOTE_PTRS', UserName, '', 'X' ) + IF NotePtrRec = 'Yes' THEN - MsgInfo = '' - MsgInfo = '!' - Mtext = 'You have a new message from ':NotePtrRec:'.' - MsgInfo = MText - MsgInfo = -2 - MsgInfo = -2 - Msg( @WINDOW, MsgInfo ) - END -END + * the top one is new + + MsgInfo = '' + MsgInfo = '!' + Mtext = 'You have a new message from ':NotePtrRec:'.' + MsgInfo = MText + MsgInfo = -2 + MsgInfo = -2 + Msg( @WINDOW, MsgInfo ) + END + END + RETURN * * * * * * * Create: * * * * * * * -Recipients = Parms[1,@RM] -SentFrom = Parms[COL2()+1,@RM] -Subject = Parms[COL2()+1,@RM] -Message = Parms[COL2()+1,@RM] -AttachWindow = Parms[COL2()+1,@RM] -AttachKeys = Parms[COL2()+1,@RM] -SendToGroup = Parms[COL2()+1,@RM] -IF NOT(ASSIGNED(Recipients)) THEN ErrorMsg = 'Unassigned Parameter "Recipients" passed to object. (':Method:')' -IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' -IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' -IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' + Recipients = Parms[1,@RM] + SentFrom = Parms[COL2()+1,@RM] + Subject = Parms[COL2()+1,@RM] + Message = Parms[COL2()+1,@RM] + AttachWindow = Parms[COL2()+1,@RM] + AttachKeys = Parms[COL2()+1,@RM] + SendToGroup = Parms[COL2()+1,@RM] -IF NOT(ASSIGNED(AttachWindow)) THEN AttachWindow = '' -IF NOT(ASSIGNED(AttachKeys)) THEN AttachKeys = '' -IF NOT(ASSIGNED(SendToGroup)) THEN SendToGroup = '' + IF ( NOT(ASSIGNED(Recipients)) AND NOT(ASSIGNED(SendToGroup)) ) THEN + ErrorMsg = 'Unassigned Parameter "Recipients" or "SendToGroup" passed to object. (':Method:')' + end + IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' + IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' + IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' -IF ErrorMsg NE '' THEN RETURN + IF NOT(ASSIGNED(AttachWindow)) THEN AttachWindow = '' + IF NOT(ASSIGNED(AttachKeys)) THEN AttachKeys = '' + IF NOT(ASSIGNED(SendToGroup)) THEN SendToGroup = '' -thisRecipients = '' -RecipCnt = 0 + IF ErrorMsg NE '' THEN RETURN -FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') - Recipient = Recipients<1,I> - IF Recipient NE '' THEN - LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE - thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) - RecipCnt += 1 + thisRecipients = '' + RecipCnt = 0 + + FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') + Recipient = Recipients<1,I> + IF Recipient NE '' THEN + LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE + thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) + RecipCnt += 1 + END END - END -NEXT I + NEXT I -NextNoteKey = NextKey('NOTES') + NextNoteKey = NextKey('NOTES') -NoteRec = '' -NoteRec = 'I' -NoteRec = Date() -NoteRec = Time() -NoteRec = thisRecipients -NoteRec = SentFrom -NoteRec = Message -NoteRec = @USER4 -NoteRec = Subject -NoteRec = AttachWindow -NoteRec = AttachKeys -NoteRec = SendToGroup + NoteRec = '' + NoteRec = 'I' + NoteRec = Date() + NoteRec = Time() + NoteRec = thisRecipients + NoteRec = SentFrom + NoteRec = Message + NoteRec = @USER4 + NoteRec = Subject + NoteRec = AttachWindow + NoteRec = AttachKeys + NoteRec = SendToGroup -OtParms = 'NOTES':@RM:NextNoteKey:@RM:@RM:NoteRec -obj_Tables('WriteRec',OtParms) ;* Writes the Note record to disk + OtParms = 'NOTES':@RM:NextNoteKey:@RM:@RM:NoteRec + obj_Tables('WriteRec',OtParms) ;* Writes the Note record to disk -CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') - -RecipientsText = thisRecipients - -SWAP @VM WITH ', ' IN RecipientsText - -FOR I = 1 TO RecipCnt - - thisRecipient = thisRecipients<1,I> - - obj_Notes_Sent('Create',thisRecipient:@RM:NextNoteKey:@RM:CurrDTM) ;* Add to Notes Sent buffer table - - UserRec = XLATE('LSL_USERS',thisRecipient,'','X') - FwdFlag = UserRec - eMailAddr = UserRec - - IF FwdFlag = 1 AND eMailAddr NE '' THEN - - Text = '' - Text<-1> = 'OI eMail From: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM - Text<-1> = '' - Text<-1> = 'Recipients: ':RecipientsText - Text<-1> = '' - Text<-1> = 'Subject: ':Subject - Text<-1> = '' - Text<-1> = 'Message: ' - Text<-1> = '' - Text<-1> = Message - Text<-1> = '' - - IF AttachWindow NE '' THEN - Text<-1> = '' - Text<-1> = 'Attached Window: ':AttachWindow - END - - IF AttachKeys NE '' THEN - Text<-1> = '' - Text<-1> = 'Record Key: ':AttachKeys - END - - IF SendToGroup NE '' THEN - Text<-1> = '' - Text<-1> = 'Sent to Group: ':SendToGroup - END - - HeaderText = Text<1> - - CONVERT \00\ TO ',' IN Text - SWAP @VM WITH ':@VM:' IN Text - SWAP @FM WITH CHAR(13):CHAR(10) IN Text - SWAP @TM WITH CHAR(13):CHAR(10) IN Text - - eMailBoxKey = NextNoteKey:'*':thisRecipient - - eMailBoxRec = '' - eMailBoxRec = eMailAddr - eMailBoxRec = Text - eMailBoxRec = HeaderText - eMailBoxRec = SentFrom - - ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec - obj_Tables('WriteRec',ebParms) - - END ;* End of check for forwarding flag - -NEXT I + Notes_Services('AddToQueue', NextNoteKey) RETURN - * * * * * * * Rebuild: * * * * * * * + thisRecipient = Parms[1,@RM] -thisRecipient = Parms[1,@RM] + IF thisRecipient = '' THEN thisRecipient = @USER4 -IF thisRecipient = '' THEN thisRecipient = @USER4 + SelectSent = 'SELECT NOTES WITH SEND_TO "':thisRecipient:'" AND WITH ENTRY_DATE GE ':QUOTE(OCONV(Date()-90,'D4/')) -SelectSent = 'SELECT NOTES WITH SEND_TO "':thisRecipient:'" AND WITH ENTRY_DATE GE ':QUOTE(OCONV(Date()-90,'D4/')) + RList(SelectSent,'NOTES',TARGET_ACTIVELIST$,'','') -RList(SelectSent,'NOTES',TARGET_ACTIVELIST$,'','') - -IF Get_Status(errCode) THEN - ErrMsg(errCode) -END - -NoteIDs = '' - -Done = 0 -LOOP - READNEXT NoteID ELSE Done = 1 -UNTIL Done - LOCATE NoteID IN NoteIDs BY 'DR' USING @FM SETTING Pos ELSE - NoteIDs = INSERT(NoteIDs,Pos,0,0,NoteID) + IF Get_Status(errCode) THEN + ErrMsg(errCode) END -REPEAT + + NoteIDs = '' + + Done = 0 + LOOP + READNEXT NoteID ELSE Done = 1 + UNTIL Done + LOCATE NoteID IN NoteIDs BY 'DR' USING @FM SETTING Pos ELSE + NoteIDs = INSERT(NoteIDs,Pos,0,0,NoteID) + END + REPEAT -OtParms = 'NOTE_PTRS':@RM:thisRecipient -obj_Tables('LockRec',OtParms) ;* If not found then returns null, otherwise reads and sets the lock -NPRec = '' + OtParms = 'NOTE_PTRS':@RM:thisRecipient + obj_Tables('LockRec',OtParms) ;* If not found then returns null, otherwise reads and sets the lock + NPRec = '' -FOR I = 1 TO COUNT(NoteIDs,@FM) + (NoteIDs NE '') + FOR I = 1 TO COUNT(NoteIDs,@FM) + (NoteIDs NE '') - NoteID = NoteIDs + NoteID = NoteIDs - NoteRec = XLATE('NOTES',NoteID,'','X') - - Subject = NoteRec - SentFrom = NoteRec - NoteDt = OCONV(NoteRec,'D2/') - NoteTime = OCONV(NoteRec,'MTH') - AttachWindow = NoteRec - AttachKeys = NoteRec - - IF AttachWindow NE '' AND AttachKeys NE '' THEN - Attachment = 'Yes' - END ELSE - Attachment = 'No' - END - - LOCATE NoteID IN NPRec BY 'DR' USING @VM SETTING Pos ELSE + NoteRec = XLATE('NOTES',NoteID,'','X') + + Subject = NoteRec + SentFrom = NoteRec + NoteDt = OCONV(NoteRec,'D2/') + NoteTime = OCONV(NoteRec,'MTH') + AttachWindow = NoteRec + AttachKeys = NoteRec + + IF AttachWindow NE '' AND AttachKeys NE '' THEN + Attachment = 'Yes' + END ELSE + Attachment = 'No' + END + + LOCATE NoteID IN NPRec BY 'DR' USING @VM SETTING Pos ELSE + + NPRec = INSERT( NPRec, note_ptrs_subject$, Pos, 0, Subject ) ;* Add the subject - NPRec = INSERT( NPRec, note_ptrs_subject$, Pos, 0, Subject ) ;* Add the subject + ConvSentFrom = OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') + + IF ConvSentFrom NE '' THEN SentFrom = ConvSentFrom + + NPRec = INSERT( NPRec, note_ptrs_from$, Pos, 0, SentFrom ) + NPRec = INSERT( NPRec, note_ptrs_date$, Pos, 0, NoteDt ) + NPRec = INSERT( NPRec, note_ptrs_time$, Pos, 0, NoteTime ) + NPRec = INSERT( NPRec, note_ptrs_new$, Pos, 0, 'Yes' ) + NPRec = INSERT( NPRec, note_ptrs_note_ids$, Pos, 0, NoteID ) + NPRec = INSERT( NPRec, note_ptrs_attachment$, Pos, 0, Attachment ) + NPRec = INSERT( NPRec, note_ptrs_archived$, Pos, 0, '0') + END - ConvSentFrom = OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') - IF ConvSentFrom NE '' THEN SentFrom = ConvSentFrom - - NPRec = INSERT( NPRec, note_ptrs_from$, Pos, 0, SentFrom ) - NPRec = INSERT( NPRec, note_ptrs_date$, Pos, 0, NoteDt ) - NPRec = INSERT( NPRec, note_ptrs_time$, Pos, 0, NoteTime ) - NPRec = INSERT( NPRec, note_ptrs_new$, Pos, 0, 'Yes' ) - NPRec = INSERT( NPRec, note_ptrs_note_ids$, Pos, 0, NoteID ) - NPRec = INSERT( NPRec, note_ptrs_attachment$, Pos, 0, Attachment ) - NPRec = INSERT( NPRec, note_ptrs_archived$, Pos, 0, '0') - END - - -UNTIL LEN(NPRec) > 128000 -NEXT I + UNTIL LEN(NPRec) > 128000 + NEXT I -OtParms = FIELDSTORE(OtParms,@RM,4,0,NPRec) -obj_Tables('WriteRec',OtParms) + OtParms = FIELDSTORE(OtParms,@RM,4,0,NPRec) + obj_Tables('WriteRec',OtParms) RETURN - * * * * * * * AllActiveUsers: * * * * * * * -OPEN 'DICT.LSL_USERS' TO DictVar ELSE RETURN + OPEN 'DICT.LSL_USERS' TO DictVar ELSE RETURN -SearchString = 'ACTIVE':@VM:'1':@FM -TableName = 'LSL_USERS' -Option = '' -Flag = '' + SearchString = 'ACTIVE':@VM:'1':@FM + TableName = 'LSL_USERS' + Option = '' + Flag = '' -Btree.Extract(SearchString, TableName, DictVar, AllUserList, Option, Flag ) + Btree.Extract(SearchString, TableName, DictVar, AllUserList, Option, Flag ) -IF Get_Status(errCode) THEN RETURN + IF Get_Status(errCode) THEN RETURN -Result = AllUserList + Result = AllUserList RETURN - * * * * * * * PostEMail: * * * * * * * -NoteKey = Parms[1,@RM] + NoteKey = Parms[1,@RM] -IF NoteKey = '' THEN RETURN + IF NoteKey = '' THEN RETURN -NoteRec = XLATE('NOTES',NoteKey,'','X') + NoteRec = XLATE('NOTES',NoteKey,'','X') -SentFrom = NoteRec -Recipients = NoteRec -Subject = NoteRec -Message = NoteRec -AttachWindow = NoteRec -AttachKeys = NoteRec -SendToGroup = NoteRec + SentFrom = NoteRec + Recipients = NoteRec + Subject = NoteRec + Message = NoteRec + AttachWindow = NoteRec + AttachKeys = NoteRec + SendToGroup = NoteRec -CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') + CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') -RecipientsText = Recipients + RecipientsText = Recipients -SWAP @VM WITH ', ' IN RecipientsText + SWAP @VM WITH ', ' IN RecipientsText -RecipCnt = COUNT(Recipients,@VM) + (Recipients NE '') + RecipCnt = COUNT(Recipients,@VM) + (Recipients NE '') -FOR I = 1 TO RecipCnt + FOR I = 1 TO RecipCnt - Recipient = Recipients<1,I> + Recipient = Recipients<1,I> + + UserRec = XLATE('LSL_USERS',Recipient,'','X') + FwdFlag = UserRec + eMailAddr = UserRec - UserRec = XLATE('LSL_USERS',Recipient,'','X') - FwdFlag = UserRec - eMailAddr = UserRec - - IF FwdFlag = 1 AND eMailAddr NE '' THEN - - Text = '' - Text<-1> = 'OI eMail from: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM - Text<-1> = '' - Text<-1> = 'Recipients: ':RecipientsText - Text<-1> = '' - Text<-1> = 'Subject: ':Subject - Text<-1> = '' - Text<-1> = 'Message: ' - Text<-1> = '' - Text<-1> = Message - Text<-1> = '' + IF FwdFlag = 1 AND eMailAddr NE '' THEN - IF AttachWindow NE '' THEN + Text = '' + Text<-1> = 'OI eMail from: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM Text<-1> = '' - Text<-1> = 'Attached Window: ':AttachWindow - END - - IF AttachKeys NE '' THEN + Text<-1> = 'Recipients: ':RecipientsText Text<-1> = '' - Text<-1> = 'Record Key: ':AttachKeys - END - - IF SendToGroup NE '' THEN + Text<-1> = 'Subject: ':Subject Text<-1> = '' - Text<-1> = 'Sent to Group: ':SendToGroup - END - - HeaderText = TEXT<1> + Text<-1> = 'Message: ' + Text<-1> = '' + Text<-1> = Message + Text<-1> = '' + + IF AttachWindow NE '' THEN + Text<-1> = '' + Text<-1> = 'Attached Window: ':AttachWindow + END + + IF AttachKeys NE '' THEN + Text<-1> = '' + Text<-1> = 'Record Key: ':AttachKeys + END + + IF SendToGroup NE '' THEN + Text<-1> = '' + Text<-1> = 'Sent to Group: ':SendToGroup + END + + HeaderText = TEXT<1> - CONVERT \00\ TO ',' IN Text - SWAP @VM WITH ':@VM:' IN Text - SWAP @FM WITH CHAR(13):CHAR(10) IN Text - SWAP @TM WITH CHAR(13):CHAR(10) IN Text + CONVERT \00\ TO ',' IN Text + SWAP @VM WITH ':@VM:' IN Text + SWAP @FM WITH CHAR(13):CHAR(10) IN Text + SWAP @TM WITH CHAR(13):CHAR(10) IN Text + + eMailBoxKey = NoteKey:'*':Recipient + eMailBoxRec = '' + eMailBoxRec = eMailAddr + eMailBoxRec = Text + eMailBoxRec = HeaderText + eMailBoxRec = SentFrom + + ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec + obj_Tables('WriteRec',ebParms) + + IF Get_Status(errCode) THEN + ErrMsg(errCode) + END + + END ;* End of check for forwarding flag - eMailBoxKey = NoteKey:'*':Recipient - eMailBoxRec = '' - eMailBoxRec = eMailAddr - eMailBoxRec = Text - eMailBoxRec = HeaderText - eMailBoxRec = SentFrom - - ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec - obj_Tables('WriteRec',ebParms) - - IF Get_Status(errCode) THEN - ErrMsg(errCode) - END - - END ;* End of check for forwarding flag - -NEXT I - + NEXT I RETURN @@ -459,9 +393,7 @@ ForwardEMail: MsgSent = SRP_Send_Mail(Message, ConfigFile) - IF MsgSent = 1 THEN - * obj_Tables('DeleteRec',mbParms) - END ELSE + IF MsgSent NE True$ THEN Set_Status(0) obj_Tables('UnlockRec',mbParms) @@ -497,100 +429,95 @@ EMail: * * * * * * * * Direct outside eMail without creating a NOTES record + + Recipients = Parms[1,@RM] + SentFrom = Parms[COL2()+1,@RM] + Subject = Parms[COL2()+1,@RM] + Message = Parms[COL2()+1,@RM] - -Recipients = Parms[1,@RM] -SentFrom = Parms[COL2()+1,@RM] -Subject = Parms[COL2()+1,@RM] -Message = Parms[COL2()+1,@RM] + IF NOT(ASSIGNED(Recipients)) THEN ErrorMsg = 'Unassigned Parameter "Recipients" passed to object. (':Method:')' + IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' + IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' + IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' -IF NOT(ASSIGNED(Recipients)) THEN ErrorMsg = 'Unassigned Parameter "Recipients" passed to object. (':Method:')' -IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' -IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' -IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' + IF ErrorMsg NE '' THEN RETURN -IF ErrorMsg NE '' THEN RETURN + thisRecipients = '' + RecipCnt = 0 -thisRecipients = '' -RecipCnt = 0 - -FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') - Recipient = Recipients<1,I> - IF Recipient NE '' THEN - LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE - thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) - RecipCnt += 1 + FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') + Recipient = Recipients<1,I> + IF Recipient NE '' THEN + LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE + thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) + RecipCnt += 1 + END END - END -NEXT I + NEXT I -RecipientsText = OCONV(thisRecipients,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') + RecipientsText = OCONV(thisRecipients,'[XLATE_CONV,LSL_USERS*FIRST_LAST]') -SWAP @VM WITH ', ' IN RecipientsText + SWAP @VM WITH ', ' IN RecipientsText -CurrDTM = obj_Calendar('CurrDTM') + CurrDTM = obj_Calendar('CurrDTM') -FOR I = 1 TO RecipCnt - thisRecipient = thisRecipients<1,I> - - UserRec = XLATE('LSL_USERS',thisRecipient,'','X') - eMailAddr = UserRec - - IF eMailAddr NE '' THEN - - Text = '' - Text<-1> = 'OI eMail from: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM - Text<-1> = '' - Text<-1> = 'Recipients: ':RecipientsText - Text<-1> = '' - Text<-1> = 'Subject: ':Subject - Text<-1> = '' - Text<-1> = 'Message: ' - Text<-1> = '' - Text<-1> = Message - Text<-1> = '' + FOR I = 1 TO RecipCnt + thisRecipient = thisRecipients<1,I> - HeaderText = TEXT<1> - - CONVERT \00\ TO ',' IN Text - SWAP @VM WITH ':@VM:' IN Text - SWAP @FM WITH CHAR(13):CHAR(10) IN Text - SWAP @TM WITH CHAR(13):CHAR(10) IN Text - - ConfigFile = '' - ConfigFile<1> = SendUsing_Port$ - ConfigFile<2> = '' - ConfigFile<3> = 25 ;* Server port - *ConfigFile<4> = 'appmail.eu.infineon.com' ;* IFX Mail server - ConfigFile<4> = 'mailrelay-external.infineon.com' - ConfigFile<5> = Yes$ ;* Authenticate - ConfigFile<6> = 'oinotify@infineon.com' ;* Username - ConfigFile<7> = 'oinotify1' ;* Password - ConfigFile<8> = No$ ;* Use SSL - - SentFrom = 'oinotify@infineon.com' - SendTo = eMailAddr + UserRec = XLATE('LSL_USERS',thisRecipient,'','X') + eMailAddr = UserRec - Message = '' - Message<1> = HeaderText ; * Subject - Message<2> = SentFrom ; * From (email address) - Message<3> = eMailAddr ; * Send to (email address) - Message<5> = '' ; * Blind Carbon Copy (email address) - Message<6> = '' ; * Reply To (email address) - Message<7> = 'TEXT' ; * Content Type (TEXT or HTML) - Message<8> = Text ; * Content / Body - Message<9> = '' ; * Attachment(s) (path to file name(s)) + IF eMailAddr NE '' THEN - MsgSent = SRP_Send_Mail(Message, ConfigFile) + Text = '' + Text<-1> = 'OI eMail from: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM + Text<-1> = '' + Text<-1> = 'Recipients: ':RecipientsText + Text<-1> = '' + Text<-1> = 'Subject: ':Subject + Text<-1> = '' + Text<-1> = 'Message: ' + Text<-1> = '' + Text<-1> = Message + Text<-1> = '' + + HeaderText = TEXT<1> + + CONVERT \00\ TO ',' IN Text + SWAP @VM WITH ':@VM:' IN Text + SWAP @FM WITH CHAR(13):CHAR(10) IN Text + SWAP @TM WITH CHAR(13):CHAR(10) IN Text - - END + ConfigFile = '' + ConfigFile<1> = SendUsing_Port$ + ConfigFile<2> = '' + ConfigFile<3> = 25 ;* Server port + ConfigFile<4> = 'mailrelay-external.infineon.com' + ConfigFile<5> = Yes$ ;* Authenticate + ConfigFile<6> = 'oinotify@infineon.com' ;* Username + ConfigFile<7> = 'oinotify1' ;* Password + ConfigFile<8> = No$ ;* Use SSL + SentFrom = 'oinotify@infineon.com' + SendTo = eMailAddr + + Message = '' + Message<1> = HeaderText ; * Subject + Message<2> = SentFrom ; * From (email address) + Message<3> = eMailAddr ; * Send to (email address) + Message<5> = '' ; * Blind Carbon Copy (email address) + Message<6> = '' ; * Reply To (email address) + Message<7> = 'TEXT' ; * Content Type (TEXT or HTML) + Message<8> = Text ; * Content / Body + Message<9> = '' ; * Attachment(s) (path to file name(s)) + + MsgSent = SRP_Send_Mail(Message, ConfigFile) + + + END - -NEXT I ;* End of Recipient Loop - + NEXT I ;* End of Recipient Loop RETURN @@ -598,160 +525,151 @@ RETURN * * * * * * * BulkCreate: * * * * * * * -* SRP_Stopwatch('Reset') -Recipients = Parms[1,@RM] -SentFrom = Parms[COL2()+1,@RM] -Subject = Parms[COL2()+1,@RM] -Message = Parms[COL2()+1,@RM] -AttachWindow = Parms[COL2()+1,@RM] -AttachKeys = Parms[COL2()+1,@RM] -SendToGroup = Parms[COL2()+1,@RM] -IF NOT(ASSIGNED(Recipients)) THEN ErrorMsg = 'Unassigned Parameter "Recipients" passed to object. (':Method:')' -IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' -IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' -IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' + Recipients = Parms[1,@RM] + SentFrom = Parms[COL2()+1,@RM] + Subject = Parms[COL2()+1,@RM] + Message = Parms[COL2()+1,@RM] + AttachWindow = Parms[COL2()+1,@RM] + AttachKeys = Parms[COL2()+1,@RM] + SendToGroup = Parms[COL2()+1,@RM] -IF NOT(ASSIGNED(AttachWindow)) THEN AttachWindow = '' -IF NOT(ASSIGNED(AttachKeys)) THEN AttachKeys = '' -IF NOT(ASSIGNED(SendToGroup)) THEN SendToGroup = '' + IF NOT(ASSIGNED(Recipients)) THEN ErrorMsg = 'Unassigned Parameter "Recipients" passed to object. (':Method:')' + IF NOT(ASSIGNED(SentFrom)) THEN ErrorMsg = 'Unassigned Parameter "SentFrom" passed to object. (':Method:')' + IF NOT(ASSIGNED(Subject)) THEN ErrorMsg = 'Unassigned Parameter "Subject" passed to object. (':Method:')' + IF NOT(ASSIGNED(Message)) THEN ErrorMsg = 'Unassigned Parameter "Message" passed to object. (':Method:')' -IF ErrorMsg NE '' THEN RETURN + IF NOT(ASSIGNED(AttachWindow)) THEN AttachWindow = '' + IF NOT(ASSIGNED(AttachKeys)) THEN AttachKeys = '' + IF NOT(ASSIGNED(SendToGroup)) THEN SendToGroup = '' -thisRecipients = '' -RecipCnt = 0 + IF ErrorMsg NE '' THEN RETURN -FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') - Recipient = Recipients<1,I> - IF Recipient NE '' THEN - LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE - thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) - RecipCnt += 1 + thisRecipients = '' + RecipCnt = 0 + + FOR I = 1 TO COUNT(Recipients,@VM) + (Recipients NE '') + Recipient = Recipients<1,I> + IF Recipient NE '' THEN + LOCATE Recipient IN thisRecipients USING @VM SETTING Pos ELSE + thisRecipients = INSERT(thisRecipients,1,Pos,0,Recipient) + RecipCnt += 1 + END END - END -NEXT I + NEXT I -NextNoteKey = NextKey('NOTES') + NextNoteKey = NextKey('NOTES') -NoteRec = '' -NoteRec = 'I' -NoteRec = Date() -NoteRec = Time() -NoteRec = thisRecipients -NoteRec = SentFrom -NoteRec = Message -NoteRec = @USER4 -NoteRec = Subject -NoteRec = AttachWindow -NoteRec = AttachKeys -NoteRec = SendToGroup + NoteRec = '' + NoteRec = 'I' + NoteRec = Date() + NoteRec = Time() + NoteRec = thisRecipients + NoteRec = SentFrom + NoteRec = Message + NoteRec = @USER4 + NoteRec = Subject + NoteRec = AttachWindow + NoteRec = AttachKeys + NoteRec = SendToGroup -OtParms = 'NOTES':@RM:NextNoteKey:@RM:@RM:NoteRec + OtParms = 'NOTES':@RM:NextNoteKey:@RM:@RM:NoteRec -Fields = notes_message_type$:@VM ; Values = 'I' :@VM -Fields := notes_entry_date$:@VM ; Values := Date() :@VM -Fields := notes_entry_time$:@VM ; Values := Time() :@VM -Fields := notes_send_to$:@VM ; Values := thisRecipients :@VM -Fields := notes_from$:@VM ; Values := SentFrom :@VM -Fields := notes_message$:@VM ; Values := Message :@VM -Fields := notes_entry_id$:@VM ; Values := @USER4 :@VM -Fields := notes_subject$:@VM ; Values := Subject :@VM -Fields := notes_attach_window$:@VM ; Values := AttachWindow :@VM -Fields := notes_attach_keys$:@VM ; Values := AttachKeys :@VM -Fields := notes_msg_groups_ids$ ; Values := SendToGroup + Fields = notes_message_type$:@VM ; Values = 'I' :@VM + Fields := notes_entry_date$:@VM ; Values := Date() :@VM + Fields := notes_entry_time$:@VM ; Values := Time() :@VM + Fields := notes_send_to$:@VM ; Values := thisRecipients :@VM + Fields := notes_from$:@VM ; Values := SentFrom :@VM + Fields := notes_message$:@VM ; Values := Message :@VM + Fields := notes_entry_id$:@VM ; Values := @USER4 :@VM + Fields := notes_subject$:@VM ; Values := Subject :@VM + Fields := notes_attach_window$:@VM ; Values := AttachWindow :@VM + Fields := notes_attach_keys$:@VM ; Values := AttachKeys :@VM + Fields := notes_msg_groups_ids$ ; Values := SendToGroup -oblParms = 'NOTES' :@RM -oblParms := NextNoteKey :@RM -oblParms := Fields :@RM -oblParms := Values :@RM -oblParms := "TOP" :@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP" + oblParms = 'NOTES' :@RM + oblParms := NextNoteKey :@RM + oblParms := Fields :@RM + oblParms := Values :@RM + oblParms := "TOP" :@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP":@VM: "TOP" :@VM: "TOP" -* SRP_Stopwatch('Start', 'NOTES Write') -//Obj_Post_Log('Create', oblParms) -obj_Tables('WriteRec',OtParms) ;* Writes the Note record to disk -* SRP_Stopwatch('Stop', 'NOTES Write') -CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') + obj_Tables('WriteRec',OtParms) ;* Writes the Note record to disk + CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS') -RecipientsText = thisRecipients + RecipientsText = thisRecipients -SWAP @VM WITH ', ' IN RecipientsText + SWAP @VM WITH ', ' IN RecipientsText -FOR I = 1 TO RecipCnt + FOR I = 1 TO RecipCnt - thisRecipient = thisRecipients<1,I> - - obj_Notes_Sent('Create',thisRecipient:@RM:NextNoteKey:@RM:CurrDTM) ;* Add to Notes Sent buffer table - - UserRec = XLATE('LSL_USERS',thisRecipient,'','X') - FwdFlag = UserRec - eMailAddr = UserRec - - IF FwdFlag = 1 AND eMailAddr NE '' THEN - - Text = '' - Text<-1> = 'OI eMail From: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM - Text<-1> = '' - Text<-1> = 'Recipients: ':RecipientsText - Text<-1> = '' - Text<-1> = 'Subject: ':Subject - Text<-1> = '' - Text<-1> = 'Message: ' - Text<-1> = '' - Text<-1> = Message - Text<-1> = '' + thisRecipient = thisRecipients<1,I> - IF AttachWindow NE '' THEN + obj_Notes_Sent('Create',thisRecipient:@RM:NextNoteKey:@RM:CurrDTM) ;* Add to Notes Sent buffer table + + UserRec = XLATE('LSL_USERS',thisRecipient,'','X') + FwdFlag = UserRec + eMailAddr = UserRec + + IF FwdFlag = 1 AND eMailAddr NE '' THEN + + Text = '' + Text<-1> = 'OI eMail From: ':OCONV(SentFrom,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'):' at ':CurrDTM Text<-1> = '' - Text<-1> = 'Attached Window: ':AttachWindow - END - - IF AttachKeys NE '' THEN + Text<-1> = 'Recipients: ':RecipientsText Text<-1> = '' - Text<-1> = 'Record Key: ':AttachKeys - END - - IF SendToGroup NE '' THEN + Text<-1> = 'Subject: ':Subject Text<-1> = '' - Text<-1> = 'Sent to Group: ':SendToGroup - END + Text<-1> = 'Message: ' + Text<-1> = '' + Text<-1> = Message + Text<-1> = '' + + IF AttachWindow NE '' THEN + Text<-1> = '' + Text<-1> = 'Attached Window: ':AttachWindow + END + + IF AttachKeys NE '' THEN + Text<-1> = '' + Text<-1> = 'Record Key: ':AttachKeys + END + + IF SendToGroup NE '' THEN + Text<-1> = '' + Text<-1> = 'Sent to Group: ':SendToGroup + END + + HeaderText = Text<1> + + CONVERT \00\ TO ',' IN Text + SWAP @VM WITH ':@VM:' IN Text + SWAP @FM WITH CHAR(13):CHAR(10) IN Text + SWAP @TM WITH CHAR(13):CHAR(10) IN Text + + eMailBoxKey = NextNoteKey:'*':thisRecipient + + eMailBoxRec = '' + eMailBoxRec = eMailAddr + eMailBoxRec = Text + eMailBoxRec = HeaderText + eMailBoxRec = SentFrom + SRP_Stopwatch('Start', 'Email Write') + ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec + + Fields = EMAIL_BOX_EMAIL_ADDR$:@VM ; Values = eMailAddr :@VM + Fields := EMAIL_BOX_EMAIL_TEXT$:@VM ; Values := Text :@VM + Fields := EMAIL_BOX_EMAIL_HEADER$:@VM ; Values := HeaderText :@VM + Fields := EMAIL_BOX_FROM_USER$:@VM ; Values := SentFrom :@VM + + eblParms = 'EMAIL_BOX' :@RM + eblParms := eMailBoxKey :@RM + eblParms := Fields :@RM + eblParms := Values :@RM + eblParms := "TOP" :@VM: "TOP" :@VM: "TOP":@VM: "TOP" + Obj_Post_Log('Create' eblParms) + END ;* End of check for forwarding flag - HeaderText = Text<1> - - CONVERT \00\ TO ',' IN Text - SWAP @VM WITH ':@VM:' IN Text - SWAP @FM WITH CHAR(13):CHAR(10) IN Text - SWAP @TM WITH CHAR(13):CHAR(10) IN Text - - eMailBoxKey = NextNoteKey:'*':thisRecipient - - eMailBoxRec = '' - eMailBoxRec = eMailAddr - eMailBoxRec = Text - eMailBoxRec = HeaderText - eMailBoxRec = SentFrom - SRP_Stopwatch('Start', 'Email Write') - ebParms = 'EMAIL_BOX':@RM:eMailBoxKey:@RM:@RM:eMailBoxRec - //obj_Tables('WriteRec',ebParms) - - Fields = EMAIL_BOX_EMAIL_ADDR$:@VM ; Values = eMailAddr :@VM - Fields := EMAIL_BOX_EMAIL_TEXT$:@VM ; Values := Text :@VM - Fields := EMAIL_BOX_EMAIL_HEADER$:@VM ; Values := HeaderText :@VM - Fields := EMAIL_BOX_FROM_USER$:@VM ; Values := SentFrom :@VM - - eblParms = 'EMAIL_BOX' :@RM - eblParms := eMailBoxKey :@RM - eblParms := Fields :@RM - eblParms := Values :@RM - eblParms := "TOP" :@VM: "TOP" :@VM: "TOP":@VM: "TOP" -* obj_Tables('WriteRec',ebParms) - Obj_Post_Log('Create' eblParms) -* SRP_Stopwatch('Stop', 'Email Write') - END ;* End of check for forwarding flag - -NEXT I -//SRP_Stopwatch('ShowAll') -* Test = SRP_Stopwatch('GetAll') -* debug + NEXT I + RETURN - diff --git a/LSL2/STPROC/OBJ_NOTES_SENT.txt b/LSL2/STPROC/OBJ_NOTES_SENT.txt index 06c8828..3b30186 100644 --- a/LSL2/STPROC/OBJ_NOTES_SENT.txt +++ b/LSL2/STPROC/OBJ_NOTES_SENT.txt @@ -14,7 +14,6 @@ COMPILE FUNCTION obj_Notes_Sent(Method,Parms) */ - DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, ErrMsg, Btree.Extract,ErrMsg, Update_Index @@ -26,7 +25,7 @@ $INSERT LOGICAL $INSERT SRPMail_Inserts EQU TARGET_ACTIVELIST$ TO 5 - + ErrTitle = 'Error in Stored Procedure "obj_Notes_Sent"' ErrorMsg = '' @@ -47,7 +46,7 @@ BEGIN CASE CASE Method = 'GetUserKeys' ; GOSUB GetUserKeys CASE 1 ErrorMsg = 'Unknown Method ':QUOTE(Method):' passed to object.' - + END CASE IF ErrorMsg NE '' THEN @@ -58,77 +57,74 @@ END RETURN Result - * * * * * * * Create: * * * * * * * - -Recipient = Parms[1,@RM] -NoteID = Parms[COL2()+1,@RM] -TxDTM = Parms[COL2()+1,@RM] ;* In External format - -IF Recipient = '' THEN ErrorMsg = 'Unassigned Parameter "Recipient" passed to object. (':Method:')' -IF NoteID = '' THEN ErrorMsg = 'Unassigned Parameter "NoteID" passed to object. (':Method:')' -IF TxDTM = '' THEN ErrorMsg = 'Unassigned Parameter "TxDTM" passed to object. (':Method:')' - -IF ErrorMsg NE '' THEN RETURN - -thisTxDTM = ICONV(TxDTM,'DT') - -IF thisTxDTM = '' THEN - ErrorMsg = 'Invalid parameter "TxDTM" = ':QUOTE(TxDTM):' passed to object. (':Method:')' - RETURN -END - -OtParms = 'NOTES_SENT':@RM:Recipient:'*':NoteID:@RM:@RM:TxDTM ;* First (and only) field in record is TxDTM -obj_Tables('WriteRec',OtParms) ;* Writes new record - -Update_Index('NOTES_SENT','USER_ID','') - - + + Recipient = Parms[1,@RM] + NoteID = Parms[COL2()+1,@RM] + TxDTM = Parms[COL2()+1,@RM] ;* In External format + + IF Recipient = '' THEN ErrorMsg = 'Unassigned Parameter "Recipient" passed to object. (':Method:')' + IF NoteID = '' THEN ErrorMsg = 'Unassigned Parameter "NoteID" passed to object. (':Method:')' + IF TxDTM = '' THEN ErrorMsg = 'Unassigned Parameter "TxDTM" passed to object. (':Method:')' + + IF ErrorMsg NE '' THEN RETURN + + thisTxDTM = ICONV(TxDTM,'DT') + + IF thisTxDTM = '' THEN + ErrorMsg = 'Invalid parameter "TxDTM" = ':QUOTE(TxDTM):' passed to object. (':Method:')' + RETURN + END + + OtParms = 'NOTES_SENT':@RM:Recipient:'*':NoteID:@RM:@RM:TxDTM ;* First (and only) field in record is TxDTM + obj_Tables('WriteRec',OtParms) ;* Writes new record + + Update_Index('NOTES_SENT','USER_ID','', True$) + + RETURN - * * * * * * * Delete: * * * * * * * - - -NotesSentKeys = Parms[1,@RM] - -IF NotesSentKeys = '' THEN RETURN - -OPEN 'NOTES_SENT' TO NotesSentFile THEN - KeyCnt = COUNT(NotesSentKeys,@VM) + (NotesSentKeys NE '') - FOR I = 1 TO KeyCnt - DELETE NotesSentFile,NotesSentKeys<1,I> ELSE NULL - NEXT I -END - + + + NotesSentKeys = Parms[1,@RM] + + IF NotesSentKeys = '' THEN RETURN + + OPEN 'NOTES_SENT' TO NotesSentFile THEN + KeyCnt = COUNT(NotesSentKeys,@VM) + (NotesSentKeys NE '') + FOR I = 1 TO KeyCnt + DELETE NotesSentFile,NotesSentKeys<1,I> ELSE NULL + NEXT I + END + RETURN * * * * * * * GetUserKeys: * * * * * * * - -Recipient = Parms[1,@RM] - -IF Recipient = '' THEN RETURN - -OPEN 'DICT.NOTES_SENT' TO DictVar THEN - SearchString = 'USER_ID':@VM:Recipient:@FM - Flag = '' - Btree.Extract(SearchString,'NOTES_SENT',DictVar,NotesSentKeys,'',Flag) - IF Get_Status(errCode) THEN - ErrMsg(errCode) - RETURN + + Recipient = Parms[1,@RM] + + IF Recipient = '' THEN RETURN + + OPEN 'DICT.NOTES_SENT' TO DictVar THEN + SearchString = 'USER_ID':@VM:Recipient:@FM + Flag = '' + Btree.Extract(SearchString,'NOTES_SENT',DictVar,NotesSentKeys,'',Flag) + IF Get_Status(errCode) THEN + ErrMsg(errCode) + RETURN + END + + Result = NotesSentKeys END - Result = NotesSentKeys -END - RETURN - diff --git a/LSL2/STPROC/OBJ_NOTE_PTRS.txt b/LSL2/STPROC/OBJ_NOTE_PTRS.txt index 2b185eb..33e7a66 100644 --- a/LSL2/STPROC/OBJ_NOTE_PTRS.txt +++ b/LSL2/STPROC/OBJ_NOTE_PTRS.txt @@ -16,6 +16,7 @@ COMPILE FUNCTION obj_Note_Ptrs(Method,Parms) DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, NextKey, obj_Notes_Sent DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, RList, ErrMsg, obj_Notes_Sent, Update_Index +$INSERT LOGICAL $INSERT MSG_EQUATES $INSERT NOTES_EQU $INSERT NOTE_PTRS_EQU @@ -128,7 +129,7 @@ IF NotesSentKeys NE '' THEN END ELSE obj_Notes_Sent('Delete',NotesSentKeys) - Update_Index('NOTES_SENT','USER_ID','') + Update_Index('NOTES_SENT','USER_ID', False$, True$) END END ELSE obj_Tables('UnlockRec',OtParms) diff --git a/LSL2/STPROC/OBJ_PROD_SPEC.txt b/LSL2/STPROC/OBJ_PROD_SPEC.txt index 02e4946..3578ae3 100644 --- a/LSL2/STPROC/OBJ_PROD_SPEC.txt +++ b/LSL2/STPROC/OBJ_PROD_SPEC.txt @@ -1730,7 +1730,7 @@ END * obj_PRS_Stage('Convert',PSNo) ;* Dead JCH 3/11/2013 // Flush pending index transactions -Update_Index("PRS_LAYER", "PRS_PROP_KEY", "") +Update_Index("PRS_LAYER", "PRS_PROP_KEY", False$, True$) RETURN @@ -2109,3 +2109,4 @@ GetQAMet: RETURN + diff --git a/LSL2/STPROC/OBJ_REACTOR_LOG.txt b/LSL2/STPROC/OBJ_REACTOR_LOG.txt index aab0002..b774985 100644 --- a/LSL2/STPROC/OBJ_REACTOR_LOG.txt +++ b/LSL2/STPROC/OBJ_REACTOR_LOG.txt @@ -198,8 +198,8 @@ PostReactItems: //obj_Tables('WriteRec',otParms) Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1, 0, 1) - Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', '') ;* Don't wait for indexer - flush pending indexes now - Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', '') + Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now + Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$) end else Error_Services('Add', ValidationFailureReason) end @@ -299,8 +299,8 @@ UnpostReactItems: //obj_Tables('WriteRec',otParms) Database_Services('WriteDataRow', 'REACTOR_LOG', RLNo, ReactorLogRec, 1,0,1) - Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', '') ;* Don't wait for indexer - flush pending indexes now - Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', '') + Update_Index('REACT_ITEM_HIST', 'REM_RL_ID', False$, True$) ;* Don't wait for indexer - flush pending indexes now + Update_Index('REACT_ITEM_HIST', 'INST_RL_ID', False$, True$) RETURN @@ -392,3 +392,4 @@ RETURN + diff --git a/LSL2/STPROC/PRINT_WO_MASTER_SCHEDULER.txt b/LSL2/STPROC/PRINT_WO_MASTER_SCHEDULER.txt index 8bd9eb4..5cbc62a 100644 --- a/LSL2/STPROC/PRINT_WO_MASTER_SCHEDULER.txt +++ b/LSL2/STPROC/PRINT_WO_MASTER_SCHEDULER.txt @@ -73,7 +73,7 @@ Appts: // Build list of keys that fall on the three days Keys = "" Field = "DATE_SPAN_XREF" - Update_Index(Table, Field, No$) + Update_Index(Table, Field, No$, Yes$) For i = 0 to 2 Extract_SI_Keys(Table, Field, Date+i, rv) Keys<-1> = rv @@ -271,3 +271,4 @@ Print_Two: Next r Next x return + diff --git a/LSL2/STPROC/SQL_SERVICES.txt b/LSL2/STPROC/SQL_SERVICES.txt index 918797d..938aa85 100644 --- a/LSL2/STPROC/SQL_SERVICES.txt +++ b/LSL2/STPROC/SQL_SERVICES.txt @@ -3548,10 +3548,10 @@ Service ProcessSQLRequests() GoSub ClearCursors Sentence = 'SELECT ':Tablename:' WITH RESPONSE_DATE EQ "" BY REQUEST_DATE BY REQUEST_TIME' Set_Status(0) - Update_Index(Tablename, 'REQUEST_DATE', 0) - Update_Index(Tablename, 'REQUEST_TIME', 0) - Update_Index(Tablename, 'RESPONSE_DATE', 0) - Update_Index(Tablename, 'RESPONSE_TIME', 0) + Update_Index(Tablename, 'REQUEST_DATE', False$, True$) + Update_Index(Tablename, 'REQUEST_TIME', False$, True$) + Update_Index(Tablename, 'RESPONSE_DATE', False$, True$) + Update_Index(Tablename, 'RESPONSE_TIME', False$, True$) RList(Sentence, TARGET_ACTIVELIST$, '', '', '') EOF = False$ Loop @@ -3640,3 +3640,4 @@ return + diff --git a/LSL2/STPROC/SVC_SCHEDULER.txt b/LSL2/STPROC/SVC_SCHEDULER.txt index 4ffe1bf..05814ce 100644 --- a/LSL2/STPROC/SVC_SCHEDULER.txt +++ b/LSL2/STPROC/SVC_SCHEDULER.txt @@ -417,7 +417,7 @@ Bump: Table = "WO_MAST_SCHED" Open Table to hTable then - Update_Index(Table, "DATE_REACT", No$) + Update_Index(Table, "DATE_REACT", No$, Yes$) Extract_SI_Keys(Table, "DATE_REACT", DateReact, Keys) Duration = (Appt<3> - Appt<2>) If Noon then Duration -= .5 @@ -785,7 +785,7 @@ return WO_Status_Colors: Color_F = "" ; Color_B = "" ; Color_S = "" Begin Case - Case Event EQ "Down – No Material" ; Color_F = White$ ; Color_B = "Sienna" ; Color_S = "Offline" + Case Event EQ "Down – No Material" ; Color_F = White$ ; Color_B = "Sienna" ; Color_S = "Offline" Case Event ; Color_F = Black$ ; Color_B = "GoldenRod" ; Color_S = "Offline" Case WO.Done ; Color_F = Black$ ; Color_B = "Gainsboro" ; Color_S = "Completed" Case Hot ; Color_F = Black$ ; Color_B = "LightCoral" ; Color_S = "Hot" @@ -855,3 +855,4 @@ Reactor_List: Next i return + diff --git a/LSL2/STPROC/TEST.txt b/LSL2/STPROC/TEST.txt index ef16aeb..f931d1d 100644 --- a/LSL2/STPROC/TEST.txt +++ b/LSL2/STPROC/TEST.txt @@ -506,8 +506,8 @@ Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, Tr WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value. WOMatRow<23> = True$ ; // Restore the MakeUp box flag so the index will be forced to recalculate. Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, True$) -call Update_Index('WO_MAT', 'MU_PART_NO', False$) -call Update_Index('WO_MAT', 'CURR_STATUS', False$) +call Update_Index('WO_MAT', 'MU_PART_NO', False$, True$) +call Update_Index('WO_MAT', 'CURR_STATUS', False$, True$) @@ -950,3 +950,4 @@ Debug Return + diff --git a/LSL2/STPROC/TEST_DANIEL3.txt b/LSL2/STPROC/TEST_DANIEL3.txt index a693809..9611140 100644 --- a/LSL2/STPROC/TEST_DANIEL3.txt +++ b/LSL2/STPROC/TEST_DANIEL3.txt @@ -94,6 +94,24 @@ $Insert PS_EQUATES * $INSERT PRINTSETUP_EQUATES * equ REV_CREATE_ENGINE_NO_UI$ to 0x040 +Main: + debug + Recipients = '' + SentFrom = @USER4 + + SendToGroup = 'RDS_HOLD' : @VM : 'FI_SUPPORT' + + Subject = 'Testing 2' + Message = 'Testing 1234' + AttachWindow = '' + AttachKey = '' + + Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup + obj_Notes('Create',Parms) + + +return + * Main: * debug * Open 'LSL_USERS' to hTable then @@ -203,3 +221,4 @@ Main2: return + diff --git a/LSL2/STPROC/TOOL_SERVICES.txt b/LSL2/STPROC/TOOL_SERVICES.txt index 1cc2ede..3f9859c 100644 --- a/LSL2/STPROC/TOOL_SERVICES.txt +++ b/LSL2/STPROC/TOOL_SERVICES.txt @@ -163,7 +163,7 @@ Service ChangeToolMode(ToolID, NewMode, NewReason, CurrUser, ForceModeChange) // Close old mode record // Don't wait for the indexer. Flush pending index transactions BEFORE reading // the Tool CURR_MODE_KEY. - Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$) + Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$, True$) // Get Current Mode - There should only be one key, but we will verify before proceeding. CurrModeKeys = Xlate('TOOL', ToolID, TOOL_CURR_MODE_KEY$, 'X') // CurrModeKey will be set within the following GoSub @@ -313,10 +313,10 @@ VerifyCurrModeIndex: StopDtm = ToolLogRec ToolLogRec = '' Database_Services('WriteDataRow', 'TOOL_LOG', CurrModeKey, ToolLogRec, True$, False$, True$) - Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$) + Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$, True$) ToolLogRec = StopDtm Database_Services('WriteDataRow', 'TOOL_LOG', CurrModeKey, ToolLogRec, True$, False$, True$) - Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$) + Update_Index('TOOL_LOG', 'TOOL_CURR_MODE', False$, True$) Next CurrModeKey // The index should be healthy now and we should only have one key. @@ -328,3 +328,4 @@ VerifyCurrModeIndex: return + diff --git a/LSL2/STPROC/WAFER_COUNTER_SERVICES.txt b/LSL2/STPROC/WAFER_COUNTER_SERVICES.txt index 45f536e..22b425c 100644 --- a/LSL2/STPROC/WAFER_COUNTER_SERVICES.txt +++ b/LSL2/STPROC/WAFER_COUNTER_SERVICES.txt @@ -409,3 +409,4 @@ return + diff --git a/LSL2/STPROC/WO_SET_SCHEDULE.txt b/LSL2/STPROC/WO_SET_SCHEDULE.txt index 7d01991..9e37d00 100644 --- a/LSL2/STPROC/WO_SET_SCHEDULE.txt +++ b/LSL2/STPROC/WO_SET_SCHEDULE.txt @@ -82,7 +82,7 @@ Open: // Update indexes Wait = SRP_Wait("Init", "Scheduler Load":@RM:"Updating indexes...") - Update_Index(Table, "SCHED_DT", No$) + Update_Index(Table, "SCHED_DT", No$, Yes$) return @@ -286,3 +286,4 @@ Check_Pace: end end return + diff --git a/LSL2/STPROCINS/NOTES_EQUATES.txt b/LSL2/STPROCINS/NOTES_EQUATES.txt new file mode 100644 index 0000000..64b136d --- /dev/null +++ b/LSL2/STPROCINS/NOTES_EQUATES.txt @@ -0,0 +1,25 @@ +compile insert NOTES_EQUATES +* Equates for NOTES created on 10/16/2024 11:02AM + +Equ NOTES_MESSAGE_TYPE$ to 1 +equ NOTES_ENTRY_DATE$ to 2 +equ NOTES_ENTRY_TIME$ to 3 +equ NOTES_SEND_TO$ to 4 +equ NOTES_FROM$ to 5 +equ NOTES_COMPANY$ to 6 +equ NOTES_PHONE$ to 7 +equ NOTES_INTL_PHONE$ to 8 +equ NOTES_MESSAGE$ to 9 +equ NOTES_ENTRY_ID$ to 10 +equ NOTES_PT_PHONED$ to 11 +equ NOTES_PT_CALL_BACK$ to 12 +equ NOTES_PT_RET_CALL$ to 13 +equ NOTES_PT_WANTS_SEE$ to 14 +equ NOTES_PT_WILL_CALL$ to 15 +equ NOTES_PT_WAS_IN$ to 16 +equ NOTES_PT_URGENT$ to 17 +equ NOTES_SUBJECT$ to 18 +equ NOTES_ATTACH_WINDOW$ to 19 +equ NOTES_ATTACH_KEYS$ to 20 ;* Not used anymore +equ NOTES_ATTACH_KEY$ to 20 +equ NOTES_MSG_GROUPS_IDS$ to 21 diff --git a/LSL2/STPROCINS/NOTES_QUEUE_EQUATES.txt b/LSL2/STPROCINS/NOTES_QUEUE_EQUATES.txt new file mode 100644 index 0000000..18a9dc5 --- /dev/null +++ b/LSL2/STPROCINS/NOTES_QUEUE_EQUATES.txt @@ -0,0 +1,12 @@ +compile insert NOTES_QUEUE_EQUATES +/*---------------------------------------- + Author : Table Create Insert Routine + Written : 16/10/2024 + Description : Insert for Table NOTES_QUEUE +----------------------------------------*/ +#ifndef __NOTES_QUEUE_EQUATES__ +#define __NOTES_QUEUE_EQUATES__ + + equ NOTES_QUEUE.NOTES_ID$ to 1 + +#endif diff --git a/LSL2/STPROCINS/NOTE_PTRS_EQUATES.txt b/LSL2/STPROCINS/NOTE_PTRS_EQUATES.txt new file mode 100644 index 0000000..eddf85d --- /dev/null +++ b/LSL2/STPROCINS/NOTE_PTRS_EQUATES.txt @@ -0,0 +1,14 @@ +compile insert NOTE_PTRS_EQUATES +* Equates for NOTE_PTRS created on 08/03/95 07:31AM + +Equ NOTE_PTRS_SUBJECT$ to 1 +Equ NOTE_PTRS_FROM$ to 2 +Equ NOTE_PTRS_DATE$ to 3 +Equ NOTE_PTRS_TIME$ to 4 +Equ NOTE_PTRS_NEW$ to 5 +Equ NOTE_PTRS_ATTACHMENT$ to 6 +Equ NOTE_PTRS_NOTE_IDS$ to 7 +Equ NOTE_PTRS_ARCHIVED$ to 8 +Equ NOTE_PTRS_SNOOZE$ to 9 + + diff --git a/LSL2/STPROCINS/NOTIFICATION_EQUATES.txt b/LSL2/STPROCINS/NOTIFICATION_EQUATES.txt index 8a4173f..38084b0 100644 --- a/LSL2/STPROCINS/NOTIFICATION_EQUATES.txt +++ b/LSL2/STPROCINS/NOTIFICATION_EQUATES.txt @@ -6,6 +6,9 @@ compile insert NOTIFICATION_EQUATES ----------------------------------------*/ -Equ NOTIFICATION_NOTIFY_ID$ To 0 -Equ NOTIFICATION_DESC$ To 1 -Equ NOTIFICATION_USER_ID$ To 2 +Equ NOTIFICATION_NOTIFY_ID$ To 0 +Equ NOTIFICATION_DESC$ To 1 +Equ NOTIFICATION_USER_ID$ To 2 +Equ NOTIFICATION_USE_ACTIVE_DIRECTORY$ To 3 +Equ NOTIFICATION_ACTIVE_DIRECTORY_GROUPS$ To 4 +Equ NOTIFICATION_LIMIT_TO_ACTIVE_SHIFT$ To 5 diff --git a/SYSPROG/STPROC/DATABASE_SERVICES.txt b/SYSPROG/STPROC/DATABASE_SERVICES.txt index c136c5b..da11eb4 100644 --- a/SYSPROG/STPROC/DATABASE_SERVICES.txt +++ b/SYSPROG/STPROC/DATABASE_SERVICES.txt @@ -666,7 +666,6 @@ Service SearchIndex(TableName, ColumnName, SearchValue, UpdateIndex) ServiceKeyID := '*' : TableName : '*' : ColumnName : '*' : SearchValue ServiceKeyID = SRP_Encode(ServiceKeyID, 'BASE64') -* KeyIDList = Memory_Services('GetValue', ServiceKeyID, True$, 5) KeyIDList = '' If TableName NE '' AND ColumnName NE '' AND SearchValue NE '' then @@ -674,7 +673,7 @@ Service SearchIndex(TableName, ColumnName, SearchValue, UpdateIndex) DictTableHandle = Database_Services('GetTableHandle', 'DICT.' : TableName) If Error_Services('NoError') then Set_Status(0) - If UpdateIndex then Update_Index(TableName, ColumnName 0) + If UpdateIndex then Update_Index(TableName, ColumnName, False$, True$) Set_Status(0) Flag = '' Btree.Extract(ColumnName : @VM : SearchValue : @FM, Tablename, DictTableHandle, KeyIDList, 'S', Flag) @@ -1045,3 +1044,4 @@ end service //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + diff --git a/SYSPROG/STPROC/SQL_SERVICES.txt b/SYSPROG/STPROC/SQL_SERVICES.txt index 918797d..938aa85 100644 --- a/SYSPROG/STPROC/SQL_SERVICES.txt +++ b/SYSPROG/STPROC/SQL_SERVICES.txt @@ -3548,10 +3548,10 @@ Service ProcessSQLRequests() GoSub ClearCursors Sentence = 'SELECT ':Tablename:' WITH RESPONSE_DATE EQ "" BY REQUEST_DATE BY REQUEST_TIME' Set_Status(0) - Update_Index(Tablename, 'REQUEST_DATE', 0) - Update_Index(Tablename, 'REQUEST_TIME', 0) - Update_Index(Tablename, 'RESPONSE_DATE', 0) - Update_Index(Tablename, 'RESPONSE_TIME', 0) + Update_Index(Tablename, 'REQUEST_DATE', False$, True$) + Update_Index(Tablename, 'REQUEST_TIME', False$, True$) + Update_Index(Tablename, 'RESPONSE_DATE', False$, True$) + Update_Index(Tablename, 'RESPONSE_TIME', False$, True$) RList(Sentence, TARGET_ACTIVELIST$, '', '', '') EOF = False$ Loop @@ -3640,3 +3640,4 @@ return + diff --git a/SYSPROG/STPROC/TEMP.txt b/SYSPROG/STPROC/TEMP.txt index da8c294..016baeb 100644 --- a/SYSPROG/STPROC/TEMP.txt +++ b/SYSPROG/STPROC/TEMP.txt @@ -1,24 +1,26 @@ Compile Subroutine Temp(dummy) - +Declare Function datetime Debug -Open 'SYSENV' To hSysenv Then - Open 'TEMP_SYSENV' To hNewSysenv Then - Select hSysenv - EOF = 0 - Loop - Readnext Key Else EOF = 1 - Until EOF - //If IndexC(Key, 'SRP', 1) then - Read Rec From hSysenv, Key Then - Write Rec To hNewSysenv, Key Else - Debug - end - End - //end - Repeat - End -End +dt = datetime() + +*Open 'SYSENV' To hSysenv Then +* Open 'TEMP_SYSENV' To hNewSysenv Then +* Select hSysenv +* EOF = 0 +* Loop +* Readnext Key Else EOF = 1 +* Until EOF +* //If IndexC(Key, 'SRP', 1) then +* Read Rec From hSysenv, Key Then +* Write Rec To hNewSysenv, Key Else +* Debug +* end +* End +* //end +* Repeat +* End +*End return