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を学ぶための有用なリソースを知っているなら、私はそれを感謝します、そしてどんな追加の洞察と助けも素晴らしいでしょう!
ありがとう。