PB 之多行标题报表

一种自认为较好的添加标题的方法。
假设给Grid加两个标题:d_bt1,d_bt2。d_bt1为大标题,d_bt2为小标题,如有多个小标题同样添加。假设数据最后一列名为n03。
一、添加标题d_bt1(大标题)
1、放一个Text(文本框)对象到DataWindow的表头上:将header向下拉,再将表头部分向下移,然后放一个Text对象到header区。
2、在此Text上点击鼠标右键选择Properties:①General:在name栏设置标题名:d_bt1;②Font:Text Color->Black,Background->White;③Position:x=0,y=0,Layer->Foreground;④Expression:设置font.weight与width的表达式:long(describe('n03.x'))+long(describe('n03.width'))+10,其中n03为Detail部分的最后一个字段名称,加10是为了盖住最右边的网格线。将标题设为居中,在改变表格栏目大小时标题会随之变动。
3、改变Text的位置和宽度,然后将此Text的内容改为正确的报表标题,记下Position.Width与Height的值。
二、添加标题d_bt2(小标题)
1、放一个Text对象到DataWindow表头的标题d_bt1下。
2、在此Text上点击鼠标右键选择Properties:①General:在name栏设置标题名:d_bt2;②Font:Text Color->Black,Background->White;③Position:x=0,y=200(200为d_bt1.Positon.Height的值),Layer->Foreground,将Width的值设为d_bt1.Position.Width的值;④Expression:设置font.weight与width的表达式:long(describe('n03.x'))+long(describe('n03.width'))+10,说明同上。
三、添加横线
1、在DataWindow表头的标题d_bt2下放一械Line(横线)对象。
2、在此Line上点击鼠标右键选择Properties:①Position:x1=0,x2=d_bt1.Position.Width,y1与y2的值应为d_bt2.Position.y+d_bt2.Position.Height,在设计时取值比此值稍大一些,便于设计;②Expression:x2=long(describe('n03.x'))+long(describe('n03.width'))+9,y1(y2)=long(describe('d_bt2.y'))+long(describe('d_bt2.height'))
四、在脚本中动态修改标题内容
对于标题中文本可以用dw_1.modify("text_name.text = '标题'") 在程序中动态修改,标题部分还可使用变量。
五、如何修改显示方式为grid的DataWindow的字段的顺序?
在数据窗口画板中,PB不允许拖动列来改变列的顺序。技巧是在预览中,拖动列到你想要的顺序,返回到画板中,保存即可。
六、如何取DW中Summary的值
if dw_1.RowCount() > 0 then
em_1.text = string(dw_1.Object.hjhs[1])
else
em_1.text = '0'
end if

七、如何使数值0显示为空白
在Detail上选中相应的字段(数值型),在属性(Properties)中的Expressions的color栏输入:
if(字段名 = 0, rgb(255,255,255), rgb(0,0,0))

八、如何确定多选的行
用isselected()
选择:
long CurRow
boolean result
CurRow = dw_employee.GetRow()
result = dw_employee.IsSelected(CurRow)
IF result THEN
  dw_employee.SelectRow(CurRow, FALSE)
ELSE
  dw_employee.SelectRow(CurRow, TRUE)
END IF
应用:
for currow = 1 to dw_1.rowcount()
  if dw_employee.IsSelected(CurRow) then
     ...
  end if
next

猜你喜欢

转载自www.cnblogs.com/Bokeyan/p/11775271.html