PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
23830 11/10/26 15:17:25 RE(11):解決策その3 By TESTEST
23828 11/10/18 15:05:25 RE(10):解決策その2 By めめ
23827 11/10/17 19:04:24 RE(9):解決策その2 By TESTEST
23826 11/10/17 19:02:39 RE(8):解決策その1 By TESTEST
23825 11/10/13 13:59:16 RE(7):PB9.0: DWのソースコードを一時退避して元に戻す方法 By めめ
23824 11/10/13 11:14:55 RE(6):PB9.0: DWのソースコードを一時退避して元に戻す方法 By TESTEST
23823 11/10/12 21:04:28 RE(5):PB9.0: DWのソースコードを一時退避して元に戻す方法 By めめ
23820 11/10/12 09:39:09 RE(4):PB9.0: DWのソースコードを一時退避して元に戻す方法 By TESTEST
23819 11/10/11 18:14:35 RE(3):PB9.0: DWのソースコードを一時退避して元に戻す方法 By 梅吉
23818 11/10/11 09:47:16 RE(2):PB9.0: DWのソースコードを一時退避して元に戻す方法 By TESTEST
23817 11/10/07 15:34:40 RE(1):PB9.0: DWのソースコードを一時退避して元に戻す方法 By ZONE
23816 11/10/04 10:43:34 PB9.0: DWのソースコードを一時退避して元に戻す方法 By TESTEST

カテゴリ:スクリプトの記述
日付:2011年10月17日 19:02 発信者:TESTEST
題名:RE(8):解決策その1

めめさん、こんばんは。

コメントしてくださったのに返信が遅くなり申し訳ありませんm(_ _)m

>dw_1.SetRedraw() を False にしてから処理する→処理終了で True にすると
>速度面で少し改善するかもしれません。(それでもこの場合、気休め程度かもしれませんが…)
はい!
この描画に関しては実装したうえで実行してみました^^
そんなにデータ行数や列数が多くなければ気にならないくらい早いのですが、、
丁寧に教えてくださり本当にありがとうございます。


以下、今後誰か見る方用に解決策を記載致します。
※字数制限により、分割させていただきます。

◆データ件数×列数がさほど多くない場合

ls_src = dw_1.Object.DataWindow.Syntax

?何かしらの処理?

ll_pos = 1
ls_data = dw_1.Describe(\"DataWindow.Data\")
dw_1.CREATE(ls_src,ls_error)

ll_length = Len(ls_data)
ll_column = Long(dw_1.Object.DataWindow.Column.Count)

Do While ll_pos <= ll_length
   ll_row++
   For ll_idx = 1 To ll_column
       If ll_idx = ll_column Then
          ls_delimiter = \"~r\"
       Else
          ls_delimiter = \"~t\"
       End If

       ll_tab = Pos(ls_data, ls_delimiter, ll_pos)
       If ll_tab = 0 Then ll_tab = ll_length + 1
       ls_coltype = Lower(dw_1.Describe(\"#\" + String(ll_idx) + \".ColType\"))
       If Left(ls_coltype, 4) = \"char\" Then ls_coltype = \"char\"
       
       Choose Case ls_coltype
          Case \"int\", \"long\", \"number\", \"ulong\"
             dw_1.Object.Data[ll_row, ll_idx] = Long(Mid(ls_data, ll_pos, ll_tab - ll_pos))
          Case \"char\"
             dw_1.Object.Data[ll_row, ll_idx] = Mid(ls_data, ll_pos, ll_tab - ll_pos)
          Case Else
             // その他のカラム(Decimal等)
       End Choose

       ll_pos = ll_tab + 1
   Next
Loop



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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