Quantcast
Channel: Visual COBOL - Forum - Recent Threads
Viewing all articles
Browse latest Browse all 4356

RE: Errors with Standard OO Program

$
0
0

Chris Glazier
Can you please post the source of the program that you are trying to compile?

BankMain.cbl:

       PROGRAM-ID. BANKMAIN.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           CLASS Account.
           
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 an-object USAGE OBJECT REFERENCE Account.
       
       PROCEDURE DIVISION.
       go-now.
           DISPLAY "Start"
           INVOKE Account "newAccount" RETURNING an-object.
           INVOKE an-object "displayUI".
           SET an-object to NULL.
           GOBACK.
       END PROGRAM BANKMAIN.

Account.cbl:

       CLASS-ID. Account INHERITS Base.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       REPOSITORY.
           CLASS Base.
           
       FACTORY.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 number-of-accounts PIC 9(5) VALUE ZERO.
       
       PROCEDURE DIVISION.
       METHOD-ID. newAccount.
       DATA DIVISION.
       LOCAL-STORAGE SECTION.
       LINKAGE SECTION.
       01 an-object USAGE IS OBJECT REFERENCE ACTIVE-CLASS.
       PROCEDURE DIVISION RETURNING an-object.
       begin-here.
           INVOKE SELF "new" RETURNING an-object.
           INVOKE an-object "initializeAccount" USING BY CONTENT
               number-of-accounts.
           EXIT METHOD.
       END METHOD newAccount.
       
       METHOD-ID. addAccount.
       PROCEDURE DIVISION.
       method-start.
           ADD 1 TO number-of-accounts.
           EXIT METHOD.
       END METHOD addAccount.
       
       METHOD-ID. removeAccount.
       PROCEDURE DIVISION.
       main-entry.
           SUBTRACT 1 FROM number-of-accounts.
           EXIT METHOD.
       END METHOD removeAccount.
       END FACTORY.
       
       OBJECT.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 account-balance PIC S9(9)V99.
       01 account-number PIC X(9).
       01 the-date PIC 9(8).
       
       PROCEDURE DIVISION.
       METHOD-ID. displayUI.
       DATA DIVISION.
       LOCAL-STORAGE SECTION.
       01 in-data.
           03 action-type PIC X.
           03 in-amount PIC S9(9)V99.
           03 in-wrk  PIC X(12).
       PROCEDURE DIVISION.
       method-start.
           DISPLAY "Enter D for Deposit, B for Balance or W for "
               "Withdrawal"
           ACCEPT in-data
           EVALUATE action-type
               WHEN "D"
                   PERFORM get-amount
                   INVOKE SELF "deposit" USING in-amount
               WHEN "W"
                   PERFORM get-amount
                   INVOKE SELF "withdraw" USING in-amount
               WHEN "B"
                   INVOKE SELF "balance"
               WHEN OTHER
                   DISPLAY "Enter valid transaction type."
                   EXIT METHOD
           END-EVALUATE
           EXIT METHOD
           .
       get-amount.
           DISPLAY "Enter amount 9(9).99"
           ACCEPT in-wrk
           COMPUTE in-amount = FUNCTION NUMVAL (in-wrk)
           .
       END METHOD displayUI.
       
       METHOD-ID. balance.
       DATA DIVISION.
       LOCAL-STORAGE SECTION.
       01 display-balance PIC $ZZZ,ZZZ,ZZ9.99B-.
       PROCEDURE DIVISION.
       disp-balance.
           MOVE account-balance to display-balance
           DISPLAY "Your Account Balance is:" display-balance
           EXIT METHOD.
       END METHOD balance.
       
       METHOD-ID. deposit.
       DATA DIVISION.
       LINKAGE SECTION.
       01 in-deposit PIC S9(9)V99.
       PROCEDURE DIVISION USING in-deposit.
       make-deposit.
           ADD in-deposit TO account-balance
           EXIT METHOD.
       END METHOD deposit.
       
       METHOD-ID. withdraw.
       DATA DIVISION.
       LINKAGE SECTION.
       01 in-withdraw PIC S9(9)V99.
       PROCEDURE DIVISION USING in-withdraw.
       withdraw-start.
           IF account-balance >= in-withdraw
               SUBTRACT in-withdraw FROM account-balance
           ELSE
               DISPLAY "Your Balance is Inadequate"
           END-IF
           EXIT METHOD.
       END METHOD withdraw.
       
       METHOD-ID. initializeAccount.
       DATA DIVISION.
       LINKAGE SECTION.
       01 new-account-number PIC 9(5).
       PROCEDURE DIVISION USING new-account-number.
       Begin-initialization.
           MOVE ZERO TO account-balance
           MOVE new-account-number TO account-number
           MOVE FUNCTION CURRENT-DATE (1: 8) TO the-date
           EXIT METHOD.
       END METHOD initializeAccount.
       END OBJECT.
       END CLASS Account.

Chris Glazier
... you should also have this set to use REPOSITORY with UPDATE ON

Even with this, the compilation still fails with the two errors I had in my previous post.


Viewing all articles
Browse latest Browse all 4356

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>