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

Noch jemand mit einem Lastpage()-Problem


(Guest) #1

Hallo,

ich habe zwar schon die SUFU genutzt, aber nicht wirklich eine Lösung
meines Problems gefunden. Nur viele Postings mit demselben Problem.

Kurz:
Ich möchte eigentlich genau das implementieren, was auch im
Designer-Handbuch im Kapitel “2.4.3 Beispiele für die Verwendung von
Funktionen” steht:

,------------------------------------------------------------------
|Beispiel: Die Funktion “LastPage()”
|
|Nehmen wir an, Sie wollten am Ende einer Tabelle eine Fußzeile
|drucken, die auf den ersten Seiten eine Nettozwischensumme, auf der
|letzten Seite jedoch eine Nettogesamtsumme enthält. Mit Hilfe der
|Funktionen If() und LastPage() können Sie dynamisch zwischen der
|letzten und den vorangehenden Seiten unterscheiden.
|
|Der Ausdruck
|
| If(LastPage(),“Nettogesamtsumme:”, “Nettozwischensumme:”)
|
|druckt für die letzte Seite (LastPage=True)
|den Text Nettogesamtsumme:", für die vorangehenden Seiten den Text
|“Nettozwischensumme:”.
`------------------------------------------------------------------

Dafür habe ich ein Template mit einer Tabelle auf der ersten und der
folgenden Seite erstellt. In beide Tabellen habe ich eine Fußzeile
eingefügt mit o.g. If-Bedingung.

Ich habe so viele Daten, dass zwei Seiten gefüllt werden. Die zweite
Seite ist somit eigentlich die “Lastpage”. Er druckt aber nur auf der
ersten Seite die Nettozwischensumme; auf der letzten Seite druckt er gar
nichts.

Mit der SUFU habe ich folgendes gefunden:

Autor: Dr. Guenther Schwarze
Datum: 17.10.2005 16:24:01

das scheint ein echter Dauerbrenner zu werden :-). Such mal in der NG
nach “LastPage()”, da findest Du diverse Threads. Kurz: LastPage()
liefert erst nach LlPrintFieldsEnd() “True” zurueck, insofern ist es
fuer die Hintergrundfarbe einer Tabelle nicht zu gebrauchen. Auch die
Position kannst Du damit nicht sinnvoll angeben, denn wenn die
Tabelle erst “weiss”, dass jetzt Schluss ist, ist es schon zu spaet
-> da hilft nur ein eigenes Flag und ein 2-Pass-Verfahren, fuerchte
ich.

Ich weiß aber nicht, was damit gemeint ist. Ich nutze sowohl
…LlPrintFields, als auch .LlPrintFieldsEnd. Allerdings nur erstere
Anweisung innerhalb meiner Schleife.


(Guest) #2

Hallo,

Susann Markward schrieb am 18.11.2008 17:27:


Ich habe so viele Daten, dass zwei Seiten gefüllt werden. Die zweite
Seite ist somit eigentlich die “Lastpage”. Er druckt aber nur auf der
ersten Seite die Nettozwischensumme; auf der letzten Seite druckt er gar
nichts …

… außer die normalen Zeilen der Tabelle.

Ich meinte mit “gar nichts” also, dass er von meiner, in der Folgeseite
definierten, Fußzeile gar nichts druckt.


(Guest) #3

“Susann Markward” <Susann.Markward@nurfuersp…> schrieb im Newsbeitrag
news:4690111182008173213@combit.net

| If(LastPage(),“Nettogesamtsumme:”, “Nettozwischensumme:”)
Dafür habe ich ein Template mit einer Tabelle auf der ersten und der
folgenden Seite erstellt. In beide Tabellen habe ich eine Fußzeile
eingefügt mit o.g. If-Bedingung.

Vorsicht, mit zwei Tabellen zu arbeiten ist “evil” :-)). Geht zwar, muss
dann aber speziell angesteuert werden. Ich wuerde nur eine Tabelle verwenden
und evtl. Layoutanpassung mit Verkettung loesen. Das Rechnungsbeispiel der
Beispielanwendung zwigt das ganz gut, wenn Du es genau so machst, sollte es
klappen.

G.


(Guest) #4

Nicht mehrere Tabellen verwenden, bitte. Nur eine Tabelle auf die
Basisebene.

Mehrere Tabellen bringen LL ziemlich durcheinander, dafür ist es nicht
vorgesehen. Dann benutzt man einen Berichtscontainer (ist ein
Tabellenobjekt, das Tabellen hosten kann). Du mußt nicht jede Seite
einzeln layouten, das macht dann LL schon…

Also (ich ahne aus Deinem “was mache ich falsch”-Post, daß Du Ebenen
verwendest für die verschiedenen Seiten…):

Eine einzige Tabelle auf der Basisebene - die wird dann auf so viele
Seiten gedruckt, wie es nötig ist, um die Daten auszugeben. Think
simple.

Ansonsten wird auf Seite 1 die Tabelle der Ebene 1 gedruckt, und die
Tabelle auf Ebene 2 “weiß” aber nichts von der anderen (ist ja ein
anderes, unabhängiges Objekt), und das macht für eine zweiseitige
Tabelle keinen Sinn…

Paulchen

“Susann Markward” <Susann.Markward@nurfuersp…> wrote in message
news:4690111182008173213@combit.net

Hallo,

ich habe zwar schon die SUFU genutzt, aber nicht wirklich eine
Lösung
meines Problems gefunden. Nur viele Postings mit demselben Problem.

Kurz:
Ich möchte eigentlich genau das implementieren, was auch im
Designer-Handbuch im Kapitel “2.4.3 Beispiele für die Verwendung von
Funktionen” steht:

,------------------------------------------------------------------
|Beispiel: Die Funktion “LastPage()”
|
|Nehmen wir an, Sie wollten am Ende einer Tabelle eine Fußzeile
|drucken, die auf den ersten Seiten eine Nettozwischensumme, auf
der
|letzten Seite jedoch eine Nettogesamtsumme enthält. Mit Hilfe der
|Funktionen If() und LastPage() können Sie dynamisch zwischen der
|letzten und den vorangehenden Seiten unterscheiden.
|
|Der Ausdruck
|
| If(LastPage(),“Nettogesamtsumme:”, “Nettozwischensumme:”)
|
|druckt für die letzte Seite (LastPage=True)
|den Text Nettogesamtsumme:", für die vorangehenden Seiten den
Text
|“Nettozwischensumme:”.

`------------------------------------------------------------------

Dafür habe ich ein Template mit einer Tabelle auf der ersten und der
folgenden Seite erstellt. In beide Tabellen habe ich eine Fußzeile
eingefügt mit o.g. If-Bedingung.

Ich habe so viele Daten, dass zwei Seiten gefüllt werden. Die zweite
Seite ist somit eigentlich die “Lastpage”. Er druckt aber nur auf
der
ersten Seite die Nettozwischensumme; auf der letzten Seite druckt er
gar
nichts.

Mit der SUFU habe ich folgendes gefunden:

Autor: Dr. Guenther Schwarze
Datum: 17.10.2005 16:24:01

das scheint ein echter Dauerbrenner zu werden :-). Such mal in der
NG
nach “LastPage()”, da findest Du diverse Threads. Kurz: LastPage()
liefert erst nach LlPrintFieldsEnd() “True” zurueck, insofern ist
es
fuer die Hintergrundfarbe einer Tabelle nicht zu gebrauchen. Auch
die
Position kannst Du damit nicht sinnvoll angeben, denn wenn die
Tabelle erst “weiss”, dass jetzt Schluss ist, ist es schon zu spaet
-> da hilft nur ein eigenes Flag und ein 2-Pass-Verfahren, fuerchte
ich.

Ich weiß aber nicht, was damit gemeint ist. Ich nutze sowohl
.LlPrintFields, als auch .LlPrintFieldsEnd. Allerdings nur erstere
Anweisung innerhalb meiner Schleife.


(Guest) #5

Hallo,

vielen lieben Dank für Antworten.

ACK. Das Problem mit den zwei Tabellen kann ich nach euren Erläuterungen
nachvollziehen. Wenn ich aber nur eine Tabelle in der Basis-Ebene nutze,
muss die Tabelle ja auf jeder Seite gleich groß sein. Das will ich so
nicht haben, denn auf der ersten Seite sind noch Kopfdaten und die
Tabelle fängt dort dann erst darunter an. Auf den Folgeseiten soll
jedoch die Tabelle das ganze Blatt füllen.

Ich habe es, dank Guenthers Posting, durch Verkettung beider Tabellen
gelöst. Es funktioniert nun genau so, wie ich das möchte.

Vielen lieben Dank für Eure Hilfe
Susann


(Guest) #6

Hallo,

Dr. Guenther Schwarze schrieb am 19.11.2008 09:25:

Vorsicht, mit zwei Tabellen zu arbeiten ist “evil” :-)). Geht zwar, muss
dann aber speziell angesteuert werden.

Dann will ich das nicht :wink:

Ich wuerde nur eine Tabelle verwenden
und evtl. Layoutanpassung mit Verkettung loesen.

Das ist des Rätsels Lösung. Jetzt klappt es. Vielen lieben Dank.

Das Rechnungsbeispiel der
Beispielanwendung zwigt das ganz gut, wenn Du es genau so machst, sollte es
klappen.

Wo finde ich eigentlich das Rechnungsbeipiel?

MfG
Susann