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

这里有一个小函数,赋值前调用一下即可。我这里函数名为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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值