Advertisement
mnakos

S1Workshop-ContextMenu

Oct 5th, 2017
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. X.INCLUDE('MyLibFile.txt');
  2. var vUSERSCTXMENU = ',' + X.CCCWSSETTINGS.USERSCTXMENU + ','; //Χρήστες που εμφανίζεται το right click menu
  3. var vSALSERIESCONV = ',' + X.CCCWSSETTINGS.SALSERIESCONV + ','; //Σειρές που εκτελείται ο custom μετασχηματισμός
  4. var vUSER = ',' + X.SYS.USER + ',';
  5.  
  6. function ON_CREATE() {
  7.     ChangeContextMenus(); //Αλλαγή των μενού που εμφανίζονται στο δεξί κλικ (browser και lines) ====  ΠΡΟΣΟΧΗ ΟΡΙΖΕΤΑΙ ΜΟΝΟ ΣΤΟ ON_CREATE ====
  8. }
  9.  
  10. function ChangeContextMenus() {
  11.     //Στα internal objects το StringList του Browser έχει όνομα BRMENU και του grid GRIDMENU.
  12.     //Στα παραστατικά πωλήσεων, αγορών και αποθήκης το grid των υπηρεσιών είναι SRVGRIDMENU και των Παγίων ASSGRIDMENU
  13.  
  14.     //Μενού browser
  15.     if (vUSERSCTXMENU.indexOf(vUSER) > -1) {
  16.         var vBrowserMenu = X.EXEC('CODE:ModuleIntf.FindXStrings', X.MODULE, 'BRMENU');
  17.         X.EXEC('CODE:PiLib.TStringsSetItem', vBrowserMenu, 0, '201707191=1;Μετασχηματισμός SoftOne / Custom Μετασχηματισμός');        //Αλλαγή υπάρχουσας τιμής StringList
  18.    
  19.         //Προσθήκη νέων τιμών σε StringList
  20.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '-=-'); 
  21.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707192=1;Οικονομικά στοιχεία πελάτη');  
  22.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707193=1;Run DLL Form');
  23.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '-=-');     
  24.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709281=1;Εργασία 1?Custom Εργασίες');
  25.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709282=1;Εργασία 2?Custom Εργασίες');
  26.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201709283=1;Εργασία 3?Custom Εργασίες');
  27.         X.EXEC('CODE:PiLib.TStringsAdd', vBrowserMenu, '201707194=3;Διαθεσιμότητα είδους');     
  28.        
  29.         X.EXEC('CODE:SysRequest.RefreshPopupMenu', X.MODULE, 'BRMENU', 1); //Refresh pop up menu
  30.     }
  31.  
  32.     //Μενού γραμμών παραστατικού
  33.     var vGridMenu = X.EXEC('CODE:ModuleIntf.FindXStrings', X.MODULE, 'GRIDMENU');
  34.     X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '-=-');
  35.     X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '201707195=Σχετικές καμπάνιες');  
  36.     X.EXEC('CODE:PiLib.TStringsAdd', vGridMenu, '201707196=Διαθέσιμες παρτίδες');
  37.    
  38.     X.EXEC('CODE:SysRequest.RefreshPopupMenu', X.MODULE, 'GRIDMENU', 0);
  39.    
  40.     //a = X.EXEC('CODE:PiLib.TStringsGetText', vGridMenu);
  41.     //X.WARNING(a);
  42.     //a = X.EXEC('CODE:PiLib.TStringsGetText', vBrowserMenu);
  43. }
  44.  
  45. function EXECCOMMAND(cmd) {
  46.     if (cmd == 201707191) { //Δεξί κλικ - Μετασχηματισμός στο ευρετήριο
  47.         var vSelRecs;
  48.         vSelRecs = X.GETPARAM('SELRECS');
  49.         if (vSelRecs == '') {
  50.             X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
  51.             return;
  52.         }      
  53.         vSelRecs = vSelRecs.replace(/\?/g,",");
  54.         var vds = X.GETSQLDATASET('SELECT DISTINCT SERIES FROM FINDOC WHERE '+ vSelRecs,null);
  55.  
  56.         if (vds.RECORDCOUNT > 1) {
  57.             X.EXCEPTION ('Εχετε επιλέξει παραστατικά με διαφορετικές σειρές!');
  58.         }
  59.         else {
  60.             var vSeries = ',' + vds.SERIES + ',';
  61.             if (vSALSERIESCONV.indexOf(vSeries) > -1) {
  62.                 X.EXEC('XCMD:FORMIMPORT,SCRIPTNAME:SalesCustomConv');
  63.             }
  64.             else {
  65.                 X.EXEC('XCMD:CONVERTDLG,SOSOURCE:1351');
  66.             }
  67.         }
  68.     }
  69.     if (cmd == 201707192) {//Δεξί κλικ σε browser - Οικονομικά στοιχεία πελάτη
  70.         var vSelRecs;
  71.         vSelRecs = X.GETPARAM('SELRECS');
  72.         if (vSelRecs == '') {
  73.             X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
  74.             return;
  75.         }              
  76.         vSelRecs = vSelRecs.replace(/\?/g,",");
  77.         var vds = X.GETSQLDATASET('SELECT DISTINCT TRDR FROM FINDOC WHERE '+ vSelRecs,null);
  78.         if (vds.RECORDCOUNT > 1) {
  79.             X.WARNING('Εχετε επιλέξει περισσότερους από έναν πελάτες!');
  80.             return;
  81.         }
  82.         else if (vds.RECORDCOUNT == 1) {
  83.             X.EXEC('XCMD:CUSTOMER[FORM=Οικονομικά στοιχεία,AUTOLOCATE='+vds.TRDR+']');
  84.         }
  85.     }  
  86.     if (cmd == 201707194) {//Δεξί κλικ σε browser - Γραμμές ειδών
  87.         var vSelRecs;
  88.         vSelRecs = X.GETPARAM('SELRECS');
  89.         X.WARNING(vSelRecs);
  90.         if (vSelRecs == '') {
  91.             X.WARNING ('Παρακαλώ επιλέξτε παραστατικά!');
  92.             return;
  93.         }              
  94.         vSelRecs = vSelRecs.replace(/\?/g,",");
  95.         var vds = X.GETSQLDATASET('SELECT DISTINCT MTRL FROM FINDOC INNER JOIN MTRLINES ON FINDOC.FINDOC=MTRLINES.FINDOC WHERE '+ vSelRecs,null);
  96.         if (vds.RECORDCOUNT > 1) {
  97.             X.WARNING('Εχετε επιλέξει περισσότερα από ένα είδη!');
  98.             return;
  99.         }
  100.         else if (vds.RECORDCOUNT == 1) {
  101.             X.EXEC('XCMD:ITEM[FORM=Διαθεσιμότητα,AUTOLOCATE='+vds.MTRL+']');
  102.         }
  103.     }      
  104.    
  105.     if (cmd == 201707195) {
  106.         X.WARNING('Το είδος '+ITELINES.X_NAME+ ' δεν υπάρχει σε καμπάνιες!');
  107.     }
  108.     if (cmd == 201707196) {
  109.         if (ITELINES.MTRL > 0) {
  110.             X.EXEC('XCMD:ITEM[FORM=Διαθέσιμες παρτίδες,AUTOLOCATE='+ITELINES.MTRL+']');
  111.         }
  112.     }  
  113.     if (cmd == 201709281)
  114.         MyMessage(16, 'Προσοχή', 'Custom Εργασία 1');
  115.     if (cmd == 201709282)
  116.         MyMessage(64, 'Πληροφορία', 'Custom Εργασία 2');
  117.     if (cmd == 201709283) {
  118.         var answer = MyMessage(4, 'Ερώτηση', 'Custom Εργασία 3');
  119.         if (answer == 6)
  120.             X.WARNING('Yes pressed');
  121.         else if (answer == 7)
  122.             X.WARNING('No pressed');           
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement