- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Foxpro 宏替换的应用 责任编辑:admin 更新日期:2005-8-6 这一章我们来学习 FOXPRO 的一个十分强大而又非常容易掌握的功能: 宏替换 。就从名字上看来这不是个容易对付的家伙,在开始讲 宏替换 之前,让我们先来看一看这样的一个例子:
假设我们有两个表, 1997 级学生成绩表( 1997.DBF )和 1999 级学生成绩表( 1999.DBF )。这时我们要求用户在浏览表之前先输入年份,以便我们来打开用户指定年度的学生成绩表。也许你会说: “ 这太容易了,俺会呀 ” 然后给出下面的方案:
先用一个文本框来接收用户的输入的年份,然后调用下面的代码来打开表:
DO CASE CASE THISFORM.TEXT1.VALUE = 1997 USE ‘1997.DBF CASE THISFORM.TEXT2.VALUE = 1999 USE 1999.DBF ENDCASE BROW
不错,您的这段代码表面上是达到了要求。但是它存在着几个问题:
问题 1 :当学生成绩表很少时(如:上例只有 1997.dbf 和 1999.dbf 两个表),用上面的代码可以轻松摆平。但是如果表很多时,假设有十个年度的学生成绩表( 1980.DBF---1990.DBF )。这下惨了,代码就会变成下面的样子:
DO CASE CASE THISFORM.TEXT1.VALUE = 1980 USE 1980.DBF CASE THISFORM.TEXT2.VALUE = 1981 USE 1981.DBF CASE THISFORM.TEXT2.VALUE = 1982 USE 1982.DBF CASE THISFORM.TEXT2.VALUE = 1982 USE 1982.DBF …… …… * 为了节省你的网费,我的纸,我就不继续打了,我想您应该明白哪些麻子……代表什么了吧…… ENDCASE
这样一来代码非常的冗长。但这还不是最糟的,更惨的在下面(天啊~~)。
问题 2 :当随着学生的升学,用来保存学生每年学习成绩的表也会动态的增加,这时上面的代码就完全失去了做用。用上面的代码无法预先知道到底会有多少个学生成绩表,也就不可能事先设 N 个 CASE 来判断年份了。
宏替换 :“不要担心,少要害怕,俺 宏替换 来也”。 宏替换 是 FOXPRO 为我们提供的一项强大的功能。它的运算符是“ ”,作用就是提取字符串的现值,返回值是字符串常数。
看到这里您的第一反应可能会是: “WHAT? 什么乱七八糟的,你说的是什么意思? ” 。
别忙,接着往下看您就明白了。下面就让我们用 宏替换 功能来完成上面例子的功能,是又好又省事儿,包您满意。这次假设我们有 20 个表( 1980.DBF 一 2000.DBF )分别存放每一年的学生成绩,放心我们绝对不会用 20 个 CASE 的:
C_YEAR = THISFORM.TEXT1.VALUE 用变量 C_YEAR 来接收用户输入的年份。 USE C_YEAR *上面这一句利用宏替换来根据 C_YEAR 的值来找打开对应的表,等价于 *Use ‘1999.dbf,只不过引号的表名是随 C_YEAR 的值而变罢了 BROW
搞定,收工。嘿。。。。。。。。怎么样,是不是又省时又省力呀?
再看下面的例子:
a=b b=庄稼
?a 显示的结果是“b” ?a 显示的结果是“庄稼”
也就是说宏替换将当前变量的值作为真正需要的变量,并返回这个变量的值。
VFP 的很多命令的某些地方不能使用变量,比如上面的 use 命令,你不能写成:
a=1997.dbf use a
这样就成了打开 a 这个表,这时就必须用宏替换,
use a
类似的还有当 locate for 后面跟的条件不是固定的,你的程序可以允许操作者选择不同的字段来查询,可能是:
姓名=...
也可能是:
电话=...
你不能直接把 for 后面的内容整个作为一个变量,这时宏替换也可以起作用,你可以把条件整个放入一个变量,比如字段名放在一个变量中 zdm,要查的内容放在 nr:
tj=zdm++nr+ locate for tj
如果这时 zdm=姓名,nr=庄稼,这就相当于:
locate for 姓名=庄稼
那么只要 tj 的内容是个正确的逻辑表达示,不论是什么内容都可以运行,这将给编程带来很大方便。
多学一招
你甚至可以把整条语句放入一个变量:
tj=locate for +zdm++nr+ tj
怎么样,酷吧!
注意
值得注意的是, 宏替换 不能递归的引用自已。比如下面的用法就是错误的:
S
您可能关注的文档
- Doonethingatatime一次做一件事.doc
- dpwjdii台钓调浮速成.doc
- DURR机器人系统在涂装生产线上的应用.doc
- DV摄影大赛主持稿.doc
- E--弹性模量与Es--压缩模量-名词对比.doc
- Eefdcba潍坊医学院关于做好.doc
- Ehsbcny销售环节财务管理办法.doc
- Ekromxy做事与做人团队的力量使你梦想成真.doc
- eliminate词形变化.doc
- Epeaxpi信息安全必威体育官网网址论文:新形势下计算机信息必威体育官网网址安全探析.doc
- 2024浙江衢州市常山县“英才荟”事业单位紧缺急需人才招聘18人笔试备考试题及答案解析.docx
- 2024浙江省近海海洋工程环境与生态安全重点实验室招聘1人笔试备考试题及答案解析.docx
- 2024广东阳江市阳西县补充招聘森林消防应急队员5人笔试备考试题及答案解析.docx
- 2024浙江松阳县新华书店有限公司招聘见习大学生1人笔试备考试题及答案解析.docx
- 2024云南曲靖市马龙区部分事业单位选调(含选调计划)26人笔试备考试题及答案解析.docx
- 2024广西柳州市残疾人劳动就业服务中心招聘残疾人专职委员1人笔试备考试题及答案解析.docx
- 2024广西河池市总工会公开招聘社会化工会工作者3人笔试备考试题及答案解析.docx
- 2024贵州华贵人寿保险股份有限公司第三次社会招聘15人笔试备考试题及答案解析.docx
- 2024广西百色市田东县5月城镇公益性岗位工作人员招聘4人笔试备考试题及答案解析.docx
- 2024广西百色市那坡县坡荷乡人民政府公开招聘编外工作人员2人笔试备考试题及答案解析.docx
1亿VIP精品文档
相关文档
最近下载
- 面向物联网应用的光纤传感信号实时监测与网络传输系统-电子与通信工程专业论文.docx VIP
- 2023年石家庄文化旅游投资集团有限责任公司人员招聘考试参考题库及答案解析.docx
- 大学生火锅创业计划书(word模板).doc VIP
- 从东北民歌《摇篮曲》的艺术特征看汉满族音乐创作的共通性.doc
- 小学语文毕业升学总复习全程模拟试卷及答案(18套).pdf
- 【课件】Welcome+Unit+Reading+and+Thinking+高一上学期英语人教版(2019)必修第一册.pptx VIP
- 心血管病影像基础课:磁共振评价右心功能的临床应用-肺动脉高压的一站式检查.ppt
- 四年级下册《灰尘的旅行》教学设计.docx
- 中职语文《士兵突击》.ppt VIP
- 学堂在线汽车理论(清华)章节作业答案.docx
文档评论(0)