Formatierung für Druck
-
Hallo zusammen,
ich habe hier ein kleineres Problem. Ich habe ein Kassenprogramm geschrieben. Nun möchte ich Daten an einen Bondrucker geben. Die Daten sind im Moment in einem ValueListEditor gespreichert. Wenn ich diese aber auslese und an den Drucker schicke ist (selbstverständlich) die Formatierung nicht mehr da. habt Ihr eine Idee wie ich die Daten an den Drucker schicken kann, so wie sie im ValueListEditor angeordnet sind inkl den Abständen?
Mein Quelltext sieht serzeit so aus:TPrinter *Prntr = Printer();
Prntr->BeginDoc();
for( int i = 0; i < VleGrandTotal->Strings->Count; i++)
Prntr->Canvas->TextOut(0,50 + (i *
Prntr->Canvas->TextHeight(VleGrandTotal->Strings->Strings[i])),
VleGrandTotal->Strings->Strings[i]);
Prntr->Canvas->Brush->Color = clBlack;
Prntr->Canvas->Font->Size = 22;
Prntr->EndDoc();Vielleicht gibt es ja auch ne andere Möglichkeit als die Daten in den ValueListEditor zu schreiben?

Es soll ungefär so aussehen:
Erste Buchung.........12.05.2005 17:23
Lestzte Buchung.....13.05.2005 00:30Gesamtumsatz:.................150,00 EUR
MwSt.:.................................80,00 EUR
.
.
.usw. Die Punkte sollen beim Druck nicht zu sehen sein.
Ich danke euch schonmal für eure Hilfe

-
Hallo
im Grunde so wie du es bereits machst, mit den Canvas-Routinen.
Bis jetzt haust du aber nur eine Zeile unter die andere. Wo soll denn die zweite Zeile mit den Zahlen herkommen? Steht die auch in der StringListe mit drinnen?
Wenn ja, must du diese Werte erstmal abtrennen, deren Länge berechnen, am rechten Rand ausrichten und extra mit TextOut ausgeben.bis bald
akari
-
Also im ValueListEditor steht die Beschreibung unter "Schlüssel" und der Preis bzw. die Daten unter "Wert". Es soll dann also alles was unter Schlüssel steht links stehen und alles was unter Wert steht soll beim Druck rechts stehen.
-
Hallo
da ich bei meinem BCB5 nichts zu ValueListEditor finde, kann ich also nur annehmen, das das ein Extra der 6-Version ist.
Ich vermute das intern dafür eine StringList verwendet wird, die die Werte von den Bezeichnungen mit einem "=" trennt. Sollte das der Fall sein (oder ein anderes Zeichen) mußt du dieses Zeichen in dem bereits von dir gefundenen Array suchen, und an dieser Stelle splitten. Die nötigen AnsiString-Methoden kannst du hier nachlesen.bis bald
akari
-
Danke akari! Hast mir sehr geholfen!!!