• 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:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Tags:

    Sponsored by
    New Generation Software

    Put your IBM i Data to Work

    NGS-IQ makes it easy to securely access, format, analyze, and share critical business data across your organization.

    Join us for a look at the top challenges companies attending COMMON NAViGATE at TechXchange 2026 shared when it comes to getting reliable reports from their DB2 data — and how NGS-IQ can help provide the answers you need without breaking the budget.

    Register for the Webinar

    www.ngsi.com – (800) 824-1220

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) 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

    What’s That Name, Again? Admin Alert: When Was The Last Time That Library Got Backed Up And More

    Leave a ReplyCancel 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

  • Critical PHP2Shell Security Vulns Evoke ‘Black October’
  • Why Fortra Partnered with FalconStor to Launch Continuity Care: A Validated Recovery Service for IBM i
  • Guru: Analyzing User Session Statistics, Part 2
  • Fresche Launches OpsIQ, a Free AI-Based Operation Assistant for IBM i
  • IBM i PTF Guide, Volume 28, Number 37
  • Fall TRs Expected Next Week At Combined IBM-COMMON Conference
  • GenAI Brings A New Kind Of Agile Computing That Needs Controls Even More
  • IBM i, AI, And The Cost Of “We’ve Always Done It That Way”
  • Infor Says IBM i Customers Are Welcome To Use New AI
  • IBM i PTF Guide, Volume 28, Number 36

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