過去の桐井戸端BBS (桐ver.8)
3026 代入の考え方 さくら 1999/10/27-17:47
お久しぶりです。さくらです。いつも参考にさせてもらっています。
マニュアルと格闘しながらの”販売管理システム”も完成間近!なのですが、
初心者ゆえの壁にぶち当たって困っています。

販売.tbl
商品マスター.tbl
商品マスター.tbl
当然一番安い[仕切価格]を持つレコードが先頭ですよね?
そこで、この先頭のレコード([商品名][定価][仕入先名][仕切価格])を”変数”に
して、”販売.tbl”のレコード([商品名][定価][仕入先名][仕切価格])に代入させ
たいんです。

一括処理内容
変数宣言変数宣言 共通,文字列{ &商品名 }
代入 &商品名=[商品名]
編集表 1 /*販売.tbl*/
読み込み 表,"商品マスター.tbl",編集表=する,終了状態=&OK,{[商品名]&商品名}

エラー”配列変数ではありません”が出てしまいます。
どこが、どう間違っているのでしょうか?
できれば”変数”の考え方と”代入”のコツも教えていただければ
ありがたいのですが。これが理解できなければ、先に進めないのです。
ご指導・ご指摘をよろしくお願い致します。




3027 Re:代入の考え方 宮城 1999/10/27-18:30
記事番号3026へのコメント
さくらさん、こんにちは。

直接の問題は複数行あることによります。よって、代入前に 絞り込み 行数=1
を入れて下さい。

ただし、私だったら次のようにします。
[商品名]で絞り込まずに、[商品名]文字符号順,[仕切価格]昇順で並べ替え、

絞り込み 単一化={[商品名]}

これで各商品もっとも仕切価格が安いレコード
のみに絞り込まれます。

販売.tblを編集対象表とし

併合 "商品マスター",{[商品名]照合[商品名],[仕切価格]複写[仕切価格]}

これだけです。このケースでは変数を使う必要性はないと思います。(絞り込みは
適当なところで解除して下さい。)



3029 Re:代入の考え方 太郎 1999/10/27-19:29
記事番号3026へのコメント
さくらさんは No.3026「代入の考え方」で書きました。
>お久しぶりです。さくらです。いつも参考にさせてもらっています。
>マニュアルと格闘しながらの”販売管理システム”も完成間近!なのですが、
>初心者ゆえの壁にぶち当たって困っています。
>
>”販売.tbl”項目・・・[商品名][定価][仕入先名][仕切価格]
>”商品マスター.tbl”項目・・・[商品名][定価][仕入先名][仕切価格]
> ”商品マスター.tbl”を[商品名]で絞込み、[仕切価格]で昇順に並べ変えます。
>当然一番安い[仕切価格]を持つレコードが先頭ですよね?
>そこで、この先頭のレコード([商品名][定価][仕入先名][仕切価格])を”変数”に
>して、”販売.tbl”のレコード([商品名][定価][仕入先名][仕切価格])に代入させ
>たいんです。
>
> 一括処理内容
>変数宣言変数宣言 共通,文字列{ &商品名 }
> 代入 &商品名=[商品名]
>編集表 1 /*販売.tbl*/
>読み込み 表,"商品マスター.tbl",編集表=する,終了状態=&OK,{[商品名]&商品名}
>
>エラー”配列変数ではありません”が出てしまいます。どこが、どう間違っている
>のでしょうか?できれば”変数”の考え方と”代入”のコツも教えていただければ
>ありがたいのですが。これが理解できなければ、先に進めないのです。
> ご指導・ご指摘をよろしくお願い致します。
>
>
>
>
いつも質問するばかりの自分なのですが、初めて回答者として
書き込みします。違ってたら、ごめんなソーリー。

ここでのミスは最後の行の 読み込み・・・,{[商品名]&商品名}のとこだと
思います。読み込みコマンドは、表の項目からしか読み込みできません。
変数で指定すると、変数値を項目名としてとらえるはずです。
ですからこの場合、以下の方法になります。
ちなみに、読み込みコマンドは行追加になりますがいいんでしょうか?
文章からは追加ではないようですが。

・行追加コマンドを使用
   変数宣言変数宣言 固有,文字列{ &商品名,&定価,&仕入先 }
   代入 &商品名=[商品名],&定価=[定価],&仕入先=[仕入先]
編集表 1 /*販売.tbl*/
   行追加  [商品名]=&商品名[定価]=&定価,,[仕入先]=&仕入先
※追加でない場合、行訂正コマンドにするだけでOK

・読み込みならば
編集表  商品マスター
選択    行数=1
編集表 1 /*販売.tbl*/
   読み込み 表,"商品マスター.tbl",編集表=する,終了状態=&OK,{[商品名],[定価],[仕入先]}
編集表  商品マスター
選択解除 *

※2行目の選択は読み込みたい行(先頭行)だけにする為です。


余談> 共通変数はあまり使用しないほうがいい、と思ってます。
なぜなら、共通にするとシステム全体で変数を管理する必要
になります。面倒でもそれぞれの一括で変数宣言をしたほうが

さくらさん
希望通りかわかりませんが、以上です。
違ってたら、再度聞いてください。

3044 今度こそ代入? さくら 1999/10/28-17:35
記事番号3029へのコメント
宮城さん&太郎さん本当にありがとうございました!
どちらの方法でもできました!
感動もんです。やはりここでは、変数を使わない事にしました。
ところで

またまたみなさんのお知恵を拝借したいのです。

商品マスタ.tbl・・・[商品名][定価][メーカ]
"商品.WFM"で開いているものとします。
"商品.WFM"には
絞込み
このとき、カーソルが[商品名]の項目にあれば検索項目を[商品名]に
[メーカ]にあれば[メーカ]にしたいのですが、どうすればいいんでしょうか?
それが無理なら項目名を”ダウンリスト”で選択できるようにしたいんですが。
一括処理
絞り込み 会話 [型番1],終了状態=&終了
の[項目名]を省略すると”エラー”になってしまいます。今度こそ”変数”(笑)?

いつもお願いばかりでごめんなさい。
早く私も皆さんのお役に立てるようになりたいな。
努力あるのみ!頑張ります。!!




3045 Re:今度こそ代入? 太郎 1999/10/28-21:28
記事番号3044へのコメント
さくらさんは No.3044「今度こそ代入?」で書きました。
>ところで
併合と読み込みは全く別物です。
読み込みは表から表へ無条件に追加、
併合はある項目を比較しながら追加、上書きをします。
併合の方は、項目を比較しながら処理するのでその分時間はかかると思いますが・・・

>商品マスタ.tbl・・・[商品名][定価][メーカ]
>"商品.WFM"で開いているものとします。
>"商品.WFM"には
>”絞込み”を押して”絞込み画面?”をだすのですが、
>このとき、カーソルが[商品名]の項目にあれば検索項目を[商品名]に
>[メーカ]にあれば[メーカ]にしたいのですが、どうすればいいんでしょうか?
>それが無理なら項目名を”ダウンリスト”で選択できるようにしたいんですが。
>一括処理
>絞り込み 会話 [型番1],終了状態=&終了
>の[項目名]を省略すると”エラー”になってしまいます。今度こそ”変数”(笑)?

多分、フォーム形式編集でフォームを開いてるとおもいますけど、
違ってたら以下の方法では無理です。

フォーム形式編集  ・・・項目番号=&項目番号・・・
・・・
絞り込み 会話 &絞り込み,終了状態=&終了

※フォーム形式編集コマンドには項目番号のパラメータがあります。
これがカーソルの位置を拾ってくれると思います。(できなかったらソーリー)。


3046 ちょっと訂正 太郎 1999/10/28-21:33
記事番号3045へのコメント
>
>多分、フォーム形式編集でフォームを開いてるとおもいますけど、
>違ってたら以下の方法では無理です。
>
>フォーム形式編集  ・・・項目番号=&項目番号・・・
> ・・・
>絞り込み 会話 &絞り込み,終了状態=&終了
>
>※フォーム形式編集コマンドには項目番号のパラメータがあります。
>  これがカーソルの位置を拾ってくれると思います。(できなかったらソーリー)。
>

書き間違いです。

絞り込み 会話 &項目番号,終了状態=&終了

です。

3057 Re:ちょっと訂正 さくら 1999/10/29-16:17
記事番号3046へのコメント
>>併合と読み込みは全く別物です。
よくわかりました。ありがとうございまました。

<一括処理>・・・説明が不十分でした、ごめんなさい。もう少し詳しく書き込みます。
表 "商品マスター.tbl",表番号=1,モード=参照 ,使用フォーム="商品.wfm",終了状態=&OK
ウィンドウ作成 フォーム,位置=(0, 0),サイズ=(300, 350),ハンドル=&販売

ケース開始
 ケース ( &販売更新 = "絞り込み" )  
 ウィンドウ会話 &販売,初期項目=@絞り込み ,ボタン = &販売更新
 絞り込み 会話 [型番1],終了状態=&終了
・・・・・・

[項目名]を([型番1]と定義?せずに)、カーソルが[商品名]の項目にあれば[商品名]に
[メーカ]にあれば[メーカ]にしたいのですが、どうすればいいんでしょうか?
それが無理なら項目名を”ダウンリスト”で選択できるようにしたいんですが。

>>多分、フォーム形式編集でフォームを開いてるとおもいますけど、違ってたら以下の方法では無理です。
>>>>フォーム形式編集  ・・・項目番号=&項目番号・・・
>絞り込み 会話 &項目番号,終了状態=&終了

一括処理のどこをフォーム形式に書き直せばいいのかが理解できませんでした。
情けないです。アドバイスお願いいたします。


3059 Re:ちょっと訂正 太郎 1999/10/29-22:11
記事番号3057へのコメント
表 "商品マスター.tbl",表番号=1,モード=参照 ,使用フォーム="商品.wfm",終了状態=&OK
ウィンドウ作成 フォーム,位置=(0, 0),サイズ=(300, 350),ハンドル=&販売

ケース開始
 ケース ( &販売更新 = "絞り込み" )  
 ウィンドウ会話 &販売,初期項目=@絞り込み,項目番号=&項目番号 ,ボタン = &販売更新
 絞り込み 会話 &項目番号,終了状態=&終了
・・・・・・

よく分かんないですけど、ウィンドウ会話コマンドにも項目番号のパラメーター
がありますんでそれがカーソル位置を拾ってくれると思いますんで、
それを絞り込みの所に書くといいんとちゃいますか?
うまくいく事を祈ってます。

私が人様に教えて、大丈夫なんでしょうか。
なんか恐ろしい気がします。

3084 Re:ちょっと訂正 さくら 1999/11/1-13:32
記事番号3059へのコメント
太郎さん迅速な書き込みありがとうございました。
出来ました!!感激っっっ!!

何回もマニュアルを読んでいたのにまったく理解できてませんでした。
本当に助かりました。
今後ともよろしくお願いいたします。

戻る