Ausdruck von memoedit() Daten mit memoline

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Ausdruck von memoedit() Daten mit memoline

Beitrag von dvdbommel »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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:

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
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

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.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

probier es doch so
dcprint say memoline(pipapo) fixed printer oPrinter
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

Koverhage hat geschrieben:probier es doch so
dcprint say memoline(pipapo) fixed printer oPrinter
das hatte ich dan auchschon gemacht ... funktioniert zwar .... aber das Schriftbild ist unter aller s..
dvdbommel
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 49
Registriert: Sa, 11. Feb 2006 11:07

Beitrag von dvdbommel »

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"
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Hallo Frank,
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
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Ewald »

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
Antworten