您的位置:首页 > 其它

datawindow自动换行打印,需结合该函数一起使用

2013-06-19 15:39 323 查看
1.设置

具体步骤如下:
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。
2.增加函数

global type f_newline from function_object
end type

forward prototypes
global function string f_newline (string as_string, integer ai_charnum)
end prototypes

global function string f_newline (string as_string, integer ai_charnum);//功能:将字符串转换为换行文本
//参数:as_string  待转换字符串
// ai_charnum 每行字符数
//两个英文算一个字符,一个汉字两个字符

//3.a一二三四五六七八九a一二三四五六七八九十
//2.一二三四五六七八九十
//3.ab一二三四五六七八九
string ls_doc = ""
long li_je//奇偶

long i, ll_strlen
int li_asc, li_ascnum, li_endchar=0, li_add =0
li_ascnum=0
string ls_left_str,ls_allstring
string ls_str1,ls_str2
ls_allstring=as_string//原始字串

long j,jcnt
jcnt=Ceiling(len(as_string)/ai_charnum)//分成几段,
ls_str2=""

//messagebox("分隔",string(jcnt))
for j=1 to jcnt//分成n段
li_ascnum =0
ls_left_str=left(as_string,ai_charnum)//取左边部分
//判断该串中有多少个ascii字符
for i=1 to ai_charnum
if Asc (mid(ls_left_str,i,1))<=126 then li_ascnum ++
next
//如果为奇数
li_je=mod(li_ascnum,2)
if li_je=1 then //如果为奇数,ai_charnum+1
ls_left_str=left(as_string,ai_charnum+1)
as_string=mid(as_string,ai_charnum +2,len(as_string)-ai_charnum -1)
else

ls_left_str=left(as_string,ai_charnum)
as_string=mid(as_string,ai_charnum +1,len(as_string)-ai_charnum)
end if
if len(ls_doc)<=0 then
ls_doc=ls_left_str+" "
else
ls_doc=ls_doc+ls_left_str+" "
end if
next

return ls_doc

end function

3.-----------------------------------

增加计算列 f_newline(字段,10)//10为一行想的字符过数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐