如何在程序中随意修改数据窗口对象的各个带区、标题或格式等?
我的报表是动态生成的,现在希望随意修改各个带区的宽度、位置;希望随意在报表中增加文本(标题),或对标题栏的文本进行修改;希望能够在报表中划线,改变报表的格式等,这该如何办到呢?PB动态报表其实就是动态数据窗口,我个人认为动态数据窗口的难处在参数的设定,要做到各项都可随意设定。刚开始做时可以手工设置datawindow对象,再在程序中用dw_1.object.datawindow.syntax将其结构倒出来分析,以便有个参考。对于数据窗口中各项的更改可以用Modify()函数来实现,举几个例子:
1、改变detail区的高度:dw_1.Modify("DataWindow.detail.Height=200")
2、对标题栏文本的更改(文本名为dept_name_t):dw_1.modify("dept_name_t.text = '单位名称'")
3、增加计算域:假设一grid型的数据窗口,其中有个字段为部门号dept_id,我们要增加一个统计部门数的计算域count(dept_id for all):
string ls_modrow
dw_1.Modify("DataWindow.summary.Height=64")
ls_modrow = 'Create compute(band=summary font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="1" background.color="536870912" color="0" x="9" y="4" height="52" width="297" format="" expression="count(dept_id for all)" alignment="1" border="0" crosstab.repeat=no )~r~n'
dw_1.modify( ls_modrow )
4、以下程序段让grid数据窗口中网格线不见,并在detail区增加加一条线
string ls_line
DW_1.Modify("DataWindow.Grid.Lines='1' ")
dw_1.Modify("DataWindow.detail.Height=332")
ls_line = 'Create line(band=detail background.mode="2" background.color="16777215" pen.style="0" pen.width="5" pen.color="0" x1="37" y1="320" x2="1458" y2="316" )~r~n'
dw_1.modify( ls_line )
象这种数据窗口动态增加控件的方法,也可以先在数据窗口画板中手工加上去,倒成sytnax后,查看其语法,再反写回去即可。
页:
[1]