TotalPage$() im Inhaltsverzeichnis

Hallo,

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

Danke und Viele Grüße,
Maximilian

Hallo Maximillian,
vielen Dank für Ihren Beitrag.

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.

Mit freundlichen Grüßen

Erdal Alacali
Technischer Support
combit GmbH

Hallo

Gibt es dazu inzwischen eine Lösung? Wir stehen vor dem selben Problem.

Vielen Dank!

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.