1

IBMiSeriesとRationalDeveloperの入門コースを受講していますが、ラボ用にRPGLEプログラムの1つをコンパイルするのに苦労しています...残念ながら、ラボは、多くの説明なしにコンパイルすることになっているコードのウォークスルーにすぎません。だから私は自分が何をしているのか全く分かりません…。

プログラムMARKSRPG.RPGLEをコンパイルすると、ほとんどのエラーで「名前またはインジケーターが定義されていません」と表示されます...これが何を意味するのかわからないため、コーディングした内容を確認することができません。これまでのところ動作します。

(更新:提案を修正しましたが、異なるエラーが発生します。「EVAL演算で左側と右側のタイプが一致しません」、および「オペランドが次のタイプと互換性がありません。オペレーター。)

プログラムは、MARKSRPG.RPGLEとMARKSDSP.DSPFの2つのファイルに分割されています。これが両方のコードですが、私のエラーはMARKSRPG.RPGLEにのみ表示されます

MARKSDSP:

 A          R RECORD1
 A                                  1 33'Marks Calculator'
 A                                  2  2USER
 A                                  1  2SYSNAME
 A                                  1 72DATE
 A                                  4 24'Test 1:'
 A                                  5 24'Test 2:'
 A                                  6 24'Test 3:'
 A                                  7 24'Labs:'
 A                                  8 24'Exam:'
 A            TEST1          3  0B  4 32RANGE(0 100)
 A            TEST2          3  0B  5 32RANGE(0 100)
 A            TEST3          3  0B  6 32RANGE(0 100)
 A            LABS           3  0B  7 32RANGE(0 30)
 A            EXAM           3  0B  8 32RANGE(0 100)
 A            FIELD           T  B  2 71

 A          R RECORD2                   CA03(03 'Exit')
 A                                      OVERLAY
 A                                 10 23'Tests:'
 A                                 11 18'Final Mark:'
 A                                 12 17'Final Grade:'
 A            TESTOVRLL      3  0O 10 30
 A            NUMGRADE       3  0O 11 30
 A            GRADE          2X  O 12 30
 A                                 13 17'F3 - Exit' 

MARKSRPG:

  FMARKSDSP  CF   E             WORKSTN
 DLETGRADE         S              1A
 DTESTOVRLL        S              3A
  /FREE
       EXFMT RECORD1;
       DOW NOT(*IN03);
               EXSR GETGRADE;
               WRITE RECORD1;
               EXFMT RECORD2;
               IF *IN03= *OFF;
                 EXSR CLEARMARKS;
                 EXFMT RECORD1;
               ENDIF;
             ENDDO;
       *INLR = *ON;
       RETURN;
       BEGSR GETGRADE;
         LETGRADE = 'F';
         TESTOVRLL = (TEST1 + TEST2 + TEST3)/3;
         NUMGRADE = (TESTOVRLL/100*.30) + LABS +(EXAM/100*.35);
        ENDSR;
        BEGSR CLEARMARKS;
          TEST1 = 0;
          TEST2 = 0;
          TEST3 = 0;
          LABS = 0;
          EXAM = 0;
          TESTOVRLL = 0;
        ENDSR;
  /END-FREE  

RPGLEとCLLEを学ぶための有用なリソースを知っているなら、私はそれを感謝します、そしてどんな追加の洞察と助けも素晴らしいでしょう!

ありがとう。

4

1 に答える 1

1

RPGLEメンバーで、表示ファイルの名前が間違っています。のMARKSRPG代わりにMARKSDSP

LETGRADEがどこにも定義されていないので、D仕様に含める必要があります。

D LETGRADE           s            1a

CLEARMARKSまた、サブルーチンがどこにも定義されていません。また、どこにも/ end-freeが表示されないため、RPGLEメンバーのすべてのコードを貼り付けなかったと想定します。

私が言及したこれらの2つの変更を行ってから、質問があれば戻ってきます。

IBMiに関するIBMの情報センターへのリンクは次のとおりです。http: //publib.boulder.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic = / rzasd / sc09250802.htm

于 2013-02-13T23:48:27.513 に答える