Diese Funktionalität ist nur in bestimmten Ausbaustufen verfügbar.

Lösungsschritt 2: Seiten-Seitennummer-Map

Aus der Kapitel-Seiten-Map kann nun die Seiten-Seitennummern-Map (Parameter SeitenSeitennummernMap) aufgebaut werden. Keys sind dabei die Seiten, die Values sind die berechneten Seitennummern.

Ziel des Lösungsschrittes:

Seiten-Seitennummern-Map
Key Value
<<SeiteA>> 1
<<SeiteB>> 1
<<SeiteC>> 2
<<SeiteD>> 1
<<SeiteE>> 2
<<SeiteF>> 3

$SeitenSeitennummernMap=mroot.rmos('ECAD.ChapterElement').intoInject(seite,map|
map.add(Pair{seite, $KapitelSeitenMap.value(seite.$Kapitel).indexOf(seite)+1}),Map{})

Die Seitennummern werden mit der folgenden Formel berechnet:

$Seitennummer=mroot.$SeitenSeitennummernMap.value(origin.ifNull(this))

Durch die Seiten-Seitennummern-Map wird die Performance nicht verbessert, da auch ohne diese Map nur einmal pro Seite auf die Seitennummer zugegriffen wird. Streng genommen verschlechtert sich die Performance sogar etwas, da zusätzlich zum indexOf(this) beim Aufbau der Map noch n-mal die Hash-Funktion zur Bestimmung des Keys bei der Abfrage der Map ausgeführt wird.

Die Seitennummern ohne Seiten-Seitennummern-Map werden mit der folgenden Formel berechnet:

$Seitennumer=mroot.$KapitelSeitenMap.value($Kapitel).indexOf(origin.ifNull(this))+1