Ich habe einen Bericht mit einem Inhaltsverzeichnis.
Leider hat das Inhaltsverzeichnis einen eigenen Seitenzähler.
Dadurch fängt der “eigentliche” Bericht nach dem Inhaltsverzeichnis mit der Seite 1 an.
etwa so:
Inhaltsverzeichnis Seite 1 / 2
Inhaltsverzeichnis Seite 2 / 2
Bericht Seite 1 / 3
Bericht Seite 2 / 3
Bericht Seite 3 / 3
Wie könnte ich z.B. solch ein Verhalten erreichen:
Inhaltsverzeichnis Seite 1 / 5
Inhaltsverzeichnis Seite 2 / 5
Bericht Seite 3 / 5
Bericht Seite 4 / 5
Bericht Seite 5 / 5
Da das Verzeichnis erst nach dem Projekt erstellt wird, ist es nicht möglich es in den Seitenzähler zu integrieren, hierzu gibt es leider keine Möglichkeit.
Eine Lösung für den Designer gibt es hier nicht, Sie könnten sich aber in einem 2-Pass Verfahren die Seitenvariablen und Gesamtseiten-Variable selber erstellen und ausgeben.
Für die hier geschriebene Beschreibung, ist der Zugriff auf den Sourcecode Ihrer Anwendung nötig, wenn Sie nicht der Softwarehersteller sind, dann müssten Sie sich an diesen wenden.
Vorgehensweise hier wäre folgende:
2 Variablen anmelden z.B.
LL.Variables.Add(“GesamtSeiten”, “0”);
LL.Variables.Add(“InhaltsVerzeinisSeiten”, “0”);
Projekt (inklusive Inhaltsverzeichnis) in eine Vorschaudatei (LL) exportieren
Vorschaudatei mittels LlStgsysStorageOpen () öffnen (mit bJobTranslation"false"), der '“False” Parameter, öffnet hier den in der Vorschau gespeicherten Job, für das Inhaltsverzeichnis.
mittels LlStgsysGetPageCount() die Seiten in der Vorschaudatei für das Inhaltverzeichnis zählen.
Variable “InhaltsVerzeinisSeiten” mit der Seitenanzahl überschreiben
Vorschaudatei schließen
erneut öffnen, jetzt mit bJobTranslation “True”, somit bekommen wir alle in der Vorschaudatei gespeicherten List & Label Job´s.
mittels LlStgsysGetPageCount () alle Seiten zählen.
Variable “GesamtSeiten” überschreiben mit Seitenanzahl.
Projekt erneut drucken / epxortieren, die Variablen müssen noch im Projekt verwendet werden, anstelle von TotalPages$() verwenden Sie einfach die Variable “GesamtSeiten” und im Hauptprojekt (nicht Inhaltsverzeichnis) verwenden Sie die Funktion Page$(InhaltsverzeichnisSeiten), der Parameter bestimmt den Offset für die Page$() Funktion.
Folgend finden Sie für .NET (c#) einen simplen Beispielcode:
private void button2_Click(object sender, EventArgs e)
{
//Pass 1, Vorschaudatei erstellen und Seitenanzahl ermitteln, Gesamtseite und Inhaltsverzeichnis
ExportConfiguration exconf = new ExportConfiguration(LlExportTarget.Preview, @"c:\temp\test2.ll", "test2.lst");
LL.Export(exconf);
IntPtr llFile = LlCore.LlStgsysStorageOpen("test2.ll", "", true, false);// letzter Parameter "false" sorgt dafür das nur vom Job 1 (Inhaltsverzeichnis) die Gesamtseiten gezaählt werden.
int seitenAnzahlInhaltsver = LlCore.LlStgsysGetPageCount(llFile);
LL.Variables.Add("InhaltsVerzeinisSeiten", seitenAnzahlInhaltsver.ToString());
LlCore.LlStgsysStorageClose(llFile);
//Vorschaudatei erneut öffnen um die Gesamtseiten zu ermitteln, diesmal mit "True" für alle Jobs innherhalb der LL Datei.
llFile = LlCore.LlStgsysStorageOpen("test2.ll", "", true, true);
int gesamtSeitenAnzahl = LlCore.LlStgsysGetPageCount(llFile);
LL.Variables.Add("GesamtSeiten", gesamtSeitenAnzahl.ToString());
LlCore.LlStgsysStorageClose(llFile);
//Pass 2, Endgültige Vorschaudatei erstellen mit den korrekten Werten für die Seiten-Variablen.
ExportConfiguration exconf2 = new ExportConfiguration(LlExportTarget.Preview, @"c:\temp\test2Pass.ll", "test2.lst");
LL.Export(exconf2);
MessageBox.Show("Export abgeschlossen");
}
}
Im Idea Place (https://forum.combit.net/c/idea-place/7) hier im Forum, können Sie die gewünschte Anforderung gerne zusätzlich einreichen und von der Community up-voten lassen, um damit die Wichtigkeit zu unterstreichen.