DW列太多,要求第一列不动,如何实现

am2000 2002-12-13 01:51:49
最好用一个dw
...全文
99 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
am2000 2002-12-14
  • 打赏
  • 举报
回复
up.
txchen 2002-12-13
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/986/986371.xml?temp=.419079
888888888888 2002-12-13
  • 打赏
  • 举报
回复
我们把分分了把
xlhl 2002-12-13
  • 打赏
  • 举报
回复
sc
am2000 2002-12-13
  • 打赏
  • 举报
回复
用llitcwl(中国龙)的方法往左拉的时候老是闪,怎么办。
am2000 2002-12-13
  • 打赏
  • 举报
回复
llitcwl(中国龙) :你的代码放到哪个地方..
ice2water(大冰) 的方法好象不稳定..
realfool 2002-12-13
  • 打赏
  • 举报
回复
来晚了:-(
不过大龙的办法原来不知道,收藏。
balloonman2002 2002-12-13
  • 打赏
  • 举报
回复
此贴好,建议加到FAQ,我也会放到非技术版的精华贴,:)
揭贴了,大冰和大龙一人100分,呵呵,:)
llitcwl 2002-12-13
  • 打赏
  • 举报
回复
//固定每一列,模仿EXCEL
int i
i = integer(this.Object.DataWindow.HorizontalScrollSplit)
if i < 1 then return
if pane = 1 then
if scrollpos > 0 then
//send(handle(this),276,0,0)
this.object.datawindow.horizontalScrollPosition = 0
end if
else
if i > scrollpos then
this.object.datawindow.horizontalScrollPosition2 = i
end if
end if
xuebuctxy 2002-12-13
  • 打赏
  • 举报
回复
学习
xingjiaren 2002-12-13
  • 打赏
  • 举报
回复


gzgzgzgz gzgzgzgzgzgz
gzgz gzgz gzgz gzgz
gzgz gzgz
gzgz gzgz
gzgz gzgz
gzgz gzgzgzgz gzgz
gzgz gzgz gzgz
gzgz gzgz gzgz gzgz
gzgzgz gzgzgzgzgzgz


am2000 2002-12-13
  • 打赏
  • 举报
回复

先在数据窗口画板中将第一列Bring to Front,
然后在数据窗口的scrollhorizontal事件中编程:
this.object.name.x = scrollpos////NAME是列名
this.object.t_1.x = scrollpos////T_1是列头控件的名称。
你说的Name 是哪一列。是要固定不动的列,还是第一列?
dongquestion 2002-12-13
  • 打赏
  • 举报
回复
哎,学习中呐,不知道有没有更简单的办法啊
am2000 2002-12-13
  • 打赏
  • 举报
回复
基本OK
就是黑线去不掉。
am2000 2002-12-13
  • 打赏
  • 举报
回复
不行啊。
而且中间出现一条黑线
很不美观
dotnba 2002-12-13
  • 打赏
  • 举报
回复
学习!
ice2water 2002-12-13
  • 打赏
  • 举报
回复
对,以上是多种办法,选一种即可。
am2000 2002-12-13
  • 打赏
  • 举报
回复
多谢。我试试先
BTW:emp_fname和Name是一样的吗?t_1是Name列的标题吧。
ice2water 2002-12-13
  • 打赏
  • 举报
回复
先选中DW控制的horizontal split属性,然后在程序中用<dwname>.Object.datawindow.horizontalscrollsplit = <位置的点 >
这样可产生把DW切开为两个部分,基本满足要求 。

string ls_colx
ls_colx = dw_1.Object.emp_fname.x //emp_fname是要固定不动列的后面那个列名
dw_1.Object.datawindow.horizontalscrollsplit = ls_colx


先在数据窗口画板中将第一列Bring to Front,
然后在数据窗口的scrollhorizontal事件中编程:
this.object.name.x = scrollpos////NAME是列名
this.object.t_1.x = scrollpos////T_1是列头控件的名称。

如果运行过程中出现了文字叠加现像,你应该到数据窗口画板中将第一列加一种底色。

先在数据窗口画板中将第一列Bring to Front,
然后在数据窗口的scrollhorizontal事件中编程:
this.object.name.x = scrollpos////NAME是列名
this.object.t_1.x = scrollpos////T_1是列头控件的名称。

告诉你招狠的,做两个数据窗口

左边的显示第一列,而且把readonly = Yes即可

先在数据窗口画板中将第一列Bring to Front,
然后在数据窗口的scrollhorizontal事件中编程:
this.object.name.x = scrollpos////NAME是列名
this.object.t_1.x = scrollpos////T_1是列头控件的名称。

如果运行过程中出现了文字叠加现像,你应该到数据窗口画板中将第一列加一种底色。

从第二列开始你就用这句:
long x[7]/////全局变量
x[1] = this.object.name.x////写到窗口的OPEN事件中,这是保存第二列的初始值。
然后在数据窗口的scrollhorizontal事件中编程:
this.object.name.x = x[1]+scrollpos////NAME是列名

其它345678列的处理方法同上。


我以dw_test为例给出我的想法,而且是我们公司的基类,肯定可以实现的

if NOT dw_test.hsplitscroll then
dw_test.hsplitscroll = true
dw_test.hscrollbar = true
end if

string ls_x,ls_err,as_col
//as_col是你要分隔数据窗口的列名,这样你想分到哪里都行啊
ls_x=dw_test.describe(as_col+'.x' )
ls_x=string(integer(ls_x)-1 )
ls_err=adw.modify("datawindow.horizontalscrollsplit="+ls_x)
return ''=ls_err

am2000 2002-12-13
  • 打赏
  • 举报
回复
dw往右拖动时,第一列固定不动

609

社区成员

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

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