Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* deklaracje wejsciowe */
- DEFINE INPUT PARAMETER inZrodlo AS INTEGER INITIAL 1 NO-UNDO.
- DEFINE INPUT PARAMETER inToksList AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER inSkladnik AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER inNrWyp AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER inWyplataOd AS DATE NO-UNDO.
- DEFINE INPUT PARAMETER inWyplataDo AS DATE NO-UNDO.
- DEFINE INPUT PARAMETER inWyplataZa AS CHARACTER NO-UNDO.
- /* deklaracje wyjsciowe */
- DEF TEMP-TABLE ROW NO-UNDO
- FIELD tokid AS INTEGER
- FIELD grupad AS CHARACTER
- FIELD nazwisko AS CHARACTER
- FIELD nka AS CHARACTER
- FIELD album AS INTEGER
- FIELD alb2 AS CHARACTER
- FIELD roks AS INTEGER
- FIELD nrlisty AS CHARACTER
- FIELD kwota AS DECIMAL
- INDEX iRow nazwisko
- .
- DEFINE OUTPUT PARAMETER TABLE FOR ROW.
- DEFINE OUTPUT PARAMETER suma AS DECIMAL.
- DEF VAR xTota AS DECIMAL INITIAL 0 NO-UNDO.
- {ws_i/tbl_info.i ROW}
- {wd_dsyskg/kg.select.def.i}
- {ws_i/str2date.fnc}
- {ws_i/dsys.get_names.fnc}
- {ws_i/dsys.ret.stcfgname.fnc}
- FUNCTION DO-ASSIGN RETURNS LOGICAL () :
- /****************************************/
- FIND CURRENT DsysTokS NO-LOCK.
- FOR EACH DsysStud NO-LOCK
- OF DsysTokS
- BREAK BY DsysTokS.Name:
- FIND DsysSw NO-LOCK /*tutaj było dodane first i dlatego wyświetlała się wielkość tylko pierwszego rekordu*/
- WHERE DsysSW.Stat = 'N' AND
- CAN-DO(inNrWyp,STRING(DsysSW.NrWyp)) AND
- DsysSW.DataWy >= inWyplataOd AND
- DsysSW.DataWy <= inWyplataDo AND
- DsysSW.StCfg = inSkladnik
- OF DsysTokS
- NO-ERROR.
- IF AVAIL DsysSW THEN DO:
- CREATE ROW.
- ASSIGN
- ROW.grupad = DsysTokS.dgrp
- ROW.nka = DsysToks.NKA
- ROW.album = DsysTokS.Album
- ROW.alb2 = DsysTokS.Alb2
- ROW.nazwisko = DsysTokS.Name
- ROW.roks = DsysToks.RokS
- ROW.nrlisty = DsysSW.NumLP
- ROW.kwota = DsysSW.Kwota
- xTota = xTota + NVL(DsysSW.Kwota,0).
- END.
- END.
- suma = xTota.
- RETURN TRUE.
- END FUNCTION.
- tr:
- DO TRANSACTION:
- IF inZrodlo = 1 THEN DO :
- {wd_dsyskg/kg.select.i &pkgSize = "0"
- &permission = "F0"
- &right = "R"
- &beforeAll = "DEF VAR result AS LOGICAL INITIAL TRUE NO-UNDO."
- &ifNotAssign = "result = FALSE. LEAVE guery-loop."
- &afterAll = "IF NOT result THEN UNDO tr, LEAVE tr."
- }
- END. ELSE
- IF (inZrodlo = 2 OR inZrodlo = 3) AND inToksList <> '' THEN DO:
- IF NOT HAVE-RIGHT(Username, iKodF, 'dsys', 'F0', 'R', FALSE) THEN
- {ws_i/ERROR.i "Brak uprawnienia F0(R) " RETURN}
- DEF VAR z# AS INTEGER INITIAL 0 NO-UNDO.
- DEF VAR currentTokID AS INTEGER INITIAL 0 NO-UNDO.
- REPEAT z# = 1 TO NUM-ENTRIES(inToksList) :
- ASSIGN currentTokID = INTEGER(ENTRY(z#,inToksList)) NO-ERROR.
- {ws_i/is_error.i "UNDO tr, LEAVE tr"}
- FIND FIRST DsysTokS NO-LOCK WHERE DsysTokS.Kodf = iKodf
- AND DsysTokS.TokID = currentTokID
- NO-WAIT NO-ERROR.
- {ws_i/is_error.i "UNDO tr, LEAVE tr"}
- IF AVAILABLE DsysTokS THEN DO:
- IF NOT HAVE-WG-RIGHTS(Username, iKodF, DsysTokS.Conf, DsysTokS.Dgrp, "w") THEN
- {ws_i/ERROR.i "Brak uprawnienia do wydzia\u0142u/grupy" "UNDO tr, LEAVE tr"}
- IF NOT DO-ASSIGN() THEN
- {ws_i/ERROR.i "Nie uda\u0142o si\u0119 zmodyfikowa\u0107 rekordu. " "UNDO tr, LEAVE tr"}
- END.
- END. /* po REPEAT */
- END.
- END.
- {ws_i/LOG.i DSYS}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement