過去の桐井戸端BBS (桐ver.8)
17812 手続き定義の引数に配列変数を使いたいのだが受け渡しがうまくいかない MuraG 2002/10/31-11:28
皆さんこんにちは
42歳の中年プログラマーです。

在庫管理システムを 桐8SP6で作って 業務に使用しています。

一応うごいているのですが、いろいろ要求が増えて、一括処理が増えてきたので
今勉強しながら 整理しているところです。

そのなかで 手続き定義をつかって Liblary化していこうといているのですが

手続き定義との 配列変数の受け渡しがうまくいきません。
どこが悪いのか ご教授いただければ  幸いです。
マニュアルには 配列について 難しいことが書いてありますが、
単純に 配列に値がもどってくれば いいんですけど.....

現象 手続き実行の行で 下記のエラーメッセージで異常終了
KU1091: パラメータの形式に誤りがあります。
詳細: &割当品番
行番号:5

------ 以下 一括からの 抜書きです ------

変数宣言  長整数 {&割当構成[10]}
変数宣言  文字列 {&品番,&割当品番[10]}
変数宣言  数値  {&OK}

手続き実行 商品構成検索処理(&品番,&割当品番[10],&割当構成[10],&OK)

手続き定義開始 商品構成検索処理(文字列 &品番,参照 文字列 &割当品番[],
参照 長整数  &割当構成[],参照 数値 &OK)
変数宣言 数値{&i}
  &割当品番 = {"","","","","","","","","",""}
  &割当構成 = {"","","","","","","","","",""}
  編集表 &tm商品構成
  絞込み解除 *
  絞込み [主品番]=&品番
  if ( #総件数 = 0)
    &OK=0
    &割当品番 = {"","","","","","","","","",""}
    &割当構成 = {"","","","","","","","","",""}
  else
    &OK=1
    ジャンプ 行番号=先頭
    &i = 0
    繰り返し (.not #終端行)
      &i = &i + 1
    &割当品番[&i] = [従品番]
     &割当構成[&i] = [構成数]
      &OK = &i
      ジャンプ 行番号=次行
    繰り返し終了
  end
  絞込み解除 *
手続き定義終了

------------------- -------------------------
17814 Re:手続き定義の引数に配列を使う方法 pokopon 2002/10/31-12:14
記事番号17812へのコメント
MuraGさん こんにちは

>手続き定義との 配列変数の受け渡しがうまくいきません。
>KU1091: パラメータの形式に誤りがあります。

ここかな?

>手続き実行 商品構成検索処理(&品番,&割当品番[10],&割当構成[10],&OK)

改め

手続き実行 商品構成検索処理(&品番,&割当品番,&割当構成,&OK)

[10]はいらなかったんでなかったっけ? (殆どうら覚えですが)


17815 Re:手続き定義の引数に配列を使う方法 MuraG 2002/10/31-13:02
記事番号17814へのコメント
pokoponさん
早速のレスありがとうございます。

やってみたところ うまくいきました。
考えてみたら、&割当品番[10]
だと 10番目の要素だけを指定していることになりますね。
実例がなかったので、とまどってしまいました。

たすかりました。

戻る