- 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
您可能关注的文档
- EXCEL使用技巧精华.doc
- excel使用高级技巧信息.doc
- excel全部公式符号意义.doc
- EXCEL公式计算工作日.doc
- excel函数使用大全.docx
- EXCEL函数公式学习大全.doc
- EXCEL函数在审计中应用.doc
- Excel函数教程:AND、OR、NOT逻辑函数.doc
- Excel函数速查表(给力2011).doc
- Excel合并多个单元格内容的方法(Excel提取单元格内容的技巧).doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)