如何删除数据窗口中的列,高手进,谢谢!

shengdesan 2009-06-22 06:07:29
数据窗口中的列用隐藏也好,DESTROY 列名也好,都不能真正删除对应的列名,最后保存数据窗口数据后,被删除的列依然存在(函数dw_1.saveas(),我需要多种格式,如EXCEL等,所以不能用SaveAsAscii)
因为调用数据时需要主键,但是保存时不需要,所以我要做的就是保存的时刻删除不需要的列。
现在的方案是保存时重新CREATE,但是数据量大的话速度慢(浪费了现成的获取好的数据了)。

说明:
隐藏,DESTROY,WIDTH=0都没有用,希望大家帮我想起他办法,谢谢了!
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun1976 2009-06-23
  • 打赏
  • 举报
回复
把你现在的数据窗口另存一个d_xxx_output,再在界面隐藏一个用于导出的不可见的数据窗口dw_output或者create一个datastore
//初始化
dw_output.visible=false
dw_output.dataobject='d_xxx_output'
//导出
dw_output.reset()
if dw_1.rowcount()>0 then
dw_output.object.列名.primary=dw_1.object.对应的列名.primary
dw_output.object.列名2.primary=dw_1.object.对应列名2.primary
……
//把所有需要导出的列都如上设置
end if
dw_output.saveas(),
LamarChen 2009-06-22
  • 打赏
  • 举报
回复
用黄大侠的吧 很不错
WorldMobile 2009-06-22
  • 打赏
  • 举报
回复
关于另存excel,可以参考http://download.csdn.net/source/604270
WorldMobile 2009-06-22
  • 打赏
  • 举报
回复
或者你把这个列destroy掉,直接用黄国酬的另存excel来实现另存,所见即所得,很方便的
WorldMobile 2009-06-22
  • 打赏
  • 举报
回复
建议你用另一个数据窗口,然后用create或者setsqlselect来实现,把数据窗口的列组织好,然后再把数据窗口赋值到这个数据窗口

数据赋值你可以用整列来赋值,或者把原来的数据窗口destroy那个列,然后用sharedata来共享

如果不行的话就用getitem和setitem来实现,在内存中操作,速度还是非常快的

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧