+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

LL23: RemainingTableSpace - liefert falschen Wert zurück?

designer

(Ingo Kothke) #1

Hallo!
Ich habe in Formularen die Funktion RemainingTableSpace([True]) verwendet um einen Seitenumbruch mittels “{\rtf1{\page { }}}” in einem RTF-Feld auszulösen, wenn ein noch zu druckendes Element vorhanden ist.

Ich habe jetzt diese Formel verwendet:
LASTPAGE() AND RemainingTableSpace (True) < 130000 AND Zusatztext_StandardMemo_LZD_Deutsch <> “”
Als Bedingung für den Druck des RTF-Feldes.
Das soll heißen:
Wenn der zur Verfügung stehende Platz auf dem Formular kleiner als 13 cm ist, mache einen Seitenvorschub.

Bei dieser Bedingung wird der Seitenumbruch erzeugt, wenn weniger als ca. 3 cm (gemessen) zur Verfügung stehen, wenn noch ca. 6 cm zur Verfügung stehen, wird kein Umbruch ausgelöst.

Kann es sein, dass der Rückgabewert der Funktion (unter bestimmten Bedingungen) falsch ist?
Wenn ich die Funktion ohne “True” aufrufe um den Platz in % zu erhalten, kommt es ebenfalls zu keinem sinnvollen Ergebnis (ich habe von 10 bis 40% getestet und es wurde kein Seitenumbruch ausgelöst.)

Danke für Tipps!

Ingo Kothke


(combit - Jochen Bartlau) #2

Ich würde den Wert zum Test einmal in einer Spalte ausgeben. Eventuell ist das Problem auch das LastPage() in der Bedingung, das trifft prinzipiell nur in Fußzeilen zu.


(Ingo Kothke) #3

Ich habe die Ergebnisse von RemainingTableSpace im Formular ausgegeben und würde ein PDF anhängen.
(Aber die Möglichkeit gibt es nicht, oder?)

Am Anfang der Fußzeile in der Mitte der Seite wird ausgegeben:
### Fußzeile: RemainingTableSpace ohne Parameter: 75 / mit Parameter True: 127320,00
Ca. 13 cm weiter unten, nach dem Druck mehrerer weiterer Fußzeilen ist die Ausgabe identisch


(combit - Jochen Bartlau) #4

Die gemeinsam ausgegebenen Fußzeilen werden en bloc zu Beginn der Ausgabe des Blocks berechnet damit Berechnungen innerhalb der Zeilen in sich konsistent bleiben. Daher ist der Wert von RemainingTableSpace() in allen gleichzeitig ausgegebenen Fußzeilen der Gleiche. Eine Umbruchsbedingung kann sich daher nur auf den Platz vor der ersten Fußzeile beziehen. Lassen sich die Fußzeilen eventuell in eine Tabelle mit freiem Inhalt ausgliedern? Dann könnte man dann vor der Tabelle wieder einen Umbruch auslösen.


(Ingo Kothke) #5

Alles klar - das hatte ich nicht so verstanden.
Dann werde ich mal überlegen, wie ich das “Problem” löse.
Vielen Dank & ein schönes Wochenende, Ingo Kothke