• ベストアンサー

度々RPGについて

いったい一つのプログラムを組むのに何日かかって何度皆様にご迷惑をおかけしているのやら・・・。 内容は受注明細ファイルから1レコード読み、前のレコードと商品コードが一致しなかった場合、受注明細ファイルの商品コードをキーにし、商品マスタを検索。 該当レコードがあった場合商品マスタの商品名称(シフトコード含まないで)20桁を16桁に編集し、シフトコードの編集もしてから出力ファイルの商品名称にいれる。 もし商品マスタに該当レコードが無ければ、出力ファイルの商品名称に’未登録’を表示・・・ というものです。16桁編集はSUBプログラムとして補足資料に以下のものが書かれていました。 C P#010 PLIST C PARM P#LEN 2 桁数 C PARM P#DATA 80 文字列 C PARM P#OPT 1 オプション 以上パラメーターの定義 C MOVEL'16' P#LEN C MOVEL*BLANK P#DATA C MOVEL****** P#DATA C MOVEL*BLANK P#OPT C CALL 'SUB0010R' 以上パラメーターにデータをセットして、サブプログラムの実行(CALL) CALL終了後、P#DATAに16桁に編集された文字列が返ってくる。 *オプションは、サブプログラム側で何かしらのエラーが発生した場合、’1’を返してくる。 以上です。 この場合どのようなプログラムになるのでしょうか? お助けください;;

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

  • ベストアンサー
  • morisyu42
  • ベストアンサー率40% (4/10)
回答No.3

こんにちわ。 お書きになられているコーディングそのままでだいたい、使えると思われます。 さきほどの御質問と組み合わせると思ってらっしゃるものが出来るかと思います。 但し、サブプロでエラーの時(オプションが1以外の時)どうするかは確認されたほうがいいかと思います。 コードはわざと書きませんので、がんばってやってみてください。

その他の回答 (2)

  • miria
  • ベストアンサー率33% (17/51)
回答No.2

お尋ねになりたいのは メインのコーディングですか それとも呼び出される「SUB0010R」のコーディングでしょうか? ご覧になっているのはどのような資料ですか。 社内の経験者や出入のSEさんは側にいらっしゃいませんか? AS/400関連のメーカー情報誌には沢山サンプルがあるはずですので職場にあるものを見落としているのかもしれませんよ。

hisajiro
質問者

補足

メインです。 会社のサンプルですか・・・・ 見れないんです;; ユーザーがないのと、新しいマシーンへデータ移行中で使えないんです;;

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

一つ疑問点があるのですが、商品マスタに登録されている品名は IBMの漢字コードで登録されているのですよね。 それならサブプログラムまで使う必要が無いと思うのですが、 見た感じこのサブプログラムは通信などで他の漢字コードとして 入ってきた文字をIBM漢字コードに変換させる為の プログラムの様に見えます。 IBMの漢字コードで入力している文字を20桁から16桁に するのであれば、ただ単に適当な文字を1文字架空のフィールドに 入力してI仕様書でDSで区切って、1桁目と4桁目を取り出し (シフトインとシフトアウト)20桁から16桁にしたときに シフトインは入っているのでシフトアウトをいれてやるだけ で大丈夫なはずです。 補足お願いします。

hisajiro
質問者

補足

仕様書にはその辺は全く記載されていません。 ファイルの設計書等もない状態です。 一応補足のプログラムを使えとだけは書いてありますが、 その他の注釈は全く皆無の状態です。 初心者にはお手上げです;;

関連するQ&A