PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
21666 04/12/24 17:54:20 PB8.0: 2つのデータウィンドウのTabによるカラム移動制御 By anty

カテゴリ:データウィンドウ
日付:2004年12月24日 17:54 発信者:anty
題名:PB8.0: 2つのデータウィンドウのTabによるカラム移動制御

2つのデータウィンドウを隣合わせでShareDataを使用し、表示しています。
右のデータウィンドウ(dw_1)にはあるテーブルのキー項目のみを表示し、
左のデータウィンドウ(dw_2)にはその他の項目を表示しています。
この2つのデータウィンドウ間でTabによるカラム移動制御を行いたいと思っています。
過去の記事?003292を参考にやってみたのですが、
上手く動かないところがでてきました。

dw_1とdw_2それぞれにpbm_dwnkeyイベントを作成し、
以下のようにコーディングしています。
?と?の処理がそのまま実行すると行が移動してしまうので、return 1 を返してみました。
ところが、return 1を行うと、フォーカスがどこかに行ってしまい、
思ったようにフォーカス移動してくれません。
?の場合は、もう一度Tabキーを押せば、同一行のdw_2の先頭カラムに移動してくれるのですが、
?の場合は、もう一度Shift+Tabを押すと同一行のdw_1の先頭カラムに移動してしまいます。
長くなって申し訳ありませんが、どなたか分かる方教えて頂けませんか?

---dw_1のpbm_dwnkeyイベント----
if key = KeyTab! and keyflags = 1 and dw_1.getcolumn() = [dw_1の先頭カラム] then
  //?dw_1からShift+Tabで1行上のdw_2の最終カラムに移動する処理
  dw_2.setfocus()
  dw_2.setcolumn([dw_2の最終カラム])
  return 0
  
elseif key = KeyTab! and keyflags = 0 and dw_1.getcolumn() = [dw_1の最終カラム] then
  //?dw_1からTabで同一行のdw_2の先頭カラムに移動する処理
  dw_2.setfocus()
  dw_2.setcolumn([dw_2の先頭カラム])
  return 1
  
end if

---dw_2のpbm_dwnkeyイベント----
if key = KeyTab! and keyflags = 1 and dw_2.getcolumn() = [dw_2の先頭カラム] then
  //?dw_2からShift+Tabで同一行のdw_1の最終カラムに移動する処理
  dw_1.setfocus()
  dw_1.setcolumn([dw_1の最終カラム])
  return 1
  
elseif key = KeyTab! and keyflags = 0 and dw_2.getcolumn() = [dw_2の最終カラム] then
  //?dw_2からTabで1行下のdw_1の先頭カラムに移動する処理
  dw_1.setfocus()
  dw_1.setcolumn([dw_1の先頭カラム])
  return 0
  
end if

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.