Good point.

Given the users I deal with on a daily basis, it is something I should have considered. I will assume that if they keyed in a pile of zeros for the invoice number, they must have done so for a good reason, so I will leave it alone. Still not 1 line, but I also should have known better than to say 'a single line of code' -- that phrase has caused wars in some shops.

if invoiceNbr <> *zeros;
%subst(invoiceNbr:1:(%check('0':invoiceNbr)-1)) = *blanks;
endif;


--------------------------------------------------
From: "Dennis Lovelady" <iseries@xxxxxxxxxxxx>
Sent: Monday, July 05, 2010 4:46 AM
To: "'RPG programming on the IBM i / System i'" <rpg400-l@xxxxxxxxxxxx>
Subject: RE: Zero suppress a character field for display...

Interesting, but won't that fail if the value of the variable is all zeros?
So that really it's five lines instead of 1?
If invoiceNbr = *All'9' ;
// some solution, like %Subst(invoiceNbr:1:%Size(invoiceNbr)-1) =
*Blanks ;
Else ;
%subst(invoiceNbr:1:(%check('0':invoiceNbr)-1)) = *blanks;
EndIF ;

Dennis Lovelady
http://www.linkedin.com/in/dennislovelady
--
Sometimes I've believed as many as six impossible things before breakfast.
-- Lewis Carroll


In a single line of code:
%subst(invoiceNbr:1:(%check('0':invoiceNbr)-1)) = *blanks;

Basically just finds the first non-zero character and replaces
everything
before it with *blanks.


--------------------------------------------------
From: "Robert Rogerson" <rogersonra@xxxxxxxxx>
Sent: Thursday, June 24, 2010 9:05 AM
To: "RPG programming on the IBM i / System i" <RPG400-L@xxxxxxxxxxxx>
Subject: Zero suppress a character field for display...

> Hi all,
>
> This should be quick. I have a character field
>
> d invoiceNbr s 9a
>
> which may hold '001234567'. The user wants to see the invoice number
with
> leading zeroes suppressed so '1234567'.
>
> My first thought is
> /free
> dspInvoiceNbr = %Char(%Dec(invoiceNbr: 9: 0));
> /end-free
>
> Is there a better method or is this about as good as any other method?
>
> Thanks,
>
> Rob
> --
> This is the RPG programming on the IBM i / System i (RPG400-L)
mailing
> list
> To post a message email: RPG400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
> or email: RPG400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
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 thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.