|
This is a multipart message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
Because the if changes. Granted the change is small and that might be why
you missed it.
One had:
> /If not defined(MBRL0200)
and the other had:
> /If not defined(MBRL0300)
Rob Berendt
--
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
Benjamin Franklin
"Bob Cozzi" <cozzi@rpgiv.com>
Sent by: rpg400-l-admin@midrange.com
07/10/2002 03:29 PM
Please respond to rpg400-l
To: <rpg400-l@midrange.com>
cc:
Fax to:
Subject: RE: Conditional compilation directives: Is AND valid?
Rob,
Why not just embed the /IF into the included member rather than
including it in each member?
Bob
> -----Original Message-----
> From: rpg400-l-admin@midrange.com
> [mailto:rpg400-l-admin@midrange.com] On Behalf Of rob@dekko.com
> Sent: Wednesday, July 10, 2002 2:47 PM
> To: rpg400-l@midrange.com
> Subject: Re: Conditional compilation directives: Is AND valid?
>
>
> This is a multipart message in MIME format.
> --
> [ Picked text/plain from multipart/alternative ]
> Hans,
>
> We've been using the single level /if not defined(....) for
> API programs. The API's support multiple formats. Most of
> them are the same with a few fields added on.
>
> Sample is the API QUSLMBR. It supports the formats:
> MBRL0100, MBRL0200, MBRL0300, MBRL0310, MBRL0320, MBRL0330.
> MBRL0200 has the same layout as MBRL0100 with a few fields
> added. MBRL0300 has the same format as MBRL0200 with a few
> fields added... So we create multiple members in our QAPISRC file.
>
> Member MBRL0100 looks like:
> /If not defined(QUSLMBR)
> /Define QUSLMBR
> /Include ROUTINES/QAPISRC,QUSLMBR
>
> /EndIf
> /Define MBRL0100
> /If not defined(MBRL0200)
> * MBRL0100 - QUSLMBR - List Database File Members -
> Basic Information
> D MBRL0100 DS
> /EndIf
> D MLMbrName 10a Member name used
>
> Member MBRL0200 looks like:
> /If not defined(QUSLMBR)
> /Define QUSLMBR
> /Include ROUTINES/QAPISRC,QUSLMBR
>
> /EndIf
> /Define MBRL0200
> /If not defined(MBRL0300)
> * MBRL0200 - QUSLMBR - List Database File Members - Source info
> D MBRL0200 DS
> /EndIf
> /Include ROUTINES/QAPISRC,MBRL0100
> D MLSourceType 10a Source type
> D MLCreateTS 13a Create date & time
> D MLSourceTS 13a Source change D & T
> D MLText 50a Member text
> D MLCCSID 10i 0 Member text CCSID
>
> The rub is that I didn't care for the documentation on 0310,
> 0320, 0330 so I wanted 0300 to not put the DS line in there
> if any of those three were described.
>
> Rob Berendt
> --
> "They that can give up essential liberty to obtain a little
> temporary safety deserve neither liberty nor safety."
> Benjamin Franklin
>
>
>
>
> Hans Boldt <boldt@ca.ibm.com>
> Sent by: rpg400-l-admin@midrange.com
> 07/10/2002 12:07 PM
> Please respond to rpg400-l
>
>
> To: rpg400-l@midrange.com
> cc:
> Fax to:
> Subject: Re: Conditional compilation
> directives: Is AND valid?
>
>
> rob@dekko.com wrote:
> > Can I do the following? If not, then now do you recommend
> forming the
> if
> > nest?
> >
> > /If not defined(MBRL0310) AND not defined(MBRL0320) AND not
> > defined(MBRL0330)
> > * MBRL0300 - QUSLMBR - List Database File Members -
> Source info
> > D MBRL0300 DS
> > /EndIf
>
> No, you can't code any operators on a /IF directive.
>
> Also, you might want to rethink what you're doing since I
> suspect you're trying to do something that's not possible in
> RPG IV. When you code "/IF DEFINED(X)", for the condition to
> be considered true, the name X is a name specified either in
> the DEFINE parameter on the CRTRPGMOD/CRTBNDRPG command or on
> the /DEFINE directive. It does not refer to any names coded
> otherwise in the RPG program, and cannot be used to condition
> code whether or not a specific variable name is defined.
>
> (Also, you can also code something like "/IF
> DEFINED(*V5R1M0)" to conditionally compile code intended for
> the specified release or later.)
>
> Cheers! Hans
>
>
>
>
>
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L)
> mailing list To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L)
> mailing list To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
>
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
or email: RPG400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.