過去の桐井戸端BBS (桐ver.9)
29187 一覧形式のメインフォームのレコードにリンクしたサブフォームを表示出来るメイン&サブフォームの作成をしたい しぼうかん 2005/02/28-14:24
一覧形式のメインフォームのレコードそれぞれにリンクしたサブフォームを
表示出来るメイン&サブフォームの作成をしたいと思っています。

ファイルをUPしました。(福袋.wfmを開いてスタートします)

いくつか問題点があるのですが、一つずつ教えて頂きたいと思います。

まず内容1.wfmまたは内容2.wfmまたは内容3.wfmまたは内容4.wfmに
カーソルをおいて"↓"ボタンを何度か押して行くと自動的に福袋1.wfmに
カーソルが戻ってしまいます。

なぜか原因が分かりません。お教え下さい。

29194 Re:レコードにリンクしたメイン&サブフォーム うにん 2005/03/01-14:07
記事番号29187へのコメント

見ただけですが、内容1.kevなどの

編集表 &内容1
メソッド呼び出し ハンドル=&内容1,@内容品.フォーカス設定()

がおかしいのでは?
表番号とウィンドウハンドルがごっちゃになってます。
29202 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/01-20:11
記事番号29194へのコメント
うにんさん、いつも有り難うございます。

"ハンドル"を今一、いや今三ぐらい理解してないので間違えてしまったみたいです。

そこで

メソッド呼び出し ハンドル=&hwindow,@福袋1.@内容1.@内容品.
フォーカス設定()

の様に、又、その他にもいろいろ書いて試してみましたが、やはりうまくいきません。

確認コマンドをキーダウンイベントに入れて検証してみると、
どうも福袋1.wfmへカーソルが飛んでしまう時(※下記の5.)の時には
イベントが発生していないようです。

あと説明が遅れましたがカーソルが飛んでしまう現象をもっと
具体的に説明すると

1.福袋.wfmを開きます。

2.この時、表示状態で福袋1.wfmの[福袋名]の値の"福袋a"にカーソルが
  あります。

3."↓"ボタンを1回、"→"ボタンを1回押すと内容2.wfmの[内容品]の
  値"う"にカーソルが移動します。

4.ここから"↓"ボタンを3回押すと"内容3.wfm"の[内容品]の値"あ"に
  カーソルが移動します。

5.さらにもう1回"↓"ボタンを押すとカーソルは次の値の"い"に移動
  せずに"福袋1.wfm"の[福袋名]の値"福袋a"に移動してしまいます。

この現象は3.の"↓"ボタンを2回や3回押して"内容3.wfm"や
"内容4.wfm"へカーソルを移動してから"↓"ボタンを押しても同じように
"福袋1.wfmの[福袋名]の値"福袋a"へカーソルが移動していまいます。


29220 Re:レコードにリンクしたメイン&サブフォーム 悲しげ 2005/03/02-20:49
記事番号29202へのコメント

タイトルの意味を含めて、何をしようとしていらっしゃるのか、実は全く読めておりませんが(^^;)

 メソッド呼び出し ハンドル=&hwindow,・・・・

当該kevから自フォームについてメソッド等を実行する場合には、通常は
「ハンドル=&hwindow,」の記述は省略します。自明のことだからです。
「ハンドル=&hwindow,」を明記する必要があるのは、例えばサブフォーム
(のkev)からメインフォームを指定するような場合だったと記憶します。

それと、全然外している可能性大ですが、すべて共通変数で動かしていることが
挙動不審の一因なのではないでしょうか?(固有変数でも事情は同じかも?)
読めないながらも、このような場合は、局所変数(当該フォーム内だけで
有効)または自動変数(当該手続き定義内だけで有効)を使った方がバッティングしないような気が・・・・。

いえ、気がするだけで、深入りするつもりはないのですけど。(^^;)


29229 アクティブじゃないレコードにリンクしたサブフォームを表示出来るメイン&サブフォーム? しぼうかん 2005/03/03-19:27
記事番号29220へのコメント
悲しげさん、いつもありがとうございます。
助言は深入りじゃなくて浅入りでもありがたいです。

>タイトルの意味を含めて、何をしようとしていらっしゃるのか、実は全く
>読めておりませんが(^^;)

「"↓"キーを押したときにはカーソルが下へ移動してほしい」ただ
それだけです。

>読めないながらも、このような場合は、局所変数(当該フォーム内だけで
>有効)または自動変数(当該手続き定義内だけで有効)を使った方がバッ
>ティングしないような気が・・・・。

局所変数でも試してみましたがやはりダメでした。

なお、内容3.wfm(イベントファイル=内容3.kev)のキーダウンイベントの
チェックを外してNo.29202の1.〜5.の手順を実行してみましたが、
やはり同じ現象が起きてしまいました。

※ちなみにNo.29202の手順5.で"←"キーを押した場合も同じ現象が
起きました。

やはり"イベント以外"の"何か"がカーソルを内容3.wfm(※内容2.wfm
〜内容4.wfmでも同様)にあるカーソルを別フォームである福袋1.wfmへ
移動させているようです。

イベント以外にカーソル移動に影響を及ぼす機能は何なのか調査中です。


29232 Re:アクティブじゃないレコードにリンクしたサブフォームを表示出来るメイン&サブフォーム? 悲しげ 2005/03/03-21:32
記事番号29229へのコメント
すいません、タイトル・コメントともますます意味が読みとれなくなりましたので、
やはり「浅入り」と云うことで、この辺で失礼させて戴くことにします。<(_ _)>

29233 Re:レコードにリンクしたメイン&サブフォーム うにん 2005/03/04-09:21
記事番号29202へのコメント

>あと説明が遅れましたがカーソルが飛んでしまう現象をもっと
>具体的に説明すると
>
>1.福袋.wfmを開きます。
これは実際に動かして大体不満な点はわかりました。
>"福袋1.wfmの[福袋名]の値"福袋a"へカーソルが移動していまいます。
同じ動作をさせたいのに複数のフォームを使っているので、どこかに
コピー後の直し忘れがあるような気がします。
29246 Re:アクティブじゃないレコードにリンクしたサブフォームを表示出来るメイン&サブフォーム? しぼうかん 2005/03/04-20:16
記事番号29232へのコメント
又のいつかのお越しをお待ちしております。m(_ _)m

旅館「泥沼」主人しぼうかん

29247 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/04-20:18
記事番号29233へのコメント
いつも質問内容を理解して貰う事すらうまくいかない場合も多いので
質問内容を理解して貰っただけでうれしいです。

実は以前にも同じ様な質問をしたのですが、前回の時は
今回の様なフォームを表示するアイデアがありませんでした。

http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm

>同じ動作をさせたいのに複数のフォームを使っているので、どこかに
>コピー後の直し忘れがあるような気がします。

確認コマンドが効かない事から今のところイベント以外(タブオーダーとか)
に原因があるんじゃないかと考えていろいろ調査中です。
29250 Re:レコードにリンクしたメイン&サブフォーム 今村 誠 2005/03/04-22:36
記事番号29247へのコメント
しぼうかんさんこんにちは
>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm
このリンクの画面は閲覧専門ですか、訂正も考えているのですか?
もし閲覧だけなら、結合表が簡単ですよね
用は会社名と商品が表示されればよいわけですから会社名で結合すれば
メインアンドサブなどの複雑なフォームを考えなくてすむと思います。
しぼうかんさんの提案は「あ」「い」「う」で何をしたいのか
さっぱりわからないので、必要性が見えないですね。
 今後の投稿では訂正したいとか置換したいとか入力したい等と
具体性のある提案をされることを望みます。
29251 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/04-23:58
記事番号29250へのコメント
今村さん、こんばんは.そして返信ありがとうございます。

>しぼうかんさんの提案は「あ」「い」「う」で何をしたいのか
>さっぱりわからないので、必要性が見えないですね。

おっしゃるとおり、「あ」「い」「う」はまずかったですね。反省してます。

>このリンクの画面は閲覧専門ですか、訂正も考えているのですか?

このフォームは閲覧と同時に訂正もするつもりです。
ですので結合表を使うことは以下のアドレスのNo.25430の中段で
説明している"結合表の仕様"の問題で最初にあきらめました。

http://www.fuku3.com/~habata/kbbs/kakov9/25300.htm

> 今後の投稿では訂正したいとか置換したいとか入力したい等と
>具体性のある提案をされることを望みます。

閲覧時・訂正時共に沢山の問題点が予想されるので、そのままだと
回答を敬遠されてしまうんじゃないかと心配してまず閲覧に限った
問題点を質問&解決して、それから挿入・訂正時の問題点の解決に
取りかかろうと考えていました。

今更遅いのですが適切な例の上げかたを間違ってしまった様です。
左側のメインフォームを"戸主"、右側のサブフォームを家族名に
する様な例を上げていればもっとわかりやすかったかもしれません。
つまり複数の戸主&家族構成を同時に表示&入力出来るフォームとか。

29252 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/05-00:16
記事番号29251へのコメント
>今更遅いのですが適切な例の上げかたを間違ってしまった様です。
>左側のメインフォームを"戸主"、右側のサブフォームを家族名に
>する様な例を上げていればもっとわかりやすかったかもしれません。
>つまり複数の戸主&家族構成を同時に表示&入力出来るフォームとか。

上記の例(戸主と家族名)では逆に余計わかりにくくなりそうなので
取り消します。NO.29251の上記部分は読み飛ばして下さい。


>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm
>このリンクの画面は閲覧専門ですか、訂正も考えているのですか?
>もし閲覧だけなら、結合表が簡単ですよね
>用は会社名と商品が表示されればよいわけですから会社名で結合すれば
>メインアンドサブなどの複雑なフォームを考えなくてすむと思います。


上記の質問に何故結合表を使えないかという説明をリンクを示すだけで
"仕様の問題"と省略するのは失礼と思ったのでこの場で説明し直します。

>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm

この表の例でいうとサブフォームの"イモ"を削除すると明細行の"イモ"
だけが削除されてほしいのにメインフォームの"工学社"もサブフォームの
"コメ"も"ムギ"も全て削除されてしまいます。
29254 Re:レコードにリンクしたメイン&サブフォーム bonito 2005/03/05-12:26
記事番号29252へのコメント
しぼうかんさん
これはあくまでも私の個人的な見解ですが...

桐の場合(って言っても桐しか知らないに等しいが)
データの重複を厭わない方が格段に設計しやすいと思います。
何故2つの表にわけるのか、1つの表で考えられませんか?

メイン&サブフォームにしても、安易にそこにいかないで、
グループ化したフォームでどこまでいけるかやってみた方が
いいような(紛れがないような)気がします

私なんか、グループ項目が10数個もあるフォームとかも
作っちゃてますから〜(遅いですけど〜)...切腹!?

29255 Re:レコードにリンクしたメイン&サブフォーム 今村 誠 2005/03/05-13:19
記事番号29252へのコメント
しぼうかんさんこんにちは
>>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm
>
>この表の例でいうとサブフォームの"イモ"を削除すると明細行の"イモ"
>だけが削除されてほしいのにメインフォームの"工学社"もサブフォームの
>"コメ"も"ムギ"も全て削除されてしまいます。
この文章からは削除だけをしたいように思えますが、それに間違いないですか
サブに同じ商品の明細があって数量だけが違う場合表示項目次第では
誤った行を削除することになるかもしれません。
その辺の仕組み(重複禁止)を作っておかないとサブフォームの行削除は
うまくいかないと思います。
bonitoさんも書いていらっしゃいますがメインアンドサブで入力したものは
同じフォームで訂正追加削除が望ましいと思います。
 もし確認と削除だけなら結合表でもできないことはないと思います。
一応サンプルを作ってみました。
29256 Re:レコードにリンクしたメイン&サブフォーム 今村 誠 2005/03/05-14:14
記事番号29255へのコメント
アイデアが浮かんだので(^o^)
訂正したいのなら削除ボタンの横に訂正ボタンを追加して
サブフォームを呼び出して訂正したらよいと思います。
結合表を開いた時点で共有更新状態なので、いくつ画面に
表示しても問題ないと思います。
グループヘッダには表引きで得意先名を表示すればいいですね。
メインサブでは非表示にしてサブだけ呼び出しの時は、必要な
メインの項目を表引き表示すればよいと思います。
29258 Re:レコードにリンクしたメイン&サブフォーム ONnoji 2005/03/05-14:43
記事番号29247へのコメント
>実は以前にも同じ様な質問をしたのですが、前回の時は
>今回の様なフォームを表示するアイデアがありませんでした。
>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm

しぼうかんさん、こんにちは。

サンプルを拝見しましたが…
真っ黒クロスケのフォームを何度も何度も眺めても、
何をされたいのか、サッパリ分かりませんでした。

しかし、その後
>http://www.fuku3.com/~habata/kbbs/kakov9/20658.htm
を拝見して、おおよその見当が付いたような気がしましたので、
私なりにサンプルを作ってみました。

外しているかもしれませんけれど…
バッチリ!とか、イマイチとか、ハズレ〜とか、
ご感想を聞かせていただれればうれしいです。(^^ゞ

サンプルをアップしましたので、よろしければお試しください。
圧縮ファイルに同梱した readme.txt もお読みください。

29260 Re:レコードにリンクしたメイン&サブフォーム ケント 2005/03/05-15:30
記事番号29202へのコメント
しぼうかんさん こんにちは

内容1.kev

 if(&キー1=37)
  &内容行番号=""  ←追加
  メソッド呼び出し ハンドル=&福袋1,@福袋名.フォーカス設定()


 else if(&キー1=40)
  if(#行番号=4 .or #終端行)
   &内容行番号=4
*   編集表 &内容2 ←コメントアウト
   メソッド呼び出し ハンドル=&福袋2,@福袋名.フォーカス設定() ←追加
   メソッド呼び出し ハンドル=&内容2,@内容品.フォーカス設定()
  else
   &内容行番号=1
  end
 end

内容2〜5.kevも同様。

上記でとりあえず初期画面での動作はいいと思います。

あと最下行からの↓キー入力時の動作を考えてください。

P.S 基本的には皆さんの提案のように結合表とか表の持ち方を再考した方がいいと思います。

29261 Re:レコードにリンクしたメイン&サブフォーム ONnoji 2005/03/05-16:18
記事番号29258へのコメント
失礼しました。m(__)m

しぼうかんさん江 と訂正させていただきます。

なお、main.wfm をカード型にして、
明細部のテキストボックスを削除して、
フッタ部のサブフォームオブジェクトを、
明細に移動して使うことも可能ですよ。

つまり、main.wfm の編集対象表が元になって、
それぞれの、サブフォームが表示されているだけです。

従って、main.wfm のテキストボックスは消しても、
main.wfm のレコードジャンプバーを操作すれば、
サブフォームの内容は切り替わります。
※main.wfm の編集対象表は必要です。

<蛇足>

第一サブフォーム群

サブフォーム_1:company.wfm
(main.wfm の編集対象表の現在行番号+0)
 ↓
サブフォーム_1link:product.wfm

第二サブフォーム群

サブフォーム_2:company.wfm
(main.wfm の編集対象表の現在行番号+1)
 ↓
サブフォーム_2link:product.wfm


29269 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/05-23:54
記事番号29254へのコメント
bonitoさん、こんにちは.別アイデアありがとうございます。

以前にグループ化したフォームを使っていて"[連番]を入力する方法"や
"整列"を考える時にいろいろ苦労した記憶があり、最近はその点では
楽に出来るメイン&サブフォームをまず最初に考える癖が付いています。

それほどやり方にこだわるつもりはありませんが、グループ化した
フォームを使った場合であっても何かしら解決しなければならない
別の問題が発生してくると思います。

そこで今回はメイン&サブフォーム表示形式?の方法で良いところまでは
来ている様な気がするので行けるところまで行ってみようと思います。
29270 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/06-00:00
記事番号29256へのコメント
今村さん、返信ありがとうございます。

>この文章からは削除だけをしたいように思えますが、それに間違いないです



UPして頂いたファイルは入力(行挿入)が出来ないようです。
No.29251の

>このフォームは閲覧と同時に訂正もするつもりです。

ここで書いた"訂正"というのは入力(行挿入?)も含むつもりで
書いていました。
私の説明不足でした、すいません。

UPしていただいたファイルでは[得意先名]がグループ表示風?
になっていません。

出来れば今のやり方が行き詰まりになるまでは[得意先名]の
グループ表示風?にこだわってみたいと思っていました。

結合表を使うのは確かに正統的な使い方だと思いますが個人的には
桐の結合表は入力に使うには余りに機能制限が厳しいように思います。

幸い今回はケントさんの方法で今回の問題点は解決しましたので
とりあえずこの方法でやってみようと思っています。

分かりづらい説明にも関わらず結構面倒なサンプルを作って頂き
ありがとうございました。
29271 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/06-00:03
記事番号29261へのコメント
ONnojiさん、回答ありがとうございます。

>サンプルを拝見しましたが…
>真っ黒クロスケのフォームを何度も何度も眺めても、
>何をされたいのか、サッパリ分かりませんでした。

文字が表示されませんでしたか?
UPしたファイルに異常があったのでしょうか?
こちらで今DLしてみた所問題は無かったのですが・・・

>サンプルをアップしましたので、よろしければお試しください。

面倒なサンプルを作って頂きありがとうございました。
早速見てみましたがUPしていただいたフォーム明細部を除いた
フォームフッタ部のみの表示の形が希望の形です。

UPして頂いたフォームではフォーム明細部の[会社名]とcompany.wfmの
[会社名]がダブって表示されていてフォーム明細部に場所を
とられてしまいcompany.wfmで表示出来る会社名の数が減ってしまいます。

後はサブフォーム_1:company.wfmの[会社名]にカーソルがある時に"↓"キーを
押してもサブフォーム_2:company.wfmの[会社名]にカーソルが移動しません。

またサブフォーム_1link:product.wfmの[商品]にカーソルがある時に
"↓"キーを押し続けてもサブフォーム_2link:product.wfmの[商品]に
カーソルが移動しません。

しかしONnojiさんの事なのできっとこの作りには何か意味が有ると
思うのですが、どういう意味があるのかよかったら教えて下さい。

なお今回は一応ケントさんの方法でうまくいったのですが他の方法でも
うまくいくので有れば後学の為に知っておきたいです。

29272 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/06-00:10
記事番号29260へのコメント
ケントさん、はじめまして。

書いていただいたコマンド文を書き加えて見たところほぼうまくいきました。(^-^)v

特になぜフォーカス設定コマンドを2行続けるとうまくいくのかまだ???ですが
こういうテクニックは初めて知りました。勉強になりました。

まだ問題は少しあるのですが大きな問題点は解決したのと1つのツリーでいくつも
質問するのはまずいので回答を参考にさらに作り込んでまた壁にぶつかったら
質問したいと思います。

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

>P.S 基本的には皆さんの提案のように結合表とか表の持ち方を再考した方がいいと思いま
す。

このように考える理由は何なのでしょうか?
結合表を使っても今回の様な表示や入力が出来るフォームを作ることが可能だという事
なのでしょうか?

29278 Re:レコードにリンクしたメイン&サブフォーム 悲しげ 2005/03/06-11:43
記事番号29187へのコメント
既に解決済のようで、今回の件とは関係ないかもしれませんが、
例えば "福袋1.kev" の中の次の記述

else if(&キー2=38 .and #行番号>1 .or &キー2=38 .and &福袋行番号=2 .
and #行番号=1)

これは一寸変なのでは?

「.and」と「.or」は普通は
else if((&キー2=38 .and #行番号>1) .or (&キー2=38 .and &福袋行番号=2 .and #
行番号=1))
とか
else if(&キー2=38 .and (#行番号>1 .or &キー2=38) .and &福袋行番号=2 .and #行
番号=1)
のように書くと思います。
前者なら
else if(&キー2=38 .and (#行番号>1 .or (&福袋行番号=2 .and #行番号=1)))
とも書けそうな。


29282 Re:レコードにリンクしたメイン&サブフォーム ONnoji 2005/03/06-15:09
記事番号29271へのコメント
しぼうかんさんは No.29271「Re:レコードにリンクしたメイン&サブフォーム」で書きました。
>文字が表示されませんでしたか?

文字は見えましたよ。
ただ、オブジェクトの識別が困難だったという意味でした。(^^ゞ

>後はサブフォーム_1:company.wfmの[会社名]にカーソルがある時に"↓"キーを
>押してもサブフォーム_2:company.wfmの[会社名]にカーソルが移動しません。

改修しました。(^^v

>またサブフォーム_1link:product.wfmの[商品]にカーソルがある時に
>"↓"キーを押し続けてもサブフォーム_2link:product.wfmの[商品]に
>カーソルが移動しません。

改修しました。(^^v

>しかしONnojiさんの事なのできっとこの作りには何か意味が有ると
>思うのですが、どういう意味があるのかよかったら教えて下さい。
>なお今回は一応ケントさんの方法でうまくいったのですが他の方法でも
>うまくいくので有れば後学の為に知っておきたいです。

箇条書きで…
・メインフォームが、NULLフォームでない方が設計しやすいと思いました。
・メインフォームのジャンプバーを利用したいと思いました。
・サブフォームで使用するフォームは単純に2種類(福袋.wfm/内容.wfm)あればよいと思いまし
た。
・サブフォーム側のイベントで、キーダウンを拾う必要はないと思いました。
・サブフォームの編集対象表の表番号を管理する必要があると思いました。
・単純に面白そうだったので作ってみました。(^^ゞ

すでに解決されたようですが、ちゃんと動く(?)ものをアップしました。

よろしければ、遊んでみてください。

<追伸>

この週末は旅館「泥沼」で楽しい時間を過ごしました。(^^ゞ

29285 Re:レコードにリンクしたメイン&サブフォーム ONnoji 2005/03/06-17:39
記事番号29282へのコメント
>すでに解決されたようですが、ちゃんと動く(?)ものをアップしました。
>よろしければ、遊んでみてください。

訂正中にジャンプバーを操作するとこけていたので修正しました。


<追伸>

バッチリ!とか、イマイチとか、ハズレ〜とか、
ご感想を聞かせていただれればうれしいです。(^^ゞ

29292 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/06-22:07
記事番号29278へのコメント
悲しげさん、再訪ありがとうございます。

実は今回の質問とは関係が無いのですが、今回のフォームを作る途中で
キーダウンイベントの挙動が変だったりしました。
それはこのコマンドの書き方に問題があったのかもしれません。

基本的なコマンド文の書き方を良く知らなかったようです。
勉強させて頂きました。


29294 しぼうかん 2005/03/06-22:18
記事番号29285へのコメント
ONnojiさん今の心境は以下の通りです。

キタ━━━━━━(゜∀゜)━━━━━━ !!!!!

すいません某掲示板風に言って見ました。
今回の質問の次に質問しようとしていた入力時の問題点も
かなりの部分が解決しています。

行挿入時や訂正入力時や表示状態の時のカーソルの動き方等
まだ改良するつもりですが、今回の質問の問題の山以外に
次の問題の山も越えた気がします。

今回は本当にありがとうございました。m(_ _)m

旅館「泥沼」主人しぼうかん

29295 Re:! しぼうかん 2005/03/06-22:21
記事番号29294へのコメント
ちなみに自分が作っていたフォームは止めてONnojiさん(R)のフォームを
使う事にします。
29298 Re:レコードにリンクしたメイン&サブフォーム ケント 2005/03/07-07:51
記事番号29272へのコメント
しぼうかんさん こんにちは

>特になぜフォーカス設定コマンドを2行続けるとうまくいくのかまだ???ですが

 しぼうかんさんのフォームをトレースや確認コマンドで確認してみたところ
まず最初に↓キーダウンイベントが福袋n.wfmと内容n.wfmで多重に発生してい
ることに気が付きました。
 次に内容n.wfmから内容n+1.wfmにフォーカスが移ったときに福袋n.wfmから
福袋n+1.wfmにフォーカスが移っていないことに気づきました。
 そんなわけでフォーカス設定させました。

>このように考える理由は何なのでしょうか?
>結合表を使っても今回の様な表示や入力が出来るフォームを作ることが可能だという事
>なのでしょうか?

"今回の様な表示や入力"は無理かも?

桐の場合グループ化はフォーム上で上下関係(ヘッダ部,明細部)になり、
しぼうかんさんご要望の"今回の様な(左右関係)で表示"はちょっと思い浮かばないです。

そこで結合表を使った、あるいは表を1つにしてのグループ項目をもつフォームはどうかな、と思った次第です。

システムの全容についてわかりもしないし、スキルもないのに余計なことを
書いてしまいました。蛇足というか老婆心というか…失礼しました。m(__)m

ONnojiさんの素晴らしいwfmがUPされてよかったですね。(^.^)

29303 Re:宿泊予約 ONnoji 2005/03/07-11:31
記事番号29295へのコメント
しぼうかんさんは No.29295「Re:!」で書きました。
>ちなみに自分が作っていたフォームは止めてONnojiさん(R)のフォームを
>使う事にします。

旅館「泥沼」のご主人様江

私の作ったフォームに少し問題が見つかりました。

最終段の 内容.wfm で ↓ を押すと、全体の次の行へ進んでしまう。

今、改修を試みています。

お使いになるのは、もう少し先にしてください。

新しいものをアップしたら書きこみますね。

29306 Re:レコードにリンクしたメイン&サブフォーム しぼうかん 2005/03/07-14:58
記事番号29298へのコメント
ケントさん、回答ありがとうございました。

>次に内容n.wfmから内容n+1.wfmにフォーカスが移ったときに福袋n.wfmから
>福袋n+1.wfmにフォーカスが移っていないことに気づきました。
> そんなわけでフォーカス設定させました。

キーダウンイベントが多重に発生しているのは分かっていましたが、内容n.wfmから
内容n+1.wfmにフォーカスが移ったときに"メインフォームにある見えないもう一つの
フォーカス?"がまだ福袋n.wfmにあり移動していないという事は気がつきませんでした。

フォーカスは1つと思っていたのですがメイン&サブフォームではサブフォームにフォーカスが
あるときには実は見えないフォーカスもどきがメインフォームにあるということですね。

>システムの全容についてわかりもしないし、スキルもないのに余計なことを書
>いてしまいました。蛇足というか老婆心というか…失礼しました。m(__)m

とんでも無いです。コメントは本当にありがたかったです。
29307 宿泊予約よろこんで! しぼうかん 2005/03/07-15:02
記事番号29303へのコメント
ONnojiさんはVIPなので宿泊代は無料です。というかこちらが宿泊代を
払わなければいけないんですけど。(^^;

実はもう少しお聞きしたいのですが、別ツリーを立てるともう一度
1から説明しなければいけなくなるし、このツリーでUPして頂いた
ファイルに関する質問なのでこちらに質問させて下さい。

UPして頂いたフォームで例えば"福袋c"を"福袋bc"に変えるとします。

カーソルを"福袋c"に移動してスペースバーを押すと訂正状態になり
縦棒カーソル?(呼び名不明)は福袋cの前で点滅します。
この状態で

1."→"キーを押した場合は"福"と"袋"の間に縦棒カーソルが
 移動せずにサブフォーム_3link:内容.wfmに移動してしまいます。

2."Enter"キーを押した場合には逆にサブフォーム_3link:内容.wfmへ
 縦棒カーソルが移動しません。

また同様にサブフォーム_3link:内容.wfmの[内容品]にカーソルを置いて
訂正状態にして"→"キーを押して縦棒カーソルを"あ"の右側に持って
いってから、もう一度"←"キーを押すと縦棒カーソルは"あ"の左側に
移動せずにサブフォーム_3福袋.wfmに移動してしまいます。つまり1.と
同様の現象が起きます。

そこでとりあえず、1.の問題を解決するためにmain.kevの

 8行目を

変数宣言 局所,長整数{ &VKmLeft = 37, &VKmUp = 38, &VKmRight = 39,
&VKmDown = 40,&VKmEnter = 13}

119行目を

変数宣言 自動,整数{ &top = 1, &subFormID, &return, &tblNum,
&focusDisable, &focusTest ,&入力モード}

120行目を

メソッド呼び出し @フォーム.更新モード取得(&入力モード)

132行目を

if ((&VKmKeyNum = &VKmRight .and &入力モード=0) .or (&VKmKeyNum =
&VKmEnter .and &入力モード<>0)) /* → */

以上の様に上記4行を修正しましたが、現在は訂正モードのハズなのに
なぜか&入力モードに0が代入されてサブフォーム_3link:内容.wfmへ移動して
しまいうまくいきません。

なぜなのでしょうか?

29308 Re:宿泊予約よろこんで! ONnoji 2005/03/07-15:36
記事番号29307へのコメント
しぼうかんさんは No.29307「宿泊予約よろこんで!」で書きました。
>UPして頂いたフォームで例えば"福袋c"を"福袋bc"に変えるとします。
>カーソルを"福袋c"に移動してスペースバーを押すと訂正状態になり
>縦棒カーソル?(呼び名不明)は福袋cの前で点滅します。

旅館「泥沼」のご主人さん江

縦棒は【Caret】キャレットとかカレットと言いますよ。(^^ゞ
http://yougo.ascii24.com/gh/06/000607.html

>この状態で
>1."→"キーを押した場合は"福"と"袋"の間に縦棒カーソルが
> 移動せずにサブフォーム_3link:内容.wfmに移動してしまいます。
>2."Enter"キーを押した場合には逆にサブフォーム_3link:内容.wfmへ
> 縦棒カーソルが移動しません。

→キーを押すと、
対応したサブフォームオブジェクト(サブフォーム_n_Link)に、
フォーカスが変わるようになっているからです。

これは、現状では訂正状態なんか無視しているからです。

プログラムは、使う人の願望の通りに動くわけではありません。
ただ、プログラムに書かかれている通りに動くだけですよ。

※私はキーダウンを拾ってフォーカスを動かすのは好みではありません。
※しかし、今回はサブフォームをいろいろと散歩するので、
※つまり、いろいろなお花畑(サブフォーム)を順番に訪問するようなものなので、
※まあ〜、仕方がないかなぁ〜と思っています。

>そこでとりあえず、1.の問題を解決するためにmain.kevの
>以上の様に上記4行を修正しましたが、現在は訂正モードのハズなのに
>なぜか&入力モードに0が代入されてサブフォーム_3link:内容.wfmへ移動して
>しまいうまくいきません。
>なぜなのでしょうか?

きっと旅館「泥沼」のご主人さんが書いた通りに動いているのでしょう。

了解しました。
「訂正状態には動くな!」ですね。
この件も改修しておきますからご安心を。(^^ゞ

<追伸>

上限、下限、前回値、今回値、サブフォームの表番号、などなど…
一般的にこの手のプログラムは、普通のものに比べると面倒なんですよ。
そういうことなのであります。

新規の投稿があると、このツリーは二番目のページに移動してしまうと思います。
見つからなかったら、二番目のページへ進んでください。

29311 Re:長期滞在のお願い ONnoji 2005/03/07-20:59
記事番号29308へのコメント
旅館「泥沼」のご主人さん江

いろいろとあり、苦戦中です。

したがって数日滞在になりますので、部屋を予約してください。

すでにメドは立っています。(^^ゞ

決して、長く宿泊することは無いと思います。

チェックアウトする時には、お勘定をよろしく。
※と、いうのは冗談です。
29314 Re:長期滞在のお願い しぼうかん 2005/03/07-23:45
記事番号29311へのコメント
>したがって数日滞在になりますので、部屋を予約してください。

どうぞごゆっくりと・・・なんていったら怒られますね。(^^;
すいません、よろしくお願いします。m(_ _)m
29339 チェックアウトをお願いします。 ONnoji 2005/03/09-21:40
記事番号29314へのコメント
しぼうかんさん江

「レコードにリンクしたメイン&サブフォーム」のプロトタイプをアップしました。

チェックアウトをお願いします。


しぼうかんさん江

プロトタイプが完成しました。

<ご注意>
決して完成ではありません。
しかし、これ以上時間を掛けるよりも、
早くお使いいただいたほうが、
有益だろうと当方は判断しました。(^^ゞ

めいん.wfm を開いてください。

ファイルは桐ver.8 です。

桐ver.9 でも使えます。


<追伸>

私としては、もっと時間を掛けて完成度を高めたいと思うのですが、
しかし、事の発端のご本人に早く使っていただくことが、
最善だろうと思います。

なお、私の製作物に関してのご質問は、
この掲示板の趣旨とそぐわないと思いますので、
もしも、ご質問があれば、
私の経営している【湖畔の宿:ペンション「かっこう」の掲示板】へお願いいたします。
 ↓
「リンク集」へ進んで、
http://www.fuku3.com/~habata/link.htm
 ↓
「桐のイベント道場」をクリックしてください。


29342 またのご来店をお待ちしております。 しぼうかん 2005/03/10-19:07
記事番号29339へのコメント
旅館「泥沼」の名に恥じぬような泥沼湯を堪能させてしまって
すいませんでした。そしてご苦労様でした。

UPして頂いたシステムは早速改良して使ってみたいんですが・・・

イベントファイルには今まで使ってみたことのないコマンドが
満載の為コマンド文を1つ1つ解読中です。

まだ解らないところが解らない状態なので、解らない所が
解るようになったら又質問させて頂きたいと思います。

その際には高級旅館【湖畔の宿:ペンション「かっこう」へ
おじゃまさせて貰いたいので予約をお願いします。

29343 従業員一同、心よりお待ちしています。(^^v ONnoji 2005/03/10-20:46
記事番号29342へのコメント
しぼうかんさん、こんにちは。

名物の「泥沼の湯」は足元がツルツル滑るので、
風呂からなかなか上がれませんね。(^^ゞ

>UPして頂いたシステムは早速改良して使ってみたいんですが・・・
>イベントファイルには今まで使ってみたことのないコマンドが
>満載の為コマンド文を1つ1つ解読中です。

失礼しました。(^^ゞ
あんまり不細工なものではお恥ずかしいと思いましたので、
ちょぴり頑張ってしまいました。

なお、レコード数が少ない場合をテストしていないので、
この場合には問題があるかもしれません。(^^ゞ

訂正の時に、キーダウンで動かないようにする仕掛けに関しては、
サブフォーム側のテキストボックスの、
「入力前」「入力後」イベントハンドラを見れば理解できると思います。

>その際には高級旅館【湖畔の宿:ペンション「かっこう」へ
>おじゃまさせて貰いたいので予約をお願いします。

いつでもお気軽においでください。
とても静かな、いつでも閑古鳥(かっこう)が鳴いているサイトですが…

従業員一同、心よりお待ちしています。(^^v

それではこのあたりで失礼します。(@^^)/~~~
29350 Re:従業員一同、心よりお待ちしています。(^^v ONnoji 2005/03/11-12:50
記事番号29343へのコメント
>なお、レコード数が少ない場合をテストしていないので、
>この場合には問題があるかもしれません。(^^ゞ

 if ( &currentRecNumber < &max )
  &currentRecNumber = 1
 end

の3行を挿入するとOKだと思います。(^^ゞ

手続き定義開始 prcRecordSet( 長整数 &currentRecNumber, 整数 &max, 参照
整数 &tblNumDim[] )
 変数宣言 自動,文字列{ &subformObjectName }
 変数宣言 自動,整数 { &subformTblNum, &cnt, &return }
 変数宣言 自動,長整数{ &reccount, &recno, &offset }

 if ( &currentRecNumber = #u )
  &currentRecNumber = 1

  トレース出力
  トレース出力 "** caution! prcRecordSet( ) ***********"
  トレース出力 _&mCurrentRecNumber, " ", _&currentRecNumber
  トレース出力 "表編集からフォームに遷移したり、フォーム再定義から実行す
ると"
  トレース出力 "&mCurrentRecNumber の値が null になることがある"
  トレース出力 "***************************************"
 end

 if ( &mRecordSetFlag )
  手続き実行 prcEndOfFileProcess( &mMasterTblNum, &max,
&currentRecNumber )
 end

 ** 2005.03.11
 if ( &currentRecNumber < &max )
  &currentRecNumber = 1
 end
 ** 2005.03.11

 &offset = 0
 &cnt = 1
 繰り返し ( &cnt <= &max )

  &subformObjectName = &mSubformNameSpace + #str( &cnt ) /* 福
袋.wfm */
  メソッド呼び出し 戻り値 = &return,&subformObjectName.@cmd表示.実行
( )

  &subformTblNum = &tblNumDim[ &cnt ]
  手続き実行 prcTblRecordCountGet( &subformTblNum, &reccount,
&recno )
  編集表 &subformTblNum /* サブフォームの編集表 */
  &recno = &currentRecNumber + &offset
  if ( &recno <= &reccount )
   ジャンプ 行番号 = &recno
  else
   ジャンプ 行番号 = 終端
  end

  トレース出力
  トレース出力 "** prcRecordSet( ) ***********"
  トレース出力 _&subformTblNum, " ", _&recno, " ",
_&currentRecNumber, " ", _&offset
  トレース出力 "******************************"

  &offset = &offset + 1
  &cnt = &cnt + 1
 繰り返し終了

手続き定義終了

29353 Re:従業員一同、心よりお待ちしています。(^^v ONnoji 2005/03/11-20:55
記事番号29350へのコメント
ONnojiさん

>>なお、レコード数が少ない場合をテストしていないので、
>>この場合には問題があるかもしれません。(^^ゞ
>
> if ( &currentRecNumber < &max )
>  &currentRecNumber = 1
> end

テストが不十分でした。
以下のように変更します。

【訂正前】

 if ( &currentRecNumber < &max )
  &currentRecNumber = 1
 end

【訂正後】

 if ( &currentRecNumber < 1 )
  &currentRecNumber = 1
 end


戻る