PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
20267 03/09/05 09:10:46 RE(3):PB6.5: ImportClipboardが正常に動作しない By sorikomi
20266 03/09/05 01:18:13 RE(2):PB6.5: ImportClipboardが正常に動作しない By sorikomi
20265 03/09/05 01:11:10 RE(1):PB6.5: ImportClipboardが正常に動作しない By sorikomi
20264 03/09/04 20:46:40 PB6.5: ImportClipboardが正常に動作しない By marb

カテゴリ:スクリプトの記述
日付:2003年09月05日 01:11 発信者:sorikomi
題名:RE(1):PB6.5: ImportClipboardが正常に動作しない

marbさん、おはようございます。

>あるデータウィンドウの内容を別データウィンドウに表示したい
>(Excelをイメージしたコピー&ペーストをしたい)のですが、

>?データウィンドウ(dw_1)内の全カラムのTabSequenceを「0」にします。
>?dw_1内の複数カラムを複数行ドラッグし、
> ClipBoard(dw_1.Describe(\"DataWindow.Selected.Data\"))
> によりクリップボードにドラッグしたdw_1のデータを保持します。
>?データウィンドウ(dw_2)に対して、dw_2.ImportClipboard()で
> データを設定します。(ここでは行やカラムの指定は省略します。)

>?において戻り値にはdw_2に設定したい行数が返ってきていますが、
>dw_2にはデータとして表示されていません。

>どなたか教えて頂けないでしょうか?

>ちなみにデータウィンドウはグリッド形式で、
>dw_1とdw_2は同じデータウィンドウです。

>以上、宜しくお願いします。

dw_1とdw_2は同じフォーマットと考えてよろしいのでしょうか?
同じでしたら、
ClipBoard(dw_1.Describe(\"DataWindow.Selected.Data\"))
にて選択したデータを取得し、
dw_1.Describe(\"DataWindow.Selected\")
にて選択してデータのリストを取得します。(TabSequenceを「0」ですと、GETCOLUMN関数では0が返される為)
結果:「選択開始行/選択最終行/選択カラム1/選択カラム2/・・・」
この結果をPOS関数を使うなどで各々取得し配列などに格納しておきます。

li_aaa = dw_1.describe(\"Datawindow.Column.Count\")
にて、カラム数を取得します。

For li_cnt = 1 TO li_aaa
IF 「選択カラム1」= dw_1.Describe(\"#\"+ string(li_cnt) +\".Name\") THEN
li_cnt?
END IF
NEXT
dw_2.ImportClipboard(選択開始行,選択最終行,1,UpperBound(配列)-2,li_cnt?)

これで正常にできました。
過去ログで「Ctrl」+「c」などショートカットキーで行うものもありました。



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS Solaris
DBMS Oracle 8.0
WebServer (記載なし)

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