[gelöst] RTC: Seite n von m

12. September 2011 16:25

Leider habe ich trotz Recherche in allen Beiträgen nichts dazu gefunden, wie man folgendes Problem löst :-(

In einem Belegreport - z.B. Angebot - soll im Seitenkopf die Information "Seite n von m" stehen.
Und es kann natürlich sein, dass mehrere Belege in einem Drucklauf gedruckt werden - und das auch evtl. noch in mehreren Ausfertigungen (Anzahl Kopien >0).

Bei einem einzigen Beleg und mehreren Ausfertigungen ließe sich das sicher noch lösen.
In der Annahme, dass jede Ausfertigung die gleiche Anzahl Seiten hat (kann ja gar nicht anders sein :wink: ), bekomme ich die Anzahl Seiten je Ausfertigung ja ganz einfach, indem ich TotalPages durch die Anzahl Ausfertigungen (Anzahl Kopien+1) dividiere.
=> bei einer Gesamtzahl Seiten von 12 und 4 Ausfertigungen hat dann jede Ausfertigung 3 Seiten.

Aber bei mehreren Belegen ?
Ich hirne schon die ganze Zeit herum :roll: und habe so gar kein Idee ... :-(

Hat es noch keiner lösen müssen :?: oder entsprechende Anforderungen immer "erfolgreich abgewehrt" :wink: ?
Zuletzt geändert von raggy am 15. September 2011 16:31, insgesamt 1-mal geändert.

Re: RTC: Seite n von m

12. September 2011 16:41

Hallo

Das ist doch "Standard" im RDL auch im Angebot Report.

Dort wird als Seite so etwas ausgegeben:
"=Code.GetGroupPageNumber(ReportItems!NewPage.Value,Globals!PageNumber)"


Entsprechender Code:
REM Reset Page Number:

Shared offset as Integer
Shared newPage as Object
Shared currentgroup1 as Object
Shared currentgroup2 as Object
Shared currentgroup3 as Object

Public Function GetGroupPageNumber(NewPage as Boolean, pagenumber as Integer) as Object
If NewPage
offset = pagenumber - 1
End If
Return pagenumber - offset
End Function

Public Function IsNewPage(group1 as Object, group2 as Object, group3 as Object) As Boolean
newPage = FALSE
If Not (group1 = currentgroup1)
newPage = TRUE
currentgroup1 = group1
currentgroup2 = group2
currentgroup3 = group3
ELSE
If Not (group2 = currentgroup2)
newPage = TRUE
currentgroup2 = group2
currentgroup3 = group3
ELSE
If Not (group3 = currentgroup3)
newPage = TRUE
currentgroup3 = group3
End If
End If
End If
Return newPage
End Function


Einfach den Standard nutzen.

Re: RTC: Seite n von m

12. September 2011 16:51

Es geht nicht um die Seitennummer je Ausfertigung, sondern um die Anzahl Seiten je Ausfertigung !

Wenn ich das Angebot für 2 Belege in einem Durchlauf drucke und davon 4 Ausfertigungen (3 Kopien).
Ein Angebot hat 3 Seiten und das andere hat 2 Seiten.

Dann soll ausgegeben werden:
- beim 1.Angebot: Seite 1 von 3, Seite 2 von 3, Seite 3 von 3
- beim 2.Angebot: Seite 1 von 2, Seite 2 von 2
Und das bei jeder Ausfertigung

Das deckt doch diese Standardfunkion nicht ab - oder ??
Die sorgt doch nur dafür, dass bei jeder Ausfertigung wieder mit Seitennummer 1 begonnen wird ... :roll:

Re: RTC: Seite n von m

12. September 2011 19:36

OK

Hätte mal genauer Lesen sollen.

Dann sehe ich das ebenso als unlösbar an, da man ja keine Chance hat die Anzahl Seiten je Beleg zu bekommen.

Die einzige Lösung wäre es jeden Beleg einzeln zu Drucken.

Re: RTC: Seite n von m

13. September 2011 08:59

Man könnte den Report zwei mal laufen lassen.
Ein Mal im Hintergrund, um die Seitenanzahl herauszubekommen und dann beim zweites Mal im Report über eine Funktion die Seitenanzahl mitgeben.
Codebeispiel: (Link)

Der Ausdruck würde dann fast doppelt so lange brauchen, aber es wäre vermutlich eine praktikable Lösung für dich. :wink:
Der zweite Durchlauf ist aber wahrscheinlich etwas schneller, da er dann ja schon im Cache liegt.

EDIT: Oh, hier geht es ja um RTC. Dann die Antwort auf Page und Webservice ummünzen. :wink:

mfg,
winfy

Re: RTC: Seite n von m

15. September 2011 16:31

Wir haben es dem Kunden ausreden können :-) :-)

Naja - trotzdem ist es blöd, dass sowas nur sehr umständlich geht :roll:

Da hat man ein "supertolles neues" NAV 2009 :wink: und dann sowas .......