数据窗口根据内容绘制表格
将内容以自由风格的数据窗口显示出来,但有些列的内容多少不定可能几百个汉字,也可能几千个汉字,同时需要画一些直线,以便将内容隔开,构成表格样式,那么该如何设置该列的高度,以便使内容能够完全显示出来?
已经把列“autosize height”属性选择上了,但这时通过程序获取的列的高度为设计时的列高,而非实际的高度,这样导致我的直线无法在合适的位置来画,请教高手如何解决???
在线急等!!
[解决办法]
一、对于pb9及以前版本,你用lenw函数,对于pb9以后版本,你用len函数就可以了,之所以用宋9就是因为它的字是等宽等高的;
二、如果用上面的函数调用,本来就是根据当前软硬件环境来得到宽度的;
三、得到的结构体有四个值,你弹出看一下就知道是什么了;
[解决办法]
mark 一下先;
两个月前,我做一个打印模块也碰到这个问题,用的是PB9 ,最后还是放弃了.
有两个地方处理不了:
1, detail.height 不支持表达式;
2, line.y1 和 line.y2 用表达式读取 detail.height 后,就像 #4 的样子.
[解决办法]
前几天写了个函数,说不上效率怎么样,但是对于FreeForm 风格的DW而言是比较通用的。具体的就不上传了,因为是在用户对象里边写的,扒起来挺麻烦的。 说了半天,其实就是要获取text的行数嘛。大致的思路是动态创建一个多行编辑控件,设定该控件的宽度等于当前列的列宽,高度可以设的很高,无所谓。该控件的字体以及字号也与当前列设为一致,然后把当前列的内容放进该多行编辑框中,用linecount取得行数,然后销毁该控件。根据获得的行数设定当前列的高度(也就是行数*行高,因为一般在freeform中这种列的高度与字高基本相等,最起码我遇到的都是这样),然后再设定line的坐标就可以了。我用起来效果还不错。