Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi quickreport und TQRMemo (https://www.delphipraxis.net/45780-quickreport-und-tqrmemo.html)

Martoeng 12. Mai 2005 08:59


quickreport und TQRMemo
 
Hi,

ich bentuze Quickreport 4 in Delphi 7.

Nun habe ich im Detailband des Reports zwei TQRMemos, die nebeneinander angeordnet sind - (autostretch = true; autosize=false)
Diese werden in der OnNeedData-Routine mit Daten bestückt.

Die Texte können sehr lang werden und sollen auch über einen Seitenumbruch fortgesetzt werden.

Soweit klappt das mit dem 1. Memo auch.

Aber stellt euch mal folgenden Fall vor:
- Das 1. Memo besteht aus 10 Zeilen, das 2. nur aus 3 Zeilen.
- Auf der Seite wäre noch Platz für 5 Zeilen Text.

-> Das 1. Memo wird bis zu 5. Zeile dargestellt und der Rest kommt auf der nächsten Seite - korrekt soweit.
-> Das 2. Memo springt aber, obwohl noch alles auf diese Seite passen müsste, immer nach der ersten Zeile auf die neue Seite. Die restlichen 2 Zeilen werden dann auf der Folgeseite gedruckt.

Ich hoffe das Problem ist halbwegs verständlich....

Weiß jemand Rat was man da tun könnte? Ich bin mit meinem (zugegebenermaßen nicht besonders herausragenden) Latein am Ende.


MfG

Martoeng

Sourcemaker 12. Mai 2005 09:29

Re: quickreport und TQRMemo
 
Hallo Martoeng,

ich habe früher mal in der Hilfe gelesen das nur eine Komponente pro Band für das Stretching funktioniert. In meine Reports kalkuliere ich teilweise die Länge der RichtText oder Memos selber
um ein bessere Kontrolle zu haben.
Versuche doch testweise beide Memos auf die Größe des längsten Textes zu setzen also etwa so:

Delphi-Quellcode:
Memo.Height := AnzahlZeilen*Schrifthöhe;
Wenn das funktioniert kann mann weitersehen (Funktion zur Höhenermittlung).

Grüße

Frank

Martoeng 12. Mai 2005 09:50

Re: quickreport und TQRMemo
 
Danke für die Antwort
Hab deinen Tipp mal eben ausprobiert.

Auf diese Weise fehlt aber leider der automatische Seitenumbruch wenn der Text zu lang ist. Am Ende der Seite wird er dann einfach abgeschnitten.

Setzte ich die fixe Höhe nur für das 2. Memo, fehlt der Seitenumbruch nur für dieses. Der Text verschwindet dann irgendwo hinterm PageFooter :(

Gruß

Martoeng

Sourcemaker 12. Mai 2005 14:56

Re: quickreport und TQRMemo
 
Hallo Martoeng,

nimm doch ein SubDetailband mit 2 Labels nebeneinander in jedes Label kommt nur eine Zeile
solange bis das größe Memo abgearbeitet ist.

Grüße

Frank

Martoeng 13. Mai 2005 10:20

Re: quickreport und TQRMemo
 
Hi,

Das klingt nach einer sehr guten Idee! Werd ich gleich mal ausprobieren - meld mich dann obs mich glücklich gemacht hat ;)

Gruß

Martoeng

Martoeng 13. Mai 2005 12:47

Re: quickreport und TQRMemo
 
Hi,

bis jetzt sieht das sehr gut aus, höchstwahrscheinlich werd ich auf den Weg zum richtigen Ergebniss kommen.

Aber jetzt bin ich gerade an einem Punkt, der mich an mir selbst stark zweifeln lässt:

Delphi-Quellcode:
qrm_text.lines.Text := m_text.Lines.strings[x];
Dieser Code müsste doch die x-te Zeile eines Memos in das qrMemo schreiben, oder ist der Freitag doch schon so fortgeschritten? :?
Stattdessen wird so jedes Zeichen einzeln übernommen. - Also steht dann pro Zeile nur 1 Zeichen :gruebel:

Im Memo steht der Text aber korrekt drin, also wirklich zeilenweise.
Ich habe das überprüft, indem ich in der gleichen Prozedur den kompletten Text in eine Datei geschrieben habe. Dort wird der Text dann richtig dargestellt.
Wäre nur 1 Zeichen pro Zeile gewesen, hätte es in der Textdatei genauso aussehen müssen, da nach meiner Erfahrung #13#10 mit in die Datei geschrieben und dadurch ein Zeilenumbruch erzwungen wird

Bitte sagt mir, ob ich durchdreh und wie es richtig lauten müsste...

Sourcemaker 13. Mai 2005 13:34

Re: quickreport und TQRMemo
 
Hi,

so:
Code:
qrm_text.lines.Text := m_text.Lines[x];
Ergänzend: So wie Du zugegriffen hast bekommst Du das n-te Zeichen eines Strings.

Grüße

Frank

Martoeng 13. Mai 2005 13:44

Re: quickreport und TQRMemo
 
Das hab ich nach einer kurzen Forensuche auch bemerkt und ausprobiert - leider genau das gleiche "Phänomen" (wird das so geschrieben? :gruebel: )

Ach naja, jetzt is erstmal Feierabend - Dienstag morgen wird sich mir wahrscheinlich die Netzhaut ablösen wenn ich einen total dummen Fehler finde....

Also schönes Pfingstwochenende Sourcemaker :cheers: , und wir lesen uns hoffentlich Dienstag weiter...


Gruß

Martoeng

Martoeng 17. Mai 2005 13:42

Re: quickreport und TQRMemo
 
:wall: :wall:

Jaja, der Freitag....
War natürlich, wie vermutet, ein völlig bescheuerter Fehler meinerseits, dass für jedes Zeichen eine eigene Zeile genommen wurde... :oops:

Naja, nun klappt alles wunderbar.
Also danke für den Tipp mit dem SubDetailBand, Sourcemaker -> Das wars was ich gebraucht habe.

Gruß

Martoeng


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz