過去の桐井戸端BBS (桐ver.8)
11409 フォームで変数値を項目へ入れる方法 mie 2001/06/03-12:13
はじめまして。初めて投稿します。
桐Ver.8(体験版)を使用しています。
機能などを検討して購入を考えています。
が、以下のことで悩んでいます。

フォームでの処理
フォームA(A表)にある項目[番号]を変数Aに入れ、変数Aの値をフォームB(B表)にある項目[番号]に入力記憶させたい。

具体的には、以下の操作をしようとしています。

@フォームBより、コマンドボタンでフォームAを呼び出す。
AフォームAにある[番号]を変数Aに入れる。
BフォームAを閉じ、フォームBに戻る。
CフォームBの[番号]項に変数Aの値を入れる。

としているのですが、Cの処理が分かりません???
できればイベントを使用しない方法で実現したいです。

先輩方々のご教授お願いします。

11410 Re:変数値を項目へ入れる方法? toshi-chan 2001/06/03-14:10
記事番号11409へのコメント
mie さん、こんにちは。
一括処理は使っていいのでしょうか。
それともコマンドボタンのみで行いたいのでしょうか。
多分、コマンドボタンを使いたいのでしょうね。
コマンドボタンなら3ステップでいいと思います。

     機能名          機能パラメータリスト
@   絞り込み行数        現在行
A   項目置換          [番号]=&変数A
B   解除

と設定してみてください。
11411 Re:変数値を項目へ入れる方法? ONnoji 2001/06/03-15:21
記事番号11409へのコメント
mieさん、こんにちは。

次のように試してみたらいかがでしょうか。
例では組み込み変数&STRを使用しています。
&STRは文字列型です。
もしも数値型変数を利用する場合には数値型変数を指定して下さい。
なお、置換で使用できる変数は組み込み、共通、固有の3種類ですからご注意ください。

コマンドボタンの例
機能名         機能パラメータリスト
[1]モーダルフォーム "フォーム名.wfm"
[2]絞り込み_行数  現在行
[3]項目置換     [項目名]=&STR
[4]解除       1,"保持する"

*[1]はその他、[2]と[4]は行操作、[3]は編集です。

はずしていたら、ごめんなさい。
11413 Re:変数値を項目へ入れる方法? 尾形 2001/06/03-18:38
記事番号11409へのコメント
表引きではダメなのでしょうか?

もっと具体名をだすといい方法や
別の方法も教えてもらえると思います。

11455 Re:変数値を項目へ入れる方法? mie 2001/06/06-00:54
記事番号11410へのコメント
toshi-chanさん、ご教授ありがとうございます。
遅くなりましたが、チャレンジしてみました。

>     機能名          機能パラメータリスト
>@   絞り込み行数        現在行
>A   項目置換          [番号]=&変数A
>B   解除
>

とやってみたのですが、前のフォームのレコードが先頭に戻ってしまい、
データを追加できないのです。また、[番号]データが表示されません。??

変数Aには、期待する[番号]は格納されているのですが.....

コマンドボタンだけではムリがあるのでしょうか?
一括処理とやらは、これから学習しようとしているところです。(^_^;)

11457 Re:変数値を項目へ入れる方法? mie 2001/06/06-01:32
記事番号11411へのコメント
ONnojiさん、ご教授ありがとうございます。
>mieさんは No.11409「変数値を項目へ入れる方法?」で書きました。
>>フォームでの処理
>>フォームA(A表)にある項目[番号]を変数Aに入れ、変数Aの値をフォームB(B
>>表)にある項目[番号]に入力記憶させたい。
>>具体的には、以下の操作をしようとしています。
>>@フォームBより、コマンドボタンでフォームAを呼び出す。
>>AフォームAにある[番号]を変数Aに入れる。
>>BフォームAを閉じ、フォームBに戻る。
>>CフォームBの[番号]項に変数Aの値を入れる。
>>としているのですが、Cの処理が分かりません???
>>できればイベントを使用しない方法で実現したいです。
>
>mieさん、こんにちは。
>
>次のように試してみたらいかがでしょうか。
>例では組み込み変数&STRを使用しています。
>&STRは文字列型です。
>もしも数値型変数を利用する場合には数値型変数を指定して下さい。
>なお、置換で使用できる変数は組み込み、共通、固有の3種類ですからご注意くださ
>い。
>
>コマンドボタンの例
>機能名         機能パラメータリスト
>[1]モーダルフォーム "フォーム名.wfm"
>[2]絞り込み_行数  現在行
>[3]項目置換     [項目名]=&STR
>[4]解除       1,"保持する"
>
>*[1]はその他、[2]と[4]は行操作、[3]は編集です。
上記処理方法ありがとうございます。しかし、

 AフォームAにある[番号]にデータが表示されません。
  もういちど、@のコマンドボタンを押すと、[番号]が表示されデータが確定
  されるようです。
  コマンドボタンだけの処理ではムリなのでしょうか?イベント処理などで
  対応しなければならないのでしょうか?


11464 Re:変数値を項目へ入れる方法? ONnoji 2001/06/06-10:34
記事番号11457へのコメント
mieさんは No.11457「Re:変数値を項目へ入れる方法?」で書きました。

>>>具体的には、以下の操作をしようとしています。
>>>@フォームBより、コマンドボタンでフォームAを呼び出す。
>>>AフォームAにある[番号]を変数Aに入れる。
>>>BフォームAを閉じ、フォームBに戻る。
>>>CフォームBの[番号]項に変数Aの値を入れる。

>>次のように試してみたらいかがでしょうか。
>>コマンドボタンの例
>>機能名         機能パラメータリスト
>>[1]モーダルフォーム "フォーム名.wfm"
>>[2]絞り込み_行数  現在行
>>[3]項目置換     [項目名]=&STR
>>[4]解除       1,"保持する"

mieさん、こんにちは。

> AフォームAにある[番号]にデータが表示されません。

すいませんが、もう少し詳しく状況を教えてください。

(1)フォームBを開いている時に、フォームAは既に開いているのでしょうか?(開いている、開いていない)
(2)フォームAが開いたときに編集対象の表(.tbl)があるのでしょうか?(ある、ない)
(3)フォームAにある[番号]にデータが表示されない時、現在行の位置はどこでしょうか?(先頭、最終、終端)
(3)フォームAの[フォームの形式]は何でしょうか?(カード型、一覧表型、伝票型)

>  もういちど、@のコマンドボタンを押すと、[番号]が表示されデータが確定
>  されるようです。

(4)@のコマンドボタンとはフォームAに有りますか、フォームBに有りますか?(フォームA、フォームB)
(5)@のコマンドボタンにはどのような機能を割当てているのでしょうか?

>  コマンドボタンだけの処理ではムリなのでしょうか?イベント処理などで
>  対応しなければならないのでしょうか?

イベントを使わなくても、コマンドボタンでけでかなりのことが出来ると思います...
11472 Re:変数値を項目へ入れる方法? mie 2001/06/06-21:25
記事番号11464へのコメント
ONnojiさんは No.11464「Re:変数値を項目へ入れる方法?」で書きました。
>mieさんは No.11457「Re:変数値を項目へ入れる方法?」で書きました。
>
>>>>具体的には、以下の操作をしようとしています。
>>>>@フォームBより、コマンドボタンでフォームAを呼び出す。
>>>>AフォームAにある[番号]を変数Aに入れる。
>>>>BフォームAを閉じ、フォームBに戻る。
>>>>CフォームBの[番号]項に変数Aの値を入れる。
>
>>>次のように試してみたらいかがでしょうか。
>>>コマンドボタンの例
>>>機能名         機能パラメータリスト
>>>[1]モーダルフォーム "フォーム名.wfm"
>>>[2]絞り込み_行数  現在行
>>>[3]項目置換     [項目名]=&STR
>>>[4]解除       1,"保持する"
>
>mieさん、こんにちは。
>
>> AフォームAにある[番号]にデータが表示されません。
   すみません。表現が間違っていました。(^_^;)
     ↓
  AフォームAにある[番号]が、フォームBの[番号]項にデータが
   表示されません。

>すいませんが、もう少し詳しく状況を教えてください。
>
>(1)フォームBを開いている時に、フォームAは既に開いているのでしょうか?
開いていない
フォームBの[Bボタン]で、フォームA(とA.tbl)を開いています。

(2)フォームAが開いたときに編集対象の表(.tbl)があるのでしょうか?
   あります。
>(3)フォームAにある[番号]にデータが表示されない時、現在行の位置はどこでしょうか?
この件は、問題ないです。

>(3)フォームAの[フォームの形式]は何でしょうか?(カード型)
>
>>  もういちど、@のコマンドボタンを押すと、[番号]が表示されデータが確定
>>  されるようです。
     ↓
  もういちど、@のコマンドボタンを押すと、フォームBの[番号]に表示されデータが確定
  されるようです。

>(4)@のコマンドボタンとはフォームAに有りますか、フォームBに有りますか?
   (フォームB)
>(5)@のコマンドボタンにはどのような機能を割当てているのでしょうか?

@のコマンドボタン[B]には、
[1]開く       "フォームA.wfm"
[2]絞り込み_行数  現在行
[3]項目置換     [項目名]=&STR
[4]解除       1,"保持する"

<フォームAにあるボタン>
ABの処理:[閉じる]ボタン
[1]絞り込み_行数  現在行    <-- 不要かな?
[2]なし       #代入(&変数A,[番号])
[3]閉じる

以上です。ちょっと読み難くなりましたが、如何なものでしょう?


11477 Re:変数値を項目へ入れる方法? ONnoji 2001/06/07-10:38
記事番号11472へのコメント
>   すみません。表現が間違っていました。(^_^;)
>     ↓
>  AフォームAにある[番号]が、フォームBの[番号]項にデータが
>   表示されません。

>具体的には、以下の操作をしようとしています。
>@フォームBより、コマンドボタンでフォームAを呼び出す。
>AフォームAにある[番号]を変数Aに入れる。
>BフォームAを閉じ、フォームBに戻る。
>CフォームBの[番号]項に変数Aの値を入れる。

>@のコマンドボタン[B]には、
>[1]開く       "フォームA.wfm"
>[2]絞り込み_行数  現在行
>[3]項目置換     [項目名]=&STR
>[4]解除       1,"保持する"
>
><フォームAにあるボタン>
>ABの処理:[閉じる]ボタン
>[1]絞り込み_行数  現在行    <-- 不要かな?
>[2]なし       #代入(&変数A,[番号])
>[3]閉じる

mieさん、こんにちは。

以上の情報から、桐では次のように実行されていると思います。

フォームBの@コマンドボタンを実行する。
[1]フォームAを[開く]で開く。
 ↓
フォームAで任意の行へ移動する。
フォームAのA+Bコマンドボタンを実行する。
フォームAの項目[番号]の値を変数に代入する。
フォームAを閉じる。
 ↓
[2]フォームBの現在行だけに絞り込む。
[3]フォームBの項目を変数で置換する。(これはCの機能に相当)
[4]フォームBの絞り込みを解除して行位置を保持する。

一見すると、どこにも問題が無いようにみえますが、
[1]の「フォームAを[開く]」が曲者ですね。
これを「フォームAを[モーダルフォーム]」に変更してください。

どうしてかというと、機能[1]で「フォームAを[開く]」ですと、
止まらずに、次の機能[2]〜[4]も実行されてしまうからです。
(ですから、2度実行しないと正しい値が置換されなかったというわけです。)

「フォームAを[モーダルフォーム]」ですと、
フォームAが閉じられるまで、
次の機能[2]〜[4]を実行しません(つまり一時停止しています)。

最初にレスしたときに、
”[開く]ではなく[モーダルフォーム]ですよ!”と念のために書こうと思ったのですが...

[モーダルフォーム]はフォームを開くだけでなく、
コマンドボタンの実行を一時停止する機能があるということですね。

それに対して[開く]はフォームや表を開きますが、
コマンドボタンの実行は停止しないということですね。
11485 Re:ボタンを2個にしたら 今村 誠 2001/06/07-21:52
記事番号11472へのコメント
mieさんこんにちは、2こコマンドボタンを作って良いのでしたら以下をご参考に。
>@のコマンドボタン[B]には、
>[1]開く       "フォームA.wfm"
>[2]絞り込み_行数  現在行
>[3]項目置換     [項目名]=&STR
>[4]解除       1,"保持する"
>
><フォームAにあるボタン>
>ABの処理:[閉じる]ボタン
>[1]絞り込み_行数  現在行    <-- 不要かな?
>[2]なし       #代入(&変数A,[番号])
>[3]閉じる
>
>以上です。ちょっと読み難くなりましたが、如何なものでしょう?

フォームBにフォームAを開くコマンドボタンと貼り付けるコマンドボタンをつけると 開く でもできます。
イベントだと、ボタン1個でもできますが、ボタンだけでする場合の 開く の場合のサンプルです。

フォームBからフォームAを開くボタン
  機能    機能パラメータ
1 表示    確定する
2 なし    #代入(&STR,””)
3 開く    "フォーム名.wfm"
4 なし

フォームAの番号を取り込んでフォームを閉じるコマンドボタン
1 表示    確定する
2 なし    #代入(&STR,[番号])
3 閉じる
4 なし

フォームBの貼り付けるボタン
1 実行条件  &STR<>””
2 絞り込み_行数  現在行
3 項目置換     [項目名]=&STR
4 解除       1,"保持する"

ONnojiさんのモーダルフォームが一番良いと思います。

番号の値がないときは貼り付けるボタンは押せませんのでミス防止になるかなと思って入れてみました。

[番号]が文字でなく数値の場合変数と実行条件の式が変わります。

11486 Re:解決!ありがとうございます。 mie 2001/06/07-21:57
記事番号11477へのコメント
「モーダルフォーム」了解! 解決しました。。。(^o^)丿
親切丁寧にご教授していただき、大変ありがとうございました。

桐の学習は、まだ駆け出しの為、今後も色々と尋ねることがあると思いますが宜しくお願いします。

11487 Re:ボタンを2個にしたら mie 2001/06/07-22:14
記事番号11485へのコメント
色々な方法があるのですね。
ご教授ありがとうございます。参考にさせていただきます。

戻る