newease 发表于 2009-8-11 08:46:16

如何在程序中随意修改数据窗口对象的各个带区、标题或格式等?

我的报表是动态生成的,现在希望随意修改各个带区的宽度、位置;希望随意在报表中增加文本(标题),或对标题栏的文本进行修改;希望能够在报表中划线,改变报表的格式等,这该如何办到呢?

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]
查看完整版本: 如何在程序中随意修改数据窗口对象的各个带区、标题或格式等?

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com