Quick Report drucken?
-
ja, aber ich hab ja immer den aktuellen Inhalt des Stringrids...
Kann ich das nicht irgendwie über die Struktur machen?
-
wie sieht die struktur denn aus?
-
private: typedef struct duebel{ char bezeichnung[45]; char baustoff[45]; char werkstoff[25]; char wirkungsprinzip[25]; char feuerwiederskl[20]; char anschlussgewinde[5]; char montageart[40]; float t_fix; int s_min; int c_min; float h_min; char duebelkopf[30]; char einsatzbereich[50]; char zulassungsnr1[25]; char zulassungsnr2[25]; }StrukturDuebel; StrukturDuebel *Datensatz;
-
Hallo!
ohgott... bist du sicher, dass du schon bereit bist für quickReport?
Und woher hast du dann die "Liste" hast du das ganze zusammengebastelt zu ner verketteten Liste oder wie?tschüss
Robert
-
ja, mach das mit ner Liste...
wie ich das hier raushöre bist du etwas entsetzt...
Aber ich mach das halt noch net so lang...

Hast du mir ne einfachere Möglichkeit?
Ich will halt was ausgeben das einigermaßen aussieht und net sagen Form1->StringGrid1->print()... oder so ähnlich.
-
Hallo!
Ich sage dir mal ganz einfach, was ich denke:
Du hast die Grunddinge verstanden! Nicht schlecht, dein Code ist eigentlich schon ganz prima. Vorausgesetzt wir schreiben das Jahr 198x...
Mittlerweile hat man "String"s eingefügt, das mit deinen "chars" ist nicht mehr so ganz aktuell...Ich würde dir echt empfehlen, eine Datenbank einzusetzen! Schau dir dazu am besten die komponente TTable, TDataSource und TDBGrid an. Sonst wirst du nicht froh!
Diese verkettete Liste zu drucken, wäre total "unschön" da müsste man sich selbst darum kümmern, dass man den nächsten Datensatz nimmt usw.
Da nützen eigentlich die Vorteile von QuickRep gar nichts!Bitte nicht falsch verstehen! Mir persönlich wäre das jetzt auch zu viel Arbeit, dir ne "Komplettlösung" zu bieten, welches deine verkettete Liste druckt - mit der Datenbank könnte ichs mir überlegen, wa wärens nämlich nur ein paar Zeilen!
tschüss
Robert
-
ok, aber es muss doch trotzdem möglich sein, so etwas grafisch etwas ansprechender zu gestalten.
Und es muss doch auch gehen, die "Daten" aus meiner Struktur zu holen.Kann mir da sonst noch jemand nen Tip geben?
Ich möchte das "Programm" jetzt halt nicht total umschreiben.Das einzige was mir im Moment halt noch fehlt ist das ich den Inhalt aus dem StringGrid mit ner Überschrift und evtl. noch mit nem Bildchen ausgeben kann...
Gruß
Niko
-
Hallo!
Glaub mir, du tust dir wirklich keinen Gefallen!
Wenn du das wirklich einigermassen umsetzen möchtest, musst du wirklich viele Labels erstellen, in der Art:for (int i = 0; i < anzahlderelementeinderinerverkettetenlistehihi; i++) //:-) { TQRLabel *lbl = new TQRLabel(Band1); lbl->Parent = Band1; lbl->Caption............. }Also, das wird wirklich viel Arbeit, die ich dir nicht abnehmen möchte.
Vielleicht reichts dir aber auch schon "billig", dann erstell dir ein QRImage auf deinem Report und hacke dann folgenden Code ein:
StringGrid1->PaintTo(QRImage1->Canvas, 0, 0);setzt allerdings voraus, dass in deinem StringGrid wirklich alles sichtbar ist. (ohne ScrollBars)
tschüss
Robert
-
Hallo,
ich hab ein ähnliches Problem mit dem Quick Report, nur dass ich immer nur die erste Seite anzeigen kann, dann bricht er ab und meldet dass er eine temporäre Datei nicht erzeugen kann. Früher win98 gings und die programme laufen auch dort, nur unter XP is Sense. (BCB 3)
-
Es ist mir also nicht möglich, ohne DB mit nem QReport zu arbeiten?

Gibt es irgendwelche anderen "Reports" die das können?
Gruß
Niko
-
Hallo Niko!
Hast du eigentlich meinen Beitrag nicht gelesen?? Ich hab dir doch gesagt, dass du ne SCHLEIFE brauchst, oder du machst das mit PaintTo!!
tschüss
Robert
-
Doch, klar hab ich den gelesen...

Klang auch ganz gut mit der Schleife...
Aber ich bekomm das nicht so richtig hin...Gibts da irgedwo was gutes zum Einlesen?
-
Also mit der Schleife erzeugt er mir zwar die Labels auf dem Band, aber so wie ich das sehe liegen die alle übereinander.
Wie positioniere ich diese dann?
-
habt ihr euch schon mal
OnNeedData
angesehen?
bei dem ereignis kann man auf nicht datenbankbasierte Druckausgaben reagieren
und solange MoreData==true ist wird eine neue "zeile" angefangen
-
Label->Left = 100; Label->Top = 40;
-
Also ich hab die Schleife jetzt mal testweise so gelöst:
Ich leg mir also auf meinem QuickRep1 zur Laufzeit ein "Band" an, auf jedes Band leg ich ein paar Labels...
Dann folgt das nächste Band usw.Hier mal der Code:
void TVerwaltung::drucken(void) { for (int Zeile = 0;Zeile < Form1->StringGrid1->RowCount;Zeile++) { TQRBand *Band = new TQRBand(Form2->QuickRep1); for (int Spalte = 0;Spalte < Form1->StringGrid1->ColCount;Spalte++) { TQRLabel *lbl = new TQRLabel(Band); lbl->Parent = Band; lbl->Caption = "hallo"; //lbl->Left=100; //lbl->Top=20; } } Form2->QuickRep1->Print(); //Form2->Show(); }wenn ich jetzt drucken will, erscheint zwar kurz eine Meldung "Drucken" aber dann passiert nichts mehr...
Das Programm läuft aber ganz normal weiter...
-
Hallo
natuerlich kann mann ein Stringgrid (strings) ueber QuickRep drucken)
->QRStringsBandMfG
Klaus
-
Wie funktioniert das mit dem QRStringsBand so ganz grob?
Finde in der Hilfe nichts dazu...
Hat mir irgendjemand mal nen guten Link wo ich mich damit vertraut machen kann?
-
Hallo
schau in die Hilfe des BCB
da gibt es ein Beispiel - wenn auch etwas ....MfG
Klaus
-
ok, aber was mach ich falsch, dass er mir auf dem QuickRep, wenn ich mir den ausdrucken oder mit preview anschauen will, garnichts anzeigt.
Irgedwas ist da doch schon falsch.
//Edit
Könnte mir mal jemand ein Beispiel schreiben, mit dem ich die Daten aus einem StrinGrid durch einen QuickReport ausgeben (ausdrucken) kann...
Ich glaub dann würd ich das verstehen...
Wäre echt super!!Oder mir sagen was an meinem Code falsch ist...

Danke!!!
