RE: Declaring an external printer file

Greg Wilburn <gwilburn-kuYYJ3CQfvZxq3Q2jbZZw/[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <PH0PR17MB48632079FD0EFB4CA036F8D4DA30A@PH0PR17MB4863.namprd17.prod.outlook.com>
Thanks all!

I'll do option 2 (usropn).

I use on-exit all the time - it cuts way down on code.  I found it works great with a "success" indicator for commit or rollback.

-----Original Message-----
From: RPG400-L <[email protected]> On Behalf Of Daniel Gross
Sent: Tuesday, August 19, 2025 11:58 AM
To: [email protected]
Subject: Re: Declaring an external printer file

Hi Greg,

the compiler doesn't generate I-specs for files defined in a sub-procedure.

So either define the file IN the sub-procedure and always use data structures for all output statements.

Or define the file globally with USROPN - let the compiler generate global I-specs - use the file like normal - and just only open and close it inside the procedure.

Either way, I recommend closing the file in the ON-EXIT section like that:

   on-exit;
     if %open(...);
       close ...;
     endif;

This way, the file always gets correctly closed - even if the procedure ends abnormally.

HTH
Daniel


> Am 19.08.2025 um 17:31 schrieb Greg Wilburn <[email protected]>:
>
> I would like to declare a printer file in a sub procedure... but I can't seem to get the program to compile.
> If I move it to the program level, it compiles just fine.
>
> When the DCL-F is in the sub procedure, I get RNF7274: A result data structure is required for I/O operations to file MYPRTF
>
> The goal is to only open the externally described printer file when that particular sub proc is called, and close it when the procedure is finished.
>
> TIA
> Greg
>
> [Logo]<https://www.totalbizfulfillment.com/>    Greg Wilburn
> Director of IT
> 301.895.3792 ext. 1231
> 301.895.3895 direct
> [email protected]<mailto:[email protected]>
> 1 Corporate Dr
> Grantsville, MD 21536
> www.totalbizfulfillment.com<http://www.totalbizfulfillment.com>
> --
> This is the RPG programming on IBM i (RPG400-L) mailing list
> To post a message email: [email protected]
> To subscribe, unsubscribe, or change list options,
> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: [email protected]
> Before posting, please take a moment to review the archives
> at https://archive.midrange.com/rpg400-l.
>
> Please contact [email protected] for any subscription related questions.
>
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact [email protected] for any subscription related questions.

Greg Wilburn
Director of IT
301.895.3792 ext. 1231
-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: [email protected]
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact [email protected] for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.