| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2070 人关注过本帖
标题:VFP报表预览问题(求助)已解决供大家参考
取消只看楼主 加入收藏
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
结帖率:100%
收藏
 问题点数:0 回复次数:6 
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
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
实际打印的时候是正常的,如果预览几次,有的时候也正常,不知道什么原因》
2014-02-06 15:18
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
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
找到原因了,是由于备注转换为字符时,最后一个字符是半个汉字造成的,怎么检测一段文字最后一个字符是非正常字符
2014-02-07 09:14
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
回复 12楼 taifu945
非常感谢,给了个提醒,帮忙看看我写的代码。呵呵。
2014-02-07 13:42
qczx3358
Rank: 2
等 级:论坛游民
帖 子:44
专家分:15
注 册:2014-1-19
收藏
得分:0 
互相帮助。正在努力学习呢。
2014-02-11 18:58
快速回复:VFP报表预览问题(求助)已解决供大家参考
数据加载中...
 
   



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

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