過去の桐井戸端BBS (桐ver.9)
25113 入力後イベントで項目にデータが入っても変数には代入されないのですが いっさ 2004/02/25-23:18
イベントで苦戦しています。

伝票フォームで、グループ項目の[AA]に入力後のイベントについて下記のイベントを見てください。

-------------------------------------------------------------------
手続き定義開始 uAA::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
  &AA=[AA]
  ケース開始
   ケース([AA]<>"")
     表  &AA
     絞り込み [AA]{=&AA}
     書き出し 表,&123
     終了 表 編集対照表
     メソッド呼び出し @uかかか.フォーカス設定()
   ケース([AA]="")
     メソッド呼び出し @uいいい.フォーカス設定()
  ケース終了
手続き定義終了

-------------------------------------------------------------------
[AA]のデータを&AAに代入します。
[AA]にデータが入っていれば
 AA.TBLの[AA]の項目から&AAを絞り込み123.TBLに書き出します。
 [かかか]の項目へ移動します。

[AA]にデータがはいっていなかったら(未定義)[いいい]へ移動します。

こういった流れを作ったのですが
[AA]にデータが入っても&AAに代入されていません。
グループ項目では 入力後イベントは動作しないのでしょうか。
よろしくご教授ねがいます。



25115 ソース値更新イベントで試してみて下さい 佐田 守弘 2004/02/25-23:34
記事番号25113へのコメント
いっささん
入力後イベントは、項目の編集状態に入り、キー入力を終えた時に発生するイベントです。
通常は、入力を終えて、項目に書き込む前に値が適切かどうかを判断し、必要なら入力をやり直させるために使います。
入力後イベントが発生した段階では、入力値はまだ表の項目値に値は書き込まれていません。
ですから、この[AA]の項目値を変数に代入しても、未定義値になります。

目的の事を行うには、表に値が書き込まれた直後、つまりソース値更新イベントで行ってみて下さい。

佐田守弘(KS-00119)
25116 変数値を確認してみては 今村 誠 2004/02/26-00:02
記事番号25113へのコメント
いっささんこんにちは、桐9の一括処理イベントメソッドの
ヘルプファイルの
メソッド呼び出し グループソース値取得
■説明
指定した[グループ項目]オブジェクトから、
[ソース]に設定された値または式の計算結果を取得します。
グループ化指定がされている場合は、そのグループ化の値を取得します。


メソッド呼び出し フォーカス設定
のノートのところに

つぎのイベントハンドラ内ではフォーカスを設定できません。
  [行挿入エラー]イベント、[行挿入開始]イベント
  [行訂正エラー]イベント
  [グループ検索開始]イベント
  [グループ値訂正開始]イベント
  [グループ追加開始]イベント
  [選択値変更]イベント
  [入力後]イベント
  [入力支援オープン]イベント、[入力支援クローズ]イベント
  [入力前]イベント
  [フォーカス取得]イベント、[フォーカス喪失]イベント
  [フォーム終了]イベント
  [編集開始]イベント
  [編集文字列変更]イベント

と書いてあるので他のイベントに変更した方がいいのではないでしょうか。

 &AA=[AA]
  ケース開始
   ケース([AA]<>"")
とあるところを
 &AA=[AA]
確認 "代入では"+#str(&AA)
メソッド呼び出し @uAA.グループソース値取得(&AA,0)
確認 "メソッドでは"+#str(&AA)
  ケース開始
   ケース([AA]<>"")

としてみてはいかがでしょうか。

どちらでも値が入っていない場合
入力後イベントの次に発生するソース値更新イベント
を使用してみられてはいかがでしょうか。
ソースは半角で書きます。
25129 Re:変数値を確認してみては いっさ 2004/02/26-11:55
記事番号25116へのコメント
今村 誠さんありがとうございました。
うまくいきました。

戻る