当前位置: 代码迷 >> PB >> PB的软肋,怎么来解决
  详细解决方案

PB的软肋,怎么来解决

热度:104   发布时间:2016-04-29 05:34:20.0
PB的软肋,如何来解决
个人觉的是软肋,不知道各位是否已经解决。



个人所用的版本是PB10 Build 9731  . 如图所示,PB在显示一个栏位的中文字符的时候,如果过则就要自动换动。
我有设 以下3项
1. 栏位的 position > Autosize Height
2. 横线的Y1和Y2 坐标值 rowheight() - 3
3. detail1带的属性autosize height 

但是预览出来的结果上下两行中文总是挤在一起,没有间距,非常难看。然后下面的一条横线就是压着文字底部。显示的出来的画面,不好看。

如果能像word那样设一下行间距就好了。

以上的问题,不知各位是如何来实现的。





------解决方案--------------------
在,列的下面再放一个控件,例如静态文本框之类的,让这个控件all above,text属性为空,透明背景颜色,文本框设置一个高度作为两行数据的间隔

试试这个办法可以不
------解决方案--------------------
引用:
个人觉的是软肋,不知道各位是否已经解决。



个人所用的版本是PB10 Build 9731  . 如图所示,PB在显示一个栏位的中文字符的时候,如果过则就要自动换动。
我有设 以下3项
1. 栏位的 position > Autosize Height
2. 横线的Y1和Y2 坐标值 rowheight() - 3
3. detail1带的属性autosize height 

但是预览出来的结果上下两行中文总是挤在一起,没有间距,非常难看。然后下面的一条横线就是压着文字底部。显示的出来的画面,不好看。

如果能像word那样设一下行间距就好了。

以上的问题,不知各位是如何来实现的。


把字体大小调整一下,效果会好些,或者用微软雅黑字体,就会有一些间距了
------解决方案--------------------
其实你可以把detail中的所有列的y值都加大,然后行分隔线放到列上面,控制分割线在getrow() = 1 时不显示
就是说把行与行之间的行距,由传统的在行尾改为在行头


如果不赞同上面的做法,也可以老老实实的更改每一行的行高
(1)先增加一个计算列c,表达式为:rowheight()
(2)取出每一行的行高,并取消detail的height的autosize属性,然后通过setdetailheight逐行设置新的行高为原行高加上某一固定值,如下列中的50

long ll[], i, rc
//获取每行的行高到数组ll中
ll = dw_1.object.c.primary
//取消detail的自动行高
dw_1.modify("datawindow.detail.Height.AutoSize=no")
rc = dw_1.rowcount()
//逐行设置行高为原自动行高后的行高,再加上固定值50
for i = 1 to rc
dw_1.setdetailheight( i, i, ll[i] + 50)
next
------解决方案--------------------
把detail带的那根横线放在上面, 想要字离线间隔远一点就拉下来一点

------解决方案--------------------
pb12.5的话不会有这样的问题
  相关解决方案