文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» PowerBuilder » 大文本报表显示自动折行疑难       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 大文本报表显示自动折行疑难  ( 查看:219  回复:1 )   
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3110
精华 1
无忧币 5991
积分 4100
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-8 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-6-26 09:21   标题:大文本报表显示自动折行疑难
上一帖 |
大文本报表显示自动折行疑难
问:在大作《请教搞手,大文本报表显示自动折行问题?》中提到:
在做report时,如果显示文字超过水平边界,希望能自动折行,但控件属性无法设置,如果文本里有换行符可以,请问,有否高招,设置其显示的自动折行属性。谢谢!!!!!!
答:搞手?:)
由于只有MultiLineEidt能使大文本自动折行,所以需要将每行的数据都加到各自的mle中,这里假设浏览的行数是固定的,因此只需要知道显示的顶行行号即可实现:
dw_1.Object.DataWindow.FirstRowOnPage 属性正好可以解决这一问题.
实现方法:
在浏览窗口添加一个实例变量: string is_FirstRowOnPage = "" .用于记录顶行行号在浏览窗口加一个新的函数 integer wf_refreshtext() :
//假设dw_1为浏览数据窗口,mle_1, mle_2, mle_3为显示大文本的多行编辑框
string ls_row
long i, ll_FirstRowOnPage
ls_Row = dw_1.Object.DataWindow.FirstRowOnPage
If ls_Row = is_FirstRowOnPage then
return 0 //如果顶行行号未变,不用刷新
Else
is_FirstRowOnPage = ls_Row
ll_FirstRowOnPage = Long( ls_Row )
mle_1.text = dw_1.object.Intro_Pic[ll_FirstRowOnPage ]
mle_2.text = dw_1.object.Intro_Pic[ll_FirstRowOnPage + 1]
mle_3.text = dw_1.object.Intro_Pic[ll_FirstRowOnPage + 2]
return 1
End If
函数作好后,需要在可能改变数据窗口显示的地方调用,主要有两个地方:
数据窗口的rowfocuschanged事件和scrollvertical事件
上面说的方法其折行以单词为单位,因此在显示中文时如果不含空格就不能折行
如果只是作为显示的话,有一个变通的方法:
在需要显示大文本的地方放一个多行编辑框(MultiLineEdit):mle_1
在含有大文本数据列的数据窗口控件的rowfocuschanged事件中加入如下脚本:
mle_1.text = this.object.Intro_Pic[currentrow]



用户必读,51CTO积分系统调整通知
2008-6-26 09:211楼
[ 顶部 ]
 
zxcer23
副版主  点击可查看详细


十二生肖之狗   射手座   行业勋章   技术勋章   诚信兄弟  
帖子 87
精华 1
无忧币 188
积分 151
阅读权限 140
注册日期 2008-5-4
最后登录 2008-10-8 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-29 00:39 
厉害 尝试下



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-29 00:392楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号