• ベストアンサー

RPGのプログラム感のパラメーター

サブプロにパラメーターを渡し、処理をさせたいのですが、 サブプロは曜日計算をさせるもので、 パラメーターはA(4桁の西暦),B(2桁の月),C(2桁の日付)の変数で、 それぞれ桁数が4,2,2小数点桁数はすべて0です。 この3つを渡し、処理をさせWEEKという変数に曜日を算出させ、元のプログラムにその値を返したいのですが、受け渡しと値の戻し方がわかりません。 受け渡し側のパラメーターの宣言の仕方、CALLの仕方、WEEKの値の受け取り方 受け渡される側のパラメータの宣言の仕方、値の戻し方を教えてください。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hiratti
  • ベストアンサー率32% (8/25)
回答No.4

No2です。 ABCの変数が数字項目でしたね。訂正します。 受け渡しプログラム IPRMWEK  DS I           1 40 A   (INPUT パラメータ 西暦) I           5 60 B   (INPUT パラメータ 月) I           7 80 C   (INPUT パラメータ 日) I           9 ?  WEEK (OUTPUT パラメータ 曜日) C      CALL 'SBWEK00'   (サブルーチンSBWEK00 呼び出し) C      PARM   PRMWEK   (サブルーチン受け渡しパラメータ) 受け渡されるプログラム(SBWEK00) IPRMWEK  DS I           1 40 A   (INPUT パラメータ 西暦) I           5 60 B   (INPUT パラメータ 月) I           7 80 C   (INPUT パラメータ 日) I           9 ?  WEEK  (OUTPUT パラメータ 曜日) C     *ENTRY PLIST      (受け取りパラメータ宣言) C         PARM PRMWEK   (受け取りパラメータ)

hisajiro
質問者

お礼

ありがとうございます。 おかげさまで解決できました。 パラメーターに関して扱うのが初めてで、いろいろ自分で調べたりしましたが、分かりやすい説明のおかげでやっとわかった気がします。 また何かありましたら、よろしくお願い致します。

その他の回答 (3)

  • hiratti
  • ベストアンサー率32% (8/25)
回答No.3

> この3つを渡し、処理をさせWEEKという変数に曜日を算出させ、元のプログラムにその値を返したいのですが、受け渡しと値の戻し方がわかりません。 ちょっと質問の内容が理解できない部分がありましがた、私なりに解釈しました。 受け渡しプログラム IPRMWEK  DS I           1 4 A   (INPUT パラメータ 西暦) I           5 6 B   (INPUT パラメータ 月) I           7 8 C   (INPUT パラメータ 日) I           9 ? WEEK (OUTPUT パラメータ 曜日) C      CALL 'SBWEK00'   (サブルーチンSBWEK00 呼び出し) C      PARM   PRMWEK   (サブルーチン受け渡しパラメータ) 受け渡されるプログラム(SBWEK00) IPRMWEK  DS I           1 4 A   (INPUT パラメータ 西暦) I           5 6 B   (INPUT パラメータ 月) I           7 8 C   (INPUT パラメータ 日) I           9 ? WEEK  (OUTPUT パラメータ 曜日) C     *ENTRY PLIST      (受け取りパラメータ宣言) C         PARM PRMWEK   (受け取りパラメータ) 後はSBWEK00にてWEEKに曜日をセットすれば受け渡し側のプログラムのWEEKに値がセットされます。尚、受け渡し側・受け渡される側の変数名は違っても構いません。変数の桁数だけ合っていればOKです。もし理解できなかったり、質問の意図が異なる時は言ってください。

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.2

#1です。やっぱり見当違いでしたね。すみません。 私はRPGはまったく分からないのですが、参考URLにはほかの言語と対比してプログラムが載っているので参考にしてはどうでしょうか? http://www2.odn.ne.jp/~cbn33260/AS400/index.htm http://www2.odn.ne.jp/~cbn33260/AS400/ile.htm

hisajiro
質問者

お礼

ありがとうございます。 今後の参考とさせていただきます。

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

「RPG」と「サブプロ」の意味が分からないのでまったく見当違いかもしれませんが... 「サブプロ」は「サブルーチン」のことですか?だとすると、まずは「サブプロ」ではなく「ファンクション」つまり「関数」を使うようにした方がいいと思います。 開発に用いている言語もわからないので具体的な宣言はわかりませんが、ファンクションの戻り値にweekを指定して呼び出し側で nWeek = (関数名)(パラメータ) のように呼び出せば計算した値を受け取れるかと思います。 VBであれば下のような感じです Function aaaa(y As Integer, m As Integer, d As Integer) As Integer week = 10 aaaa = week End Function Sub test() week = aaaa(1994, 10, 10) MsgBox week End Sub

hisajiro
質問者

補足

内容がわかりにくくて、すみません。 RPGとはAS/400で開発する言語で、サブプロはサブプログラムのことです。

関連するQ&A

専門家に質問してみよう