PB 之多行标题报表
第一种
1.添加一个text,将背景色选为非透明色;position中的layer,选为foreground,这样就可以拖动列宽了
2.在position属性标签页的width里,点右边的小按钮,出现定义其宽度的对话框,在里面输入long(describe("ck_je_t.x")) + long(describe("ck_je_t.width")) - long(describe("ck_sl_t.x")),这里红色的部门作一个解释,这里实际上定义了text的动态列宽,即它的列宽要依据“金额”列的x值 + “金额”列的宽度,再减去“数量”列的x值,这样实际上就在程序运行时,可以动态地设置“出库”标题栏的列宽了。
3.再设置text的x值,在PB10.5里,x值右边的小按钮显示为灰色,不可用,没关系,关掉它,在system tree里找到它,再用edit source找开它,学会分析,找到刚才添加的text的属性,在默认值后面加上一个表达式,我加的是“~tlong(describe(~"ck_sl_t.x~"))”,注意其中的格式,在edit source里,会用~t作为分隔符。
4.好了,试试看吧, 在程序运行时,拖动列,跨列的标题头也跟着动了,完全达到了我们要求的效果。
假设给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
PB 之多行标题报表的更多相关文章
- RDLC报表系列--------行分组报表
报表分组开发步骤: 先看总体效果:如图 下面就做个看看... 1.先将数据处理成如下结构 如图 2.创建数据集DataSet.xsd,创建表->右键选择添加数据表->添加行(ctrl+L ...
- DataGridView自定义行样式和行标题
定义两个样式对象: //定义两种行样式 private DataGridViewCellStyle m_RowStyleNormal; private DataGridViewCellStyle m_ ...
- GridView多行标题行、改造标题行、自定义标题行完美版
网上找了个找,最终还是自己做的比较靠谱,道理很简单,直接看代码 代码: /// <summary> /// =================== 两行标题行 ============ ...
- GridControl 复合表头(多行标题)
说明: 最好是通过编辑视图进行设计,后台编码有点麻烦. 例图:(上面的GC是后台编写 ,下面的是设计器设计) 后台代码编写: public void InitCtrl() { DevExpress.X ...
- Python:读取Excel 不带第一行标题
#根据第0到第1列进行重建 0-X 1-Y PX=sheet_name.col_values(0)[1:] PY=sheet_name.col_values(1)[1:] 读取的某一列后在后边加[1: ...
- DataGridView控件行标题显示序号
Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dataGridViewX1.R ...
- 提取data.frame中的部分数据(不含列标题和行标题)
?unlist Given a list structure x, unlist simplifies it to produce a vector which contains all th ...
- python读取excel数据并以第一行标题加内容组成字典格式返回
excel结构如图所示: 代码: import xlrd ''' 通用获取excel数据 @:param path excel文件路径 @:param sheet_name excel文件里面shee ...
- JMeter学习-025-JMeter 命令行(非GUI)模式详解(三)-测试图形化 HTML 报表(dashboard)生成
闲话少述,接 上文 继续... 6.生成测试报表 生成测试报表前,需要先生成性能测试结果 jtl 或 csv 文件,用于测试结果的生成. jmeter -n -t JMeter分布式测试示例.jmx ...
随机推荐
- 洛谷 P4017 最大食物链计数 题解
P4017 最大食物链计数 题目背景 你知道食物链吗?Delia生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条.于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧 ...
- 洛谷 SP740 TRT - Treats for the Cows 题解
SP740 TRT - Treats for the Cows 题目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the ...
- 【叔小生】JavaScript进阶篇
如何插入JS JS基础语法 语法.函数.方法 提取字符串substring() substring() 方法用于提取字符串中介于两个指定下标之间的字符. <!DOCTYPE HTML> & ...
- mysql 表联结,内部联结
mysql> select * from user; +------+----------+-----------+ | id | name | address | +------+------ ...
- Django基础之redirect()
参数可以是: 一个模型: 将调用模型的get_absolute_url()函数 一个视图, 可以带有函数: 可以使用urlresolvers.reverse来反向解析名称 一个绝对的或相对的URL, ...
- rancher2.x的安装
docker run -d --restart=unless-stopped \-p 80:80 -p 443:443 \-v /var/lib/rancher:/var/lib/rancher/ ...
- md5加密后不能解密
MD5加密原理是散列算法,散列算法也称哈希算法.计算机专业学的数据结构就有哈希表这一知识点.比如10除以3余数为一,4除以3余数也为一,但余数为一的就不知道这个数是哪个了.所以md5不能解密.就算是设 ...
- 第06组 Alpha冲刺(6/6)
队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 主要完成了个人主页模块的接口设计 完善后端的信息处理 GitHub签入记录 接下来的计划 ...
- Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions
Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions ICCV workshop 2019 2019-09-15 11 ...
- typescript - 4.es5与typescript的类与继承
ES5中的类与类的继承 (1)简单的类 function Person() { this.name = '张三'; this.age = 20; } var p = new Person(); ale ...