• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Don’t Clone That Printer File!

    February 6, 2013 Hey, Ted

    I have a program that uses an externally described printer file to create a report. I need to change the program so that it writes some information to one spooled file and the remaining information to a separate spooled file. I could clone the printer file, but that would mean I’d have to change two files instead of one when I modify the report file in the future. Do I have to clone the printer file?

    –Mark

    No, Mark, you can build two or more reports from one printer file definition. Here’s how it’s done.

    Let’s start with a printer file, QAD001P.

    A                                      REF(QCUSTCDT)
    A          R HEADER                    SKIPB(1) SPACEA(1)
    A            TITLE         40         1
    A          R DETAIL                    SPACEB(1)
    A            CUSNUM    R              1
    A            LSTNAM    R            + 1
    A            INIT      R            + 1
    A            CITY      R            + 1
    A            STATE     R            + 1
    A          R FOOTER                    SPACEB(2)
    A                                     1'** End of report **'
    

    Here’s program QAD001R, which uses the printer file to build a report.

    Fqcustcdt  if   e           k disk
    Fqad001p   o    e             printer
    
     /free
         *inlr = *on;
         title = 'Customers';
         write header;
         dow '1';
            read cusrec;
            if %eof();
               leave;
            endif;
            write detail;
         enddo;
         write footer;
         return;
    

    Let’s modify the program to put Texas customers on one report and everybody else on another one. Here’s what we do:

    1. Define the report twice in the program. You can use any name that suits you. I’ve used the clever names REPORT1 and REPORT2.

    2. Since two files cannot have a record format of the same name, rename the report formats for all but one of the files. In this example, I chose to rename the formats in both printer files, even though renaming the formats of one file would have sufficed.

    3. Change the program to reference the new record formats as required.

    Here’s the modified program.

    Fqcustcdt  if   e           k disk
    Freport1   o    e             printer
    F                                     rename(header: header1)
    F                                     rename(detail: detail1)
    F                                     rename(footer: footer1)
    Freport2   o    e             printer
    F                                     rename(header: header2)
    F                                     rename(detail: detail2)
    F                                     rename(footer: footer2)
     /free
         *inlr = *on;
         title = 'Texas only';
         write header1;
         title = 'All but Texas';
         write header2;
         dow '1';
            read cusrec;
            if %eof();
               leave;
            endif;
            if state = 'TX';
               write detail1;
            else;
               write detail2;
            endif;
         enddo;
         write footer1;
         write footer2;
         return;
    

    To compile the program, override both printer files to the original printer file.

    ovrprtf report1 tofile(qad001p)
    ovrprtf report2 tofile(qad001p)
    crtbndrpg pgm(qad001r) srcfile(mylib/qrpglesrc)
    

    You must also override the files at run time. Use the Spool File Name (SPLFNAME) parameter to distinguish the two reports.

    pgm
       ovrprtf report1 tofile(qad001p) splfname(Texas)
       ovrprtf report2 tofile(qad001p) splfname(NoTexas)
       call qad001r
    endpgm
    

    RELATED STORY

    Dynamic Spool File Names



                         Post this story to del.icio.us
                   Post this story to Digg
        Post this story to Slashdot

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    OCEAN User Group

    OCEAN TechCon25 Online

    It’s an Exciting Time for IBM i !

    July 16 & 17, 2025 – ONLINE

    Two virtual days of learning, presented by an outstanding group of IBM’ers and IBM Champions, featuring leading-edge topics.

    FREE for OCEAN members!

    Register NOW!

    Annual (12-month) Individual OCEAN Memberships are $80 and a Corporate Membership is $250. A Corporate Membership would allow your entire company to have full access to the OCEAN website & video library and to attend OCEAN events at member rates. Act now because rates are increasing on August 1, 2025.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Sponsored Links

    BCD:  IBM i Webinar - Feb 14th. Web GUI for Green Screens: Modernize Faster with New Presto 4.5
    New Generation Software:  Get the Recipe for easy IBM i Query/Reporting/Analytics - NGS-IQ
    COMMON:  Join us at the 2013 Conference & Expo, April 7 -10 in Austin, TX

    More IT Jungle Resources:

    System i PTF Guide: Weekly PTF Updates
    IBM i Events Calendar: National Conferences, Local Events, and Webinars
    Breaking News: News Hot Off The Press
    TPM @ The Reg: More News From ITJ EIC Timothy Prickett Morgan

    Quantum Launches ‘Pay As You Grow’ Dedupe Boxes Invader II: New Power7+ Machines Take On Entry X86 Iron

    Leave a Reply Cancel reply

Volume 13, Number 3 -- February 6, 2013
THIS ISSUE SPONSORED BY:

ProData Computer Services
Bug Busters Software Engineering
WorksRight Software

Table of Contents

  • What’s That Name, Again?
  • Don’t Clone That Printer File!
  • Admin Alert: When Was The Last Time That Library Got Backed Up And More

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • With Power11, Power Systems “Go To Eleven”
  • With Subscription Price, IBM i P20 And P30 Tiers Get Bigger Bundles
  • Izzi Buys CNX, Eyes Valence Port To System Z
  • IBM i Shops “Attacking” Security Concerns, Study Shows
  • IBM i PTF Guide, Volume 27, Number 26
  • Liam Allan Shares What’s Coming Next With Code For IBM i
  • From Stable To Scalable: Visual LANSA 16 Powers IBM i Growth – Launching July 8
  • VS Code Will Be The Heart Of The Modern IBM i Platform
  • The AS/400: A 37-Year-Old Dog That Loves To Learn New Tricks
  • IBM i PTF Guide, Volume 27, Number 25

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle