/* */ main: artl.0 = "DOK" artl.1 = "Station" artl.2 = "(X)YL" artl.3 = "Kenner" artl.4 = "Bem. 1" artl.5 = "Bem. 2" artl.6 = "Zeitraum" artl.COUNT = 6 guifile = 'gui/dipedit.gui' path = pragma( 'd' ) if exists("libs:rexxsupport.library") then do if ~show("L","rexxsupport.library") then if ~addlib("rexxsupport.library",0,-30,0) then exit end else exit if exists("libs:rexxreqtools.library") then do if ~show("L","rexxreqtools.library") then if ~addlib("rexxreqtools.library",0,-30) then exit end else exit options results options failat 20 /* signal on syntax signal on failure signal on halt */ /* Check Varexx is loaded if not load it */ if show( 'p', 'VAREXX' ) ~= 1 then do address command "run >NIL: varexx:bin/varexx" address command "WaitForPort VAREXX" launchvarexx = TRUE end else launchvarexx = FALSE address VAREXX 'version' if rc ~= 0 then do say 'This script requires varexx 1.3 or later' exit end if openport("DEDIT") = 0 then do if show( 'p', "DEDIT" ) ~= 1 then do call rtezrequest "Could not open a port.",, "Varexx Error" exit end end 'load 'guifile "DEDIT" edithost = RESULT address value edithost 'spawn DEDIT' listhost = RESULT 'show' /* LOGBOOK'*/ mask.!FILE = "empty" call DiplLoad do forever ok = waitpkt("DEDIT") packet = getpkt("DEDIT") IF packet ~= '00000000'x THEN DO class = GETARG(packet) elem = word(class,1) data = strip(substr(class,length(elem) + 1,length(class))) select when elem = 'CLOSEWINDOW' then leave when elem = 'BENDE' then do leave end when elem = 'BRULEINS' then do call ReadMask z = MakeLine() call RuleInsert z call RuleSave end when elem = 'BDIPINS' then do call ReadMask call DiplInsert end when elem = 'LVDIP' then do mask.!DIPLOM = strip(substr(data,1,99)) mask.!NOETIG = strip(substr(data,100,10)) mask.!FILE = strip(substr(data,150,20)) settext label sDiplom mask.!DIPLOM settext label sDatei mask.!FILE setnum label iNoetig mask.!NOETIG call RuleLoad end otherwise do settext label shint '['elem'] 'data end end end end 'hide unload' address value listhost 'hide unload' CALL CLOSEPORT( "DEDIT" ) IF launchvarexx = TRUE THEN ADDRESS command varexx:bin/vxc exit 0 DiplInsert: mask.!FILE = date("S")||time("S")".DIP" z = mask.!DIPLOM z = overlay(mask.!NOETIG,z,100) z = overlay(mask.!FILE,z,150) setlist label lvdip '"'z'"' select '"'z'"' setlist label lvrule CLEAR settext label sDatei mask.!FILE call DiplSave return RuleInsert: parse arg zeile /* drop ldip. ldip.0 = 0 ldip.COUNT = 0 read label lvdip var ldip if strip(ldip.SELECT) = "" then return name = "data/"strip(substr(ldip.SELECT,100,49)) setlist label lvrule '"'zeile'"' drop ldip. */ name = "data/"mask.!FILE setlist label lvrule '"'zeile'"' return RuleDelete: return RuleGetSelect: return FillMask: return MakeLine: z = "" z = overlay(mask.!ART,z,1) z = overlay(mask.!SART,z,4) z = overlay(mask.!INH,z,14) z = overlay(mask.!MUSS,z,40) z = overlay(mask.!PUNKTE,z,42) return z ReadMask: read label iPunkte mask.!PUNKTE = result read label iNoetig mask.!NOETIG = result read label cart mask.!ART = result mask.!SART = artl.result read label sdiplom mask.!DIPLOM = result read label sinh mask.!INH = result read label cbmuss if result = TRUE then mask.!MUSS = "M" else mask.!MUSS = "-" return DiplSave: name = "data/diplom.dbf" drop ldip. ldip.0 = 0 ldip.COUNT = 0 read label lvdip var ldip ok = open(ddbf,name,"WRITE") if ok then do do icnt = 1 to ldip.COUNT if strip(ldip.icnt) = "" then iterate ok = writeln(ddbf,ldip.icnt) end ok = close(ddbf) end drop ldip. return DiplLoad: name = "data/diplom.dbf" setlist label lvdip CLEAR if open(ddbf,name,"READ") then do do forever if eof(ddbf) then leave z = readln(ddbf) if z = "" then iterate setlist label lvdip '"'z'"' end ok = close(ddbf) end return RuleLoad: read label sdatei name = strip(result) if name = "" then return name = "data/"name setlist label lvrule CLEAR if open(rdbf,name,"READ") then do do forever if eof(rdbf) then leave z = strip(readln(rdbf)) if z = "" then iterate setlist label lvrule '"'z'"' end ok = close(rdbf) end else do call SetHint "Regeldatei "name" nicht gefunden." end return RuleSave: read label sdatei name = strip(result) if name = "" then return name = "data/"name drop lrule. lrule.0 = 0 lrule.COUNT = 0 read label lvrule var lrule if open(rdbf,name,"WRITE") then do do i = 1 to lrule.COUNT ok = writeln(rdbf,lrule.i) end ok = close(rdbf) end drop lrule. return SetHint: procedure parse arg zzzz settext label shint zzzz return /* Error messages */ failure: busy SAY "Error code" rc "-- Line" SIGL SAY EXTERNERROR 'hide unload' CALL CLOSEPORT "DEDIT" IF launchvarexx = TRUE THEN ADDRESS command "varexx:bin/vxc" EXIT syntax: busy SAY "Error" rc "-- Line" SIGL SAY ERRORTEXT( rc ) 'hide unload' CALL CLOSEPORT "DEDIT" IF launchvarexx = TRUE THEN ADDRESS command "varexx:bin/vxc" EXIT halt: busy 'hide unload' CALL CLOSEPORT "DEDIT" IF launchvarexx = TRUE THEN ADDRESS command "varexx:bin/vxc" exit