過去の桐井戸端BBS (桐ver.8)
12084 トグルボタンでの代入変数を更新する方法 やまぐっちゃん 2001/07/02-09:05
桐V8sp6で送り状のプログラムを作っておりまして、自社データを印刷するかしないかを
運送会社選択フォームでトグルボタンにてチェックするようにしています。
そしてその値は&制御という変数へ直接渡しています。
このトグルボタンに変更があったとき、&制御という変数の値の更新する方法が思いつきません。
運送会社選択フォームからの処理は印刷.kevでレポート印刷するという形をとっています。
ちなみに運送会社選択フォームは印刷が失敗した場合のことを考えて閉じていません。

状況説明がうまくできていないとは思いますが、宜しくご享受いただきますようお願いいたします。


12087 Re:トグルボタンでの代入変数の更新 悲しげ 2001/07/02-11:46
記事番号12084へのコメント
諸々の前提が欠けているので、コメントするにはかなり想像を逞しくするしかありませんが(^^;)、
要するに、トグルボタンのソースは&制御と云う変数である。この変数の値に応じて、印刷用のrptを切り替える。
……ここまでは想像できます。
「トグルボタンに変更があったとき」とは、この&制御の値が変更になった時と云う意味だと思いますが、
問題は、どのようにして変数値が変更になったか(あるいは「なっていない」のか)になると思います。
1)当該トグル牡丹を手動でクリックした場合は、当然変数値は変更になっている筈ですよね?
云い換えれば、トグル牡丹の設定方法一般についての質問ではありませんよね?
2)あるいは、別な出来事(ivent)によって、変数値が変更になった場合、
これはそのまんま印刷の方に進めてかまわないと思うのですが、とすれば、
質問の趣旨は「この時、画面上でのトグル牡丹の表示ががそのままなのは気持ち悪いので、
こちらも更新表示させたい」と云うことでしょうか?
とすれば、「変数変更」メソッドと「描画更新」メソッドを(必要により、該当フォームのウィンドウハンドルを指定して)呼び出す。
3)あるいは「ある出来事(ivent)が起こった場合に、変数値を変更したいので、
その方法にはどのようなものがあるか?」でしょうか?
とすれば、組み方はその出来事(ivent)次第で千差万別だろうと思います。

以上が私の想像範囲ですが、外したかな?(^^;)
12088 Re:トグルボタンでの代入変数の更新 みつお 2001/07/02-11:50
記事番号12084へのコメント
今日は みつお といいます。

>このトグルボタンに変更があったとき、&制御という変数の値の更新する方法が思い
>つきません。

トングルのオブジェクトの属性_ダイアログの (ソース)に&制御を入れます(オンの値)に1 を入れる (オフの値)するにチェックし(オフの値F)は
0とすれば&制御に1か0を入れることが出来ます。
12091 Re:トグルボタンでの代入変数の更新 尾形 2001/07/02-13:24
記事番号12084へのコメント
やまぐっちゃんさん、こんにちは

>桐V8sp6で送り状のプログラムを作っておりまして、
いろいろなケースがあるでしょうが、私は以下のようにしてます
送り先は、マスタから選択しますよね?
送り主も同じように、マスタから選択するようにしています
(当然、自社もマスタに登録する必要があります)

こうすると、送り主が未定義なら、印字しない。
自社以外の送り主も作成可能(直送の場合とか)
といった具合に私はやってます。


12092 Re:トグルボタンでの代入変数の更新 やまぐっちゃん 2001/07/02-14:48
記事番号12087へのコメント
悲しげさん、いつも的を射た回答をありがとうございます。

>諸々の前提が欠けているので、コメントするにはかなり想像を逞しくするしか
>ありませんが(^^;)、
誠に申し訳ありません。文章を書くのが下手なのでお許しください。

>要するに、トグルボタンのソースは&制御と云う変数である。この変数の値に
>応じて、印刷用のrptを切り替える。……ここまでは想像できます。
>「トグルボタンに変更があったとき」とは、この&制御の値が変更になった時
>と云う意味だと思いますが、問題は、どのようにして変数値が変更になった
>か(あるいは「なっていない」のか)になると思います。
>1)当該トグル牡丹を手動でクリックした場合は、当然変数値は変更になって
>いる筈ですよね? 云い換えれば、トグル牡丹の設定方法一般についての質問
>ではありませんよね?

(1)運送便選択フォームにはトグルボタンがグループボックスで自社名の”印刷する”と”しない”を手動で選択する。

(2)デフォルトは印刷しないにチェックがついています。

(3)印刷しないのオンの値は未定義、印刷するのオンの値は”1”にしています。
   未定義にしたのは(2)の状態にするためです。

(4)運送便選択フォームには印刷.kevが組み込んであり、下記のような手続きの内容です。

 手続き実行 初期設定 ()

*------------------------------------------------------------------*
手続き定義開始 初期設定 ()

表 自社マスタ,表番号=3,モード=参照
if (&制御1=1 )
&自社名=[自社名]
&住所1=[住所1]
&TEL=[TEL]
else
&自社名=""
&住所1=""
&TEL=""
end

手続き定義終了

*-------------------------------------------------------------------*
手続き定義開始 クロネコ印刷 ()
メッセージボックス ”クロネコヤマト送状印刷”,”プリンタ(TOSHIBA J31DHP02)に送状をセットしてください!”,アイコン=!,ボタン指定=2,制御文字展開=しない,&戻値1

条件 (&戻値1<>1) 手続き終了
条件 (&戻値1=1)
レポート印刷 ”ヤマト.rpt”,部数=1,開始ページ=1,終了ページ=1,プレビュー=しない,終了状態=&終了
手続き定義終了

このような設定で自社名を印刷するにトグルボタンに変更しても自社名が印刷されません。
最初、動作確認をした時にはうまくいっていたような気がしていたのですが、色々と触っているうちに解らなくなってしまいました。
そしてトグルボタンを変更したときソース値の”&制御1”を更新してやらなければならないのではないかと思った次第です。

でも改めてこの文章を書きながら思ったのは、(3)の設定と(4)の記述で初期設定にしているのが悪いのではないかと・・・・

まだまだ説明不足かとは存じますが宜しくお願いいたします。

12093 Re:トグルボタンでの代入変数の更新 やまぐっちゃん 2001/07/02-14:55
記事番号12088へのコメント
みつおさん、ありがとうございます。

>トングルのオブジェクトの属性_ダイアログの (ソース)に&制御を入れます
>(オンの値)に1 を入れる (オフの値)するにチェックし(オフの値F)は0
>とすれば&制御に1か0を入れることが出来ます。
オンの値のところに文字を””で書き込んであるのはBBSの過去ログの本でみましたが、
ただ単に0か1を書き込むだけではだめなのでしょうか?
オフの設定が出来ません。
12094 Re:トグルボタンでの代入変数の更新 やまぐっちゃん 2001/07/02-15:08
記事番号12091へのコメント
尾形さん、レスをありがとうございました。
>
>>桐V8sp6で送り状のプログラムを作っておりまして、
>いろいろなケースがあるでしょうが、私は以下のようにしてます
>送り先は、マスタから選択しますよね?
>送り主も同じように、マスタから選択するようにしています
>(当然、自社もマスタに登録する必要があります)
>こうすると、送り主が未定義なら、印字しない。
>自社以外の送り主も作成可能(直送の場合とか)
>といった具合に私はやってます。

この方法も考えたのですが、運送会社が4社ありまして、運送会社で送り主名が印刷されているものと印刷されていないものが混在しておりまして、
基本としては印刷しないのですが、まだ白紙の送り状が残っている運送会社もありますのでそのときだけトグルボタンを変更し、自社名を印刷したいのです。
このように簡素化するのが良いのか悪いのか解りませんが・・・?

今後とも宜しくご指導ください。


12095 Re:トグルボタンでの代入変数の更新 みつお 2001/07/02-15:15
記事番号12093へのコメント
みつお です。


>オンの値のところに文字を””で書き込んであるのはBBSの過去ログの本でみましたが、ただ単に
>0か1を書き込むだけではだめなのでしょうか?
>オフの設定が出来ません。

ひとつ、書き忘れました &制御 は 整数の設定にして下さい。
文字列の場合は "1" "0" としなくては行けません
私の実験ではボタンをクリックするたびに 1 0 と切り替わりますが
もし変わらなければ、ダイアログの「編集」の入力、再計算に チェックを入れて下さい。
12096 Re:局所変数の初期値 bonito 2001/07/02-16:35
記事番号12092へのコメント
やまぐっちゃんさん

>(2)デフォルトは印刷しないにチェックがついています。
>
>(3)印刷しないのオンの値は未定義、印刷するのオンの値は”1”にしています。
>   未定義にしたのは(2)の状態にするためです。

オンの時に変数値を未定義にというのはどうもあんまりピンと来にくいかも (^^;

私ならグループボックスなど使わずに、1個のトグルボタン(チェックボックス)
「自社名の印刷」をつくって、ソース=&制御1 は、ONを1、OFFを0 とします。
でもって、&制御1はフォームの定義画面で局所変数(整数)として宣言し、
その変数の値欄に0と書けば、この0がフォームを開いた時の初期値となります。

どうしても局所変数では都合が悪ければ、フォーム開始イベントで
&制御1=0 とする手もあります。(こっちの方が一般的かぁ〜) (^^;

12097 Re:トグルボタンでの代入変数の更新 悲しげ 2001/07/02-16:51
記事番号12092へのコメント
なるほど、大体ようすが見えてきました。
そこで、私ならこうすると云うことで書いてみます。

>自社名の”印刷する”と”しない”を手動で選択する。

だけなら、トグルボタンをひとつだけ設ける。
  □ 自社名印刷する
  ↑
  チェックボックス(オプション牡丹でもいいけど)と右側はそのラベルトグルボタンのソースは
長整数型の&制御とし、オンの値を数字の「1」、オフの値は設定「する」で「0」とする。
これで、
・オプション牡丹をクリックしてチェックされたら&制御=1となって印刷「する」
・再度クリックしてチェックが外れたら&制御=0となり印刷「しない」

どうしても「印刷する」と「しない」のふたつを使いたければ、既にお試しのとおり、グループボックスで囲みます。
ここまではできていると思います。
グループボックス自体のソースは&制御(長整数型または数値系の型の変数)とする。
次、中のふたつのトグル牡丹ですが、まず「印刷する」の方はオンの値を数字の「1」とし、
「印刷しない」のオンの値を「0」とする。

こんな感じで、ちょいと動かしてみて下さい。



余談ながら、トグルボタンのオン・オフの値は別に「1」か「0」でなければならないってことはありません。
例えば次のようにも出来ます。
  トヤマ    オンの値=1
  川佐     オンの値=2
  満岡松    オンの値=3
  ・・・・   ・・・・・
ただ、オフの値は未定義よりも明確にゼロにしておいた方が、経験的には使いやすかったです、私の場合。
12099 Re:局所変数の初期値 やまぐっちゃん 2001/07/02-19:01
記事番号12096へのコメント
bonitoさん、レスありがとうございます。

>オンの時に変数値を未定義にというのはどうもあんまりピンと来にくいかも (^^;

ピンと来にくいというよりも普通じゃないですよね!
無知な私が色々とやっているうち、トグルボタンの”印刷しない”にチェックが入るようにできたのはこれだけだったもので・・・へへ (^^;;

>私ならグループボックスなど使わずに、1個のトグルボタン(チェックボックス)
>「自社名の印刷」をつくって、ソース=&制御1 は、ONを1、OFFを0 とします。
>でもって、&制御1はフォームの定義画面で局所変数(整数)として宣言し、
>その変数の値欄に0と書けば、この0がフォームを開いた時の初期値となります。

悲しげさんもおっしゃっているようにこの方法がベストですね!
やってみます。
12100 Re:トグルボタンでの代入変数の更新 やまぐっちゃん 2001/07/02-19:05
記事番号12097へのコメント
悲しげさん、ありがとうございます。

>そこで、私ならこうすると云うことで書いてみます。
>
>>自社名の”印刷する”と”しない”を手動で選択する。
>
>だけなら、トグルボタンをひとつだけ設ける。
>  □ 自社名印刷する
>  ↑
>  チェックボックス(オプション牡丹でもいいけど)と右側はそのラベル
>トグルボタンのソースは長整数型の&制御とし、オンの値を数字の「1」、
>オフの値は設定「する」で「0」とする。これで、
>・オプション牡丹をクリックしてチェックされたら&制御=1となって印刷「する」
>・再度クリックしてチェックが外れたら&制御=0となり印刷「しない」

早々やってみます。
今後とも宜しくお願いします。

戻る