Home      Mainframe Forum      Mainfarme Tutorials      IBM Manuals      Mainframe Interview Questions      Mainframe Books      IT News     SiteMap     Downloads


     
 
MAINFRAME - TIP OF THE DAY : When you specified V for RECFM parameter, LRECL value is largest record in the file plus 4 bytes. These four bytes contain the actual length of each variable length record in the file

Google
 
Web mainframegurukul.com

String

 
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> COBOL
  View previous topic :: View next topic  
Author Message
Sandrit
Member


Joined: 11 Sep 2015
Posts: 6

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 22, 2015 2:41 am    Post subject: String Reply with quote

Code:
EVALUATE TRUE
            WHEN B100-DOLLAR >  A100-AMOUNT
               MOVE 'BOLD'                 TO   B100-STATE
           WHEN B100-DOLLAR =  A100-AMOUNT
               MOVE 'RICH'                TO    B100-STATE
           WHEN B100-DOLLAR <  75 AND F100-ACCOUNT(1:1) = 9
               MOVE 'POOR'                TO    B100-STATE
             
              STRING B100-DOLLAR
                  'Dollars left'          INTO B100-NOTICE
          WHEN OTHER
                CONTINUE.


Hi
I want to write a notice to “B100-NOTICE”, when there is less than 75 dollars left and for customer with account number starting with 3. The notice is " XXX Dollars left", XXX should state the amount of money left.
I am getting this error message.

Code:
COBCH0155E Numeric item should be an integer and without a 'P' in its picture clause


Can someone please explain to me what I am doing wrong.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.

William Collins
Active Member


Joined: 24 May 2012
Posts: 732

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 22, 2015 4:10 am    Post subject: Reply with quote

You're using a Micro Focus COBOL. Are you using it for off-line development for the Mainframe?

Code:
EVALUATE TRUE
            WHEN B100-DOLLAR >  A100-AMOUNT
               MOVE 'BOLD'                 TO   B100-STATE
           WHEN B100-DOLLAR =  A100-AMOUNT
               MOVE 'RICH'                TO    B100-STATE
           WHEN B100-DOLLAR <  75 AND F100-ACCOUNT(1:1) = 9
               MOVE 'POOR'                TO    B100-STATE
             
              STRING B100-DOLLAR
                  'Dollars left'          INTO B100-NOTICE
          WHEN OTHER
                CONTINUE.


Firstly, when using verbs, like evaluate, which have a scope-delimiters (END-...), use that, not a full-stop/period to terminate the statement:

Code:
EVALUATE TRUE
            WHEN B100-DOLLAR >  A100-AMOUNT
               MOVE 'BOLD'                 TO   B100-STATE
           WHEN B100-DOLLAR =  A100-AMOUNT
               MOVE 'RICH'                TO    B100-STATE
           WHEN B100-DOLLAR <  75 AND F100-ACCOUNT(1:1) = 9
               MOVE 'POOR'                TO    B100-STATE
             
              STRING B100-DOLLAR
                  'Dollars left'          INTO B100-NOTICE
          WHEN OTHER
                CONTINUE
        END-EVALUATE


Secondly, you can't use non-integer numerics in a STRING, is what the message is telling you.

Thirdly, when you correct that, you may still have a problem. Certainly in the COBOL Standard, DELIMITED BY is required by STRING.

Fourthly, your dollar amount will be contiguous with your text, probably not what you want.

To fix the issues, you need to MOVE B100-DOLLAR to a numeric-edited field (simple one is to create a new field, with the same PICture, except it has an actual decimal-point instead of the V, implied decimal-point.

Then include s space in between the opening quote and the D of Dollar.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
Sandrit
Member


Joined: 11 Sep 2015
Posts: 6

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 22, 2015 10:34 pm    Post subject: Reply with quote

Quote:
You're using a Micro Focus COBOL. Are you using it for off-line development for the Mainframe?


I downloaded the trial version of Micro Focus on my laptop when I started to learn Cobol for a couple of weeks ago.

Quote:
Firstly, when using verbs, like evaluate, which have a scope-delimiters (END-...), use that, not a full-stop/period to terminate the statement:


Thanks for pointing that out. I have just learned how to write evaluate some days ago. I still need Lots of practice.

Quote:
To fix the issues, you need to MOVE B100-DOLLAR to a numeric-edited field (simple one is to create a new field, with the same PICture, except it has an actual decimal-point instead of the V, implied decimal-point.


Thank you for your help.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
William Collins
Active Member


Joined: 24 May 2012
Posts: 732

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Wed Sep 23, 2015 1:32 am    Post subject: Reply with quote

OK. Another choice of COBOL compiler is GnuCOBOL, you can find it at SourceForge.net. Just for information.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
Display posts from previous:   
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> COBOL All times are GMT + 5 Hours
Page 1 of 1



 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Cobol Tutorial
This cobol tutorial covers most of the important topics like STRING, UNSTRING, COMP, COMP-3.....
DB2 Tutorial
DB2 Tutorial focuses on DB2 COBOL Programming. Explains in simple language. Some Chapters are locked, Forum members have free access to these chapters
CICS Tutorial
This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming...
JCL Tutorial
This is most popular JCL tutorial from mainframegurukul. It does contain important jcl ....
SORT Tutorial
This Tutorial covers all important aspects of DFSORT. Has more SORT examples
INTERVIEW Questions
This page covers important interview questions
Mainframe Jobs
Mainframe Jobs posted by members of mainframegurukul forum
FaceBook Page
MainframeGurukul FaceBook Page
LinkedIn Page
MainframeGurkul Linkedin Page

This widget requires Flash Player 9 or better







Go to top of the page
 

Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  DB2 INTERVIEW QUESTIONS ||  COBOL INTERVIEW QUESTIONS  ||  JCL INTERVIEW QUESTIONS ||  JCL2 INTERVIEW QUESTIONS ||  VSAM INTERVIEW QUESTIONS ||  CICS INTERVIEW QUESTIONS  ||  Online tutorials ||  Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  SiteMap  ||  Expeditor Tutorial  ||  FILE-AID Tutorial  ||  Changeman Tutorial  ||  COBOL   ||  DB2   ||  JCL  ||  CICS  ||  VSAM  ||  DB2 Interview Questions ( 110 )   || Simple JCL Tutorials  || JCL Tutorial from MainframeGurukul.com   || Simple JCL Tutorial - Chapter1 ;|| Mainframe Forum - Tutorials  || Mainframe Tutorials || Mainframe CICS tutorial|| Mainframe COBOL Tutorial

Drona Educational Forums - Mainframe Cobol DB2 CICS Board
Powered by phpBB

mainframetopic-7936.html