Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* deklaracje wejsciowe */
  2. DEFINE INPUT PARAMETER inZrodlo         AS INTEGER INITIAL 1 NO-UNDO.
  3. DEFINE INPUT PARAMETER inToksList             AS CHARACTER NO-UNDO.
  4. DEFINE INPUT PARAMETER inSkladnik           AS CHARACTER NO-UNDO.
  5. DEFINE INPUT PARAMETER inNrWyp                AS CHARACTER NO-UNDO.
  6. DEFINE INPUT PARAMETER inWyplataOd          AS DATE NO-UNDO.
  7. DEFINE INPUT PARAMETER inWyplataDo          AS DATE NO-UNDO.
  8. DEFINE INPUT PARAMETER inWyplataZa          AS CHARACTER NO-UNDO.
  9.  
  10. /* deklaracje wyjsciowe */
  11. DEF TEMP-TABLE ROW NO-UNDO
  12.     FIELD tokid                  AS INTEGER
  13.     FIELD grupad                  AS CHARACTER
  14.     FIELD nazwisko                  AS CHARACTER
  15.     FIELD nka                  AS CHARACTER
  16.     FIELD album                  AS INTEGER
  17.     FIELD alb2                  AS CHARACTER
  18.     FIELD roks                  AS INTEGER
  19.     FIELD nrlisty                  AS CHARACTER
  20.     FIELD kwota          AS DECIMAL  
  21. INDEX iRow nazwisko
  22. .
  23.  
  24. DEFINE OUTPUT PARAMETER TABLE FOR ROW.
  25. DEFINE OUTPUT PARAMETER suma      AS DECIMAL.
  26.  
  27. DEF VAR xTota      AS DECIMAL INITIAL 0 NO-UNDO.
  28. {ws_i/tbl_info.i ROW}
  29. {wd_dsyskg/kg.select.def.i}
  30. {ws_i/str2date.fnc}
  31. {ws_i/dsys.get_names.fnc}
  32. {ws_i/dsys.ret.stcfgname.fnc}
  33.  
  34.  
  35. FUNCTION DO-ASSIGN RETURNS LOGICAL () :
  36. /****************************************/
  37. FIND CURRENT DsysTokS NO-LOCK.
  38.     FOR EACH DsysStud NO-LOCK
  39.                   OF    DsysTokS
  40.                   BREAK BY DsysTokS.Name:
  41.  
  42.      FIND DsysSw NO-LOCK /*tutaj było dodane first i dlatego wyświetlała się wielkość tylko pierwszego rekordu*/
  43.                      WHERE  DsysSW.Stat  =  'N'   AND
  44.  
  45.        CAN-DO(inNrWyp,STRING(DsysSW.NrWyp))            AND
  46.  
  47.                             DsysSW.DataWy >= inWyplataOd  AND
  48.                             DsysSW.DataWy <= inWyplataDo  AND
  49.                             DsysSW.StCfg  =  inSkladnik
  50.  
  51.  
  52.                      OF        DsysTokS
  53.                      NO-ERROR.
  54.    
  55.        IF AVAIL DsysSW THEN DO:
  56.         CREATE ROW.
  57.         ASSIGN
  58.             ROW.grupad = DsysTokS.dgrp
  59.             ROW.nka = DsysToks.NKA
  60.             ROW.album = DsysTokS.Album
  61.             ROW.alb2 = DsysTokS.Alb2
  62.             ROW.nazwisko = DsysTokS.Name
  63.             ROW.roks = DsysToks.RokS
  64.             ROW.nrlisty = DsysSW.NumLP
  65.             ROW.kwota = DsysSW.Kwota
  66.  
  67.  
  68.             xTota = xTota + NVL(DsysSW.Kwota,0).
  69.         END.    
  70.     END.
  71.     suma = xTota.
  72.  
  73.    RETURN TRUE.
  74. END FUNCTION.
  75.  
  76. tr:
  77. DO TRANSACTION:
  78.  
  79.    IF inZrodlo = 1 THEN DO :
  80.       {wd_dsyskg/kg.select.i  &pkgSize       = "0"
  81.                               &permission    = "F0"
  82.                               &right         = "R"
  83.                               &beforeAll     = "DEF VAR result AS LOGICAL INITIAL TRUE NO-UNDO."
  84.                               &ifNotAssign   = "result = FALSE. LEAVE guery-loop."
  85.                               &afterAll      = "IF NOT result THEN UNDO tr, LEAVE tr."
  86.       }  
  87.    END. ELSE
  88.  
  89.    IF (inZrodlo = 2 OR inZrodlo = 3) AND inToksList <> '' THEN DO:
  90.  
  91.       IF NOT HAVE-RIGHT(Username, iKodF, 'dsys', 'F0', 'R', FALSE) THEN
  92.          {ws_i/ERROR.i "Brak uprawnienia F0(R) " RETURN}
  93.  
  94.       DEF VAR z# AS INTEGER INITIAL 0 NO-UNDO.
  95.       DEF VAR currentTokID AS INTEGER INITIAL 0 NO-UNDO.
  96.      
  97.       REPEAT z# = 1 TO NUM-ENTRIES(inToksList) :
  98.        
  99.          ASSIGN currentTokID = INTEGER(ENTRY(z#,inToksList)) NO-ERROR.
  100.          {ws_i/is_error.i "UNDO tr, LEAVE tr"}
  101.  
  102.          FIND FIRST DsysTokS NO-LOCK WHERE DsysTokS.Kodf = iKodf
  103.                                        AND DsysTokS.TokID = currentTokID
  104.                                        NO-WAIT NO-ERROR.
  105.          {ws_i/is_error.i "UNDO tr, LEAVE tr"}
  106.  
  107.          IF AVAILABLE DsysTokS THEN DO:
  108.              
  109.             IF NOT HAVE-WG-RIGHTS(Username, iKodF, DsysTokS.Conf, DsysTokS.Dgrp, "w") THEN
  110.                {ws_i/ERROR.i "Brak uprawnienia do wydzia\u0142u/grupy" "UNDO tr, LEAVE tr"}
  111.            
  112.             IF NOT DO-ASSIGN() THEN
  113.                {ws_i/ERROR.i "Nie uda\u0142o si\u0119 zmodyfikowa\u0107 rekordu. " "UNDO tr, LEAVE tr"}
  114.  
  115.          END.
  116.          
  117.       END. /* po REPEAT */
  118.  
  119.    END.
  120. END.
  121.  
  122. {ws_i/LOG.i DSYS}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement