IDENTIFICATION DIVISION. ******************************************************* * CBLUPS * * This program demonstrates the use of the Silver * Bay Software MaxiCode encoder with COBOL/400. * * This demo is for encoder version 2.1.1 and later * * Copyright (C) 2009, Silver Bay Software LLC ******************************************************* ******************************************************* PROGRAM-ID. CBLUPS. AUTHOR. STEVE KEARNS. DATE-WRITTEN. 10/01/98. ******************************************************* ENVIRONMENT DIVISION. ******************************************************* CONFIGURATION SECTION. SOURCE-COMPUTER. AS-400. OBJECT-COMPUTER. AS-400. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT OUTFILE ASSIGN TO FORMATFILE-MAXICODE FILE STATUS IS FILE-STATUS-OUT. ******************************************************* DATA DIVISION. ******************************************************* FILE SECTION. FD OUTFILE. 01 OUTRECORD. COPY DDS-ALL-FORMATS-O OF MAXICODE. WORKING-STORAGE SECTION. 01 WORK-FIELDS. 05 FILE-STATUS-OUT PIC X(2). 01 MAXICODE-INPUT-REC. 05 POSTAL-CODE PIC X(9). 05 COUNTRY-CODE PIC 9(3). 05 SERVICE-CLASS PIC 9(3). 05 TRACKING-NUMBER PIC X(10). 05 SHIPPER-NUMBER PIC X(6). 05 JULIAN-DAY-OF-PICKUP PIC 9(3). 05 SHIPMENT-ID PIC X(30). 05 PACKAGE-NUMBER PIC 9(4). 05 PACKAGE-COUNT PIC 9(4). 05 PACKAGE-WEIGHT PIC 9(5). 05 ADDRESS-VALIDATION PIC X(1). 05 SHIP-TO-ADDRESS PIC X(35). 05 SHIP-TO-CITY PIC X(20). 05 FILLER PIC X(15) VALUE SPACES. 05 SHIP-TO-STATE PIC X(2). 05 MODE-CONTROL PIC X(1) VALUE '0'. 01 MAXICODE-OUTPUT-REC. 03 OUTPUT-LINES. 05 MAXI-LINE-1 PIC X(30). 05 MAXI-LINE-2 PIC X(30). 05 MAXI-LINE-3 PIC X(30). 05 MAXI-LINE-4 PIC X(30). 05 MAXI-LINE-5 PIC X(30). 05 MAXI-LINE-6 PIC X(30). 05 MAXI-LINE-7 PIC X(30). 05 MAXI-LINE-8 PIC X(30). 05 MAXI-LINE-9 PIC X(30). 05 MAXI-LINE-10 PIC X(30). 05 MAXI-LINE-11 PIC X(30). 05 MAXI-LINE-12 PIC X(30). 05 MAXI-LINE-13 PIC X(30). 05 MAXI-LINE-14 PIC X(30). 05 MAXI-LINE-15 PIC X(30). 05 MAXI-LINE-16 PIC X(30). 05 MAXI-LINE-17 PIC X(30). 03 RESULT-CODE PIC 9(3). 88 MAXI-OK VALUE 000. *************************************************************** PROCEDURE DIVISION. *************************************************************** *************************************************************** * Main driver routine *************************************************************** 0000-MAIN. PERFORM 1000-INIT. PERFORM 2000-ENCODE-SYMBOL. PERFORM 9000-CLEAN-UP. STOP RUN. *************************************************************** * This section opens the output file. *************************************************************** 1000-INIT. MOVE "339010000" TO POSTAL-CODE. MOVE 840 TO COUNTRY-CODE. MOVE 001 TO SERVICE-CLASS. MOVE "1Z34567890" TO TRACKING-NUMBER. MOVE "102562" TO SHIPPER-NUMBER. MOVE 034 TO JULIAN-DAY-OF-PICKUP. MOVE SPACES TO SHIPMENT-ID. MOVE 1 TO PACKAGE-NUMBER. MOVE 1 TO PACKAGE-COUNT. MOVE 20 TO PACKAGE-WEIGHT. MOVE "Y" TO ADDRESS-VALIDATION. MOVE SPACES TO SHIP-TO-ADDRESS. MOVE "FT MYERS" TO SHIP-TO-CITY. MOVE "FL" TO SHIP-TO-STATE. OPEN OUTPUT OUTFILE. IF FILE-STATUS-OUT NOT EQUAL "00" DISPLAY "Unable to open output file. File status = " FILE-STATUS-OUT STOP RUN. *************************************************************** * This is where the encoding is done; we pass in the * input record (MAXICODE-OUTPUT-REC); the encoder * does its magic and viola, 17 lines of 30 characters * each (MAXICODE-OUTPUT-REC) are returned. We then * move these to our DDS and life is good. *************************************************************** 2000-ENCODE-SYMBOL. CALL "MAXUPSN" USING MAXICODE-INPUT-REC, MAXICODE-OUTPUT-REC. IF MAXI-OK PERFORM 5000-PRINT-SYMBOL ELSE DISPLAY "Encoder FAILED. " " Error code = " RESULT-CODE STOP RUN. 2000-ENCODE-SYMBOL-EXIT. EXIT. *************************************************************** * Here's where we move the output of the encoder to the DDS *************************************************************** 5000-PRINT-SYMBOL. MOVE OUTPUT-LINES TO MAXIOUT-O. WRITE OUTRECORD FORMAT IS "MAXIOUT". *************************************************************** * Clean up procedure *************************************************************** 9000-CLEAN-UP. CLOSE OUTFILE. IF FILE-STATUS-OUT NOT EQUAL "00" DISPLAY "Unable to close output file. File status = " FILE-STATUS-OUT STOP RUN. *************************************************************** * End of program. ***************************************************************