2011年05月30日
データウィンドウを水平スクロールバー分割可能にしている場合、左右に分割されますが、スクリプトにより、Setrow,Setcolumn,Setfocusをおこなうときに左側、右側と指定できないでしょうか?
お問合せ内容
データウィンドウを水平スクロールバー分割可能にしている場合、左右に分割されますが、スクリプトにより、Setrow,Setcolumn,Setfocusをおこなうときに左側、右側と指定できないでしょうか?
現在はカーソルのある側に反転表示してしまいます。 これをスクリプトにより、強制的に右側か左側かを指定したい。
回答
[対処]
PowerBuilderの仕様上そのような動作を、スクリプトで制御することはできません。
ただし、次ページのような方法で、ご希望のデータウィンドウの動作によく似たデータウィンドウを作成することができます。
手順
1. 1つのデータウィンドウ オブジェクトを1つのウィンドウに同じ高さでならべて2つ配置します。この時、右側に配置したデータウィンドウ コントロールのみに垂直スクロール バーを付けます。(ここでは左のウィンドウがdw_1で右のウィンドウがdw_2とします)
2. ウィンドウのOpenのスクリプトでデータを共有します。
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_1.sharedata(dw_2)
3. 右側のデータウィンドウ コントロールのScrollVerticalイベントに以下のようなスクリプトを記述します。
string spos1,modstring
spos1 = dw_2.object.datawindow.verticalscrollposition
modstring = ""DataWindow.VerticalScrollPosition="" + spos1
dw_1.modify(modstring)
これにより、左右のウィンドウが同期して縦スクロールするようになります。
4. コントロール名を指定してSetrow, Setcolumn, Setfocus関数を記述します。
製品:
- PowerBuilder 5.0.01 Enterprise
- OS:
- DBMS: