過去の桐井戸端BBS (桐ver.9)
23127 イベントとコマンドボタンではグループ追加の挙動が違うのですがどうしてでしょうか grima 2003/11/01-08:06
いつも参考にさせて頂いております。
どうも理解できない現象があり、おわかりになる方がいらっしゃればお教え頂けないでしょうか。

メインフォームに4つのサブフォームがあります。
 1.A表を一覧にした物
 2.A表をグループ化したもの
 3.B表をグループ化したもの
 4.C表をグループ化したもの
メインフォームに対象表はありません。
ここで、2のサブフォーム上でグループ追加をしたいのですが…

(現象1)

ソース値更新イベントでグループ追加をすると
グループ追加されたあと解除されます。
ちなみに、次のコマンドです。

  グループ追加  {[教室]=&値[1] ,[学年]=&値[2], \
          [日付]=#日時値(&値[3]) ,[種別]=&値[4]}

終了状態を設定して変数の値をみてみると、グループ追加コマンド自体は成功しているようです。
グループ追加のコマンドを実行後自動的にグループ追加が解除されているようです。

(現象2)

メインフォームにコマンドボタンを作ってみました。
そのコマンドボタンに 「手続き実行 グループ追加」
を指定し、上記のグループ追加のコマンドを手続き内で実行させてみました。
(変数の値は(現象1)と同じ値です。)
するとグループ追加は成功したままおわり、データの編集が可能です。

(まとめ)
コマンドボタンを押さずにイベントでグループ追加をしたいと思っています。
現象1ではグループ追加後の編集状態の移行に失敗しているようです。
なぜそういうことが起こるのかわかりません。

抽象的で申し訳ありませんが
よろしくお願いいたします。

23128 Re:イベントとコマンドボタンのグループ追加の違いについて アックン 2003/11/01-08:48
記事番号23127へのコメント
grimaさん、こんにちは。
今、15分くらいしか時間がないので簡単に書きます。
グループ追加をソース値更新イベントで行っているようですが、グループ追加
開始イベントを使ってはいかがですか。

例(「フォーム」「グループ」の記述は半角。)

グループ追加開始イベントで、会話処理でグループ追加します。
グループソース値を複数設定できます。
proc フォーム::グループ追加開始()
var 文字列{ &・・ }
var 長整数{ &・・ }
 method 戻り値 = ・・ ,@u伝票No . グループソース値取得( ・ , ・ )
 method 戻り値 = ・・ ,@u日付 . グループソース値取得( ・ , ・ )
 method 戻り値 = ・・ ,@t借方科目 . ソース値取得( ・ , ・ )
  :
   グループ値代入 [伝票No] = &伝票No
  :
if( &option[1] )
   グループ値代入 [日付] = #日時日付( #日時値 )
  :
end

グループ追加終了イベントで、グループを追加できたとき出来なかったときの処理をします。
proc フォーム::グループ追加終了(長整数 &モード)
var 文字列{ &・・ }
var 長整数{ &・・ }
 method @u・・.再描画()
 method @u伝票No.再描画( 0 )
if( &モード=1 ) /* 1:確定 0:キャンセル */
   &伝票No = &伝票No+1
  :
end

ソース値更新イベントで、次のフォーカスを設定します。
proc u伝票No::ソース値更新()
var 文字列{ ・・ }
   method 戻り値 = &・・ ,@u日付.グループソース値取得( ・・ ,1 )
if( &・・=1 .and.not・・ )
     method 戻り値 = &end ,@u日付.フォーカス設定検査()
   if( &end=1 )
   method @u日付.フォーカス設定()
  :
end

23136 Re:イベントとコマンドボタンのグループ追加の違いについて 悲しげ 2003/11/01-12:29
記事番号23127へのコメント
#23128でアックンは、「グループ追加開始」イベントの利用をお勧めですが、
これは「会話処理のグループ追加が開始されたときに発生するイベント」です。
片や、grimaさんがやりたいのは、非会話処理的にグループ追加をしたいことのようなので、
少し違うような気がしますです。

さて#23127では、要するに「グループ追加」コマンドではうまく行かず、
コマンドボタンの機能の「グループ追加」ではうまく行く。
できればボタンのクリックによらず、ある項目値の[Enter]押下でグループ追加を実行したい、
と云うことだと思います。

つーことで、細部未検証ながら、思いつきを数点。

1.
もし、単に一括処理コマンドかボタンの機能の違いの問題だとすれば、
某項目のソース値更新イベント手続き内で一括処理コマンドを記載せず、
 メソッド呼び出し @某コマンドボタン.実行()
としてボタンの機能の方だけで試してみる。

2.
「グループ追加」のヘルプより
-----------------------------------------------------------------------
イベントでの使用 △編集対象表が表示状態のときのみ操作可能。
このコマンドでグループを追加しても、行が追加されるわけではありません。
新規グループに登録する行のグループ値を設定するだけです。行を追加せずに、
ほかのグループに移動した場合は、追加したグループが消去されます。
グループ選択状態でないときは、実行できません。
-----------------------------------------------------------------------

3.
[ソース値更新]イベントのヘルプより
-----------------------------------------------------------------------
■使用目的 フォームの更新モードを変更します。
-----------------------------------------------------------------------

以上の2〜3からの閃き(^^;)。
ひょっとすると、ソース値更新ハンドラ内での記述は、訂正モードのままであるから、
グループ追加がうまく行かなかった。片や、コマンドボタンの方は、
たまたま表示モードにしてからボタンをクリックした、と云うような可能性はありませんか?
もしそうだとすれば、ソース値更新ハンドラで表示モード化してから実行させて
試してみる価値もありそうです。
例1)
  method @フォーム.更新モード設定(0)
  グループ追加 ・・・・
  *method @フォーム.更新モード設定(2)  ?
例2)上記ではもし値が確定しないで表示モードになるとすれば
  method @某コマンドボタン.実行()
を使う。ちなみにこの時のボタンの機能と同パラは次のようにします。
1 表示     確定する
2 グループ追加

23137 Re:イベントとコマンドボタンのグループ追加の違いについて grima 2003/11/01-13:18
記事番号23136へのコメント
悲しげさんこんにちは、コメントありがとうございます。

メインフォーム上に作ったコマンドボタンは

  メソッド呼び出し @某コマンドボタン.実行() で失敗
  コマンドボタンをマウスでクリック      で成功

となり、困惑しております。
訂正モードも表示モードでグループ追加コマンドを実行しているのですが...

挙動はグループ追加コマンドは実行された後
エラーメッセージも何もでずにそのまま
グループ追加状態がキャンセルされているようです。
(コマンドそのものは正常に実行されているようです)


23138 Re:イベントとコマンドボタンのグループ追加の違いについて 悲しげ 2003/11/01-14:00
記事番号23137へのコメント
grimaさん wrote

>訂正モードも表示モードでグループ追加コマンドを実行しているのですが...

ああ、そうですか。
実際に試してないのにコメントを続けるというのもナンですが(^^;)、
わざわざテストデータを作るに及ばぬまま、思いつき(^^;)を続けます。

次のように記述したらどうでしょう?

 グループ追加 { [某グ項目] = 某値 },終了状態 = &OK
 グループ検索 { [某グ項目] = 某値 },終了状態 = &OK

グループ追加しただけでは、単にそれだけのことで、
もし「アッシには関わりねぇ」遠い世界のことなのだとすれば、
アッシに関わりがあるようにするためには、アッシ自らそこに行かねばならない・・・とか。



ちなみに、グループ追加は拙作では次のようにやっていました。
専用のボタンをひとつ設けます。機能等は
  1.表示      確定する
  2.グループ追加
その上で、ボタンきクリックとキー操作の両方から実行できるように、
「キーダウン」イベントで次のように
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード・・・
 var 自動,長整数{&更も},自動,文字列{&focus}
 method @フォーム.更新モード取得(&更も)
 method @フォーム.フォーカスオブジェクト取得(&focus)
 ケース開始
 ケース(&更も=0)  /*表示モードの時*/
  ケース開始
  ケース(&仮想キーコード=27) /*[Esc]キー*/
   &処理中止=1
   確認 "終了します",&確認
   cond(&確認=1) method @b終了.実行()
  ケース(&仮想キーコード=9) /*[Tab]キー*/
   &処理中止=1
   method @b新規.実行() /*前述のグループ追加用ボタン*/
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ついでに云えば、「ソース値更新」手続きに挑戦したかどうか、
挑戦したけどうまく行かなかったので「キー*」イベントに乗り換えたのかどうか等はいっさい記憶にありません。
何かのイベントでうまく行かなかったら「ともかくキーダウンで迂回」ってのが私の苦肉な癖です。(^^;)

23139 Re:イベントとコマンドボタンのグループ追加の違いについて うにん 2003/11/01-14:56
記事番号23127へのコメント

>コマンドボタンを押さずにイベントでグループ追加をしたいと思っていま
>す。
>現象1ではグループ追加後の編集状態の移行に失敗しているようです。
>なぜそういうことが起こるのかわかりません。

グループを追加しただけではレコードが存在しないので、他のレコードや
グループに移動すると追加したグループがなくなるはずです。
グループ追加後に行追加もしてみたらどうでしょうか?

23140 Re:イベントとコマンドボタンのグループ追加の違いについて アックン 2003/11/01-15:31
記事番号23138へのコメント
悲しげさん>つい先ほど、高速道を遠方まで往復して帰ってきましたー。
予定より早く帰られたので、話を続行しますです。
私はまだ grimaさんが具体的にどのような操作をしたいのかわからないのですが、
ソース値更新を使わない方法を紹介した理由は、ソース値更新イベントで
グループ追加コマンド使うとうまくいかないと思うからです。
おそらくイベントの発生順が関係しているんじゃないかと。
で、私はコマンドボタンのイベントを次のように設定してます。

proc b_新規::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数
 &フラグ,参照 長整数 &処理中止)
var 文字列{ ・・ }
var 長整数{ ・・ }
 method 戻り値 = ・・ ,@u伝票No . グループソース値取得( ・・ ,・・ )
 method 戻り値 = ・・ ,@u日付 . グループソース値取得( ・・ ,・・ )
if( ・・ ) /* 伝票No.・日付ともに入力済のとき */
 call 登録( &this ) /* データ書き出し後にグループ追加モード(新規伝票) /新伝票No発行 */
else if( ・・ ) /* 伝票No.のみ入力済で、日付が未入力のとき。 */
   method @フォーム.更新モード設定( 34 ) /* グループ値訂正モード /現在の伝票No */
 else if( #空ファイル ) /* 伝票No.・日付ともに未入力のとき。 */
   method @フォーム.更新モード設定( 36 ) /* グループ追加モード /新伝票No
発行 */
 end
end

終わりの方で、グループ追加モードにしているんですけど、使っているのはグループ追加コマンドではなく、
更新モード設定のメソッドです。
上の方の「call 登録」でも、一般プロシージャ内でデータ書き出し後に、
やはりメソッドでグループ追加してます。
で、前回書いたグループ追加イベント・グループ追加終了イベント・ソース値更新イベント等も当然設定します。
グループ追加はこういうふうにするとうまくいくと思いますよ。

23142 Re:イベントとコマンドボタンのグループ追加の違いについて 悲しげ 2003/11/01-16:08
記事番号23140へのコメント
どもっ、アックン、「高速道を遠方まで往復」ご苦労さんです。

なんか複雑〜って感じですね。(;_;)
特にメソッドの更新モード*(3*)ってのは挑戦したことすらなかった。(^^;)

でも、

>ソース値更新イベントでグループ追加コマンド使うとうまくいかないと思う
>からです。おそらくイベントの発生順が関係しているんじゃないかと。

ってのは、なるほど、云えてるのかもしれませんね。
少なくとも、私もキーダウンイベントからは(ボタンの実行メソッド経由ながら)ノープロブレムだし。

23144 Re:イベントとコマンドボタンのグループ追加の違いについて アックン 2003/11/01-16:25
記事番号23142へのコメント
悲しげさん>
私も当初はいろいろなイベントからグループ追加コマンドを試して、
どうもうまくいかなかったように記憶してます。
行き詰まってるときに、当該イベントなりメソッドを見つけて、ちゃんとあるんだったら
これ使えば桐の方でうまい具合に処理してくれるはずだと。
けっこう複雑そうに見えているのは、あれこれ条件分けしているせいで複雑に見えるだけだと思います。
すっきり書けばいいのに、すいません。
grimaさんにどういう回答をするかまで考えてないんで、すみません。

23145 補足(ソース値更新の代わり) 悲しげ 2003/11/01-16:27
記事番号23138へのコメント
少し思い出して来たので補足します。(^^;)
実は別な処理ですが、[Tab]キーではなく、某項目で[Enter]キーを押した時点で
或る処理を実行させようとして(つまり「ソース値更新」モドキ)、
「キー*」イベントで次のようにやっているものもありました。(^^;)

  ・・・・(前略=#23138のとおり)
  ケース(&仮想キーコード=13 .and &focus="t某項目")
   /*つまり某項目で[Enter]の時*/
   &処理中止=1
   method @b新規.実行() /*前述のグループ追加用ボタン*/

ただし、このようにした主な理由は、「ソース値更新」でうまく行かなかったからではなく、
同イベントからだと、やり直そうと思って某項目から
[Ctrl]+[←]等で前項目に戻った時にも発生してしまうのが嫌だったから、
だったように記憶しています。(^^;)

ps
少し話題がずれたことを、少しだけお詫びします。

23146 Re:補足(ソース値更新の代わり) 悲しげ 2003/11/01-16:34
記事番号23145へのコメント
すいません、補足の補足です。

>  ・・・・(前略=#23138のとおり)
>  ケース(&仮想キーコード=13 .and &focus="t某項目")

これは実は表示モード以外のケースの方の記述です。
(#23138は表示モードのケースの記述でしたが)
じゃないと、ソース値更新モドキに該当しないので。
23162 Re:イベントとコマンドボタンのグループ追加の違いについて grima 2003/11/02-06:46
記事番号23140へのコメント
アックンさん、悲しげさん。コメントありがとうございます。

私のやろうとしていたことは、
グループ項目の値をテキスト項目で変数に代入し、
その値でグループ検索。
グループが見つかればグループ移動
グループが見つからなければその値でグループ追加
というものです。
ところが、グループ追加されたあと
他の項目の編集状態に移ることができず
そのままグループ追加がキャンセルされているようなのです。
(まるで[ESC]で放棄したときのように)
エラーメッセージはいっさいでないのが不可解です。
ところが、コマンドボタンをつくってこれをクリックすると
編集状態には移行しないものの、行追加は生きていて
そこから編集状態に移ることができます。
(つまり、レコードの追加が可能と言うこと)
なぜ、こういうことが起きるのか理解できないのです。
フォーカスの位置がおかしいのかといろいろやってみましたが
うまくいきません。

悲しげさん
キーダウンイベントはもしかしたら有効かもしれません
しかし、入力支援ボタンでの自動終了で値を入れる場合
ちょっと考えてしまいます。
[TAB]?なにそれ [ENTER]?押すの怖いって人もいるわけで..
23165 Re:ソース値更新とグループ追加 悲しげ 2003/11/02-12:01
記事番号23162へのコメント
はて?
以前仰っていたことと話が違っているのではありせんか?
「グループ追加」の実現に際し、少なくとも#23127では「ソース値更新イベント」vs「コマンドボタン押下」の問題があったはずです。
それに対して、アックンからのコメント等では「ソース値更新イベント」からの「グループ追加」については、
相性と云うか、難しいところがあるようだ、と云うのが、

>なぜ、こういうことが起きるのか理解できないのです。

と云うgrimaさんの疑問への当座の回答であって、
ならば、代替策として別イベントを利用してはどうか……の方向に
話が流れてきたと思います。

>キーダウンイベントはもしかしたら有効かもしれません
>しかし、入力支援ボタンでの自動終了で値を入れる場合
>ちょっと考えてしまいます。
>[TAB]?なにそれ [ENTER]?押すの怖いって人もいるわけで..

それが今度は「入力支援ボタンでの自動終了で値を入れる」とありますので、
レレレ?「ソース値更新」じゃなかったの?って感じ。

それと、私が[Tab]キーを挙げたのは、「ソース値更新」イベントを避けて、
代わりに例えば「キーダウン」イベントを使った場合の
何らかのキーのひとつの例が[Tab]キーであるに過ぎません。
[Tab]キーでなければならない訳では全くありませんから、
[Tab]を使いたくなければお好みの他キーでよいことは云うまでもないのです。

また、[Enter]については、そもそも「ソース値更新」イベントは
ふつうは[Enter]を押した際に発生するイベントですから、
当初の話だと「押すの怖い」云々は、話が矛盾するのではありませんか?

それとも、深読みするに、「ソース値更新」をやめて今度は「入力支援ボタン」に換えたいってことなのですか?

23169 Re:イベントとコマンドボタンのグループ追加の違いについて うにん 2003/11/02-20:01
記事番号23127へのコメント
実際にやってみたら、普通にメインフォーム(対象表なし)のテキストオブジェクトに
ソース値更新イベントを設定するだけで、サブフォームのコマンドボタンを実行()して
手続き実行によるグループ追加(つまりグループ値を設定済み)ができてしまいました。
自動終了する入力支援ボタンを設定すれば、値を選択しただけでイベントが発生するのでグループが追加されます。

>メインフォームにコマンドボタンを作ってみました。
>そのコマンドボタンに 「手続き実行 グループ追加」
>を指定し、上記のグループ追加のコマンドを手続き内で実行させてみまし
>た。

これはまずいんじゃないですか?
「<手続き名>に、つぎの名前を指定してはいけません。
  コマンドと同じ名前。」

そちらのフォームで何が悪いのかはどうもわかりません。
ソース値更新イベントの設定してある次のオブジェクトのイベントが怪しいかな?
コマンドボタンを実行する前に、そのフォームにフォーカスを設定してみたらどうでしょう?

23170 Re:ソース値更新とグループ追加 うにん 2003/11/02-20:14
記事番号23165へのコメント

>また、[Enter]については、そもそも「ソース値更新」イベントは
>ふつうは[Enter]を押した際に発生するイベントですから、当初の
>話だと「押すの怖い」云々は、話が矛盾するのではありませんか?
>
>それとも、深読みするに、「ソース値更新」をやめて今度は「入力
>支援ボタン」に換えたいってことなのですか?

普通は[Enter]ですが、入力支援ボタンでもソース値更新イベントが発生しうるので
当初の説明不足ではありますが矛盾とは言えませんね。

コマンドボタンの基本を忘れてたのでテストに結構時間がかかってしまいましたが、
サブフォームにコマンドボタンを作り、機能=手続き実行、オプション="グループを追加"
サブフォームのグループを追加()手続きではグループ追加 {[項目]=&変数}みたいな処理
メインフォームのテキストのソース値更新イベントでサブフォームのコマンドボタン.実行()
という風に普通にやってグループ追加ができてしまったので、
私としては皆さん一体何を困っているのかな?という状態です(^^;

グループ追加されたサブフォームは終端行にいる状態になりますが、フォーカスを
失うだけではグループは消えませんね。そのフォームで明示的にグループや行を移動しない
限り残っているようです。
当然ながら、となりにある同じ表を表示しているサブフォームで行移動しても影響しません。
23171 Re:イベントとコマンドボタンのグループ追加の違いについて 悲しげ 2003/11/02-20:57
記事番号23127へのコメント
うにんさんの#23169を見せていただいて、なんと云うか・・・・(^^;)
え〜、もう一度最初の#23127に戻って確認させていただきます。

>メインフォームに4つのサブフォームがあります。
> 2.A表をグループ化したもの
>メインフォームに対象表はありません。
>ここで、2のサブフォーム上でグループ追加をしたいのですが…
>
>(現象1)
>ソース値更新イベントでグループ追加をすると
>グループ追加されたあと解除されます。

このイベントを組んでいるwfm/kevはメインの方ですか、サブ2ですか?

>(現象2)
>メインフォームにコマンドボタンを作ってみました。
>そのコマンドボタンに 「手続き実行 グループ追加」を指定し、

見過ごしてましたが、これは本当にメインの方のwfm/kevなのでしょうか?
うにんさんは、#23169で「サブフォームのコマンドボタンを実行()して」
と書いていますし、私も何となくサブ2のwfmの方だと信じ込んでいたのですが。

もしかすると、この辺りの混同に躓きの原因があるかも?

23172 Re:イベントとコマンドボタンのグループ追加の違いについて うにん 2003/11/03-00:07
記事番号23171へのコメント

>>(現象2)
>>メインフォームにコマンドボタンを作ってみました。
>>そのコマンドボタンに 「手続き実行 グループ追加」を指定し、
>
>見過ごしてましたが、これは本当にメインの方のwfm/kevなのでしょうか?
>うにんさんは、#23169で「サブフォームのコマンドボタンを実行()して」
>と書いていますし、私も何となくサブ2のwfmの方だと信じ込んでいたの
>ですが。
>
>もしかすると、この辺りの混同に躓きの原因があるかも?

そうそう、メインフォームには表もグループもないので、メインフォームの手続きで
グループ追加はできるわけがないのですよね。(実験済み^^;)
「メインフォームのテキストボックスに入力した値でサブフォームにグループ追加する」
という要望だと勝手に解釈しましたが、(現象2)は明らかに変です。

あとは、メインフォームとサブフォームのkevを同じファイルにしてたりすると問題がありますね。

23173 Re:イベントとコマンドボタンのグループ追加の違いについて grima 2003/11/03-14:04
記事番号23172へのコメント
悲しげさん、うにんさん お騒がせしております。

ソース値更新イベントからできるとのことで
こちらももう一度フォームを最初から構築し直してみました。
(はじめから作りなおして不具合のでる場所を探しました)
そこで判明したこと。

>1.A表をメインフォームにA表を一覧にしたもの
>2.A表をグループ化したもの
と書きましたが、ここがくせ者でした。

一覧とグループにはそれぞれのkevで表番号を変数に入れ
メインのkevから表番号を切り替えて操作しています。
(メインのkevとサブのkevは分けてあります)
(メインには変数を入れるテキスト項目とサブフォームのみあります)
この一覧とグループ化したものはグループ化したものを
一覧にリンクしてあります。
一覧はグループの値で単一化の絞り込みがしてあり、
一覧ですばやくグループを移動・表示するために設けていました
つまり、一覧のレコード移動はグループ表示に影響しますが
グループのサブフォームからの操作は一覧に影響しないと思っていました。
ところが、このリンクを切ったところソース更新イベントで
グループ追加がキャンセルされることがなくなりました。

うにんさんのおっしゃるように
”フォーカスを失うだけではグループは消えない"状態になります。

ちなみに、一覧の絞り込みは解除しても挙動はかわりません。

グループ表示のサブフォームでグループを追加すると
一覧で開いている表における処理行かフォーカス位置に困って
そのまグループ追加はキャンセルされる・・・・
ということかもしれません。
まったくエラーメッセージのような物がでないので推測です。
(しかし、リンクしていない表になぜ影響がでるのか
とか、コマンドボタンのクリックからはなぜできたのか
とか疑問点は残りますが・・・)

>「<手続き名>に、つぎの名前を指定してはいけません。
私もそう思いましたが(^^ゞ
検証のためにつけてみたコマンドボタンで
とりあえずその名前をつけてみたら通ってしまったので・・・(^^ゞ

>コマンドボタンを実行する前に、そのフォームにフォーカスを設定してみたらどうでしょう?
フォーカスはメインや、サブフォーム、サブフォーム内のオブジェクト etc..
いろいろ試してみましたがだめでした。

>このイベントを組んでいるwfm/kevはメインの方ですか、サブ2ですか?
メインの方です。サブの方にコマンドボタンを作ってサブでもやってみようと思いましたが、まだ試していません。

とりあえず、「グループ追加したい」という希望は果たせそうです。
悲しげさん、うにんさん、お二人の助言でなんとか解決しました

挙動の不可思議な点についてはもう少し考えてみたいと思います。
23174 Re:イベントとコマンドボタンのグループ追加の違いについて 悲しげ 2003/11/03-17:51
記事番号23173へのコメント
どもっ、grimaさん

>>1.A表をメインフォームにA表を一覧にしたもの
>>2.A表をグループ化したもの
>と書きましたが、

とは書いてないんじゃないでしょうか? これだとメインフォーム
の対象表がA表であるように読めてしまいます。

#23127でwroteは
>メインフォームに4つのサブフォームがあります。
> 1.A表を一覧にした物
> 2.A表をグループ化したもの
> 3.B表をグループ化したもの
> 4.C表をグループ化したもの
>メインフォームに対象表はありません。

サブフォーム1はA表を対象表としたグループ項目を持たない一覧表wfmで、
サブ2はA表を対象表としたグループ項目を持つ一覧表or伝票orカードwfmと云うことなんですよね?

>この一覧とグループ化したものはグループ化したものを
>一覧にリンクしてあります。

このセンテンスはかなり難解ですが、つまりはサブ1とサブ2とで
多重化してあるA表同士をリンク設定していると云うことですか?

>(しかし、リンクしていない表になぜ影響がでるのか

上では「リンクしてあります」とあるのですが、そしてそれでも
矛盾(^^;)していないのだとすれば、どこが違うのですか?

いずれにせよ、なんだか前提がとても複雑なので、原因究明もなかなか難しそうですね、その意味では

>こちらももう一度フォームを最初から構築し直してみました。
>(はじめから作りなおして不具合のでる場所を探しました)

のように単純化に踏み切ることはなかなか有効かと思います。

それと、
>>このイベントを組んでいるwfm/kevはメインの方ですか、サブ2ですか?
>メインの方です。サブの方にコマンドボタンを作ってサブでもやってみようと
>思いましたが、まだ試していません。

ふつうはサブの方に作ると思います。(^^;)

ps
何となくですが、「多重化」vs「グループ選択」の問題のような気がしないでもありません。
過日、「多重化」と「グループ選択」を駆使した処理なのですが、V8sp7上で
ある種の操作を行うと、再現性をもって「データファイルが壊れています」
のエラーメッセージで落ちてしまうことがありました。調べてみると表は壊れていないし、
同様の処理をV9sp1で行うとエラーも出ない。つー訳で、
もしかするとV8sp7の「エラー判定のエラー」かとも思いつつ、色々検討した結果、
多重化を避けたらV8上でもエラーが出ないようになりました。
ま、今回のgrimaさんの場合はエラーメッセージも出ないようなので、
全然別件なのでしょうけどね。
23176 Re:イベントとコマンドボタンのグループ追加の違いについて grima 2003/11/04-03:06
記事番号23174へのコメント
悲しげさん、お世話になっております。
わかりにくい文章で混乱させてしまい申し訳ありません。

>サブフォーム1はA表を対象表としたグループ項目を持たない一覧表
>wfmで、サブ2はA表を対象表としたグループ項目を持つ一覧表or伝票
>orカードwfmと云うことなんですよね?

そのとおりです。


>このセンテンスはかなり難解ですが、つまりはサブ1とサブ2とで
>多重化してあるA表同士をリンク設定していると云うことですか?

これもおっしゃるとおりです。


>上では「リンクしてあります」とあるのですが、そしてそれでも
>矛盾(^^;)していないのだとすれば、どこが違うのですか?

A表のグループ項目をもつサブ2には、
A表の一覧であるサブ1へのリンクが設定してあります。
サブ1の処理行が変わるとサブ2も処理行が変わります。
しかし、サブ2の処理行がかわってもサブ1の処理行はかわらない
(と思っていました)
つまりサブ1→サブ2の片道のリンクだと・・・・
ちがうのでしょうか。
そもそもここが勘違いの出発点かも・・・。

リンクを設定した場合、相互にリンクするのだとすれば
サブ2でグループ追加状態に入ったとき
一覧のサブ1の方で何らかのエラーが起きていたのかもしれません。
まぁ、しかし
サブ1のイベントでサブ2のグループ検索を行うように変更し
問題は起きなくなりました。


>ふつうはサブの方に作ると思います。(^^;)

失礼しました。(^^ゞ
もっと勉強させて頂きます。

戻る