| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2075 人关注过本帖
标题:VFP报表预览问题(求助)已解决供大家参考
只看楼主 加入收藏
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
结帖率:100%
收藏
 问题点数:0 回复次数:16 
VFP报表预览问题(求助)已解决供大家参考
想问一下substr()与substrc()的差别,还有len()与lenc()的差别。

非常感谢各位朋友!
造成这种情况,是由于备注截取字符时,最后一个字符是半个汉字造成的。
解决方法如下
程序代码:
*!*测试字符串最右端字符是否为非正常汉字字符
clear
*!*清屏
a="1好人12来,了,0中国,"+chr(200)
*!*赋值给变量a ,这赋值变量测试时可能用chr()函数输入非正常汉字字符
?len(a)
*!*显示a字符串数值
?rightc(subs(a,1,len(a)),1)
*!*取a最右边的字符,这个很关键,如果a最右边是一个非汉字字符或字母\数字就会取一个字符,如果是汉字会取整个汉字,也就是2个字符
?len(rightc(subs(a,1,len(a)),1))
*!*取得a右边字符的字符串数值,如果数值是2那么是汉字,如果数值是1则为非正常汉字或字母\数字等
?asc(rightc(subs(a,1,len(a)),1))
*!*取得a最右边字符的asc码值,再根据asc码是否大于128区分是字母\数字,还是非正常汉字

*!*下面是测试程序VFP6.0运行正常,供大家参考或提出建议。
if len(rightc(subs(a,1,len(a)),1))=2
    ?"汉字"
else
    if asc(rightc(subs(a,len(a),1),1))>128
        ?"非正常汉字"
    else
        ?"数字或字符"
    endif
endif


以下是引用"bccn0906"朋友的代码,有新的思路。
程序代码:
不用判断,直接截取。
如:每截取9个字符为一段,截完为止
a="1好人12来,了,0中国,"+chr(200)

I=1
L=9
STR1=''

***************
i=I+LEN(STR1)
STR1=SUBSTRC(SUBSTR(a,I,L),1) &&取第1段
?STR1
*****************
i=I+LEN(STR1)
STR1=SUBSTRC(SUBSTR(a,I,L),1) &&取第2段
?STR1
****************
i=I+LEN(STR1)
STR1=SUBSTRC(SUBSTR(a,I,L),1) &&取第3段
?STR1
*按此类推......
if empty(STR1)
    wait wind '截取完毕'
endif

输入内容相同,报表预览时效果不一样,不管哪种预览打印的时候正常,如图
出现问题是随机的,报表没有修改。
图片附件: 游客没有浏览图片的权限,请 登录注册

正常情况
图片附件: 游客没有浏览图片的权限,请 登录注册

有知道原因的吗?

[ 本帖最后由 qczx3358 于 2014-2-7 17:25 编辑 ]
搜索更多相关主题的帖子: 字符串 汉字 朋友 
2014-02-06 14:54
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
没见过。
实际打印,也这样?

认真看书学习,弄通Fox主义。
2014-02-06 15:12
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
实际打印的时候是正常的,如果预览几次,有的时候也正常,不知道什么原因》
2014-02-06 15:18
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
变更显示比例看看

认真看书学习,弄通Fox主义。
2014-02-06 15:59
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
楼主,是否安装了打印机驱动程序?如果没有,请任意安装一款打印机驱动,最好是A3幅面的。
2014-02-06 16:15
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
相同数据,预览时出现的结果。谢谢大家的帮助,我用三星1610打印机,更新一下打印驱动试试。
预览不相同,可打印的时候都是正常的。真晕了。
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册
2014-02-06 16:46
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
回复 4楼 wzxc
变更显示比例没有效果。
2014-02-06 16:52
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
安装 VFP SP2 了吗(最好不要用汉化版),或者发你的报表和数据上来看看
2014-02-06 20:34
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
手工整理一下文章格式,再预览打印看看。目的:是检查文字之间是否存在 chr(13),chr(10),对预览和打印的干扰。
2014-02-06 23:44
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
预览是会出现这种情况的,与实际打印经常会出现差异。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-02-07 08:58
快速回复:VFP报表预览问题(求助)已解决供大家参考
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019934 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved