/* $VER: MT-RechnungII 2.27 (01.11.95) ******************************************************************/ /* Rechnungsprogramm für meine Bild- und Videobearbeitungsfirma */ /* MT Graphic & Design */ /******************************************************************/ /* Autor: Manfred Tremmel */ /* Programmiersprache: ARexx */ /******************************************************************/ IF(~show('l','rexxsupport.library')) THEN CALL addlib('rexxsupport.library',0,-30,0); IF(~show('l','apig.library')) THEN CALL addlib('apig.library',0,-30,0); IF(~show('l','rexxreqtools.library')) THEN CALL addlib('rexxreqtools.library',0,-30,0); CALL SET_APIG_GLOBALS(); i = allocmem(346); x = getscreendata(i,346,WBENCHSCREEN,0); SCREEN_X = GETVALUE(i,68,2,'n'); SCREEN_Y = GETVALUE(i,70,2,'n'); Font_X = GETVALUE(i,145,1,'n'); Font_Y = GETVALUE(i,143,1,'n'); call freemem(i,346); i = allocmem(232); x = getprefs(i,232); B_laenge = GETVALUE(i,178,2,'n'); call freemem(i,232); winidcmp = GADGETUP+VANILLAKEY+CLOSEWINDOW; winflags = ACTIVATE+RMBTRAP+WINDOWCLOSE+WINDOWDRAG+GIMMEZEROZERO+WINDOWDEPTH; wintitle = "MT-Rechnung"; Win_X1 = 29 * Font_X; Win_Y1 = 18 * Font_Y; wintitle2 = "MT-Rechnung - Rechnung erstellen"; Win_X2 = 80 * Font_X; Win_Y2 = 35 * Font_Y; IF SCREEN_Y < Win_Y2 THEN do; Win_Y2 = 32 * Font_Y; I_max = 11; end; ELSE I_max = 13; wintitle3 = "MT-Rechnung - Drucken"; Win_X3 = 45 * Font_X; Win_Y3 = Win_Y1; wintitle4 = "MT-Rechnung - Adressen verwalten"; Win_X4 = Win_X2; Win_Y4 = 32 * Font_Y; wintitle5 = "MT-Rechnung - Artikel verwalten"; Win_X5 = Win_X2; Win_Y5 = 14 * Font_Y; wintitle6 = "MT-Rechnung - Prefs"; Win_X6 = 23 * Font_X; Win_Y6 = 19 * Font_Y; LF = '0a'x; FF = '0c'x; CR = '0d'x; ReqCent = "rt_reqpos=reqpos_centerscr"; IF SCREEN_X < Win_X2 | SCREEN_Y < Win_Y2 THEN rtezrequest("Workbench Screen muß mindestens" LF ||, Win_X2 "x" Win_Y2 "Bildpunkte groß sein!",,,ReqCent); ELSE DO; datum = UP_Datum(); /* Ermittlung des Datums*/ CALL UP_Kund_lesen; /* Einlesen der Kunden */ CALL UP_Artikel_lesen; /* Einlesen der Artikel */ CALL UP_Rechnung_lesen; /* Einlesen der Rechn. */ CALL UP_Prefs_lesen; /* Einlesen der Prefs */ call DefineGads1; DefGads2 = 0; DefGads3 = 0; DefGads4 = 0; DefGads5 = 0; DefGads6 = 0; portname = "MT_Rechnung"; p = openport(portname); WaitForPort portname; w1 = OPENWINDOW(portname,(Screen_X-Win_X1)/2,(Screen_Y-Win_Y1)/2,Win_X1,Win_Y1,0,1,winidcmp,winflags, ,wintitle,scr,0,null(),null(),conxgad); rpw1 = GETWINDOWRASTPORT(w1); call GT_REFRESHWINDOW(w1,null()); extime = 0; apen = 1; DO WHILE extime = 0; x = waitpkt(portname); DO FOREVER; msg = getpkt(portname); IF msg = '0000 0000'x THEN LEAVE; msgclass = getarg(msg,0); msgcode = getarg(msg,1); msgid = getarg(msg,9); x = reply(msg,0); SELECT WHEN msgid = 10 | msgcode = 65 | msgcode = 97 THEN CALL UP_Adressen; WHEN msgid = 12 | msgcode = 84 | msgcode = 116 THEN CALL UP_Artikel; WHEN msgid = 13 | msgcode = 82 | msgcode = 114 THEN CALL UP_Rechnung; WHEN msgid = 14 | msgcode = 68 | msgcode = 100 THEN CALL UP_Drucken; WHEN msgid = 15 | msgcode = 80 | msgcode = 112 THEN CALL UP_Prefs; WHEN msgid = 17 | msgclass = CLOSEWINDOW | msgcode = 69 | msgcode = 101 | msgcode = 27 THEN extime = rtezrequest("Programm wirklich beenden?","Ende|Weitermachen",,ReqCent); OTHERWISE NOP; END; END; END; CALL CLOSEWINDOW(w1); CALL FREEGADGETS(conxgad); CALL FREETHIS(newgadx); CALL FREEVEC(GPoint); IF DefGads2 > 0 THEN DO; IF DefGads2 > 1 THEN CALL UP_Rechnung_schreiben; CALL FREEGADGETS(conxgad2); CALL FREETHIS(newgadx2); CALL FREEVEC(GPoint2); END; IF DefGads3 > 0 THEN DO; CALL FREEGADGETS(conxgad3); CALL FREETHIS(newgadx3); CALL FREEVEC(GPoint3); Call FREETHIS(mylabels); END; IF DefGads4 > 0 THEN DO; IF DefGads4 > 1 THEN CALL UP_Kund_schreiben; CALL FREEGADGETS(conxgad4); CALL FREETHIS(newgadx4); CALL FREEVEC(GPoint4); CALL FREETHIS(Kundlabels); END; IF DefGads5 > 0 THEN DO; IF DefGads5 > 1 THEN CALL UP_Artikel_schreiben; CALL FREEGADGETS(conxgad5); CALL FREETHIS(newgadx5); CALL FREEVEC(GPoint5); END; IF DefGads6 > 0 THEN DO; IF DefGads6 > 1 THEN CALL UP_Prefs_schreiben; CALL FREEGADGETS(conxgad6); CALL FREETHIS(newgadx6); CALL FREEVEC(GPoint6); END; CALL FREEVISUALINFO(scrvinfo); CALL UNLOCKPUBSCREEN(null(),scr); END; CALL remlib('rexxreqtools.library'); CALL remlib('apig.library'); CALL remlib('rexxsupport.library'); address COMMAND 'avail >NIL: flush' EXIT; /* Unterprogramm zum Einlesen der Einstellungen (Prefs.dat) */ UP_Prefs_lesen: Prefs_datei = "Prefs.dat"; IF OPEN(P_dat,Prefs_datei,'read') THEN DO; MWSt_Satz.1 = READLN(P_dat); MWSt_Satz.2 = READLN(P_dat); Druckdatei = READLN(P_dat); Druckport = READLN(P_dat); D_XAbst = READLN(P_dat); D_YAbst = READLN(P_dat); CLOSE(P_dat); END; ELSE DO; MWSt_Satz.1 = 15.0; MWSt_Satz.2 = 7.0; Druckdatei = "Drucker/PrefPrinter"; Druckport = "PRT:"; D_XAbst = 1; D_YAbst = 1; END; Call UP_Druckdaten_lesen; MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1); MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2); MWSt_Rech.3 = 0; RETURN; /* Unterprogramm zum Schreiben der Einstellungen (Prefs) */ UP_Prefs_schreiben: IF OPEN(P_dat,Prefs_datei,'write') THEN DO; Schr_Text = MWSt_Satz.1||LF||MWSt_Satz.2||LF||Druckdatei||LF||Druckport||LF||D_XAbst||LF||D_YAbst||LF; WRITECH(P_dat,Schr_Text); CLOSE(P_dat); END; RETURN; /* Unterprogramm zum Einlesen Druckerspezifischer Werte */ UP_Druckdaten_lesen: IF OPEN(D_dat,Druckdatei,'read') THEN DO; D_Z_kl = READLN(D_dat); D_Z_gr = READLN(D_dat); D_Schr = READLN(D_dat); D_SStand = READLN(D_dat); D_SGross = READLN(D_dat); D_SKlein = READLN(D_dat); D_Br10 = READLN(D_dat); D_Br12 = READLN(D_dat); D_Br15 = READLN(D_dat); D_PEin = READLN(D_dat); D_PAus = READLN(D_dat); D_UEin = READLN(D_dat); D_UAus = READLN(D_dat); D_KEin = READLN(D_dat); D_KAus = READLN(D_dat); D_FEin = READLN(D_dat); D_FAus = READLN(D_dat); D_ZNorm = READLN(D_dat); D_ZZAbst = READLN(D_dat); D_CSchw = READLN(D_dat); D_CMag = READLN(D_dat); D_CZyan = READLN(D_dat); D_CViol = READLN(D_dat); D_CGelb = READLN(D_dat); D_CRot = READLN(D_dat); D_CGruen = READLN(D_dat); D_Rueck = READLN(D_dat); D_Ende = READLN(D_dat); CLOSE(D_dat); END; RETURN; /* Unterprogramm zum Einlesen der Kundenliste (Kunden.dat) */ UP_Kund_lesen: K_datei = "Kunden.dat"; K_max = 0; IF OPEN(K_dat,K_datei,'read') THEN DO; FI_VorName = READLN(K_dat); FI_Name = READLN(K_dat); FI_Strasse = READLN(K_dat); FI_PLZ = READLN(K_dat); FI_ORT = READLN(K_dat); FI_Land = READLN(K_dat); FI_GebTag = READLN(K_dat); FI_Rabatt = READLN(K_dat); FI_Tel = READLN(K_dat); FI_Fax = READLN(K_dat); FI_Dfue = READLN(K_dat); FI_EMail1 = READLN(K_dat); FI_EMail2 = READLN(K_dat); FI_EMail3 = READLN(K_dat); FI_Anrede = READLN(K_dat); FI_BAnr = READLN(K_dat); FI_Komm = READLN(K_dat); FI_BLZ = READLN(K_dat); FI_BankBez = READLN(K_dat); FI_BankKurz = READLN(K_dat); FI_Konto = READLN(K_dat); DO forever; K_max = K_max + 1; i = right(("000000" || K_max),6); KD_VorName.i = READLN(K_dat); IF EOF(K_dat) THEN LEAVE; KD_Name.i = READLN(K_dat); KD_Strasse.i = READLN(K_dat); KD_PLZ.i = READLN(K_dat); KD_ORT.i = READLN(K_dat); KD_Land.i = READLN(K_dat); KD_GebTag.i = READLN(K_dat); KD_Rabatt.i = READLN(K_dat); KD_Tel.i = READLN(K_dat); KD_Fax.i = READLN(K_dat); KD_Dfue.i = READLN(K_dat); KD_EMail1.i = READLN(K_dat); KD_EMail2.i = READLN(K_dat); KD_EMail3.i = READLN(K_dat); KD_Anrede.i = READLN(K_dat); KD_BAnr.i = READLN(K_dat); KD_Komm.i = READLN(K_dat); KD_BLZ.i = READLN(K_dat); KD_BankBez.i = READLN(K_dat); KD_BankKurz.i = READLN(K_dat); KD_Konto.i = READLN(K_dat); END; CLOSE(K_dat); END; ELSE K_max = 1; CALL UP_K_max_init; RETURN; UP_K_max_init: i = right(("000000" || K_max),6); K_max = i; KD_VorName.i = ""; KD_Name.i = ""; KD_Strasse.i = ""; KD_PLZ.i = ""; KD_ORT.i = ""; KD_Land.i = ""; KD_GebTag.i = ""; KD_Rabatt.i = ""; KD_Tel.i = ""; KD_Fax.i = ""; KD_Dfue.i = ""; KD_EMail1.i = ""; KD_EMail2.i = ""; KD_EMail3.i = ""; KD_Anrede.i = ""; KD_BAnr.i = ""; KD_Komm.i = ""; KD_BLZ.i = ""; KD_BankBez.i = ""; KD_BankKurz.i = ""; KD_Konto.i = ""; RETURN; /* Unterprogramm zum schreiben der Kundenliste (Kunden.dat) */ UP_Kund_schreiben: IF OPEN(K_dat,K_datei,'write') THEN DO; Schr_Text = FI_VorName||LF||FI_Name||LF||FI_Strasse||LF||FI_PLZ||LF||FI_Ort||LF||FI_Land||LF||FI_GebTag||LF||FI_Rabatt||LF||FI_Tel||LF; Schr_Text = Schr_Text||FI_Fax||LF||FI_Dfue||LF||FI_EMail1||LF||FI_EMail2||LF||FI_EMail3||LF||FI_Anrede||LF||FI_BAnr||LF||FI_Komm||LF; Schr_Text = Schr_Text||FI_BLZ||LF||FI_BankBez||LF||FI_BankKurz||LF||FI_Konto||LF; WRITECH(K_dat,Schr_Text); DO k = 1 to (K_max - 1); i = right(("000000" || k),6); Schr_Text = KD_VorName.i||LF||KD_Name.i||LF||KD_Strasse.i||LF||KD_PLZ.i||LF||KD_Ort.i||LF||KD_Land.i||LF||KD_GebTag.i||LF; Schr_Text = Schr_Text||KD_Rabatt.i||LF||KD_Tel.i||LF||KD_Fax.i||LF||KD_Dfue.i||LF||KD_EMail1.i||LF||KD_EMail2.i||LF||KD_EMail3.i||LF; Schr_Text = Schr_Text||KD_Anrede.i||LF||KD_BAnr.i||LF||KD_Komm.i||LF||KD_BLZ.i||LF||KD_BankBez.i||LF||KD_BankKurz.i||LF||KD_Konto.i||LF; WRITECH(K_dat,Schr_Text); END; CLOSE(K_dat); END; RETURN; /* Unterprogramm zum Einlesen der Artikelliste (Artikel.dat) */ UP_Artikel_lesen: A_datei = "Artikel.dat" A_max = 0; IF OPEN(A_dat,A_datei,'read') THEN DO forever; A_max = A_max + 1; i = right(("000000" || A_max),6); AR_ArtBez.i = READLN(A_dat); IF EOF(A_dat) THEN LEAVE; AR_ArtPreis.i = READLN(A_dat); AR_ArtBuch.i = READLN(A_dat); AR_ArtMWST.i = READLN(A_dat); END; ELSE A_max = 1; CLOSE(A_dat); CALL UP_A_max_init; RETURN; UP_A_max_init: i = right(("000000" || A_max),6); A_max = i; AR_ArtBez.i = ""; AR_ArtPreis.i = ""; AR_ArtBuch.i = ""; AR_ArtMWST.i = ""; Return; /* Unterprogramm zum schreiben der Artikelliste (Artikel.dat) */ UP_Artikel_schreiben: IF OPEN(A_dat,A_datei,'write') THEN DO k = 1 to (A_max - 1); i = right(("000000" || k),6); Schr_Text = AR_ArtBez.i ||LF|| AR_ArtPreis.i ||LF|| AR_ArtBuch.i ||LF|| AR_ArtMWSt.i ||LF; WRITECH(A_dat,Schr_Text); END; CLOSE(A_dat); RETURN; /* Unterprogramm zum Einlesen der Rechnungsliste (Rechnung.dat) */ UP_Rechnung_lesen: R_datei = "Rechnung.dat" R_max = 0; IF OPEN(R_dat,R_datei,'read') THEN DO forever; R_max = R_max + 1; i = right(("000000" || R_max),6); RE_Kunde.i = READLN(R_dat); IF EOF(R_dat) THEN LEAVE; RE_Datum.i = READLN(R_dat); DO j = 1 to 13; RE_Art.j.i = READLN(R_dat); RE_Anz.j.i = READLN(R_dat); END; RE_Mahnung.i = READLN(R_dat); END; ELSE R_max = 1; CLOSE(R_dat); CALL UP_Rech_Max_init; RETURN; UP_Rech_Max_init: i = right(("000000" || R_max),6); R_max = i; RE_Kunde.i = ""; RE_Datum.i = datum; DO j = 1 to 13; RE_Art.j.i = ""; RE_Anz.j.i = ""; END; RE_Mahnung.i = ""; RETURN /* Unterprogramm zum schreiben der Rechnungsliste (Rechnung.dat) */ UP_Rechnung_schreiben: IF OPEN(R_dat,R_datei,'write') THEN DO k = 1 to (R_max - 1); i = right(("000000" || k),6); Schr_Text = RE_Kunde.i||LF||RE_Datum.i||LF; DO j = 1 to 13; Schr_Text = Schr_Text||RE_Art.j.i||LF||RE_Anz.j.i||LF; END; Schr_Text = Schr_Text||RE_Mahnung.i||LF; WRITECH(R_dat,Schr_Text); END; CLOSE(R_dat); RETURN; DefineGads1: scr = LOCKPUBSCREEN("Workbench"); scrvinfo = GETVISUALINFO(scr); scrfont = GETVALUE(scr,40,4,'p'); GPoint = ALLOCVEC(4,MEMF_CLEAR); conxgad = CREATECONTEXT(GPoint); PreGad = conxgad; newgadx = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,26*Font_X,1.5*Font_Y,"Adressverwaltung",PLACETEXT_IN,10,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Artikelverwaltung",PLACETEXT_IN,12,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Rechnungsverwaltung",PLACETEXT_IN,13,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,7*Font_Y,26*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,14,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); call SETNEWGADGET(newgadx,scrvinfo,scrfont,Font_X,9*Font_Y,26*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,15,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); call SETNEWGADGET(newgadx,scrvinfo,scrfont,7*Font_X,14*Font_Y,15*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null()); PreGad = CREATEGADGET(BUTTON_KIND,PreGad,newgadx,TAG_DONE,0); RETURN; DefineGads2: GPoint2 = ALLOCVEC(4,MEMF_CLEAR); conxgad2 = CREATECONTEXT(GPoint2); PreGad2 = conxgad2; newgadx2 = MAKENEWGADGET(scrvinfo,scrfont,Font_X,Font_Y,2*Font_X,1.5*Font_Y,"K",PLACETEXT_IN,10,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14*Font_X,Font_Y,10*Font_X,1.5*Font_Y,"Kundennr:",PLACETEXT_LEFT,11,null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,35*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Vorname:",PLACETEXT_LEFT,12,null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,60*Font_X,Font_Y,18*Font_X,1.5*Font_Y,"Name:",PLACETEXT_LEFT,13,null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,7*Font_X,3*Font_Y,7*Font_X,1.5*Font_Y,"PLZ:",PLACETEXT_LEFT,14,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,21*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Ort:",PLACETEXT_LEFT,15,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,3*Font_Y,24*Font_X,1.5*Font_Y,"Straße:",PLACETEXT_LEFT,16,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); DO I = 1 TO I_max; CALL SETNEWGADGET(newgadx2,scrvinfo,scrfont,1.5*Font_X,(1.7*i+4)*Font_Y,2*Font_X,1.5*Font_Y,"A",PLACETEXT_IN,10+(10*i),null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,5*Font_X,(1.7*i+4)*Font_Y,9*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+1),null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,14.5*Font_X,(1.7*i+4)*Font_Y,7.4*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+2),null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,10,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,22*Font_X,(1.7*i+4)*Font_Y,31.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+3),null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,54*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+4),null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*i+4)*Font_Y,11*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,10+(10*i+5),null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); END; call SETNEWGADGET(newgadx2,scrvinfo,scrfont,8.5*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Datum:",PLACETEXT_LEFT,150,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,28.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"Rabatt:",PLACETEXT_LEFT,151,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,45.75*Font_X,(1.7*I_max+6)*Font_Y,10*Font_X,1.5*Font_Y,"MWSt:",PLACETEXT_LEFT,152,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,66*Font_X,(1.7*I_max+6)*Font_Y,11*Font_X,1.5*Font_Y,"Endsumme:",PLACETEXT_LEFT,153,null()); PreGad2 = CREATEGADGET(TEXT_KIND,PreGad2,newgadx2,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,12*Font_X,(1.7*I_max+9)*Font_Y,10*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_LEFT,160,null()); PreGad2 = CREATEGADGET(STRING_KIND,PreGad2,newgadx2,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,33*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,">",PLACETEXT_IN,161,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,24*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,162,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,42.5*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,163,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,52*Font_X,(1.7*I_max+9)*Font_Y,8*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,164,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); call SETNEWGADGET(newgadx2,scrvinfo,scrfont,61*Font_X,(1.7*I_max+9)*Font_Y,16*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,165,null()); PreGad2 = CREATEGADGET(BUTTON_KIND,PreGad2,newgadx2,TAG_DONE,0); RETURN; DefineGads3: GPoint3 = ALLOCVEC(4,MEMF_CLEAR); conxgad3 = CREATECONTEXT(GPoint3); PreGad3 = conxgad3; mylabels = make_labels(); newgadx3 = MAKENEWGADGET(scrvinfo,scrfont,1*Font_X,2*Font_Y,12*Font_X,1.5*Font_Y,"Rechnung:",PLACETEXT_ABOVE,10,null()); PreGad3 = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,6*Font_Y,12*Font_X,1.5*Font_Y,"Kunde:",PLACETEXT_ABOVE,11,null()); PreGad3 = CREATEGADGET(STRING_KIND,PreGad3,newgadx3,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,9.5*Font_Y,12*Font_X,1.5*Font_Y,"Drucken ->",PLACETEXT_ABOVE,12,null()); PreGad3 = CREATEGADGET(CYCLE_KIND,PreGad3,newgadx3,GTCY_LABELS,mylabels,GTCY_Active,0,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,12*Font_Y,12*Font_X,1.5*Font_Y,"Prefs",PLACETEXT_IN,13,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,1*Font_X,14.5*Font_Y,12*Font_X,1.5*Font_Y,"Verz.",PLACETEXT_IN,14,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Rechnung",PLACETEXT_IN,15,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Paketkarte",PLACETEXT_IN,16,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,5*Font_Y,12.5*Font_X,1.5*Font_Y,"Zahlschein",PLACETEXT_IN,17,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,7*Font_Y,12.5*Font_X,1.5*Font_Y,"Mahnung",PLACETEXT_IN,18,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,9*Font_Y,12.5*Font_X,1.5*Font_Y,"Etikett",PLACETEXT_IN,19,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,11*Font_Y,12.5*Font_X,1.5*Font_Y,"Umschlag",PLACETEXT_IN,20,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,15.5*Font_X,13*Font_Y,12.5*Font_X,1.5*Font_Y,"Art. Liste",PLACETEXT_IN,21,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,Font_Y,12.5*Font_X,1.5*Font_Y,"Adressliste",PLACETEXT_IN,22,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); call SETNEWGADGET(newgadx3,scrvinfo,scrfont,30*Font_X,3*Font_Y,12.5*Font_X,1.5*Font_Y,"Umsatzliste",PLACETEXT_IN,23,null()); PreGad3 = CREATEGADGET(BUTTON_KIND,PreGad3,newgadx3,TAG_DONE,0); RETURN; make_labels: ltxt.1 = "Drucker"; ltxt.2 = "Datei"; mlabels = MAKEPOINTER(0,0,12,MEMF_CLEAR); DO x = 1 to 2; lbuf = MAKEPOINTER(mlabels,0,length(ltxt.x)+2,MEMF_CLEAR); CALL export(lbuf,ltxt.x); CALL SETVALUE(mlabels,(x-1)*4,4,'p',lbuf); END; RETURN mlabels; DefineGads4: GPoint4 = ALLOCVEC(4,MEMF_CLEAR); conxgad4 = CREATECONTEXT(GPoint4); PreGad4 = conxgad4; Kundlabels = make_labels2(); newgadx4 = MAKENEWGADGET(scrvinfo,scrfont,12*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Vorname :",PLACETEXT_LEFT,10,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,1*Font_Y,26*Font_X,1.5*Font_Y,"Name :",PLACETEXT_LEFT,11,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,3*Font_Y,26*Font_X,1.5*Font_Y,"Straße :",PLACETEXT_LEFT,12,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,3*Font_Y,8*Font_X,1.5*Font_Y,"PLZ :",PLACETEXT_LEFT,13,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,5,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Ort :",PLACETEXT_LEFT,14,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,5*Font_Y,26*Font_X,1.5*Font_Y,"Land :",PLACETEXT_LEFT,15,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,20,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,7*Font_Y,12*Font_X,1.5*Font_Y,"Geburtst.:",PLACETEXT_LEFT,16,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,10,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,7*Font_Y,20*Font_X,1.5*Font_Y,"Telefon :",PLACETEXT_LEFT,17,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"Fax :",PLACETEXT_LEFT,18,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,9*Font_Y,20*Font_X,1.5*Font_Y,"DFÜ :",PLACETEXT_LEFT,19,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail1 :",PLACETEXT_LEFT,20,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,11*Font_Y,20*Font_X,1.5*Font_Y,"EMail2 :",PLACETEXT_LEFT,21,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,13*Font_Y,20*Font_X,1.5*Font_Y,"EMail3 :",PLACETEXT_LEFT,22,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,13*Font_Y,26*Font_X,1.5*Font_Y,"Anrede :",PLACETEXT_LEFT,23,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,25,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,15*Font_Y,65*Font_X,1.5*Font_Y,"BriefAn :",PLACETEXT_LEFT,24,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,17*Font_Y,65*Font_X,1.5*Font_Y,"Kommentar:",PLACETEXT_LEFT,25,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,80,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,19*Font_Y,65*Font_X,1.5*Font_Y,"Bank :",PLACETEXT_LEFT,26,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,40,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"BLZ :",PLACETEXT_LEFT,27,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,21*Font_Y,20*Font_X,1.5*Font_Y,"Konto :",PLACETEXT_LEFT,28,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,12*Font_X,23*Font_Y,20*Font_X,1.5*Font_Y,"Bankkurz :",PLACETEXT_LEFT,29,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,15,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,51*Font_X,23*Font_Y,5*Font_X,1.5*Font_Y,"Rabatt :",PLACETEXT_LEFT,30,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,2,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,13.5*Font_X,26*Font_Y,16*Font_X,1.5*Font_Y,"Bearbeiten:",PLACETEXT_LEFT,40,null()); PreGad4 = CREATEGADGET(CYCLE_KIND,PreGad4,newgadx4,GTCY_LABELS,Kundlabels,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,40*Font_X,26*Font_Y,32*Font_X,1.5*Font_Y,"Suche :",PLACETEXT_LEFT,41,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,73*Font_X,26*Font_Y,4*Font_X,1.5*Font_Y,"Cal",PLACETEXT_IN,42,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,15*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Kund/Lief :",PLACETEXT_LEFT,43,null()); PreGad4 = CREATEGADGET(STRING_KIND,PreGad4,newgadx4,GTST_MAXCHARS,6,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,35*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,25*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,45*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,55*Font_X,28*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); call SETNEWGADGET(newgadx4,scrvinfo,scrfont,65*Font_X,28*Font_Y,12*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null()); PreGad4 = CREATEGADGET(BUTTON_KIND,PreGad4,newgadx4,TAG_DONE,0); RETURN; make_labels2: ltxt2.1 = "Kunden"; ltxt2.2 = "Firma"; mlabels2 = MAKEPOINTER(0,0,12,MEMF_CLEAR); DO x = 1 to 2; lbuf2 = MAKEPOINTER(mlabels2,0,length(ltxt2.x)+2,MEMF_CLEAR); CALL export(lbuf2,ltxt2.x); CALL SETVALUE(mlabels2,(x-1)*4,4,'p',lbuf2); END; RETURN mlabels2; DefineGads5: GPoint5 = ALLOCVEC(4,MEMF_CLEAR); conxgad5 = CREATECONTEXT(GPoint5); PreGad5 = conxgad5; newgadx5 = MAKENEWGADGET(scrvinfo,scrfont,14*Font_X,Font_Y,62*Font_X,1.5*Font_Y,"Bezeichnung:",PLACETEXT_LEFT,10,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,3*Font_Y,22*Font_X,1.5*Font_Y,"Preis :",PLACETEXT_LEFT,11,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,59*Font_X,3*Font_Y,17*Font_X,1.5*Font_Y,"Buchkonto :",PLACETEXT_LEFT,12,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,10,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,5*Font_Y,4*Font_X,1.5*Font_Y,"MWSt Kennz.:",PLACETEXT_LEFT,13,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,1,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,8*Font_Y,37*Font_X,1.5*Font_Y,"Suche :",PLACETEXT_LEFT,41,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,30,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,14*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Artikel :",PLACETEXT_LEFT,43,null()); PreGad5 = CREATEGADGET(STRING_KIND,PreGad5,newgadx5,GTST_MAXCHARS,6,u,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,34*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,">",PLACETEXT_IN,44,null()); PreGad5 = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,24*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"<",PLACETEXT_IN,45,null()); PreGad5 = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,44*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,46,null()); PreGad5 = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,54*Font_X,10*Font_Y,9*Font_X,1.5*Font_Y,"Drucken",PLACETEXT_IN,47,null()); PreGad5 = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0); call SETNEWGADGET(newgadx5,scrvinfo,scrfont,64*Font_X,10*Font_Y,14*Font_X,1.5*Font_Y,"Verwerfen",PLACETEXT_IN,48,null()); PreGad5 = CREATEGADGET(BUTTON_KIND,PreGad5,newgadx5,TAG_DONE,0); RETURN; DefineGads6: GPoint6 = ALLOCVEC(4,MEMF_CLEAR); conxgad6 = CREATECONTEXT(GPoint6); PreGad6 = conxgad6; mylabels = make_labels(); newgadx6 = MAKENEWGADGET(scrvinfo,scrfont,9*Font_X,Font_Y,12*Font_X,1.5*Font_Y,"MWSt.1:",PLACETEXT_LEFT,10,null()); PreGad6 = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.1,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,3*Font_Y,12*Font_X,1.5*Font_Y,"MWSt.2:",PLACETEXT_LEFT,11,null()); PreGad6 = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,MWSt_Satz.2,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,1*Font_X,7*Font_Y,6*Font_X,1.5*Font_Y,"Wähle",PLACETEXT_IN,12,null()); PreGad6 = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,7.5*Font_X,7*Font_Y,13.5*Font_X,1.5*Font_Y,"",PLACETEXT_LEFT,13,null()); PreGad6 = CREATEGADGET(TEXT_KIND,PreGad6,newgadx6,GTTX_BORDER,1,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,9*Font_Y,12*Font_X,1.5*Font_Y,"Port: ",PLACETEXT_LEFT,14,null()); PreGad6 = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,Druckport,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,11*Font_Y,12*Font_X,1.5*Font_Y,"Rand_X:",PLACETEXT_LEFT,15,null()); PreGad6 = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_XAbst,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,9*Font_X,13*Font_Y,12*Font_X,1.5*Font_Y,"Rand_Y:",PLACETEXT_LEFT,16,null()); PreGad6 = CREATEGADGET(STRING_KIND,PreGad6,newgadx6,GTST_MAXCHARS,8,GTST_STRING,D_YAbst,TAG_DONE,0); call SETNEWGADGET(newgadx6,scrvinfo,scrfont,5*Font_X,15*Font_Y,12*Font_X,1.5*Font_Y,"Ende",PLACETEXT_IN,17,null()); PreGad6 = CREATEGADGET(BUTTON_KIND,PreGad6,newgadx6,TAG_DONE,0); RETURN; UP_Adressen: IF DefGads4 = 0 THEN DO; call DefineGads4; DefGads4 = 1; END; w4 = OPENWINDOW(portname,(Screen_X-Win_X4)/2,(Screen_Y-Win_Y4)/2,Win_X4,Win_Y4,0,1,winidcmp,winflags,wintitle4,scr,0,null(),null(),conxgad4); rpw4 = GETWINDOWRASTPORT(w4); CALL DRAWBEVELBOX(rpw4,0.25*Font_X,0.5*Font_Y,78.5*Font_X,24.5*Font_Y,scrvinfo,TAG_DONE,0); CALL DRAWBEVELBOX(rpw4,0.25*Font_X,25.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0); call GT_REFRESHWINDOW(w4,null()); ZW_Suchen = ""; IF ZW_KundenNr > K_max | ZW_KundenNr < 1 THEN ZW_KundenNr = K_max; IF Druckart = ltxt2.2 THEN CALL UP_Firma_alles; ELSE DO; Druckart = ltxt2.1; CALL UP_Kunden_alles; END; CALL UP_ReErst_fuellen; extime4 = 0; apen = 1; DO WHILE extime4 = 0; x = waitpkt(portname); DO FOREVER; msg4 = getpkt(portname); IF msg4 = '0000 0000'x THEN LEAVE; msgclass4= getarg(msg4,0); msgcode4 = getarg(msg4,1); msgid4 = getarg(msg4,9); x = reply(msg4,0); x =Auswertung4(); END; END; CALL CLOSEWINDOW(w4); RETURN; UP_Artikel: IF DefGads5 = 0 THEN DO; call DefineGads5; DefGads5 = 1; END; w5 = OPENWINDOW(portname,(Screen_X-Win_X5)/2,(Screen_Y-Win_Y5)/2,Win_X5,Win_Y5,0,1,winidcmp,winflags,wintitle5,scr,0,null(),null(),conxgad5); rpw5 = GETWINDOWRASTPORT(w5); CALL DRAWBEVELBOX(rpw5,0.25*Font_X,0.5*Font_Y,78.5*Font_X,6.5*Font_Y,scrvinfo,TAG_DONE,0); CALL DRAWBEVELBOX(rpw5,0.25*Font_X,7.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0); CALL GT_REFRESHWINDOW(w5,null()); ZW_Suchen = ""; IF ZW_ArtikelNr > A_max | ZW_ArtikelNr < 1 THEN ZW_ArtikelNr = A_max; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; extime5 = 0; apen = 1; DO WHILE extime5 = 0; x = waitpkt(portname); DO FOREVER; msg5 = getpkt(portname); IF msg5 = '0000 0000'x THEN LEAVE; msgclass5= getarg(msg5,0); msgcode5 = getarg(msg5,1); msgid5 = getarg(msg5,9); x = reply(msg5,0); x = Auswertung5(); END; END; CALL CLOSEWINDOW(w5); RETURN; UP_Rechnung: IF DefGads2 = 0 THEN DO; call DefineGads2; DefGads2 = 1; END; w2 = OPENWINDOW(portname,(Screen_X-Win_X2)/2,(Screen_Y-Win_Y2)/2,Win_X2,Win_Y2,0,1,winidcmp,winflags,wintitle2,scr,0,null(),null(),conxgad2); rpw2 = GETWINDOWRASTPORT(w2); CALL DRAWBEVELBOX(rpw2,0.25*Font_X,0.5*Font_Y,78.5*Font_X,4.5*Font_Y,scrvinfo,TAG_DONE,0); CALL DRAWBEVELBOX(rpw2,0.25*Font_X,5.25*Font_Y,78.5*Font_X,((1.7*I_Max)+2.75)*Font_Y,scrvinfo,TAG_DONE,0); CALL DRAWBEVELBOX(rpw2,0.25*Font_X,((1.7*I_Max)+8.5)*Font_Y,78.5*Font_X,2.5*Font_Y,scrvinfo,TAG_DONE,0); call GT_REFRESHWINDOW(w2,null()); IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN UEB_RechNr = R_max; CALL UP_Rechnung_fuellen; extime2 = 0; apen = 1; DO WHILE extime2 = 0; x = waitpkt(portname); DO FOREVER; msg2 = getpkt(portname); IF msg2 = '0000 0000'x THEN LEAVE; msgclass2= getarg(msg2,0); msgcode2 = getarg(msg2,1); msgid2 = getarg(msg2,9); x = reply(msg2,0); x = Auswertung2(); END; END; CALL CLOSEWINDOW(w2); RETURN; UP_Drucken: IF DefGads3 = 0 THEN DO; call DefineGads3; DefGads3 = 1; END; w3 = OPENWINDOW(portname,(Screen_X-Win_X3)/2,(Screen_Y-Win_Y3)/2,Win_X3,Win_Y3,0,1,winidcmp,winflags,wintitle3,scr,0,null(),null(),conxgad3); rpw3 = GETWINDOWRASTPORT(w3); CALL DRAWBEVELBOX(rpw3,14.5*Font_X,0.5*Font_Y,29*Font_X,15.5*Font_Y,scrvinfo,TAG_DONE,0); call GT_REFRESHWINDOW(w3,null()); extime3 = 0; apen = 1; IF UEB_RechNr > R_max | UEB_RechNr < 1 THEN UEB_RechNr = "000001"; UEB_RechNr = right("000000" || UEB_RechNr,6); ZW_KundenNr = RE_Kunde.UEB_RechNr; DO j = 1 to I_max; ZW_Art_Nr.j = RE_Art.j.UEB_RechNr IF ZW_Art_Nr.j > "" THEN DO; x = ZW_Art_Nr.j; ZW_Bez.j = AR_ArtBez.x; ZW_EPreis.j = AR_ArtPreis.x; ZW_Art_Anz.j = RE_Anz.j.UEB_RechNr; END; ELSE DO; ZW_Bez.j = ""; ZW_EPreis.j = ""; ZW_Art_Anz.j = ""; END; END; ZW_Datum = RE_Datum.UEB_RechNr; CALL SETSTRGADID(w3,10,UEB_RechNr,null()); CALL SETSTRGADID(w3,11,ZW_KundenNr,null()); REFRESHGLIST(conxgad3,w3,null(),-1); Druckverz = "ram:"; IF Druckart ~= ltxt.2 THEN Druckart = ltxt.1 DO WHILE extime3 = 0; x = waitpkt(portname); DO FOREVER; msg3 = getpkt(portname); IF msg3 = '0000 0000'x THEN LEAVE; msgclass3= getarg(msg3,0); msgcode3 = getarg(msg3,1); msgid3 = getarg(msg3,9); x = reply(msg3,0); x = Auswertung3(); END; END; CALL CLOSEWINDOW(w3); RETURN; UP_Prefs: IF DefGads6 = 0 THEN DO; call DefineGads6; DefGads6 = 2; END; w6 = OPENWINDOW(portname,(Screen_X-Win_X6)/2,(Screen_Y-Win_Y6)/2,Win_X6,Win_Y6,0,1,winidcmp,winflags,wintitle6,scr,0,null(),null(),conxgad6); rpw6 = GETWINDOWRASTPORT(w6); CALL pitext(rpw6,Font_X,5.5*Font_Y,"Drucker auswählen:",apen,0,jam2,scrfont); CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont); call GT_REFRESHWINDOW(w6,null()); extime6 = 0; apen = 1; DO WHILE extime6 = 0; x = waitpkt(portname); DO FOREVER; msg6 = getpkt(portname); IF msg6 = '0000 0000'x THEN LEAVE; msgclass6= getarg(msg6,0); msgcode6 = getarg(msg6,1); msgid6 = getarg(msg6,9); x = reply(msg6,0); x = Auswertung6(); END; END; CALL CLOSEWINDOW(w6); RETURN; UP_Rechnung_fuellen: UEB_RechNr = right("000000" || UEB_RechNr,6); ZW_KundenNr = RE_Kunde.UEB_RechNr; CALL UP_Kunden_Fuellen; DO j = 1 to I_max; ZW_Art_Nr.j = RE_Art.j.UEB_RechNr IF ZW_Art_Nr.j > "" THEN DO; x = ZW_Art_Nr.j; ZW_Bez.j = AR_ArtBez.x; ZW_EPreis.j = AR_ArtPreis.x; ZW_Art_Anz.j = RE_Anz.j.UEB_RechNr; END; ELSE DO; ZW_Bez.j = ""; ZW_EPreis.j = ""; ZW_Art_Anz.j = ""; END; CALL SETSTRGADID(w2,(j*10+11),ZW_Art_Nr.j,null()); CALL SETSTRGADID(w2,(j*10+12),ZW_Art_Anz.j,null()); CALL pitext(rpw2,22.5*Font_X,(1.7*j+4.2)*Font_Y,left(ZW_Bez.j,30),apen,0,jam2,scrfont); CALL pitext(rpw2,54.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_EPreis.j,10),apen,0,jam2,scrfont); END; ZW_Datum = RE_Datum.UEB_RechNr; CALL pitext(rpw2,9*Font_X,(1.7*I_max+6.2)*Font_Y,left(ZW_Datum,10),apen,0,jam2,scrfont); CALL SETSTRGADID(w2,160,UEB_RechNr,null()); CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); RETURN; UP_Kunden_Fuellen: IF ZW_KundenNr > 0 THEN DO; ZW_Kunden_VorName = KD_VorName.ZW_KundenNr; ZW_Kunden_Name = KD_Name.ZW_KundenNr; ZW_PLZ = KD_PLZ.ZW_KundenNr; ZW_Ort = KD_Ort.ZW_KundenNr; ZW_Strasse = KD_Strasse.ZW_KundenNr; END; ELSE DO; ZW_KundenNr = ""; ZW_Kunden_VorName = ""; ZW_Kunden_Name = ""; ZW_PLZ = ""; ZW_Ort = ""; ZW_Strasse = ""; END; CALL SETSTRGADID(w2,11,ZW_KundenNr,null()); CALL SETSTRGADID(w2,12,ZW_Kunden_VorName,null()); CALL SETSTRGADID(w2,13,ZW_Kunden_Name,null()); CALL pitext(rpw2,7.5*Font_X,3.2*Font_Y,LEFT(ZW_PLZ,5),apen,0,jam2,scrfont); CALL pitext(rpw2,21.5*Font_X,3.2*Font_Y,LEFT(ZW_Ort,22),apen,0,jam2,scrfont); CALL pitext(rpw2,54.5*Font_X,3.2*Font_Y,LEFT(ZW_Strasse,22),apen,0,jam2,scrfont); RETURN; UP_B_Berechnung: ZW_MWSt = 0; ZW_Endsumme = 0; ZW_Rab = 0; ZW_KundenNr = GETSTRGAD(w2,(11),null()); ZW_Rabatt = KD_Rabatt.ZW_KundenNr; IF DATATYPE(ZW_Rabatt,'w') THEN ZW_Rabatt = ZW_Rabatt / 100; ELSE ZW_Rabatt = 0; DO j = 1 to I_Max; ZW_Art_Nr = GETSTRGAD(w2,(11+(10*j)),null()); ZW_Menge = GETSTRGAD(w2,(12+(10*j)),null()); IF ZW_Art_Nr > 0 & ZW_Menge > 0 THEN DO; ZW_Summe.j = (ZW_EPreis.j * ZW_Menge) + 0.005; IF ZW_Summe.j < 0 THEN ZW_Summe.j = ZW_Summe.j - 0.01; ZW_Summe.j = trunc(ZW_Summe.j,2); ZW_Rab = ZW_Rab + (ZW_Summe.j * ZW_Rabatt); ZW_Summe.j = right(ZW_Summe.j,10); ZW_Endsumme = ZW_Endsumme + ZW_Summe.j; i = AR_ArtMWSt.ZW_Art_Nr; ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.i); END; ELSE ZW_Summe.j = ""; CALL pitext(rpw2,66.5*Font_X,(1.7*j+4.2)*Font_Y,right(ZW_Summe.j,10),apen,0,jam2,scrfont); END; ZW_Endsumme = trunc(ZW_Endsumme - ZW_Rab + 0.005,2); ZW_Rab = trunc(ZW_Rab + 0.005,2); ZW_MWSt = trunc(ZW_MWSt + 0.005,2); CALL pitext(rpw2,66.5*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Endsumme,10),apen,0,jam2,scrfont); CALL pitext(rpw2,29.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_Rab,9),apen,0,jam2,scrfont); CALL pitext(rpw2,46.25*Font_X,(1.7*I_max+6.2)*Font_Y,right(ZW_MWSt,9),apen,0,jam2,scrfont); RETURN; Auswertung2: SELECT WHEN msgcode2 = 75 | msgcode2 = 107 THEN ACTIVATEGADID(11,w2,null()); WHEN msgcode2 = 86 | msgcode2 = 118 THEN ACTIVATEGADID(12,w2,null()); WHEN msgcode2 = 78 | msgcode2 = 110 THEN ACTIVATEGADID(13,w2,null()); WHEN msgcode2 = 82 | msgcode2 = 114 THEN ACTIVATEGADID(160,w2,null()); WHEN msgid2 = 10 | msgcode2 = 76 | msgcode2 = 108 THEN DO; CALL UP_Adressen; IF ZW_KundenNr = K_max THEN ZW_KundenNr = K_max - 1; CALL UP_Kunden_Fuellen; CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; WHEN msgid2 = 11 THEN DO; Test = GETSTRGAD(w2,msgid2,null()); IF Test ~= ZW_KundenNr THEN DO; ZW_KundenNr = TEST; IF DATATYPE(ZW_KundenNr,'w') THEN DO; IF ZW_KundenNr = K_max THEN ZW_KundenNr = K_max - 1; ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6); ACTIVATEGADID(21,w2,null()); END; ELSE DO; rtezrequest("Kundennummer nicht numerisch!",,,ReqCent); ZW_KundenNr = "000001"; ACTIVATEGADID(11,w2,null()); END; CALL UP_Kunden_Fuellen; CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; END; WHEN msgid2 = 12 THEN DO; Test = GETSTRGAD(w2,msgid2,null()); IF Test ~= ZW_Kunden_VorName THEN DO; ZW_Kunden_VorName = Test; DO I = 1 to K_max; I = RIGHT("000000" || I,6); IF POS(UPPER(ZW_Kunden_VorName),UPPER(KD_VorName.I)) THEN DO; ZW_KundenNr = I; I = K_max + 5; ACTIVATEGADID(21,w2,null()); END; END; IF I < (K_max + 5) THEN DO; rtezrequest("Kein Kunde mit diesem Vornamen vorhanden!",,,ReqCent); ZW_KundenNr = GETSTRGAD(w2,11,null()); IF ZW_KundenNr = "" THEN ZW_KundenNr = "000001"; ACTIVATEGADID(12,w2,null()); END; CALL UP_Kunden_Fuellen; CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; END; WHEN msgid2 = 13 THEN DO; Test = GETSTRGAD(w2,13,null()); IF Test ~= ZW_Kunden_Name THEN DO; ZW_Kunden_Name = Test; DO I = 1 to K_max; I = RIGHT("000000" || I,6); IF POS(UPPER(ZW_Kunden_Name),UPPER(KD_Name.I)) THEN DO; ZW_KundenNr = I; ACTIVATEGADID(21,w2,null()); I = K_max + 5; END; END; IF I < (K_max + 5) THEN DO; rtezrequest("Kein Kunde mit diesem Familiennamen vorhanden!",,,ReqCent); ZW_KundenNr = GETSTRGAD(w2,11,null()); IF ZW_KundenNr = "" THEN ZW_KundenNr = "000001"; ACTIVATEGADID(13,w2,null()); END; CALL UP_Kunden_Fuellen; CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; END; WHEN msgid2 = 20 | msgid2 = 30 | msgid2 = 40 | msgid2 = 50 | msgid2 = 60 |, msgid2 = 70 | msgid2 = 80 | msgid2 = 90 | msgid2 =100 | msgid2 =110 |, msgid2 =120 | msgid2 =130 | msgid2 =140 THEN DO; CALL UP_Artikel; i = (msgid2 - 10) / 10; ZW_Art_Nr.i = ZW_ArtikelNr; IF ZW_Art_Nr.i = A_max THEN ZW_Art_Nr.i = "000000" ||(A_max - 1); ZW_Art_Nr.i = right(ZW_Art_Nr.i,6); Test = ZW_Art_Nr.i; ZW_EPreis.i = RIGHT(AR_ArtPreis.Test,9); ZW_Bez.i = AR_ArtBez.Test; CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Nr.i,null()); CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont); CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont); CALL UP_B_Berechnung; ACTIVATEGADID(msgid2+2,w2,null()); REFRESHGLIST(conxgad2,w2,null(),-1); END; WHEN msgid2 = 21 | msgid2 = 31 | msgid2 = 41 | msgid2 = 51 | msgid2 = 61 |, msgid2 = 71 | msgid2 = 81 | msgid2 = 91 | msgid2 =101 | msgid2 =111 |, msgid2 =121 | msgid2 =131 | msgid2 =141 THEN DO; i = (msgid2 - 11) / 10; Test = GETSTRGAD(w2,msgid2,null()); IF Test ~= ZW_Art_Nr.i THEN DO; ZW_Art_Nr.i = Test IF ZW_Art_Nr.i = "" THEN DO; ZW_Art_Anz.i = ""; CALL SETSTRGADID(w2,msgid2+1,ZW_Art_Anz.i,null()); ZW_EPreis.i = ""; ZW_Bez.i = ""; END; ELSE DO; IF DATATYPE(ZW_Art_Nr.i,'w') THEN DO; IF ZW_Art_Nr.i > (A_max - 1) THEN ZW_Art_Nr.i = A_max - 1; ZW_Art_Nr.i = RIGHT("000000" || ZW_Art_Nr.i,6); END; ELSE DO; rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent); ZW_Art_Nr.i = "000001"; ACTIVATEGADID(msgid2,w2,null()); END; TEST = ZW_Art_Nr.i; ZW_EPreis.i = AR_ArtPreis.Test; ZW_Bez.i = AR_ArtBez.Test; END; CALL SETSTRGADID(w2,msgid2,ZW_Art_Nr.i,null()); CALL pitext(rpw2,54.5*Font_X,(1.7*i+4.2)*Font_Y,RIGHT(ZW_EPreis.i,10),apen,0,JAM2,scrfont); CALL pitext(rpw2,22.5*Font_X,(1.7*i+4.2)*Font_Y,LEFT(ZW_Bez.i,30),apen,0,JAM2,scrfont); CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; END; WHEN msgid2 = 22 | msgid2 = 32 | msgid2 = 42 | msgid2 = 52 | msgid2 = 62 |, msgid2 = 72 | msgid2 = 82 | msgid2 = 92 | msgid2 =102 | msgid2 =112 |, msgid2 =122 | msgid2 =132 | msgid2 =142 THEN DO; i = (msgid2 - 12) / 10; Test = GETSTRGAD(w2,msgid2,null()); IF Test ~= ZW_Art_Anz.i THEN DO; ZW_Art_Anz.i = Test IF ~DATATYPE(ZW_Art_Anz.i,'n') THEN DO; rtezrequest("Artikelanzahl nicht numerisch, bitte prüfen!",,,ReqCent); ZW_Art_Anz.i = 1; ACTIVATEGADID(msgid2,w2,null()); END; CALL SETSTRGADID(w2,msgid2,ZW_Art_Anz.i,null()); IF ZW_EPreis.i > "" THEN CALL UP_B_Berechnung; REFRESHGLIST(conxgad2,w2,null(),-1); END; END; WHEN msgid2 = 160 THEN DO; Test = GETSTRGAD(w2,msgid2,null()); IF Test ~= UEB_RechNr THEN DO; CALL UP_Rechnung_OK; UEB_RechNr = right("000000" || Test,6); IF UEB_RechNr > R_max THEN UEB_RechNr = R_max; ELSE IF UEB_RechNr < 1 THEN UEB_RechNr = "000001"; CALL UP_Rechnung_fuellen; END; END; WHEN msgid2 = 161 | msgcode2 = 62 THEN DO; Test = UEB_RechNr + 1; CALL UP_Rechnung_OK; IF UEB_RechNr <= R_max THEN DO; UEB_RechNr = right("000000" || Test,6); CALL UP_Rechnung_fuellen; END; END; WHEN msgid2 = 162 | msgcode2 = 60 THEN DO; Test = UEB_RechNr - 1; CALL UP_Rechnung_OK; IF UEB_RechNr > 0 THEN DO; UEB_RechNr = right("000000" || Test,6); CALL UP_Rechnung_fuellen; END; END; WHEN msgid2 = 163 | msgclass2 = CLOSEWINDOW | msgcode2 = 69 | msgcode2 = 101 | msgcode2 = 27 THEN DO; CALL UP_Rechnung_OK; extime2 = 1; END; WHEN msgid2 = 164 | msgcode2 = 68 | msgcode2 = 100 THEN DO; CALL UP_Rechnung_OK; CALL UP_Drucken; ZW_KundenNr = right("000000" || GETSTRGAD(w2,11,null()),6); UEB_RechNr = right("000000" || GETSTRGAD(w2,160,null()),6); END; WHEN msgid2 = 165 THEN CALL UP_Rechnung_Fuellen; OTHERWISE NOP; END; RETURN 1; Auswertung3: SELECT WHEN msgcode3 = 82 | msgcode3 = 114 THEN ACTIVATEGADID(10,w3,null()); WHEN msgcode3 = 75 | msgcode3 = 107 THEN ACTIVATEGADID(11,w3,null()); WHEN msgid3 = 10 THEN /* Rechnungsnummer wurde eingegeben/geändert */ DO; Test = GETSTRGAD(w3,10,null()); IF Test ~= UEB_RechNr THEN DO; UEB_RechNr = TEST; IF DATATYPE(UEB_RechNr,'w') THEN DO; IF UEB_RechNr > (R_max - 1) THEN UEB_RechNr = R_max - 1; UEB_RechNr = RIGHT("000000" || UEB_RechNr,6); END; ELSE DO; rtezrequest("Rechnungsnummer nicht numerisch!",,,ReqCent); ACTIVATEGADID(10,w3,null()); UEB_RechNr = "000001"; END; CALL SETSTRGADID(w3,10,UEB_RechNr,null()); REFRESHGLIST(conxgad3,w3,null(),-1); END; END; WHEN msgid3 = 11 THEN /* Kundennummer wurde eingegeben/geändert */ DO; Test = GETSTRGAD(w3,11,null()); IF Test ~= ZW_KundenNr THEN DO; ZW_KundenNr = TEST; IF DATATYPE(ZW_KundenNr,'w') THEN DO; IF ZW_KundenNr > (K_max - 1) THEN ZW_KundenNr = K_max - 1; ZW_KundenNr = RIGHT(("000000" || ZW_KundenNr),6); END; ELSE DO; rtezrequest("Kundennummer nicht numerisch!",,,ReqCent); ACTIVATEGADID(11,w3,null()); ZW_KundenNr = "000001"; END; CALL SETSTRGADID(w3,11,ZW_KundenNr,null()); REFRESHGLIST(conxgad3,w3,null(),-1); END; END; WHEN msgid3 = 12 THEN Druckart = GETVALUE(mlabels,msgcode3*4,4,'s'); WHEN msgid3 = 13 | msgcode3 = 80 | msgcode3 = 112 THEN DO; address COMMAND 'Printer >NIL:'; prefs = allocmem(232); x = getprefs(prefs,232); B_laenge = GETVALUE(prefs,178,2,'n'); call freemem(prefs,232); END; WHEN msgid3 = 14 | msgcode3 = 86 | msgcode3 = 118 THEN DO; x = rtfilerequest("ram:",,"Wählen Sie das Druckverzeichnis",,"rtfi_flags=freqf_nofiles" ReqCent); IF rtresult THEN; Druckverz = x; END; WHEN msgid3 = 15 | msgcode3 = 67 | msgcode3 = 99 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Rechnung." || UEB_RechNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent); END; IF Ergebnis = 1 then DO; CALL UP_R_Berechnung; Z.1 = D_Rueck IF D_YAbst < 2 THEN DO I = D_YAbst TO 2; Z.1 = Z.1 || LF; END; X = 7-D_XAbst; IF X < 0 THEN X = 0; Z.1 = Z.1 || Copies(" ",X) left(FI_Anrede,55) || right(datum,10); Z.2 = Copies(" ",X) FI_VorName FI_Name; Z.3 = Copies(" ",X) FI_Strasse LF; Z.4 = Copies(" ",X) FI_PLZ FI_Ort LF LF LF LF; Z.5 = Copies(" ",X) D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF; Z.6 = Copies(" ",X) KD_Anrede.ZW_KundenNr; Z.7 = Copies(" ",X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr; Z.8 = Copies(" ",X) KD_Strasse.ZW_KundenNr LF; Z.9 = Copies(" ",X) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr IF FI_Land ~= KD_Land.ZW_KundenNr THEN Z.9 = Z.9 || " (" || KD_Land.ZW_KundenNr || ")"; Z.9 = Z.9 || LF || LF || LF; Z.10 = Copies(" ",X) "Kundennr:" ZW_KundenNr; Z.11 = Copies(" ",X) "Rechnung:" UEB_RechNr; Z.12 = Copies(" ",X) "Datum :" RE_Datum.UEB_RechNr LF; Z.13 = Copies(" ",X) "Art.Nr Anzahl" left(" Artikelbezeichnung",33) "Preis: Summe:"; Z.14 = Copies(" ",X) Copies("-",65); DO i = 1 to I_max; j = i + 14; IF ZW_Art_Nr.i > "" THEN Z.j = Copies(" ",X) ZW_Art_Nr.i right(ZW_Menge.i,6) || " " || left(ZW_ArtBez.i,28) right(ZW_EPreis.i,10) right(ZW_Summe.i,10); ELSE Z.j = ""; END; IF I_max = 11 THEN DO; Z.26 = ""; Z.27 = ""; END; IF ZW_Rab > 0 THEN DO; TEXT = "Abzüglich" ZW_Rabatt "% Rabatt ="; Z.28 = Copies(" ",X) left(TEXT,55) right(ZW_Rab,9); END; ELSE Z.28 = ""; Z.29 = Copies(" ",X) Copies("-",65); Z.30 = Copies(" ",X) left("Gesamt Netto DM:",54) right(ZW_Endsumme-ZW_MWSt,10); Z.31 = Copies(" ",X) left("zzgl. Mehrwertsteuer" MWSt_Satz.1 "% bzw." MWSt_Satz.2 "%",55) ZW_MWSt; Z.32 = Copies(" ",X) left("Gesamt Brutto DM:",54) ZW_Endsumme; Z.33 = Copies(" ",X) Copies("=",65) LF LF; Z.34 = Copies(" ",X) D_KEin || "Bitte bei allen Bestellungen die Kundennummer angeben" D_KAus LF; Z.35 = Copies(" ",X) "Bankverbindung:" Z.36 = Copies(" ",X) FI_BankBez " BLZ:" FI_BLZ " Konto:" FI_Konto LF LF; Z.37 = Copies(" ",X) "Vielen Dank für Ihren Auftrag" D_Ende; Druckdat = "Rechnung"; OPEN(Druckdat,Druckfile,'write'); DO i = 1 to 37; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 16 | msgcode3 = 84 | msgcode3 = 116 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leere Paketkarte einlegen","Einfach|Nachnahme|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Paketkarte." || UEB_RechNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Einfach|Nachnahme|Abbruch",,ReqCent); END; IF Ergebnis ~= 0 then DO; CALL UP_R_Berechnung; Z.1 = D_Rueck IF D_YAbst < 2 THEN DO I = D_YAbst TO 2; Z.1 = Z.1 || LF; END; X = 2-D_XAbst; IF X < 0 THEN X = 0; Z.1 = Z.1 || Copies(" ",X) FI_VorName FI_Name LF; Z.2 = Copies(" ",X) FI_Strasse LF; Z.3 = Copies(" ",X) FI_PLZ FI_Ort LF LF; IF Ergebnis = 1 THEN Z.4 = ""; ELSE Z.4 = Copies(" ",30+X) D_CRot "Nachnahme=" ZW_Endsumme D_CSchw; Z.5 = Copies(" ",X) left(FI_BankKurz,29); Z.6 = Copies(" ",X) "BLZ:" FI_BLZ; Z.7 = Copies(" ",X) "Konto:" FI_Konto LF LF; Z.8 = Copies(" ",30+X) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF; Z.9 = Copies(" ",30+X) KD_Strasse.ZW_KundenNr LF LF LF; Z.10 = D_SGross KD_PLZ.ZW_KundenNr D_SStand || CR || Copies(" ",30+X) KD_Ort.ZW_KundenNr IF FI_Land ~= KD_Land.ZW_KundenNr THEN Z.10 = Z.10 || " (" || KD_Land.ZW_KundenNr || ")"; Z.10 = Z.10 || D_Ende; Druckdat = "Paketkarte"; OPEN(Druckdat,Druckfile,'write'); DO i = 1 to 10; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 17 | msgcode3 = 90 | msgcode3 = 122 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeren Zahlschein einlegen","Klein|Groß|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Zahlschein." || UEB_RechNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"Klein|Groß|Abbruch",,ReqCent); END; IF Ergebnis ~= 0 then DO; CALL UP_R_Berechnung; Z.1 = D_Rueck IF D_YAbst < 5 THEN DO I = D_YAbst TO 4; Z.1 = Z.1 || LF; END; X = 3-D_XAbst; IF X < 0 THEN X = 0; Z.8 = UP_Sperr(left(FI_Name Fi_VorName,26)); Z.1 = Z.1 || Copies(" ",X) || Z.8 || LF; Z.8 = UP_Sperr(COMPRESS(FI_Konto)); Z.9 = UP_Sperr(COMPRESS(FI_BLZ)); Z.2 = Copies(" ",X) || left(Z.8,10) || CR || Copies(" ",38+X) || Z.9 || LF; Z.8 = UP_Sperr(left(FI_BankBez,26)) Z.3 = Copies(" ",X) || Z.8 || LF; i = UP_Sperr(ZW_Endsumme - 3.00); Z.4 = Copies(" ",X+30) || i || LF; Z.8 = UP_Sperr("ReNr:" UEB_RechNr); Z.5 = Copies(" ",X) || Z.8 || LF || LF || LF; Z.8 = UP_Sperr(left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr || "," KD_Ort.ZW_KundenNr,27)); Z.6 = Copies(" ",X) || Z.8 || LF; Z.7 = Copies(" ",22+X) || i; Druckdat = "Zahlschein" OPEN(Druckdat,Druckfile,'write'); IF Ergebnis = 1 THEN max = 7; ELSE DO; max = 15; Z.8 = LF || LF || LF || LF || LF || LF || LF || LF || LF || Copies(" ",16+X) || FI_Name FI_VorName; Z.9 = Copies(" ",16+X) || FI_Strasse; Z.10 = Copies(" ",16+X) || FI_PLZ FI_Ort || LF || LF || LF || LF || LF || LF; ZW_Endsumme = right(ZW_Endsumme,9); Z.11 = Copies(" ",X-1) || right(left(ZW_Endsumme,6),5) || right(ZW_Endsumme,27) LF; Z.12 = Copies(" ",X-1) || left(KD_Name.ZW_KundenNr KD_VorName.ZW_KundenNr,15) Copies(" ",9) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr LF; Z.13 = Copies(" ",X-1) || left(KD_Strasse.ZW_KundenNr,15) Copies(" ",9) KD_Strasse.ZW_KundenNr LF; Z.14 = Copies(" ",X-1) || left(KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr,15); Z.15 = Copies(" ",24+X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr; END; Z.max = Z.max || D_Ende; DO i = 1 to max; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 18 | msgcode3 = 77 | msgcode3 = 109 THEN DO; MAdd.01 = 0; MAdd.02 = 31; i = right(datum,4); i = i / 4; i = lastpos('.',i); IF i = 0 THEN MAdd.03 = MAdd.02 + 29; ELSE MAdd.03 = MAdd.02 + 28; MAdd.04 = MAdd.03 + 31; MAdd.05 = MAdd.04 + 30; MAdd.06 = MAdd.05 + 31; MAdd.07 = MAdd.06 + 30; MAdd.08 = MAdd.07 + 31; MAdd.09 = MAdd.08 + 31; MAdd.10 = MAdd.09 + 30; MAdd.11 = MAdd.10 + 31; MAdd.12 = MAdd.11 + 30; Monat = SUBSTR(RE_Datum.UEB_RechNr,4,2); Tag = LEFT(RE_Datum.UEB_RechNr,2); Jahr = RIGHT(RE_Datum.UEB_RechNr,4); Rec = Tag + MAdd.Monat + (365.2423482188 * Jahr); Rec = trunc(Rec) Nun = Date(b); Dif = Nun - Rec; CALL UP_R_Berechnung; Select; WHEN RE_Mahnung.UEB_RechNr = 1 THEN DO; MahnNr = rtezrequest("Es wurde bereits eine Mahnung gedruckt!" LF ||, "Seit Rechnungserstellung sind" Dif "Tage vergangen.", ,"2.Mahnung|1.Mahnung|Abbruch",,ReqCent); SELECT; WHEN MahnNr = 1 THEN MahnNr = 2; WHEN MahnNr = 2 THEN MahnNr = 1; OTHERWISE NOP; END; END; WHEN RE_Mahnung.UEB_RechNr = 2 THEN DO; MahnNr = rtezrequest("Es wurden bereits zwei Mahnungen gedruckt!" LF ||, "Seit Rechnungserstellung sind" Dif "Tage vergangen.", ,"3.Mahnung|2.Mahnung|1.Mahnung|Abbruch",,ReqCent); SELECT; WHEN MahnNr = 1 THEN MahnNr = 3; WHEN MahnNr = 3 THEN MahnNr = 1; OTHERWISE NOP; END; END; WHEN RE_Mahnung.UEB_RechNr = 3 THEN DO; MahnNr = rtezrequest("Es wurden bereits drei Mahnungen gedruckt!" LF ||, "Seit Rechnungserstellung sind" Dif "Tage vergangen" LF ||, "Es ist KEINE weiter Mahnung möglich", ,"Abbruch|3.Mahnung|2.Mahnung|1.Mahnung",,ReqCent); SELECT; WHEN MahnNr = 0 THEN MahnNr = 1; WHEN MahnNr = 1 THEN MahnNr = 0; WHEN MahnNr = 2 THEN MahnNr = 3; WHEN MahnNr = 3 THEN MahnNr = 2; OTHERWISE NOP; END; END; OTHERWISE MahnNr = rtezrequest("Es wurde noch keine Mahnung gedruckt!" LF ||, "Seit Rechnungserstellung sind" Dif "Tage vergangen", ,"1.Mahnung|Abbruch",,ReqCent); END; IF MahnNr = 0 THEN Ergebnis = 0; ELSE DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","Drucken|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Mahnung-" || MahnNr || "." || UEB_RechNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent); END; END; IF Ergebnis = 1 then DO; IF RE_Mahnung.UEB_RechNr < MahnNr THEN RE_Mahnung.UEB_RechNr = MahnNr; CALL UP_R_Berechnung; Z.1 = D_Rueck IF D_YAbst < 2 THEN DO I = D_YAbst TO 2; Z.1 = Z.1 || LF; END; X = 7-D_XAbst; IF X < 0 THEN X = 0; Z.1 = Z.1 || Copies(" ",X) || left(FI_Anrede,55) || right(datum,10); Z.2 = Copies(" ",X) || FI_VorName FI_Name; Z.3 = Copies(" ",X) || FI_Strasse LF; Z.4 = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF; Z.5 = Copies(" ",X) || D_SKlein || D_UEin || FI_Vorname FI_Name "*" FI_Strasse "*" FI_PLZ FI_Ort || D_UAus || D_SStand || LF; Z.6 = Copies(" ",X) || KD_Anrede.ZW_KundenNr; Z.7 = Copies(" ",X) || KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr; Z.8 = Copies(" ",X) || KD_Strasse.ZW_KundenNr LF; Z.9 = Copies(" ",X) || KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr IF FI_Land ~= KD_Land.ZW_KundenNr THEN Z.9 = Z.9 || " (" || KD_Land.ZW_KundenNr || ")"; Z.9 = Z.9 || LF || LF || LF || LF || LF; Z.10 = Copies(" ",X) || "Kundennr:" ZW_KundenNr; Z.11 = Copies(" ",X) || "Betreff Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr || LF || LF || LF; Z.12 = Copies(" ",X) || KD_BAnr.ZW_KundenNr || LF; SELECT WHEN MahnNr = 1 THEN DO; ZW_SumPMahn = ZW_Endsumme + 1.50; Z.13 = Copies(" ",X) || "leider muß ich Ihnen mitteilen, daß Sie meine Rechnung" UEB_RechNr "vom"; Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "bisher noch nicht bezahlt haben. Ich möchte Sie deshalb"; Z.15 = Copies(" ",X) || "bitten, dieses Versäumnis nachzuholen und den ausstehenden Betrag von"; Z.16 = Copies(" ",X) || right(ZW_Endsumme,9) "DM + 1.50 DM Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || "DM) auf mein"; Z.17 = Copies(" ",X) || "Konto zu überweisen."; Z.18 = LF; END; WHEN MahnNr = 2 THEN DO; ZW_SumPMahn = ZW_Endsumme + 3.00; Z.13 = Copies(" ",X) || "leider muß ich Ihnen mitteilen, daß Sie meine Rechnung" UEB_RechNr "vom"; Z.14 = Copies(" ",X) || RE_Datum.UEB_RechNr "trotz nochmaliger Aufforderung bisher noch nicht bezahlt"; Z.15 = Copies(" ",X) || "haben. Ich möchte Sie deshalb nachdrücklich dazu auffordern, Ihr Ver-"; Z.16 = Copies(" ",X) || "säumnis nachzuholen und den ausstehenden Betrag von " right(ZW_Endsumme,9) "DM +"; Z.17 = Copies(" ",X) || "3.00 DM Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!"; Z.18 = LF; END; WHEN MahnNr = 3 THEN DO; ZW_SumPMahn = ZW_Endsumme + 4.50; Z.13 = Copies(" ",X) || "trotz zweier Mahnungen haben Sie meine Rechnung" UEB_RechNr "vom" RE_Datum.UEB_RechNr; Z.14 = Copies(" ",X) || "nicht überwiesen! Dies ist meine letzte Aufforderung, Ihr Versäumnis"; Z.15 = Copies(" ",X) || "nachzuholen und den ausstehenden Betrag von " right(ZW_Endsumme,9) "DM + 4.50 DM"; Z.16 = Copies(" ",X) || "Mahngebühr (Gesamt:" right(ZW_SumPMahn,9) || ") auf mein Konto zu überweisen!"; Z.17 = Copies(" ",X) || "Wenn Sie meiner Aufforderung nicht nachkommen, behalte ich mir ge-"; Z.18 = Copies(" ",X) || "richtliche Schritte vor." || LF || LF; END; OTHERWISE NOP; END; Z.19 = Copies(" ",X) || "Bankverbindung:"; Z.20 = Copies(" ",X) || FI_BankBez " BLZ:" FI_BLZ " Konto:" FI_Konto LF; Z.21 = Copies(" ",X) || "Mit freundlichen Grüßen" || LF || LF || LF; Z.22 = Copies(" ",X) || FI_VorName FI_Name D_Ende; Druckdat = "Mahnung"; OPEN(Druckdat,Druckfile,'write'); DO i = 1 to 22; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 19 | msgcode3 = 69 | msgcode3 = 101 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte Etiketten einlegen" LF ||, "Firmen oder Kundenetiketten?", ,"Firma|Kunde|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Etiketten." || ZW_KundenNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||, "Firmen oder Kundenetiketten?", ,"Firma|Kunde|Abbruch",,ReqCent); END; IF Ergebnis = 1 then DO; Z.1 = LF Fi_Anrede; Z.2 = "" FI_VorName FI_Name; Z.3 = "" FI_Strasse; Z.4 = LF FI_PLZ FI_Ort; Z.5 = LF LF; END; IF Ergebnis = 2 then DO; Z.1 = LF KD_Anrede.ZW_KundenNr; Z.2 = "" KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr; Z.3 = "" KD_Strasse.ZW_KundenNr; Z.4 = LF KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr; IF FI_Land = KD_Land.ZW_KundenNr THEN Z.5 = LF LF; ELSE Z.5 = " (" || KD_Land.ZW_KundenNr || ")" LF LF; END; IF Ergebnis > 0 then DO; Anzahl = rtgetlong(, , "Wieviel Etiketten wollen Sie drucken:", , ,"rtgl_min = 1 rtgl_max = 999"); Druckdat = "Etikett"; OPEN(Druckdat,Druckfile,'write'); WRITELN(Druckdat,D_Rueck); DO j = 1 to Anzahl; DO i = 1 to 5; WRITELN(Druckdat,Z.i); END; END; WRITELN(Druckdat,D_Ende); CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 20 | msgcode3 = 85 | msgcode3 = 117 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte Umschlag einlegen." LF ||, "Welches Format wünschen Sie?", ,"C6/B6|DL|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Umschläge." || ZW_KundenNr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile LF ||, "Welches Format wünschen Sie?", ,"C6/B6|DL|Abbruch",,ReqCent); END; IF Ergebnis > 0 then DO; Z.1 = D_Rueck IF D_YAbst < 2 THEN DO I = D_YAbst TO 2; Z.1 = Z.1 || LF; END; X = 3-D_XAbst; IF X < 0 THEN X = 0; SELECT WHEN Ergebnis = 1 then Breite = 22+X; WHEN Ergebnis = 2 then Breite = 31+X; OTHERWISE NOP; END; Z.1 = Z.1 || Copies(" ",X) || Fi_Anrede; Z.2 = Copies(" ",X) || FI_VorName FI_Name; Z.3 = Copies(" ",X) || FI_Strasse LF; Z.4 = Copies(" ",X) || FI_PLZ FI_Ort LF LF LF LF LF LF; Z.5 = Copies(" ",Breite) KD_Anrede.ZW_KundenNr ; Z.6 = Copies(" ",Breite) KD_VorName.ZW_KundenNr KD_Name.ZW_KundenNr; Z.7 = Copies(" ",Breite) KD_Strasse.ZW_KundenNr LF; Z.8 = Copies(" ",Breite) KD_PLZ.ZW_KundenNr KD_Ort.ZW_KundenNr; IF FI_Land ~= KD_Land.ZW_KundenNr THEN Z.8 = Z.8 "(" || KD_Land.ZW_KundenNr || ")"; Z.8 = Z.8 || D_Ende; Druckdat = "Umschlag"; OPEN(Druckdat,Druckfile,'write'); DO i = 1 to 8; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgid3 = 21 | msgcode3 = 76 | msgcode3 = 108 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Artikelliste"; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent); END; IF Ergebnis > 0 then DO; Druckdat = "Artikel" OPEN(Druckdat,Druckfile,'write'); Z.6 = "ArtNr Artikelbezeichnung Preis MWSt Buchk." Z.7 = Copies("-",59); WRITELN(Druckdat,D_Rueck || Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; Z.6 = FF || Z.6; DO j = 1 to (A_max - 1) j = right("000000" || j,6); Z.1 = j left(AR_ArtBez.j,30) right(AR_ArtPreis.j,9) right(Ar_ArtMWSt.j,4) right(AR_ArtBuch.j,6); Zeile = Zeile + 1; IF Zeile > B_laenge THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; WRITELN(Druckdat,Z.1); END; Z.1 = LF || "Ende der Auflistung" D_Ende; WRITELN(Druckdat,Z.1); CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run copy >NIL: t:Druck to" Druckport; END; END; WHEN msgid3 = 22 | msgcode3 = 83 | msgcode3 = 115 THEN DO; IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Kundenliste"; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent); END; IF Ergebnis > 0 then DO; Druckdat = "Kunden" OPEN(Druckdat,Druckfile,'write'); Z.6 = "Kunde Vorname Name Straße PLZ Ort" Z.7 = Copies("-",71); WRITELN(Druckdat,D_Rueck || Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; Z.6 = FF || Z.6; DO j = 1 to (K_max - 1); j = "000000" || j; j = right(j,6); Z.1 = j left(KD_Vorname.j,10) left(KD_Name.j,10) left(KD_Strasse.j,20) left(KD_PLZ.j,5) left(KD_Ort.j,15); Zeile = Zeile + 1; IF Zeile > B_laenge THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; WRITELN(Druckdat,Z.1); END; Z.1 = LF || "Ende der Auflistung" D_Ende; WRITELN(Druckdat,Z.1); CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport END; END; WHEN msgid3 = 23 | msgcode3 = 65 | msgcode3 = 97 THEN DO; jahr = rtgetlong(, , "Für welches Jahr soll gedruckt werden :", , ,"rtgl_min = 1 rtgl_may = 9999"); IF Druckart = "Drucker" THEN DO; Druckfile = "t:Druck" Ergebnis = rtezrequest("Bitte leeres Blatt einlegen","OK|Abbruch",,ReqCent); END; ELSE DO; Druckfile = Druckverz || "Einnahmen." || jahr; Ergebnis = rtezrequest("Speichere Druck in" Druckfile,"OK|Abbruch",,ReqCent); END; IF Ergebnis > 0 then DO; Z.6 = "Re.Nr Datum Ku.Nr Art.Nr Anzahl E.Preis Summe Endsumme" Z.7 = Copies("-",74); jahr_l = LENGTH(jahr); Endsumme = 0; MWSt = 0; Druckdat = "Einnahmen"; OPEN(Druckdat,Druckfile,'write'); WRITELN(Druckdat,D_Rueck || Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; Z.6 = FF || Z.6; DO k = 1 to (R_max - 1); l = right("000000" || k,6); IF jahr = right(RE_Datum.l,jahr_l) THEN DO; UEB_RechNr = l; CALL UP_R_Berechnung; Z.1 = l RE_Datum.l RE_Kunde.l RE_Art.1.l right(RE_Anz.1.l,6) right(ZW_Epreis.1,11) right(ZW_Summe.1,11); ZEILE = ZEILE + 1; IF Zeile > B_laenge THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; WRITELN(Druckdat,Z.1); DO i = 2 TO 12; IF RE_Anz.i.l > 0 THEN DO; Z.1 = Copies(" ",24) RE_Art.i.l right(RE_Anz.i.l,6) right(ZW_Epreis.i,11) right(ZW_Summe.i,11); ZEILE = ZEILE + 1; IF Zeile > B_laenge THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; WRITELN(Druckdat,Z.1); END; END; Z.1 = Copies(" ",24) right(RE_Art.13.l,6) right(RE_Anz.13.l,6) right(ZW_Epreis.13,11) right(ZW_Summe.13,11) right(ZW_Endsumme,11) LF; ZEILE = ZEILE + 2; IF Zeile > B_laenge THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; WRITELN(Druckdat,Z.1); Endsumme = Endsumme + ZW_Endsumme; MWSt = MWSt + ZW_MWSt; ENetto = Endsumme - MWSt; END; END; Z.1 = Copies("-",74); Z.2 = "Endsumme (Netto) =" Copies(" ",38) right(ENetto,15); Z.3 = "Mehrwertsteuer =" Copies(" ",38) right(MWSt,15); Z.4 = "Endsumme (Brutto) =" Copies(" ",38) right(Endsumme,15); Z.5 = Copies("=",74) D_Ende; IF Zeile > (B_laenge - 5) THEN DO; WRITELN(Druckdat,Z.6); WRITELN(Druckdat,Z.7); Zeile = 3; END; DO i = 1 TO 5; WRITELN(Druckdat,Z.i); END; CLOSE(Druckdat); IF Druckart = "Drucker" THEN address COMMAND "run >NIL: copy t:Druck to" Druckport; END; END; WHEN msgclass3 = CLOSEWINDOW | msgcode3 = 27 THEN extime3 = 1; OTHERWISE NOP; END; RETURN 1; Auswertung4: SELECT WHEN msgcode4 = 86 | msgcode4 = 118 THEN ACTIVATEGADID(10,w4,null()); WHEN msgid4 = 10 THEN ZW_VorName = GETSTRGAD(w4,10,null()); WHEN msgcode4 = 78 | msgcode4 = 110 THEN ACTIVATEGADID(11,w4,null()); WHEN msgid4 = 11 THEN ZW_Name = GETSTRGAD(w4,11,null()); WHEN msgcode4 = 83 | msgcode4 = 115 THEN ACTIVATEGADID(12,w4,null()); WHEN msgid4 = 12 THEN ZW_Strasse = GETSTRGAD(w4,12,null()); WHEN msgcode4 = 80 | msgcode4 = 112 THEN ACTIVATEGADID(13,w4,null()); WHEN msgid4 = 13 THEN ZW_PLZ = GETSTRGAD(w4,13,null()); WHEN msgcode4 = 79 | msgcode4 = 111 THEN ACTIVATEGADID(14,w4,null()); WHEN msgid4 = 14 THEN ZW_Ort = GETSTRGAD(w4,14,null()); WHEN msgcode4 = 76 | msgcode4 = 108 THEN ACTIVATEGADID(15,w4,null()); WHEN msgid4 = 15 THEN ZW_Land = GETSTRGAD(w4,15,null()); WHEN msgcode4 = 71 | msgcode4 = 103 THEN ACTIVATEGADID(16,w4,null()); WHEN msgid4 = 16 THEN ZW_GebTag = GETSTRGAD(w4,16,null()); WHEN msgcode4 = 84 | msgcode4 = 116 THEN ACTIVATEGADID(17,w4,null()); WHEN msgid4 = 17 THEN ZW_Tel = GETSTRGAD(w4,17,null()); WHEN msgcode4 = 70 | msgcode4 = 102 THEN ACTIVATEGADID(18,w4,null()); WHEN msgid4 = 18 THEN ZW_Fax = GETSTRGAD(w4,18,null()); WHEN msgcode4 = 220 | msgcode4 = 252 THEN ACTIVATEGADID(19,w4,null()); WHEN msgid4 = 19 THEN ZW_Dfue = GETSTRGAD(w4,19,null()); WHEN msgcode4 = 49 THEN ACTIVATEGADID(20,w4,null()); WHEN msgid4 = 20 THEN ZW_EMail1 = GETSTRGAD(w4,20,null()); WHEN msgcode4 = 50 THEN ACTIVATEGADID(21,w4,null()); WHEN msgid4 = 21 THEN ZW_EMail2 = GETSTRGAD(w4,21,null()); WHEN msgcode4 = 51 THEN ACTIVATEGADID(22,w4,null()); WHEN msgid4 = 22 THEN ZW_EMail3 = GETSTRGAD(w4,22,null()); WHEN msgcode4 = 65 | msgcode4 = 97 THEN ACTIVATEGADID(23,w4,null()); WHEN msgid4 = 23 THEN ZW_Anrede = GETSTRGAD(w4,23,null()); WHEN msgcode4 = 66 | msgcode4 = 98 THEN ACTIVATEGADID(24,w4,null()); WHEN msgid4 = 24 THEN ZW_BAnr = GETSTRGAD(w4,24,null()); WHEN msgcode4 = 75 | msgcode4 = 107 THEN ACTIVATEGADID(25,w4,null()); WHEN msgid4 = 25 THEN ZW_Komm = GETSTRGAD(w4,25,null()); WHEN msgcode4 = 46 | msgcode4 = 58 THEN ACTIVATEGADID(26,w4,null()); WHEN msgid4 = 26 THEN ZW_BankBez = GETSTRGAD(w4,26,null()); WHEN msgcode4 = 90 | msgcode4 = 122 THEN ACTIVATEGADID(27,w4,null()); WHEN msgid4 = 27 THEN ZW_BLZ = GETSTRGAD(w4,27,null()); WHEN msgcode4 = 42 | msgcode4 = 43 THEN ACTIVATEGADID(28,w4,null()); WHEN msgid4 = 28 THEN ZW_Konto = GETSTRGAD(w4,28,null()); WHEN msgcode4 = 85 | msgcode4 = 117 THEN ACTIVATEGADID(29,w4,null()); WHEN msgid4 = 29 THEN ZW_BankKurz = GETSTRGAD(w4,29,null()); WHEN msgcode4 = 82 | msgcode4 = 114 THEN ACTIVATEGADID(30,w4,null()); WHEN msgid4 = 30 THEN ZW_Rabatt = GETSTRGAD(w4,30,null()); WHEN msgid4 = 40 | msgcode4 = 73 | msgcode4 = 105 THEN DO; CALL UP_Kunde_OK; Druckart = GETVALUE(mlabels2,msgcode4*4,4,'s'); SELECT; WHEN Druckart = "Firma" THEN DO; CALL OffGadget(41,w4,null()); CALL OffGadget(42,w4,null()); CALL OffGadget(43,w4,null()); CALL OffGadget(44,w4,null()); CALL OffGadget(45,w4,null()); CALL UP_Firma_alles; CALL UP_ReErst_fuellen; END; OTHERWISE DO; CALL OnGadget(41,w4,null()); CALL OnGadget(42,w4,null()); CALL OnGadget(43,w4,null()); CALL OnGadget(44,w4,null()); CALL OnGadget(45,w4,null()); CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; END; WHEN msgcode4 = 72 | msgcode4 = 104 THEN ACTIVATEGADID(41,w4,null()); WHEN msgid4 = 41 THEN DO; Test = GETSTRGAD(w4,41,null()); IF Test = ZW_Suchen | Druckart = "Firma" THEN NOP; ELSE IF Test = "" THEN ZW_Suchen = ""; ELSE DO; CALL UP_Kunde_OK; j = LENGTH(Test); x = "Nein"; Test = UPPER(Test); DO I = 1 TO K_max; I = right("000000" || I,6); IF POS(Test,UPPER(KD_VorName.I)), + POS(Test,UPPER(KD_Name.I)), + POS(Test,UPPER(KD_Strasse.I)), + POS(Test,UPPER(KD_PLZ.I)), + POS(Test,UPPER(KD_Ort.I)), + POS(Test,UPPER(KD_Land.I)), + POS(Test,UPPER(KD_GebTag.I)), + POS(Test,UPPER(KD_Tel.I)), + POS(Test,UPPER(KD_Fax.I)), + POS(Test,UPPER(KD_Dfue.I)), + POS(Test,UPPER(KD_EMail1.I)), + POS(Test,UPPER(KD_EMail2.I)), + POS(Test,UPPER(KD_EMail3.I)), + POS(Test,UPPER(KD_Anrede.I)), + POS(Test,UPPER(KD_BAnr.I)), + POS(Test,UPPER(KD_Komm.I)), + POS(Test,UPPER(KD_BankBez.I)), + POS(Test,UPPER(KD_BLZ.I)), + POS(Test,UPPER(KD_Konto.I)), + POS(Test,UPPER(KD_BankKurz.I)) > 0 THEN DO; x = I; I = K_max; END; END; ZW_Suchen = Test; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent); ELSE DO; ZW_KundenNr = x; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; END; WHEN msgcode4 = 47 | msgcode4 = 55 THEN ACTIVATEGADID(43,w4,null()); WHEN msgid4 = 42 | msgcode4 = 67 | msgcode4 = 99 THEN IF ZW_Tel > "" THEN DO; rtezrequest("ARexx Port von WilhelmTEL fehlt leider noch!",,,ReqCent); END; ELSE rtezrequest("Nö, ohne Telefonnummer geht hier nix!",,,ReqCent); WHEN msgid4 = 43 THEN DO; Test = GETSTRGAD(w4,43,null()); IF Test = ZW_KundenNr | Druckart = "Firma" THEN NOP; ELSE DO; CALL UP_Kunde_OK; ZW_KundenNr = right("000000" || TEST,6) IF DATATYPE(ZW_KundenNr,'n') THEN DO; IF ZW_KundenNr > K_max THEN ZW_KundenNr = K_max; ZW_KundenNr = RIGHT("000000" || ZW_KundenNr,6); END; ELSE DO; rtezrequest("Kundennummer nicht numerisch, bitte prüfen!",,,ReqCent); ZW_KundenNr = "000001"; END; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; WHEN msgid4 = 44 | msgcode4 = 62 THEN DO; IF Druckart = "Firma" THEN NOP; ELSE DO; IF ZW_Suchen = "" THEN DO; Test = ZW_KundenNr + 1; CALL UP_Kunde_OK; ZW_KundenNr = right("000000" || Test,6); IF ZW_KundenNr > K_max THEN ZW_KundenNr = K_max; ELSE DO; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; ELSE DO; x = "Nein"; DO I = (ZW_KundenNr + 1) TO (K_max-1); I = right("000000" || I,6); ZW_Suchen = UPPER(ZW_Suchen); IF POS(ZW_Suchen,UPPER(KD_VorName.I)), + POS(ZW_Suchen,UPPER(KD_Name.I)), + POS(ZW_Suchen,UPPER(KD_Strasse.I)), + POS(ZW_Suchen,UPPER(KD_PLZ.I)), + POS(ZW_Suchen,UPPER(KD_Ort.I)), + POS(ZW_Suchen,UPPER(KD_Land.I)), + POS(ZW_Suchen,UPPER(KD_GebTag.I)), + POS(ZW_Suchen,UPPER(KD_Tel.I)), + POS(ZW_Suchen,UPPER(KD_Fax.I)), + POS(ZW_Suchen,UPPER(KD_Dfue.I)), + POS(ZW_Suchen,UPPER(KD_EMail1.I)), + POS(ZW_Suchen,UPPER(KD_EMail2.I)), + POS(ZW_Suchen,UPPER(KD_EMail3.I)), + POS(ZW_Suchen,UPPER(KD_Anrede.I)), + POS(ZW_Suchen,UPPER(KD_BAnr.I)), + POS(ZW_Suchen,UPPER(KD_Komm.I)), + POS(ZW_Suchen,UPPER(KD_BankBez.I)), + POS(ZW_Suchen,UPPER(KD_BLZ.I)), + POS(ZW_Suchen,UPPER(KD_Konto.I)), + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN DO; x = I; I = K_max; END; END; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent); ELSE DO; ZW_KundenNr = x; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; END; END; WHEN msgid4 = 45 | msgcode4 = 60 THEN DO; IF Druckart = "Firma" THEN NOP; ELSE DO; IF ZW_Suchen = "" THEN DO; Test = ZW_KundenNr - 1; CALL UP_Kunde_OK; ZW_KundenNr = right("000000" || Test,6); IF ZW_KundenNr < 000001 THEN ZW_KundenNr = "000001"; ELSE DO; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; ELSE DO; x = "Nein"; DO I = (ZW_KundenNr - 1) TO 1 BY -1; I = right("000000" || I,6); ZW_Suchen = UPPER(ZW_Suchen); IF POS(ZW_Suchen,UPPER(KD_VorName.I)), + POS(ZW_Suchen,UPPER(KD_Name.I)), + POS(ZW_Suchen,UPPER(KD_Strasse.I)), + POS(ZW_Suchen,UPPER(KD_PLZ.I)), + POS(ZW_Suchen,UPPER(KD_Ort.I)), + POS(ZW_Suchen,UPPER(KD_Land.I)), + POS(ZW_Suchen,UPPER(KD_GebTag.I)), + POS(ZW_Suchen,UPPER(KD_Tel.I)), + POS(ZW_Suchen,UPPER(KD_Fax.I)), + POS(ZW_Suchen,UPPER(KD_Dfue.I)), + POS(ZW_Suchen,UPPER(KD_EMail1.I)), + POS(ZW_Suchen,UPPER(KD_EMail2.I)), + POS(ZW_Suchen,UPPER(KD_EMail3.I)), + POS(ZW_Suchen,UPPER(KD_Anrede.I)), + POS(ZW_Suchen,UPPER(KD_BAnr.I)), + POS(ZW_Suchen,UPPER(KD_Komm.I)), + POS(ZW_Suchen,UPPER(KD_BankBez.I)), + POS(ZW_Suchen,UPPER(KD_BLZ.I)), + POS(ZW_Suchen,UPPER(KD_Konto.I)), + POS(ZW_Suchen,UPPER(KD_BankKurz.I)) > 0 THEN DO; x = I; I = 0; END; END; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent); ELSE DO; ZW_KundenNr = x; CALL UP_Kunden_alles; CALL UP_ReErst_fuellen; END; END; END; END; WHEN msgid4 = 46 | msgclass4 = CLOSEWINDOW | msgcode4 = 69 | msgcode4 = 101 | msgcode4 = 27 THEN DO; CALL UP_Kunde_OK; extime4 = 1; END; WHEN msgid4 = 47 | msgcode4 = 68 | msgcode4 = 100 THEN DO; CALL UP_Kunde_OK; CALL UP_Drucken; END; WHEN msgid4 = 48 THEN DO; Druckart = GETVALUE(mlabels4,msgcode4*4,4,'s'); SELECT; WHEN Druckart = "Firma" THEN CALL UP_Firma_alles; WHEN Druckart = "Kunden" THEN CALL UP_Kunden_alles; OTHERWISE NOP; END; CALL UP_ReErst_fuellen; END; OTHERWISE NOP; END; RETURN 1; Auswertung5: SELECT WHEN msgcode5 = 66 | msgcode5 = 98 THEN ACTIVATEGADID(10,w5,null()); WHEN msgid5 = 10 THEN ZW_ArtBez = GETSTRGAD(w5,10,null()); WHEN msgcode5 = 80 | msgcode5 = 112 THEN ACTIVATEGADID(11,w5,null()); WHEN msgid5 = 11 THEN ZW_ArtPreis = GETSTRGAD(w5,11,null()); WHEN msgcode5 = 85 | msgcode5 = 117 THEN ACTIVATEGADID(12,w5,null()); WHEN msgid5 = 12 THEN ZW_ArtBuch = GETSTRGAD(w5,12,null()); WHEN msgcode5 = 77 | msgcode5 = 109 THEN ACTIVATEGADID(13,w5,null()); WHEN msgid5 = 13 THEN DO; Test = GETSTRGAD(w5,msgid5,null()); IF Test ~= ZW_ArtMWSt THEN DO; IF Test = "1" | Test = "2" | Test = "3" THEN ZW_ArtMWSt = Test; ELSE DO; CALL SETSTRGADID(w5,msgid5,ZW_ArtMWSt,null()); REFRESHGLIST(conxgad5,w5,null(),-1); ACTIVATEGADID(msgid5,w5,null()); END; END; END; WHEN msgcode5 = 72 | msgcode5 = 104 THEN ACTIVATEGADID(41,w5,null()); WHEN msgid5 = 41 THEN /* Suchbegriff wurde eingegeben/geändert */ DO; Test = GETSTRGAD(w5,41,null()); IF Test = "" THEN ZW_Suchen = ""; ELSE DO; CALL UP_Artikel_OK; j = LENGTH(Test); x = "Nein"; Test = UPPER(Test); DO I = 1 TO A_max; I = right("000000" || I,6); IF POS(Test,UPPER(AR_ArtBez.I)), + POS(Test,UPPER(AR_ArtPreis.I)), + POS(Test,UPPER(AR_ArtBuch.I)) > 0 THEN DO; x = I; I = A_max; END; END; ZW_Suchen = Test; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht gefunden werden",,,ReqCent); ELSE DO; ZW_ArtikelNr = x; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; END; WHEN msgcode5 = 65 | msgcode5 = 97 THEN ACTIVATEGADID(43,w5,null()); WHEN msgid5 = 43 THEN /* Artikelnummer wurde eingegeben/geändert */ DO; Test = GETSTRGAD(w5,43,null()); IF Test = ZW_ArtikelNr THEN NOP; ELSE DO; CALL UP_Artikel_OK; ZW_ArtikelNr = Test; IF DATATYPE(ZW_ArtikelNr,'n') THEN DO; IF ZW_ArtikelNr > A_max THEN ZW_ArtikelNr = A_max; ZW_ArtikelNr = RIGHT("000000" || ZW_ArtikelNr,6); END; ELSE DO; rtezrequest("Artikelnummer nicht numerisch, bitte prüfen!",,,ReqCent); ZW_ArtikelNr = "000001"; END; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; WHEN msgid5 = 44 | msgcode5 = 62 THEN DO; IF ZW_Suchen = "" THEN DO; Test = ZW_ArtikelNr + 1; CALL UP_Artikel_OK; ZW_ArtikelNr = right("000000" || Test,6); IF ZW_ArtikelNr > A_max THEN ZW_ArtikelNr = A_max; ELSE DO; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; ELSE DO; x = "Nein"; DO I = (ZW_ArtikelNr + 1) TO (A_max-1); I = right("000000" || I,6); IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)), + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)), + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN DO; x = I; I = A_max; END; END; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent); ELSE DO; ZW_ArtikelNr = x; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; END; WHEN msgid5 = 45 | msgcode5 = 60 THEN DO; IF ZW_Suchen = "" THEN DO; Test = ZW_ArtikelNr - 1; CALL UP_Artikel_OK; ZW_ArtikelNr = right("000000" || Test,6); IF ZW_ArtikelNr < 000001 THEN ZW_ArtikelNr = "000001"; ELSE DO; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; ELSE DO; x = "Nein"; DO I = (ZW_ArtikelNr - 1) TO 1 BY -1; I = right("000000" || I,6); IF POS(ZW_Suchen,UPPER(AR_ArtBez.I)), + POS(ZW_Suchen,UPPER(AR_ArtPreis.I)), + POS(ZW_Suchen,UPPER(AR_ArtBuch.I)) > 0 THEN DO; x = I; I = 0; END; END; IF x = "Nein" THEN rtezrequest("Der Begriff konnte nicht nochmal gefunden werden",,,ReqCent); ELSE DO; ZW_ArtikelNr = x; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; END; END; WHEN msgid5 = 46 | msgclass5 = CLOSEWINDOW | msgcode5 = 69 | msgcode5 = 101 | msgcode5 = 27 THEN DO; CALL UP_Artikel_OK; extime5 = 1; END; WHEN msgid5 = 47 | msgcode5 = 68 | msgcode5 = 100 THEN DO; CALL UP_Artikel_OK; CALL UP_Drucken; END; WHEN msgid5 = 48 THEN DO; CALL UP_Artikel_alles; CALL UP_ArtErst_fuellen; END; OTHERWISE NOP; END; RETURN 1; Auswertung6: SELECT WHEN msgcode6 = 33 | msgcode6 = 49 THEN ACTIVATEGADID(10,w6,null()); WHEN msgid6 = 10 THEN DO; Test = GETSTRGAD(w6,msgid6,null()); IF Test ~= MWSt_Satz.1 THEN DO; IF datatype(Test,'n') THEN MWSt_Satz.1 = Test; ELSE MWSt_Satz.1 = 15.0; CALL SETSTRGADID(w6,msgid6,MWSt_Satz.1,null()); REFRESHGLIST(conxgad6,w6,null(),-1); MWSt_Rech.1 = MWSt_Satz.1 / (100 + MWSt_Satz.1); END; END; WHEN msgcode6 = 34 | msgcode6 = 50 THEN ACTIVATEGADID(11,w6,null()); WHEN msgid6 = 11 THEN DO; Test = GETSTRGAD(w6,msgid6,null()); IF Test ~= MWSt_Satz.2 THEN DO; IF datatype(Test,'n') THEN MWSt_Satz.2 = Test; ELSE MWSt_Satz.2 = 7.0; CALL SETSTRGADID(w6,msgid6,MWSt_Satz.2,null()); REFRESHGLIST(conxgad6,w6,null(),-1); MWSt_Rech.2 = MWSt_Satz.2 / (100 + MWSt_Satz.2); END; END; WHEN msgcode6 = 87 | msgcode6 = 119 | msgid6 = 12 THEN DO; Test = rtfilerequest("Drucker",,"Druckerauswahl"); IF Test > 0 THEN DO; Druckdatei = Test CALL pitext(rpw6,7.8*Font_X,7.2*Font_Y,right(Druckdatei,12),apen,0,jam2,scrfont); CALL UP_Druckdaten_lesen; END; END; WHEN msgcode6 = 80 | msgcode4 = 112 THEN ACTIVATEGADID(14,w4,null()); WHEN msgid6 = 14 THEN Druckport = GETSTRGAD(w6,msgid6,null()); WHEN msgcode6 = 88 | msgcode4 = 120 THEN ACTIVATEGADID(15,w6,null()); WHEN msgid6 = 15 THEN DO; Test = GETSTRGAD(w6,msgid6,null()); IF Test ~= D_XAbst THEN DO; IF datatype(Test,'w') THEN D_XAbst = Test; ELSE DO; D_XAbst = 1; CALL SETSTRGADID(w6,msgid6,D_XAbst,null()); REFRESHGLIST(conxgad6,w6,null(),-1); END; END; END; WHEN msgcode6 = 89 | msgcode6 = 121 THEN ACTIVATEGADID(16,w4,null()); WHEN msgid6 = 16 THEN DO; Test = GETSTRGAD(w6,msgid6,null()); IF Test ~= D_YAbst THEN DO; IF datatype(Test,'w') THEN D_YAbst = Test; ELSE DO; D_YAbst = 1; CALL SETSTRGADID(w6,msgid6,D_YAbst,null()); REFRESHGLIST(conxgad6,w6,null(),-1); END; END; END; WHEN msgid6 = 17 | msgclass6 = CLOSEWINDOW | msgcode6 = 69 | msgcode6 = 101 | msgcode6 = 27 THEN extime6 = 1; OTHERWISE NOP; END; RETURN 1; UP_Kunden_alles: ZW_VorName = KD_VorName.ZW_KundenNr; ZW_Name = KD_Name.ZW_KundenNr; ZW_Strasse = KD_Strasse.ZW_KundenNr; ZW_PLZ = KD_PLZ.ZW_KundenNr; ZW_Ort = KD_Ort.ZW_KundenNr; ZW_Land = KD_Land.ZW_KundenNr; ZW_GebTag = KD_GebTag.ZW_KundenNr; ZW_Tel = KD_Tel.ZW_KundenNr; ZW_Fax = KD_Fax.ZW_KundenNr; ZW_Dfue = KD_Dfue.ZW_KundenNr; ZW_EMail1 = KD_EMail1.ZW_KundenNr; ZW_EMail2 = KD_EMail2.ZW_KundenNr; ZW_EMail3 = KD_EMail3.ZW_KundenNr; ZW_Anrede = KD_Anrede.ZW_KundenNr; ZW_BAnr = KD_BAnr.ZW_KundenNr; ZW_Komm = KD_Komm.ZW_KundenNr; ZW_BankBez = KD_BankBez.ZW_KundenNr; ZW_BLZ = KD_BLZ.ZW_KundenNr; ZW_Konto = KD_Konto.ZW_KundenNr; ZW_BankKurz = KD_BankKurz.ZW_KundenNr; ZW_Rabatt = KD_Rabatt.ZW_KundenNr; RETURN; UP_Firma_alles: ZW_VorName = FI_VorName; ZW_Name = FI_Name; ZW_Strasse = FI_Strasse; ZW_PLZ = FI_PLZ; ZW_Ort = FI_Ort; ZW_Land = FI_Land; ZW_GebTag = FI_GebTag; ZW_Tel = FI_Tel; ZW_Fax = FI_Fax; ZW_Dfue = FI_Dfue; ZW_EMail1 = FI_EMail1; ZW_EMail2 = FI_EMail2; ZW_EMail3 = FI_EMail3; ZW_Anrede = FI_Anrede; ZW_BAnr = FI_BAnr; ZW_Komm = FI_Komm; ZW_BankBez = FI_BankBez; ZW_BLZ = FI_BLZ; ZW_Konto = FI_Konto; ZW_BankKurz = FI_BankKurz; ZW_Rabatt = FI_Rabatt; RETURN; UP_ReErst_fuellen: CALL SETSTRGADID(w4,10,ZW_VorName,null()); CALL SETSTRGADID(w4,11,ZW_Name,null()); CALL SETSTRGADID(w4,12,ZW_Strasse,null()); CALL SETSTRGADID(w4,13,ZW_PLZ,null()); CALL SETSTRGADID(w4,14,ZW_Ort,null()); CALL SETSTRGADID(w4,15,ZW_Land,null()); CALL SETSTRGADID(w4,16,ZW_GebTag,null()); CALL SETSTRGADID(w4,17,ZW_Tel,null()); CALL SETSTRGADID(w4,18,ZW_Fax,null()); CALL SETSTRGADID(w4,19,ZW_Dfue,null()); CALL SETSTRGADID(w4,20,ZW_EMail1,null()); CALL SETSTRGADID(w4,21,ZW_EMail2,null()); CALL SETSTRGADID(w4,22,ZW_EMail3,null()); CALL SETSTRGADID(w4,23,ZW_Anrede,null()); CALL SETSTRGADID(w4,24,ZW_BAnr,null()); CALL SETSTRGADID(w4,25,ZW_Komm,null()); CALL SETSTRGADID(w4,26,ZW_BankBez,null()); CALL SETSTRGADID(w4,27,ZW_BLZ,null()); CALL SETSTRGADID(w4,28,ZW_Konto,null()); CALL SETSTRGADID(w4,29,ZW_BankKurz,null()); CALL SETSTRGADID(w4,30,ZW_Rabatt,null()); CALL SETSTRGADID(w4,43,ZW_KundenNr,null()); CALL SETSTRGADID(w4,41,ZW_Suchen,null()); REFRESHGLIST(conxgad4,w4,null(),-1); RETURN; UP_Kunde_OK: SELECT; WHEN Druckart = "Firma" THEN DO; FI_VorName = ZW_VorName; FI_Name = ZW_Name; FI_Strasse = ZW_Strasse; FI_PLZ = ZW_PLZ; FI_Ort = ZW_Ort; FI_Land = ZW_Land; FI_GebTag = ZW_GebTag; FI_Tel = ZW_Tel; FI_Fax = ZW_Fax; FI_Dfue = ZW_Dfue; FI_EMail1 = ZW_EMail1; FI_EMail2 = ZW_EMail2; FI_EMail3 = ZW_EMail3; FI_Anrede = ZW_Anrede; FI_BAnr = ZW_BAnr; FI_Komm = ZW_Komm; FI_BankBez = ZW_BankBez; FI_BLZ = ZW_BLZ; FI_Konto = ZW_Konto; FI_BankKurz = ZW_BankKurz; FI_Rabatt = ZW_Rabatt; END; WHEN Druckart = "Kunden" THEN DO; KD_VorName.ZW_KundenNr = ZW_VorName; KD_Name.ZW_KundenNr = ZW_Name; KD_Strasse.ZW_KundenNr = ZW_Strasse; KD_PLZ.ZW_KundenNr = ZW_PLZ; KD_Ort.ZW_KundenNr = ZW_Ort; KD_Land.ZW_KundenNr = ZW_Land; KD_GebTag.ZW_KundenNr = ZW_GebTag; KD_Tel.ZW_KundenNr = ZW_Tel; KD_Fax.ZW_KundenNr = ZW_Fax; KD_Dfue.ZW_KundenNr = ZW_Dfue; KD_EMail1.ZW_KundenNr = ZW_EMail1; KD_EMail2.ZW_KundenNr = ZW_EMail2; KD_EMail3.ZW_KundenNr = ZW_EMail3; KD_Anrede.ZW_KundenNr = ZW_Anrede; KD_BAnr.ZW_KundenNr = ZW_BAnr; KD_Komm.ZW_KundenNr = ZW_Komm; KD_BankBez.ZW_KundenNr = ZW_BankBez; KD_BLZ.ZW_KundenNr = ZW_BLZ; KD_Konto.ZW_KundenNr = ZW_Konto; KD_BankKurz.ZW_KundenNr = ZW_BankKurz; KD_Rabatt.ZW_KundenNr = ZW_Rabatt; END; OTHERWISE NOP; END; IF ZW_Name > "" & ZW_KundenNr = K_max then DO; K_max = K_max + 1; CALL UP_K_max_init; END; ELSE IF ZW_Name = "" & ZW_KundenNr = (K_max -1) then DO; K_max = ZW_KundenNr; CALL UP_K_max_init; END; DefGads4 = 2; RETURN; UP_Artikel_alles: ZW_ArtBez = AR_ArtBez.ZW_ArtikelNr; ZW_ArtPreis = AR_ArtPreis.ZW_ArtikelNr; ZW_ArtBuch = AR_ArtBuch.ZW_ArtikelNr; ZW_ArtMWSt = AR_ArtMWSt.ZW_ArtikelNr; RETURN; UP_ArtErst_fuellen: CALL SETSTRGADID(w5,10,ZW_ArtBez,null()); CALL SETSTRGADID(w5,11,ZW_ArtPreis,null()); CALL SETSTRGADID(w5,12,ZW_ArtBuch,null()); CALL SETSTRGADID(w5,13,ZW_ArtMWSt,null()); CALL SETSTRGADID(w5,43,ZW_ArtikelNr,null()); REFRESHGLIST(conxgad5,w5,null(),-1); RETURN; UP_Artikel_OK: IF AR_ArtBez.ZW_ArtikelNr = ZW_ArtBez &, AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis &, AR_ArtBuch.ZW_ArtikelNr = ZW_ArtBuch &, AR_ArtMWSt.ZW_ArtikelNr = ZW_ArtMWSt THEN NOP; ELSE; DO; AR_ArtBez.ZW_ArtikelNr = ZW_ArtBez; AR_ArtPreis.ZW_ArtikelNr= ZW_ArtPreis; AR_ArtBuch.ZW_ArtikelNr = ZW_ArtBuch; AR_ArtMWSt.ZW_ArtikelNr = ZW_ArtMWSt; IF ZW_ArtBez > "" & ZW_ArtikelNr = A_max then DO; A_max = A_max + 1; CALL UP_A_max_init; END; ELSE IF ZW_ArtBez = "" & ZW_ArtikelNr = A_max - 1 then DO; A_max = A_max - 1; CALL UP_A_max_init; END; DefGads5 = 2; END; RETURN; UP_Rechnung_OK: Art_gr_null = 0; IF RE_Kunde.UEB_RechNr ~= ZW_KundenNr THEN DO; RE_Kunde.UEB_RechNr = ZW_KundenNr; DefGads2 = 2; END; DO z = 1 to I_Max; IF RE_Art.z.UEB_RechNr ~= ZW_Art_Nr.z |, RE_Anz.z.UEB_RechNr ~= ZW_Art_Anz.z THEN DO; RE_Art.z.UEB_RechNr = ZW_Art_Nr.z; RE_Anz.z.UEB_RechNr = ZW_Art_Anz.z; DefGads2 = 2; END; IF ZW_Art_Nr.z > "" THEN Art_gr_null = 1; END; IF Art_gr_null = 1 & UEB_RechNr = R_max THEN DO; R_max = R_max + 1; CALL UP_Rech_max_init; END; ELSE IF Art_gr_null = 0 & UEB_RechNr = (R_max - 1) THEN DO; R_max = R_max - 1; CALL UP_Rech_max_init; END; RETURN; UP_R_Berechnung: ZW_MWSt = 0; ZW_Endsumme = 0; ZW_Rab = 0; ZW_KundenNr = RE_Kunde.UEB_RechNr; ZW_Rabatt = KD_Rabatt.ZW_KundenNr IF ~DATATYPE(ZW_Rabatt,'n') THEN ZW_Rabatt = 0; ZW_Rabatt = ZW_Rabatt / 100; DO j = 1 to I_Max; ZW_Art_Nr.j = RE_Art.j.UEB_RechNr; IF ZW_Art_Nr.j > "" THEN DO; x = ZW_Art_Nr.j; ZW_EPreis.j = AR_ArtPreis.x; ZW_ArtBez.j = AR_ArtBez.x; ZW_Menge.j = RE_Anz.j.UEB_RechNr; ZW_Summe.j = (ZW_EPreis.j * ZW_Menge.j) + 0.005; IF ZW_Summe.j < 0 THEN ZW_Summe.j = ZW_Summe.j - 0.01; ZW_Summe.j = trunc(ZW_Summe.j,2); ZW_Rab = ZW_Rab + (ZW_Summe.j * ZW_Rabatt); ZW_Summe.j = right(ZW_Summe.j,10); ZW_Endsumme = ZW_Endsumme + ZW_Summe.j; z = AR_ArtMWSt.x; ZW_MWSt = ZW_MWSt + ((ZW_Summe.j - (ZW_Summe.j * ZW_Rabatt)) * MWSt_Rech.z); END; ELSE DO; ZW_Summe.j = ""; ZW_Art_Nr.j = ""; ZW_Art_Bez.j= ""; ZW_EPreis.j = ""; ZW_ArtBez.j = ""; END; END; ZW_Endsumme = right(trunc(ZW_Endsumme - ZW_Rab + 0.005,2),10); ZW_Rab = right(trunc(ZW_Rab + 0.005,2),9); ZW_MWSt = right(trunc(ZW_MWSt + 0.005,2),9); RETURN; /* Unterprogramm zum S P E R R E N von Texten */ UP_Sperr: procedure expose units; parse arg ZW_Text; Text_Sperr = ""; DO i = 1 to length(ZW_Text); Text_Sperr = Text_Sperr || substr(ZW_Text,i,1) || " "; END; RETURN Text_Sperr; /* Unterprogramm zur Ermittlung des aktuellen Datums */ UP_Datum:procedure; tt = SUBSTR(DATE(s),7,2); /* Tag im Monat */ mm = SUBSTR(DATE(s),5,2); /* Monat */ jjjj = right(DATE(n),4); /* Jahr und Jahrhundert */ datum = tt || "." || mm || "." || jjjj; /* zusammenfügen */ RETURN datum;