過去の桐井戸端BBS (桐ver.9)
30366 1つのフォームで2つのkevを使い分けることは可能でしょうか? 手塚 修 2005/07/01-15:37
データを入力する時のフォーム(入力kevが付いている)を利用し、
データ訂正時にもそのフォームを使う。但し、kevは訂正kevに変更する。
このようなkevの使い分けは、できるのでしょうか?フォームの イベント イベントファイル名を
変数で制御し、変更、使い分けはできないのでしょうか?何らかの方法はないのでしょうか?

もし、できないとすると、同一ではあるが入力フォーム・訂正フォームを作り、
それぞれに入力kev、訂正kevとすべきなのでしょうか?

教えてください。

よろしくお願いいたします。

30368 Re:1つのフォームで2つのkevを使い分けること bonito 2005/07/01-15:46
記事番号30366へのコメント
>もし、できないとすると、同一ではあるが入力フォーム・訂正フォームを作り、
>それぞれに入力kev、訂正kevとすべきなのでしょうか?

一つのwfmに一つkevでは何故間に合わない(と手塚さんが思われる)のかを書いて
みなさんの知恵を拝借すべきでしょう
30373 Re:1つのフォームで2つのkevを使い分けること 手塚 修 2005/07/01-16:59
記事番号30368へのコメント
お世話になります。

>一つのwfmに一つkevでは何故間に合わない(と手塚さんが思われる)のかを書いて

 間に合わないと言う感じでは、ありません。
名前だけの違うフォームをふたつ作るよりも1つでよいのではないか。もったいないと言う感じです。
フォームの編集対象表の場合、いくつかの表を切り替えて使えますが、
これと同じ事ができないだろうかと思った次第です。
ひとつのフォームで2つの表を切り替えて使う。
ここまではできました。
1つのフォームで2つのkevをその時により使い分ける。
余計なことを考えたのでしょうか?

ありがとうございました。

30374 Re:1つのフォームで2つのkevを使い分けることは可能でしょうか? アックン 2005/07/01-17:26
記事番号30366へのコメント
手塚 修さん、こんにちは。
イベントファイルを一時的に入れ替えたり、変更することはできません。

・対策a
>もし、できないとすると、同一ではあるが入力フォーム・訂正フォームを作り、
>それぞれに入力kev、訂正kevとすべきなのでしょうか?

基本はそのとおりだと思います。wfmとkevの組み合わせはこうなります。

 入力フォーム+入力kev
 訂正フォーム+訂正kev

・方法b
入力と訂正を兼ねるフォーム1個と、
入力と訂正を兼ねるイベント1個の組み合わせです。

 入力兼訂正フォーム+入力兼訂正kev

フォーム上のトグルボタンで、変数値を入力か訂正かに切り替えます。
(たとえばプッシュボタン2個をグループボックス内に置くと、
現在どちらのモードかを明確に視認できます。)

kevは変数値によって、入力と訂正の処理を分けます。

アックン(=^・^=)
30377 Re:1つのフォームで2つのkevを使い分けることは可能でしょうか? 手塚 修 2005/07/01-18:11
記事番号30374へのコメント
>イベントファイルを一時的に入れ替えたり、変更することはできません。

アックンさん  明確な答え ありがとうございました。

>・方法b
> 入力兼訂正フォーム+入力兼訂正kev
>
>フォーム上のトグルボタンで、変数値を入力か訂正かに切り替えます。

 実は、この方法で作っていました。
入力処理まではうまくいっていたのですが、
訂正処理に入ってから、こんがらがってしまった為に、訂正kevとして別kevにできれば
わかりやすいのに。ここからの発想でもありました。

はっきり教えていただきましたので、bの方法で最初から、整理しながら進めたいと思います。

ありがとうございました。
30379 Re:1つのフォームで2つのkevを使い分けることは可能でしょうか? アックン 2005/07/01-18:30
記事番号30377へのコメント
手塚 修さん>
イベントは、入力と訂正の処理を明確に分けて書くといいですよ。
たとえば、こんなふうに。

**---------------
proc t標題::ソース値更新()
  if( &xx=1 )      /* &xx=1 : 入力モード */
    call ○○入力()
  else if( &xx=2 )    /* &xx=1 : 訂正モード */
    call ○○訂正()
  end
end
**---------------
proc ○○入力()
  入力の処理をここに書きます。
end
**---------------
proc ○○訂正()
  訂正の処理をここに書きます。
end
**---------------

アックン(=^・^=)
30380 Re:1つのフォームで2つのkevを使い分けることは可能でしょうか? アックン 2005/07/01-18:52
記事番号30379へのコメント
誤)&xx=1 : 訂正モード
正)&xx=2 : 訂正モード

30386 「入力」vs「訂正」? 悲しげ 2005/07/01-20:08
記事番号30366へのコメント
え〜と、まず言葉の定義から確認した方がいいような気がします。
手塚さんは「入力…」と「訂正…」と書かれていますが、「訂正」だって
「訂正入力」と云う明らかな「入力」です。
「表示」モードvs非表示系モードはよく出て来ますが、「訂正」vs「入力」と云う対比はあまり聞きません。
手塚さんの云うところの「訂正」ではない「入力」とは何を指すのでしょう?

以前からの手塚さんの「躓き」から大胆に推測するに、手塚さんがここで云う「入力」とは、
要するに「行追加」のことではないでしょうか?
(片や「訂正」とは正しくは「行訂正」?)
もしそうだとすれば、ここは正しく「行追加」(「行挿入」含む?)と
「行訂正」と云う言葉で質問された方が、話が見えやすいような気がいたします。
もしそうだとして、もうひとつついでに云えば、ひとつのwfm-kevで「行追加」と「行挿入」を使い分けることは、
さほど難しいこととは私には思えないのです。
手塚さんの一貫した「躓きの石」と云うか、コダワリがどこにあるのか、実は一貫してよく判りません。
いえ、もちろん新規行追加専用のwfm-kevと既存行訂正専用のwfm-kevの両刀使いの方が
細やかな制御ができると云うのなら、それはそれでグーだとは思いますが。

とは云え、上記推測が的外れであれば、本稿中段以降は無視して下さい。

PS.
ところで手塚さん、補完BBSのNo.178読んでますかぁ?(わらひ)


30415 Re:「入力」vs「訂正」? 手塚 修 2005/07/04-13:44
記事番号30386へのコメント
悲しげさん いろいろすみません。

>補完BBSのNo.178読んでますかぁ?(わらひ)
 読んだのですが、遅くなってしまったのと、こんな時にはどうしたらよいのかがわからなくてそのままにしてしまいました。
申し訳ありませんでした。

>「入力」とは、要するに「行追加」のことではないでしょうか?
>(片や「訂正」とは正しくは「行訂正」?)
 当方は、ごみの収集業者です。悲しげ薬局には、毎週月曜日と木曜日に行き
収集、A病院には火木土曜日に、Bスーパーには、月〜日の毎日。お客さん毎に
ほとんど決まった予定で収集しています。市内を東西南北に分けたルート別に
にしています。顧客・曜日・ルートの予定表tblです。
日付を指定→予定表tblからその曜日に収集すべき顧客を絞り込み、
作業tblに読み込み、伝票形式のフォームでルート別に顧客毎の収集量を入力し
データtblに書き出し保存しています。ここまではうまくいっていました。
既に入力したデータを印刷し確認した後、誤りがあった時は、日付を指定→
データtblからその日のデータを伝票形式のフォームに(編集対象表を変えて)
表示させ、訂正しようとしています。伝票形式のフォームにはいくつかの
コマンド釦を配置しており、新規入力の時に表示すべきもの、訂正時に表示すべきもの、
共有で使うもの、特に新規の入力で使ったkevの中のフォーム開始グループ移動、
レコード移動のイベントを、訂正の時はどうすべきなのか?

もう一度初めから整理してみようかと思います。

ありがとうございました。

一貫したもの ありません。コダワリ ありません。
手間を取らせますが、今後ともよろしくおねがいいたします。
30416 Re:tblの数は少ないにこした事はないと思う bonito 2005/07/04-15:16
記事番号30415へのコメント
手塚 修さん

>・・・・・・・・・・・・顧客・曜日・ルートの予定表tblです。
>日付を指定→予定表tblからその曜日に収集すべき顧客を絞り込み、
>作業tblに読み込み、伝票形式のフォームでルート別に顧客毎の
>収集量を入力しデータtblに書き出し保存しています。

(どうしてデータ.tblに直接読み込まないのだろう?)

手塚さんの入力とは悲しげさんの仰る(桐用語での)行追加ではなく
読み込んだデータ(作業.tbl)に対する1発目の行訂正の事で
訂正とはデータ.tblに対する行訂正の事らしい...のですが...

フォームを幾つか用意すればデータ.tbl一つで処理出来るような
気がしますけど...そしてその方がスッキリするような...

30464 Re:「入力」vs「訂正」? 悲しげ 2005/07/10-22:22
記事番号30416へのコメント
1週間〜10日後の蛍光灯レスですが(^^;)・・・・

「訂正」と「入力」の違いについて、No.30416のbonitoさんの云い換えで
ようやく意味が判りました。(^^;)(^^;)
つまり、「入力」とは新規伝票入力作業のことで、「訂正」とは転記済の
データ保存用の台帳的な表に対するものだったのでですね。(^^;)(^^;)

bonitoさんは、これらの2つの表もひとつにまとめるべきだと仰っている
ようですが、そのことはさておき(^^;)・・・・

手塚さんのお考えを逆から云うと、つまるところ、二つのtblと二つのkevがあるのだが、
wfmだけは一つにしたいとも云える訳で・・・?
もしそうでであるのなら、私としてはwfmも二つ(wfm-tbl-kevをそれぞれ
に対応させた二セット)でやった方が断然管理しやすいのではないか思えるのですが・・・・、
また外しているでしょうか?

30466 Re:「入力」vs「訂正」? 手塚 修 2005/07/11-08:10
記事番号30464へのコメント
悲しげさん お世話になります。

>「訂正」と「入力」の違いについて、No.30416のbonitoさんの云い換えで
>ようやく意味が判りました。(^^;)(^^;)
>つまり、「入力」とは新規伝票入力作業のことで、「訂正」とは転記済の
>データ保存用の台帳的な表に対するものだったのでですね。(^^;)(^^;)
 上記のとおりです。自分でわかっていても、他の人に伝えること、ほかの
ひとに理解できるように記すことは難しい事です。今後は、どうしたら、
相手がわかりやすいかも考えながら投稿します。今までは、唯、これを教えて、
これを教えての気持ちでした。

>手塚さんのお考えを逆から云うと、つまるところ、二つのtblと二つのkev
>があるのだが、wfmだけは一つにしたいとも云える訳で・・・?
 以前は、そのとおりでした。以前です。
 
>もしそうでであるのなら、私としてはwfmも二つ(wfm-tbl-kevをそれぞれ
>に対応させた二セット)でやった方が断然管理しやすいのではないか思え
>るのですが・・・・、また外しているでしょうか?

 いいえ、そうではありません。bonitoさんの教えに意を決しまして、
いろいろ試したのですが、うまくいきませんでした。
ごちゃごちゃになってしまいました。当方のレベルでは、不可でした。

結果、二つの(wfm-tbl-kev)にしました。やはり、二つの(wfm-tbl-kev)
の方が、当方のレベルには合っていたみたいです。現在的には、
思うように動いています。

お世話になりまして、ありがとうございました。

30478 表・フォーム・イベントの対応について 佐田 守弘 2005/07/11-23:00
記事番号30466へのコメント
手塚 修さん
 >結果、二つの(wfm-tbl-kev)にしました。やはり、二つの(wfm-tbl-kev)
 >の方が、当方のレベルには合っていたみたいです。現在的には、思うように
 >動いています。
正解というか、正論だと思います。
原則として、1つのフォームに対して、1つだけのイベントファイルが割り当て
られ、そして編集対象表に設定した1つの表を編集するといった形が最も正統的な方法だと理解して下さい。
これは、家の中にいつも同じお父さんとお母さんがいて、その夫婦の子供がいるといった程度に正統的です。

もちろんこの原則を外した方法もあり得る事です。

・表とフォームの関係
 1つの表を複数のフォームで編集する事は、普通に行われる方法です。それぞれ
のフォームの編集表に同じ表が指定してあれば、それぞれのフォームを開く度に
同じ表が別のフォームで開かれます。

一方、フォームに対する表は、編集対象表が決まっている関係で、通常は、フォームを開くと、
設定されている編集対象表が自動的に開きます。
1つのフォームでその都度編集対象表を切替えるには、それなりのテクニックを要します。
不可能ではありませんが、フォームやイベントが開かれる順序をきちんと理解している必要があります。

・フォームとイベントの関係
フォームとイベントの対応も原則として1対1です。
複数のフォームで1つのイベントを共用する事は、設定場では不可能ではありません。
しかし、案外と面倒なトラブルを引き起こします。具体的には、メインフォームと
サブフォームで同じイベントを共用しようとしたり、フォーム切替えで切替える予定の
もう1つのフォームとの間で共用する事が考えられるのですが、
重大かつシリアスな問題を引き起こす原因になり得ることを肝に銘じた上で行う必要があります。
私もまさかそれが原因とは分らずに、原因追及に長時間を費やした事があります。

一方、1つのフォームで複数のイベントを使い分ける方法は、仕組みの上では
不可能です。とは言え、その不可能をかいくぐる方法もあるでしょう。
でも、余り意味がありそうには思えません。

●結論として
原則として、表、フォーム、イベントは、1対1の関係で作って下さい。
それがデバッグを効率的に行うとか、後からの修正の際に、無用なトラブルを
回避するために最も有効な方法です。

もちろんその原則を外した方法も不可能ではありません。これは御自身の桐の
技術レベルに応じて考えて頂ければよいかと思います。
私程度のレベルだと、そういった特殊な方法を採用するよりも、正統的な方法で
不要な障害を未然に避ける方を優先します。

佐田守弘(KS-00119)

戻る