RPGについて

このQ&Aのポイント
  • RPGについての質問文章です。
  • 質問文章では、前レコードと新しいレコードの受注CDと得意先CDの11桁が違う場合の処理や、11桁の設定方法についての疑問があります。
  • また、CHAIN命令で検索した場合の処理も知りたいとのことです。
回答を見る
  • ベストアンサー

RPGについて

やりたいことなのですがまず一つは、前レコードの受注CD、得意先CD11桁と新しいレコードの受注CD、得意先CD11桁が違った場合何か処理を起こすようにしたいのですが・・・ この場合新しいレコードの11桁も前のレコードの11桁のようにi仕様書で設定しなければいけないのでしょうか? 前レコード11桁は以下のような形で行いました。 例)受注コード(6桁数字) 得意先コード(5桁数字) (I仕様書) DS        1  110 OLDCD  ←(1)        1   60 O@JHCD ←(2)受注コード        7  110 O@TOCD ←(3)得意先コード ------------------------------- (C仕様書) Z-ADD受注コード  O@JHCD Z-ADD得意先コード O@TOCD もう一つはCHAIN命令で検索した場合、該当レコードがあった場合サブルーチン¥CALLへいき、該当レコードがなかった場合サブルーチン¥CALL2を行いたい場合どのように組めばいいのか教えてください。

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

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

OLDCDで比較したいのであれば新しいコードのほうも受注コードと 得意先コードをつなげておく必要があります。 検索コードCHAINファイル名     99 *IN99   IFEQ '0'       EXSR \CALL       ELSE       EXSR \CALL2       ENDIF このような感じでよろしいでしょうか。

hisajiro
質問者

お礼

ありがとうございました。 おかげで助かりました^^

関連するQ&A

  • 度々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’を返してくる。 以上です。 この場合どのようなプログラムになるのでしょうか? お助けください;;

  • RPGについて

    基礎的なことなのですが、CHAINの書き方がわかりません。 今やっているのは、受注明細ファイルを出力するもので、 受注明細ファイルの商品コードをキーにして商品マスタを検索。 該当レコードがあれば、マスタの商品名称を出力ファイルの商品名称へ送るプログラムです。 CHAINを使って検索するのはわかるのですが、それをどう書けばいいかがわかりません。 またまた図々しいですが、できればサンプルのソースコードがあるとありがたいです。 よろしくおねがいします;;

  • IBM AS/400 RPG

    プログラミング歴1週間、RPG歴1週間の初心者です。 RPGについての本やサイトが少なく、サンプルコードも数えるほどしかわからない私にどうか救いの手を・・・。 今困っているのは初歩的なものなのですが、E仕様書のテーブル定義の仕方とC仕様書で検索キーを宣言してマスタファイルから検索をかける方法がわかりません。 たとえば受注明細ファイル(トランザクションファイル)を出力するのに商品コードしか記載されてないとします。 そこで商品マスタの商品コードをキーにして、検索をかけ、該当レコードが会った場合はその商品名称を出力し、なければブランクにする・・・という感じです。 文章がおかしいので理解しずらいとは思いますが、わかる方はサンプルコードをお願いします;;

  • RPG E仕様書について

    配列を使いたいのですがE仕様書の書き方がわかりません。 一つの配列に5つの項目があり、一つ一つの項目の長さが6桁の数字のSMWK(受注数量下限数)と言う配列と、 一つの配列に5つの項目があり、一つ一つの項目の長さが3桁の数字で小数点以下2桁のSMWR(割引率)という配列を使いたいのですが・・・・。 SMWKをループでまわして最初に当てはまったデータの項目SMWK,X該当のものが見つかった場合ループから抜け、SMWR,Xの値を出して割引額を計算することに使いたいと思っています。 説明があやふやで申し訳ございませんがどなたか教えていただけないでしょうか?

  • SQLでの集計結果取得について

    以下のようなSQLを書いたのですが,ほしい結果が得られませんでした。 受注に存在しない得意先についても得意先コードと得意先名を得たかったので、 "from 受注 Right Outer Join 得意先 On 受注.得意先コード = 得意先.得意先コード" としたのですが, 受注に存在しない得意先についてはデータが得られませんでした。さらに、Where句で、"受注.得意先コード =* 得意先.得意先コード"と書くとエラーが出てきてしまいました。 どうすれば得意先に存在する得意先すべての集計結果が得られるのでしょうか? String sql = "Select 得意先.得意先コード, Min(得意先.得意先名) " + "As 得意先名, Sum(受注.受注合計金額) " + "from 受注 Inner Join 得意先 " + "On 受注.得意先コード = 得意先.得意先コード " + "where 受注.得意先コード = 得意先.得意先コード " + "and 受注状態区分 = '" + joutaiKubun + "' " +      "and 納入日 between '" + startYMD + "' and '" +        "endYMD + "' " + "Group By 得意先.得意先コード " +      "Order By 得意先.得意先コード ";

    • ベストアンサー
    • Java
  • データベースの正規化について質問です><

    データベースの正規化について質問です><教えて下さい。 伝票を正規化していく問題なのですが、 受注番号 受注日 得意先コード 得意先名 得意先住所 {商品コード 商品名 販売単価 受注数量 受注金額} {}は繰り返しを表します。 これをまず自分で第一正規化してみて//*は主キーを表す。 *受注番号 受注日 得意先コード 得意先名 得意先住所 *商品コード 商品名 販売単価 受注数量 受注金額 になり次に第二正規化してみて *受注番号 受注日 得意先コード 得意先名 得意先住所 *商品コード 商品名 販売単価 *受注番号 *商品コード 受注数量 受注金額 になり最後に第三正規化をして *受注番号 受注日 得意先コード *得意先コード 得意先名 得意先住所 *商品コード 商品名 *商品名 販売単価 //ココです。 *受注番号 *商品コード 受注数量 受注金額 となったのですが模範解答には//ココです。の部分がなく、*商品コード 商品名 販売単価 これのままで終わっていました。 自分が間違えているのでしょうか??もし間違えているなら理由を教えて下さい。長くてすいません

  • 集計結果を別テーブルに更新クエリで書き出したい。

    Access2000を使っています。 テーブルとフィールドの関係は次のようになっています。 (一部、Northwind.mdbを使っています。) 受注 ---------------------- 得意先コード 受注コード 受注明細 ---------------------- 受注コード 単価 数量 売上集計 ---------------------- 得意先コード 合計 受注明細テーブルの単価と数量を掛け合わせたものの合計を 売上集計テーブルの合計に書き出したいと思います。 次の選択クエリの合計の値を売上集計テーブルの取引先コード の一致する場所に書き出したいのです。 SELECT 受注.得意先コード, Sum([単価]*[数量]) AS 合計 FROM 受注 INNER JOIN 受注明細 ON 受注.受注コード = 受注明細.受注コード GROUP BY 受注.得意先コード; 売上集計テーブルと受注テーブルの得意先コードは同じものが 存在します。 よろしくお願いします。

  • 配列を利用して表示されるテーブルを分けたいです

    PHP・MySQLを独学で利用しています。 以下のtable1のようなテーブルから各値を取り出して表示させたいのですが、特定条件でテーブル表示を分けることができないものか悩んでいます。 table1 ID・得意先コード・受注内容・受注金額・日付 1・   28  ・ xxxx ・ 10000 ・20080701 2・   32  ・ aaaa ・  5000 ・20080704 3・   28  ・ YYYY ・ 20000 ・20080706 4・   15  ・ tttt ・ 15000 ・20080709 5・   32  ・ kkkk ・  3000 ・20080801 (得意先コードはtable2のIDです) table2 ID・得意先名 15・ BBB 28・ CCC 32・ DDD フォームで指定した年月(2008年07月など)を条件に、table2とLEFTJOINした結果を取り出すまではfor文を利用して行うことができました。 得意先コード・受注内容・受注金額・ 日付 ・得意先   15  ・ tttt ・ 15000 ・20080709・BBB   28  ・ xxxx ・ 10000 ・20080701・CCC   28  ・ YYYY ・ 20000 ・20080706・CCC   32  ・ aaaa ・  5000 ・20080704・DDD これを以下のように得意先コードごとにテーブルを分けて表示することは可能なのでしょうか。 得意先コード・受注内容・受注金額・日付   15  ・ tttt ・ 15000 ・20080709 得意先コード・受注内容・受注金額・日付   28  ・ xxxx ・ 10000 ・20080701   28  ・ YYYY ・ 20000 ・20080706 得意先コード・受注内容・受注金額・日付   32  ・ aaaa ・  5000 ・20080704 最終的にはPXDocというソフトを利用して各テーブルのデータを得意先ごとにページ分けして印刷させたいのです。 まずは特定条件でデータを分けることができるかどうかがわからず、質問させていただきました。 お知恵をお借りできるとありがたいです。よろしくお願いします。

    • ベストアンサー
    • PHP
  • SQLについて

    お世話になります。 まず実現したいことを書きます。 DBテーブル内容 受注テーブル 受注番号 案件番号 得意先コード 1      1      0001 2      1      0001 3      1      0001 4      2      0002 5      2      0002 6      3      0003 7      4      0001 8      5      0003 のようにデータが入っている時に 受注番号 案件番号 得意先コード 1      1     0001 2      1     null 3      1     null 4      2     0002 5      2     null 6      3     0003 7      4     0001 8      5     0003 このように取得したいのですが、 (案件番号と得意先コードが一致している時は一番上に だけ得意先コードを表示それ以外はnullをセットする) いろいろ考えたのですが、まったくわかりませんでした。 どなたかアドバイスをお願いします。 よろしくお願いします。

  • ACCESS 選択した値を別フォームに返す方法

    ACCESS初心者で、独学です。 質問の仕方や、言葉遣いが間々ならず、申し訳ございません。 現在、会社で受注管理システムを作り運用しています。 得意先の入力の効率化を図りたくて質問させて頂きました。 今のやりかたは・・・ 受注入力フォームの中で、コンボボックス「得意先コード」を選択すると、得意先が自動で入るようになっています。 その際、別の得意先検索フォームを開き、検索した得意先コードを覚えておいて、受注入力フォームの戻り、得意先コードを入力する、という方法を取っています。 これがやはり面倒との指摘があり・・・ 得意先検索フォームの得意先の行にコマンドボタン「選択」を設置しました。 クリックすると、受注入力フォームの得意先に値が返される、としたくてコードを作成しました。 私なりに考えたコードは以下です。 Private Sub cmb_選択_click() 受注入力F_cmb.得意先コード.value=Me.cmb.選択.Value End.Sub これだと、エラーでした。 ご教示お願い致します。