当前位置: 代码迷 >> PB >> 动态创建的datawindow,怎么增加一个序号列
  详细解决方案

动态创建的datawindow,怎么增加一个序号列

热度:70   发布时间:2016-04-29 10:03:47.0
动态创建的datawindow,如何增加一个序号列
在 painter 中的数据窗口是容易增加一个的(使用增加一个计算域方式)。但是动态创建的就不知到如何搞定,相信这是一个常用的需求吧。多谢支招!

------解决方案--------------------
写一个数据窗口的函数uf_lineno(),代码如下:

string ls_name
int li_font_h,li_i
IF NOT (isvalid(THIS.object)) THEN //1
RETURN
END IF //1

for li_i = 1 to Integer(this.Describe("DataWindow.Column.Count"))
ls_name = this.Describe("#" + string(li_i) + ".name")
if this.Describe("#" + string(li_i) + ".visible")='1' then
li_font_h = Integer(this.Describe("#" + string(li_i) + ".Font.Height"))
exit
end if
next
THIS.modify("destroy es2008_no")
THIS.modify("destroy es2008_no_t")
THIS.modify("create compute(band=Detail" + " color='0' alignment='2' border='0' pointer='res\3dgarrol.cur' " + " resizeable=0 moveable =0 x='1' y='4' height='100' width='151'" + " name=es2008_no tag='' expression='getrow()' font.face='宋体' font.height='" + String(li_font_h) + "' font.weight='400' background.color='" + string(rgb(210,210,210)) + "')")
THIS.modify("create text(band=Header" + " color='" + string(rgb(0,0,255)) + "' alignment='2' border='0'" + " height.autosize=No moveable =0 x='1' y='4' height='100' width='151' text='行号'" + " name=es2008_no_t tag='' font.face='宋体' font.height='" + String(li_font_h) + "' font.weight='400' background.color='" + string(rgb(210,210,210)) + "')")

------解决方案--------------------
探讨
在 painter 中的数据窗口是容易增加一个的(使用增加一个计算域方式)。但是动态创建的就不知到如何搞定,相信这是一个常用的需求吧。多谢支招!
  相关解决方案