当前位置: 代码迷 >> PB >> pb 固定某几列不移动解决方法
  详细解决方案

pb 固定某几列不移动解决方法

热度:101   发布时间:2016-04-29 09:26:04.0
pb 固定某几列不移动
固定某几列不移动
其他列许多列随着水平条的移动而移动

这该怎么设计呢?

------解决方案--------------------
如何能让数据窗口的某几列在其他列横拉时固定不动 
 
  int i 
  if pane = 1 then 
   i = integer(this.object.datawindow.horizontalscrollposition2)
   if i < 1 or isnull(i) then return 
   if scrollpos > 0 then
    this.object.datawindow.horizontalScrollPosition = 0
   end if
  else
   i = integer(this.Object.DataWindow.HorizontalScrollSplit)
   if i < 1 or isnull(i) then return 
   if i > scrollpos then
    this.object.datawindow.horizontalScrollPosition2 = i
   end if
  end if 
 

------解决方案--------------------
不管你有几列,你想在那列前面分栏显示,就取得该列的位置,然后设置即可

string ls_colx 

ls_colx = dw_1.object.列名.x 
dw_1.Object.datawindow.horizontalscrollsplit = integer(ls_colx)

------解决方案--------------------
兄弟啊,服了你了,上边这么说都不明白,再解释下:
int li_colx 

this.hsplitscroll=true 
ls_colx = integer(this.object.列名.x) + integer(this.object.列名.width) 
this.Object.datawindow.horizontalscrollsplit = li_colx 


把上边这段代码复制你的某一个数据窗口控件的‘constructor’事件里边,‘列名’这两个汉字用你的数据窗口对象的列名代替,比如xxx或yyy,这看你自己的需要了,效果和excel里边的锁定窗格很相似。

还不放心,干脆举例吧:
比如,你想固定前三列,而你的第三列叫xxx,那么就写成
int li_colx 

this.hsplitscroll=true 
ls_colx = integer(this.object.xxx.x) + integer(this.object.xxx.width) 
this.Object.datawindow.horizontalscrollsplit = li_colx
想固定前四列,就用第四列的列名
其实这段代码不是非要放在‘constructor’事件里边的,写成函数需要的时候调用也可以,只是想让你先看一下效果,有个直观的认识。

如果你还不明白,我就只有跳楼了:(。
耽误了我5分钟睡觉时间,可不能不给分啊
  相关解决方案