现在的位置: 首页 > 综合 > 正文

数据窗口打印时,连续字母不能自动折行怎么办?

2018年02月07日 ⁄ 综合 ⁄ 共 883字 ⁄ 字号 评论关闭

这里有一个小函数,赋值前调用一下即可。我这里函数名为gf_rowscode(),其实随便你起什么名字都可以。

调用示例:

dw_1.object.xh[ll_i] = gf_rowscode(String(ldst_data.object.xh[ll_j]),8))

就是每行显示8个字符,超过的部分自动折行

 

以下函数在pb8.0.4下测试通过

//-------------------------------------------------------------------------//
//函数名称:gf_rowscode()
//功能描述:在源字符串中插入换行符,用于打印或显示时对连续字母或数字自动换行
//参数:  as_str string 源字符串
//    ai_n  integer 每行显示的字母个数
//返回值: string 插入换行符的字符串
//-------------------------------------------------------------------------//
string ls_newstr
integer li_i,li_len,li_asc,li_t

If len(as_str) <= ai_n Then
 ls_newstr = as_str
Else
 li_len = len(as_str)
 for li_i = 1 to li_len
  li_asc = asc(midw(as_str,li_i,1))//这里用midw而不是mid,是因为pb8中mid按字节取,midw按字符取,用midw可以避免把双字节字符分开而造成乱码
  If li_asc < 0 then li_asc = li_asc + 65536
  If li_asc > 255 then
   li_t = li_t + 2
  Else
   li_t = li_t + 1
  End If
  ls_newstr += (midw(as_str,li_i,1))
  If li_t > ai_n Then
   ls_newstr += "~n"
   li_t = 0
  End if
 next 
End If

return ls_newstr

抱歉!评论已关闭.