您所在的位置:开发 > 语言&工具 > 大文本报表显示自动折行问题

大文本报表显示自动折行问题

2005-09-21 10:42 51cto.com整理 51cto.com 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

由于只有MultiLineEidt能使大文本自动折行,所以需要将每行的数据都加到各自的mle中,这里假设浏览的行数是固定的,因此只需要知道显示的顶行行号

AD:

由于只有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_FirstRowOnPagels_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]


网友评论TOP5

查看所有评论(

提交评论

  1. 编程排行榜:图形编程的LOGO语言
  2. 什么是响应式Web设计?

热点专题

更多>>

读书

信息安全风险评估
信息安全风险评估理论研究日趋成熟,相关资料比较充分,但有关评估实际工作的参考资料很少。本书以信息安全风险评估实践为基础,

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone