[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2005
    Beiträge
    90

    Seitennummerierung

    Hallo habe folgendes Problem!
    Also:
    Ich lese eine Subfile und gebe ausgewählte Sätze in einer Spoolfile aus!
    Das funktioniert auch!
    Nun will ich jeweils im Kopf auf jeder Seite die Seitenzahl ausgeben nach folgendem Muster!
    Seite: 1 von: 9

    die Frage ist wie kann ich ermitteln wieviele Spoolfileseiten es werden ohne den Druck vorher gemacht zu haben??
    Weil es soll ja im Kopf stehen!
    Hatte schon dran gedacht mit der Relativensatznummer der Subfile zu arbeiten und dann die anzahl der Sätze / anzahl der gedruckten Sätze pro Seite

    Aber dann kriege ich gegebenenfalls keine ganzenZahlen!
    Gibt es da die Möglichkeit aufzurunden??
    Wenn ja wieder oder habt ihr noch andere Ideen??

    Gruß Toschie

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Platzhalter und Kopieren

    Hallo,

    die einfachste Möglichkeit ist, die Spool-Datei zu erstellen. An der Stelle, wo die Gesamt-Zahl der Seiten stehen soll druckst Du einen Platzhalter z.B. XXXXX. Anschließend kopierst Du die Spoolfile in eine Datenbankdatei, ersetzt den Platzhalter durch die tatsächliche Anzahl der Seiten und kopierst die Datei wieder zurück.

    Die andere Möglichkeit wäre, das Programm 2x auszuführen. Beim ersten Mal nur die Anzahl der Seiten zählen, jedoch nicht drucken und beim zweiten Durchlauf den tatsächlichen Druck ausführen.

    Die Anzahl der Zeilen in der Subfile zählen und dann dividieren halte ich nicht für so gut. Du könntest in deiner Printerfile unterschiedliche Formate mit unterschiedlichen Zeilenzahlen habe und damit könnte die Anzahl der Zeilen auf den einzelnen Seiten variieren.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Jul 2003
    Beiträge
    331
    Hallo Toschi,

    Die höchste relative Satz-Nr. der Subfile zu verwenden, halte ich für die einfachste und beste Lösung. Das ermittelte Ergebnis, sofern keine ganze Zahl, aufrunden auf die nächste GanzZahl.

    Das ständig Printerfiles mit unterschiedlicher Seitenlänge gedruckt werden für eine bestimmte Anwendung, halte ich für ein Gerücht. Die Lösung, aus dem Spoolfile eine phys. Datei zu erstellen und diese weiter zu bearbeiten würde ich nur dann verwenden, wenn evtl. je Subfile-Satz eine unterschiedliche Zahl von Ausgabe-Zeilen erstellt werden soll und ein Errechnen der Gesamtseitenzahl nicht möglich wäre.

    mfg Ludger

  4. #4
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo Toschie,

    es gibt da ein Freeware-Tool PAGEXOFY. Das macht genau das, was Birgitta in ihrer ersten Variante beschrieben hat. Wir benutzen das selbst und es funktioniert sehr gut.

    Gruß,
    KM

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von loeweadolf
    Hallo Toschi,

    Das ständig Printerfiles mit unterschiedlicher Seitenlänge gedruckt werden für eine bestimmte Anwendung, halte ich für ein Gerücht. Die Lösung, aus dem Spoolfile eine phys. Datei zu erstellen und diese weiter zu bearbeiten würde ich nur dann verwenden, wenn evtl. je Subfile-Satz eine unterschiedliche Zahl von Ausgabe-Zeilen erstellt werden soll und ein Errechnen der Gesamtseitenzahl nicht möglich wäre.

    mfg Ludger
    Das mag für den "Hausgebrauch" funktionnieren, aber selbst da gibt es unterschiedliche Benutzer, die auf unterschiedlichen Druckern mit unterschiedlichem Papier drucken können oder wollen. Kann dies über eine Druckersteuerung angewählt werden, bei der die Printerfile mit einer anderen Seitenlänge überschrieben wird, sieht man schon alt aus!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Jul 2003
    Beiträge
    331
    Zitat Zitat von B.Hauser
    Das mag für den "Hausgebrauch" funktionnieren, aber selbst da gibt es unterschiedliche Benutzer, die auf unterschiedlichen Druckern mit unterschiedlichem Papier drucken können oder wollen. Kann dies über eine Druckersteuerung angewählt werden, bei der die Printerfile mit einer anderen Seitenlänge überschrieben wird, sieht man schon alt aus!

    Birgitta
    Hallo Birgitta,
    seit 30 Jahren bin ich in der IT beschäftigt, unter anderem jahrelang für ein Software-House mit unterschiedlichen Kunden. Anwendungen, bei denen der User die Seitenlänge auswählen kann und will, sind in der Praxis eher die Ausnahme.
    Bei einer Programmerstellung sollte man auch die Effektivität (Kostenseite) im Auge haben. Nicht alles, was schön wäre, ist auch sinnvoll.

    mfg. Ludger
    öLunmden

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von loeweadolf
    Hallo Birgitta,
    seit 30 Jahren bin ich in der IT beschäftigt, unter anderem jahrelang für ein Software-House mit unterschiedlichen Kunden. Anwendungen, bei denen der User die Seitenlänge auswählen kann und will, sind in der Praxis eher die Ausnahme.
    Bei einer Programmerstellung sollte man auch die Effektivität (Kostenseite) im Auge haben. Nicht alles, was schön wäre, ist auch sinnvoll.

    mfg. Ludger
    öLunmden
    Dann hast Du in einem anderen Software-House gearbeitet als ich. Bei uns kann und werden vom Kunden unterschiedliche Drucker mit unterschiedlichem Papier für die gleichen Listen benutzt. Beispiel: In mehreren Standorten oder unterschiedlichen Lägern werden die Picklisten auf unterschiedlichen Druckern gedruckt, z.B. einmal mit 48 Zeilen pro Seite und das andere mal mit 72 Zeilen. Der Kunde wird den Teufel tun, überall die gleichen Drucker zu installieren.

    Kostenseite gut und schön, aber der Kunde ist König und solche Geschichten lassen sie mit einer ordentlichen Druckersteuerung, bei der zwar nicht unbedingt der Anwender, aber der Abteilungs-Leiter oder die IT-Abteilung, unterschiedliche Einstellungen vornehmen kann, relativ leicht zu lösen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Jul 2003
    Beiträge
    331
    Zitat Zitat von B.Hauser
    der Kunde ist König
    Birgitta

    Eben deshalb die Kostenseite beachten !

  9. #9
    Registriert seit
    Dec 2000
    Beiträge
    281

    Wink

    Hallo Toschie,
    ich habe das mal über eine Tabelle gelösst. Gib die Sätze erstmal in ein Tabelle aus. Damit steht die Anzahl fest. Dann lies über die Status Datenstruktur zur Printerfile die Anzahl Zeilen pro Seite, ziehe deine Überschriften ab und du erhälst die Anzahl Positionszeilen pro Seite. Damit die Anzahl Seiten zu erechnen ist eine kKleinigkeit. Jetzt die Printerfile aus der Tabelle raus drucken und fertig ist das ganze.

    Gruß Klaus

    Infds:
    fT4INVVGSP1o e printer INFDS(prtds)
    dprtds ds
    d odp_type 81 82
    d file_name 83 92
    d library 93 102
    d spool_file 103 112
    d spool_lib 113 122
    d spool_num 123 124i 0
    d rcd_len 125 126i 0
    d key_len 127 128i 0
    d member 129 138
    d type 147 148i 0
    d rows 152 153i 0
    d collums 154 155i 0
    d ov 188 189i 0
    d $$zeile 367 368i 0
    d $$seite 369 372i 0

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da kann ich Birgitta nur zustimmen.
    Es gibt durchaus verschiedene Anforderungen der Formulargestaltung bis hin zu Kundenwünschen der Kunden eines Kunden.
    So kann die Rechnung anders aussehen als die Gutschrift (obwohl vom gleichen Programm gedruckt) als auch der Overflow (und damit die Anzahl Positionen einer Seite) differieren. Desweiteren kann eine Positionszeile zwischen 1 und n Zeilen umfassen (z.B. variable Positionstexte) u.v.m.
    Da hilft dann tatsächlich nur ein Tool, denn die Anzahl Seiten einer Liste läßt sich unter solchen Voraussetzungen nur schwierig berechnen (ausser , wie Birgitta sagt, 2x drucken, 1. Druck dann verwerfen und der 2. Druck gilt).

    PS:
    PC-Programme machen es da auch nicht anders. Erstmal wird alles intern seitenweise aufbereitet um anschließend tatsächlich zu drucken.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •