![]() |
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 |
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:
Wenn das funktioniert kann mann weitersehen (Funktion zur Höhenermittlung).
Memo.Height := AnzahlZeilen*Schrifthöhe;
Grüße Frank |
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 |
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 |
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 |
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:
Dieser Code müsste doch die x-te Zeile eines Memos in das qrMemo schreiben, oder ist der Freitag doch schon so fortgeschritten? :?
qrm_text.lines.Text := m_text.Lines.strings[x];
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... |
Re: quickreport und TQRMemo
Hi,
so:
Code:
Ergänzend: So wie Du zugegriffen hast bekommst Du das n-te Zeichen eines Strings.
qrm_text.lines.Text := m_text.Lines[x];
Grüße Frank |
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 |
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 04:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz