Ausdruck von memoedit() Daten mit memoline
Moderator: Moderatoren
Ausdruck von memoedit() Daten mit memoline
Hallo allerseits
habe da ein Problem mit dem Ausdruck von memo - Inhalten
PRG:
...
for zeile=1 to mlcount(bericht,69)
@dc_printerrow()+1,2 DCPRINT SAY memoline(bericht,69,zeile)
next ...
als ich noch ohne DCprint ausgedruckt also TEXT orientiert ...
sah der Ausdruck von der Form etwas so aus:
fdfhdjfdh jfhdfdjfj..........gut
fjfjf djfhdfjdf..........sehr gut
dds skdjkldj....................ja
jfdkfsd.........................nein
der Abstand wurde mit der TAB Taste so erstellt , daß der Text rechts rechtsbündig ausgedruckt wurde
beim Grafikausdruck sieht es jetzt trotz TAB Taste natürlich so aus:
fdfhdjfdh jfhdfdjfj...... gut
fjfjf djfhdfjdf........... sehr gut
dds skdjkldj...........ja
jfdkfsd...............nein
die Wörter rechts sind nich mehr rechtsbündig
gibt es da irgendwie einen Trick die rechtsbündigkeit nur der rechten Wörter zu erzwingen ?
Gruß Frank
habe da ein Problem mit dem Ausdruck von memo - Inhalten
PRG:
...
for zeile=1 to mlcount(bericht,69)
@dc_printerrow()+1,2 DCPRINT SAY memoline(bericht,69,zeile)
next ...
als ich noch ohne DCprint ausgedruckt also TEXT orientiert ...
sah der Ausdruck von der Form etwas so aus:
fdfhdjfdh jfhdfdjfj..........gut
fjfjf djfhdfjdf..........sehr gut
dds skdjkldj....................ja
jfdkfsd.........................nein
der Abstand wurde mit der TAB Taste so erstellt , daß der Text rechts rechtsbündig ausgedruckt wurde
beim Grafikausdruck sieht es jetzt trotz TAB Taste natürlich so aus:
fdfhdjfdh jfhdfdjfj...... gut
fjfjf djfhdfjdf........... sehr gut
dds skdjkldj...........ja
jfdkfsd...............nein
die Wörter rechts sind nich mehr rechtsbündig
gibt es da irgendwie einen Trick die rechtsbündigkeit nur der rechten Wörter zu erzwingen ?
Gruß Frank
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hi,
wenn du einen fixed Font (z.B. Courier new) benutzt, sollte der Ausdruck aussehen wie vorher. Auch wenn dies heute nicht mehr Zeitgemäß aussieht
Mit Proportionalfont müsste man die Ausgabe 'Aufspalten', also jede Zeile in den Teil vor dem TAB (wird da eigentlich chr(9) gesetzt oder alles mit Blanks aufgefüllt ?) bzw. vor dem letzten Blank abschneiden und linksbündig drucken, dann den restlichen Teil rechtsbündig drucken.
Also 2 GraStrAt() Befehle oder was du sonst zum Drucken nimmst in die gleiche Zeile aber anders ausgerichtet.
wenn du einen fixed Font (z.B. Courier new) benutzt, sollte der Ausdruck aussehen wie vorher. Auch wenn dies heute nicht mehr Zeitgemäß aussieht
Mit Proportionalfont müsste man die Ausgabe 'Aufspalten', also jede Zeile in den Teil vor dem TAB (wird da eigentlich chr(9) gesetzt oder alles mit Blanks aufgefüllt ?) bzw. vor dem letzten Blank abschneiden und linksbündig drucken, dann den restlichen Teil rechtsbündig drucken.
Also 2 GraStrAt() Befehle oder was du sonst zum Drucken nimmst in die gleiche Zeile aber anders ausgerichtet.
Gruß
Hubert
Hubert
stimmt mit courier funktioniert es ... sieht aber schei... aus ... aber auch nur wenn in memoedit die Abständer mit Space Taste erstellt wurden ... und nicht mit TAB ... was ich eigentlich nicht verstehe ???
vielleicht weiß da jemand was der express++ verwendet
irgendwie gibt es da bei DCPRINT den Zusatz FIXED ... der sollte doch da greifen ...
Gruß Frank
vielleicht weiß da jemand was der express++ verwendet
irgendwie gibt es da bei DCPRINT den Zusatz FIXED ... der sollte doch da greifen ...
Gruß Frank
- brandelh
- Foren-Moderator
- Beiträge: 15706
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
hi,
ich bin mir auch nicht sicher, ob memoedit die TAB Taste nach mehreren Blanks oder in ein chr(9) umsetzt.
Aber wenn eines in der Zeile ist, dann mach die Aufteilung die ich beschrieben habe und nutze 2 Druckbefehle:
ich bin mir auch nicht sicher, ob memoedit die TAB Taste nach mehreren Blanks oder in ein chr(9) umsetzt.
Aber wenn eines in der Zeile ist, dann mach die Aufteilung die ich beschrieben habe und nutze 2 Druckbefehle:
Code: Alles auswählen
nTab := rat(chr(9),cZeile)
DCPrint .... left(cZeile,nTab-1) // ich kenne mich mit dem DC... nicht
aus
if nTab > 0
DCPrint .... substr(cZeile,nTab+1)
endif
...
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hi Frank,
also ich würde das so machen wie Hubert dies schon angedeutet hat.
den Text mit GraStringAt auf den Drucker schieben. Hierbei kannstu du ja auch die Positionen bestimmen. Schau dir mal XbpPrinter an. Der druckt
direkt auf den Standarddrucker.
GraStringAt muß zwischen StartDoc() und EndDoc() stehen. Ich habe das allerdings programmiert mit XppPrintDialog(). d.h. hier kann ich den Drucker noch auswählen.
also ich würde das so machen wie Hubert dies schon angedeutet hat.
den Text mit GraStringAt auf den Drucker schieben. Hierbei kannstu du ja auch die Positionen bestimmen. Schau dir mal XbpPrinter an. Der druckt
direkt auf den Standarddrucker.
GraStringAt muß zwischen StartDoc() und EndDoc() stehen. Ich habe das allerdings programmiert mit XppPrintDialog(). d.h. hier kann ich den Drucker noch auswählen.
erstmal danke für alle Antworten ...
Im Moment wechsle ich einfach die Schriftart
von Arial nach Courier und zurück ....
wie kriege ich mit express++ den Ausdruck:
DCPRINT FONT "10.Courier" dazu daß er die Schriftart dunkel schwarz druckt und nicht nur so hellgrau
Gruß Frank
[EDIT] Ok doofe Frage ... natürlich mit DCPRINT FONT "10.Courier Bold"
Im Moment wechsle ich einfach die Schriftart
von Arial nach Courier und zurück ....
wie kriege ich mit express++ den Ausdruck:
DCPRINT FONT "10.Courier" dazu daß er die Schriftart dunkel schwarz druckt und nicht nur so hellgrau
Gruß Frank
[EDIT] Ok doofe Frage ... natürlich mit DCPRINT FONT "10.Courier Bold"
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo Frank,
mit eXpress++ ist doch rechtsbündig kein Problem:
Teile deine memoline auf und drucke mit:
mit eXpress++ ist doch rechtsbündig kein Problem:
Teile deine memoline auf und drucke mit:
Code: Alles auswählen
for zeile=1 to mlcount(bericht,69)
@dc_printerrow()+1,2 DCPRINT SAY substr(memoline(bericht,69,zeile),1,xx)
DCPRINT SAY substr(memoline(bericht,69,zeile),xx) ALIGNRIGHT
next ..
Viele Grüße
Wolfgang
Wolfgang
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Frank
mit diesem Formatierungsproblemen habe ich nach Umstellung von Clipper auf Xbase/Express bis zum Umfallen gekämpft. Es verstärkt sich noch mehr, wenn man z.B. Texte in Form von Tabellen erzeugt, in denen dann zeilenweise Zahlenkolonnen oder dergl. untereinander stehen sollen. Und das auch noch nach dem mehrmaligen Speichern und Zurücklesen.
Ich habe für mich folgende Lösung gefunden.
Ich benutze für diese Zwecke nur noch die nichtprop. Schriftart Lucida Console zum Drucken und zur Bearbeitung am Bildschirm. Sieht gut aus und nicht so schei..., als wenn man eine Prop-Schrift mit fixed druckt.
Ausserdem speicher ich nicht mehr in Memo-Felder.
Ich habe mir eine DBF mit 2 Feldern erzeugt, in der ich diese Texte zeilenweise speicher.
Feld 1 = Textname
Feld 2 = Zeileninhalt.
Den gewünschten Inhalt lese ich zeilenweise in ein Array ein, das ich dann mit dcbrowse bearbeite. Mit dcbrowse kann man (Arrayelemente) Zeilen löschen, einfügen und anhängen.
Der automatische Zeilenumbruch geht so zwar nicht, wird von mir aber hier auch nicht benötigt.
Nach der Bearbeitung bzw. der Neuanlage speicher ich das Array zeilenweise wieder in die Datenbank zurück. Damit ist die Formatierung einbetoniert.
Für den Ausdruck lese die Daten dann wieder zeilenweise aus der DBF und gebe sie auf den Drucker aus.
Formatierungsprobleme kenne ich seit dem nicht mehr.
Gruß
Ewald
mit diesem Formatierungsproblemen habe ich nach Umstellung von Clipper auf Xbase/Express bis zum Umfallen gekämpft. Es verstärkt sich noch mehr, wenn man z.B. Texte in Form von Tabellen erzeugt, in denen dann zeilenweise Zahlenkolonnen oder dergl. untereinander stehen sollen. Und das auch noch nach dem mehrmaligen Speichern und Zurücklesen.
Ich habe für mich folgende Lösung gefunden.
Ich benutze für diese Zwecke nur noch die nichtprop. Schriftart Lucida Console zum Drucken und zur Bearbeitung am Bildschirm. Sieht gut aus und nicht so schei..., als wenn man eine Prop-Schrift mit fixed druckt.
Ausserdem speicher ich nicht mehr in Memo-Felder.
Ich habe mir eine DBF mit 2 Feldern erzeugt, in der ich diese Texte zeilenweise speicher.
Feld 1 = Textname
Feld 2 = Zeileninhalt.
Den gewünschten Inhalt lese ich zeilenweise in ein Array ein, das ich dann mit dcbrowse bearbeite. Mit dcbrowse kann man (Arrayelemente) Zeilen löschen, einfügen und anhängen.
Der automatische Zeilenumbruch geht so zwar nicht, wird von mir aber hier auch nicht benötigt.
Nach der Bearbeitung bzw. der Neuanlage speicher ich das Array zeilenweise wieder in die Datenbank zurück. Damit ist die Formatierung einbetoniert.
Für den Ausdruck lese die Daten dann wieder zeilenweise aus der DBF und gebe sie auf den Drucker aus.
Formatierungsprobleme kenne ich seit dem nicht mehr.
Gruß
Ewald