Clipper is still in use.
Ein Kunde von mir arbeitet seit 1988 mit einem von mir in Clipper programmierten ERP. Also, immer noch. Da es stabil läuft, muss ich ganz selten ran. Aber gerade ist es wieder mal soweit.
Die Ausdrucke der Rechnungen, Gutschriften, Lieferscheine, usw. erfolgt auf einem Laserdrucker (LJ-kompatibel) und funktioniert auch perfekt. In einiger Zeit steht ja bei den Banken die Umstellen auf den IBAN und BIC Zahlungsverkehr an. Jetzt möchte mein Kunde schon vorab, die entsprechenden Daten auf der Rechnung mit ausdrucken. Mein Idee war es, dass in einer Umrahmung zu machen. Aufgrund der Informationsfülle auf der Rechnung, arbeite ich beim Ausdruck mit einer relativ hohen Komprimierung (CHR(27)+"(s16.6H") um die Zeilenbreite optimal auszunutzen. Nun habe ich aber beim Ausdruck von Zeile zu Zeile immer einen winzigen Leerraum zwischen den Rahmenzeichen. Schalte ich die Komprimierung ab, sieht es perfekt aus. Komprimierung abschalten geht aber nicht, da ich nicht mal die Hälfte der benötigten Infos auf die Formulare bekomme.
Eventuell hat einer von euch das gleiche Problem gehabt und es gelöst. Ich sitze schon 2 Tage dran und sehe wahrscheinlich den Wald vor lauter Bäumen icht mehr. Hochstellen und Zeilen verschieben bringt nichts, weil links von dem Bereich der komplette Adressbereich der Rechnung ist.
Hier mal ein kleines Testprogramm, mit dem ich versuche dem Problem auf die Spur zu kommen:
Code: Alles auswählen
LOCAL nI,cESC1,cESC2,cESC3,cESC4,cESC5,cESC6
SET PRINT TO LPT1
SET CONSOLE OFF
SET PRINT ON
cESC1 := CHR(27)+"E" // Initialisierung
cESC2 := CHR(27)+"(s0P" // Proportionalschrift 0=Nein, 1=Ja
cESC3 := CHR(27)+"(s3T" // Schriftart Courier
cESC4 := CHR(27)+"(s16.6H" // Komprimierung
cESC5 := CHR(27)+"(s10V" // 10 Pitch
cESC6 := CHR(27)+"*t300R" // Zeichendichte
cESC7 := CHR(27)+"(s10H" // Komprimierung auf Standard
?? cESC1
?? cESC2
?? cESC3
?? cESC4
?? cESC5
?? cESC6
? "Rahmen drucken"
?
? CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
? CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
? CHR(192)+REPLICATE(CHR(196),52)+CHR(217)
?? cESC7 // Komprimierung auschalten
?
? CHR(218)+REPLICATE(CHR(196),52)+CHR(191)
? CHR(179)+" "+REPLICATE("x",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("y",50)+" "+CHR(179)
? CHR(179)+" "+REPLICATE("c",50)+" "+CHR(179)
? CHR(192)+REPLICATE(CHR(196),52)+CHR(217)
?? cESC1
EJECT
SET PRINT OFF
SET CONSOLE ON