数据窗口TEXT自动换行的问题

wfpp8008 2007-12-25 10:50:22
在数据窗口中,有一个字段,我用TEXT,用于输入产品的说明.现在的问题是:
我把字段拉伸之后,如何让此字段,在输入的时候,到了边沿就自动换行.现在是
用回车可以换行,但如果不回车,字符会一直走下去,不美观.
各位有什么好的方法?
指教.
...全文
462 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
有点难度哦
chengg0769 2008-01-15
  • 打赏
  • 举报
回复
按楼上回答的方法设置后,汉字是可以正常吧。但是英文应该不行,数字也应该不行。

==================================================================
QQ群请加: 6539042(powerbuilder11) chengg0769创建
dawugui 2008-01-07
  • 打赏
  • 举报
回复
数据窗口中的折行显示

  数据太多时,自动换行显示,这是一个很实际的问题。有以下两种情况:
  1、标题的换行显示
  2、列中数据的自动换行。
  上面两个问题的解决方法不同。
  一、标题换行
  使用‘~r~n’即可。在要换行的位置直接输入这些字母就可以了。
  二、列数据折行
   需要从以下3个方面进行设置:
   1、将列所在节(通常是Detail节)的高度设置自动,即选中节(Band)的‘AutoHeight’属性。
   2、将要自动折行的列的AutoHeight属性选中。
   3、取消列的‘Auto Horz Scroll’属性。

  自动折行设置:

  1、在DataWindow Painter中打开DataWindow;
  2、在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口;
  3、选择Position标签, 选中Autosize Height 多选框;
  4、选择Edit标签, 不选中Auto Horz Scroll多选框;
  5、单击OK按钮, 保存所做的修改;
  6、点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项;
  7、选中Autosize Height多选框;
  8、单击OK按钮, 保存所做的修改;
  9、保存DataWindow。

  Powerbuilder是数据库开发最优秀的前端开发工具,强大的数据窗口功能令开发者无可置疑。然而,在应用开发过程中,有些特殊的中国式报表令开发者一筹莫展。这些特殊的报表时而不时的光临开发者。比如怎样在数据窗口中自动折行。
这个话题也许上个世纪就提出了,但我查阅了所有资料,答案都不能解决实际问题。经过我多次设置和测试,在基本不写任何代码的情况下,终于大功告成。请看下面的实现步骤:
  第一步:建立并调整网格数据窗口对象。如下图:

  

  第二步:设置自动折行列edit页属性。如下图:

  

  第三步:设置自动折行列position页属性。如下图:

  

  说明:gzrw要自动折行列,64是自动折行列(gzrw)高度,除数60三十二个汉字的长度,因为我想把gzrw列三十二个汉字就自动换行。乘数60实际上就是64,这是为了当多行时,字行间的距离更美观些。乘数60和除数60两者毫无关系,这里只不过碰巧了。请看下图结果:

  

dawugui 2008-01-07
  • 打赏
  • 举报
回复
数据窗口中字段的自动换行和行间距的控制

作者:郭宝利
先说自动换行,操作如下:
1、取消字段的Auto hScroll属性
2、设置Auto Height属性
3、设置Auto VScroll属性
4、设置Limit属性为0,或者比较大的一个数(起码超过一行可以显示的字符个数)
经过上面的设置,就可以自动换行了。但是问题就来了,行间距非常紧凑,不算美观。在合同等格式比较明确的程序开发时,显示行数是确定的,就可以使用下面的技巧来实现:
1、比如,可以放置2行。那我们使用2个计算域来代替原来的字段。2个计算域间的间距我们可以随便调整。当然,如果可以放更多的行,那我们就需要放更多的计算域。
2、这点是关键点,就是如何让原来字段中的内容分配到2个计算域中。第1个的表达式如下书写:
if(lena(lefta(nr,98)) = len(lefta(nr,98)) * 2,lefta(nr,99),lefta(nr,98))
第2个计算域的表达式如下书写:
if(lena(lefta(nr,98)) = len(lefta(nr,98)) * 2,MidA(nr,100),Mida(nr,99))

上面的应用在PB10中调试成功。虽然可以较好的解决多行文字的间距问题,但是有它的局限性,适用于显示格式比较明确的应用。

读者朋友可以自己考虑,如果3行如何实现。

SKY_4K_PPM 2008-01-07
  • 打赏
  • 举报
回复
同意wangxg_1980
jackiecheng001 2008-01-07
  • 打赏
  • 举报
回复
同意wangxg_1980
yangdabao 2008-01-07
  • 打赏
  • 举报
回复
同意wangxg_1980
wangxg_1980 2007-12-26
  • 打赏
  • 举报
回复
1选择Position标签, 选中Autosize Height 多选框;
2选择Edit标签, 不选中Auto Horz Scroll多选框;
3点中Detail Band 选中Autosize Height多选框;

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧