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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.




