VFP6.0学习笔记(修订)

VFP6.0学习笔记(修订)
VFP6.0学习笔记(修订)

VFP6.0学习笔记2008年4月10日

目录

一、VF6.0的主索引

二、VF6.0表单建立

三、VFP中”退出”按扭代码和VFP中猜数游戏中”开始”程序码

四、VF6.0表单居中

五、VFP中调用焦点方法:

六、Vf6.0中两个表的链接查询

七、VFP常用命令及用法实例

八、在VFP中显示某特定条件的数据记录

九、VFP中身份证号码修复

十、VFP中计算年龄

十一、VFP程序设计中英文注释

十二、VFP中统计年龄

十三、在VFP中设置焦点

十四、VFP中几个常用函数1

十五、VFP中时间函数

十六、VFP中的字符串替换命令

十七、VFP中的常量

十八、在一个表内查询有关字段内容的方法:

十九、VFP的多表查询

一、VF6.0的主索引

VF6.0中的主索引的用途,是指在表中不能出现重复记录.

二、VF6.0表单建立

改变容器大小选项:在“全部”选项卡里输入Height(高度).Width(宽度值)

改变图片显示容器属性:在属性框中选择Stretch.默认是0‘剪载’,改成变填充,可将图片在容器中全部显示.

修改窗体介绍:在属性栏选Caption.添加窗体背景图,在属性栏里选Picture,点上面的浏览‘按钮’,进行查找图片文件.

三、VFP中”退出”按扭代码和猜数游戏中”开始”程序码

1、退出:

在方法程序中双击Click Event,输入:

thisform.release&&本表单.释放

2、开始:

https://www.360docs.net/doc/057226217.html,bel1.visible=.f.&&重新开始,abel1标签的可见为假,即赢字隐去.

https://www.360docs.net/doc/057226217.html,bel2.visible=.f.&&将label2标签的可见为假,即"输"字隐去.

thisform.text1.value=int(rand()*10)&&设置本表单text1文本框的随机值.本例中随机值是10。

thisform.text2.value=int(rand()*10)&&设置text2文本框

的随机值.本例中随机值是10。

thisform.text3.value=int(rand()*8) &&设置text3文本框的随机值.

if thisform.text1.value=7 .or. ;

thisform.text2.value=7 .or. ;

thisform.text2.value=7 &&假如text1的值等于7或者text2等于7或者text3等于7.如果为两行及以上可用分号(;)分开,最后一行不用分号,不影响命令执行。

https://www.360docs.net/doc/057226217.html,bel1.visible=.t.&&那么label1标签的可见为真,即"赢"字显示出来

else &&否则

https://www.360docs.net/doc/057226217.html,bel2.visible=.t.&&label2标签可见为设为真,即"输"字显示出来.

endif &&结束假设

四、VF6.0表单居中

在表单属中选择AutoCenter,将其值改为‘真’,表示表单自动居中。为了使表单运行时不再运行其它语句,在属性窗体中选WindowType,将其值改为‘1’模式,只有在关闭表单后其它程序才能使用。

修改表单名称:Caption修改名称

方框透明:BackStyle中修改为透明

五、VFP中调用焦点方法:

对象名称.setfocets

程序将自动在该方框中设置输入焦点.

六、Vf6.0中两个表的链接查询

SELECT Jbqk.妇女编码, Jbqk.妇女姓名, Jbqk.妇女身份证, Jbqk.妇女民簇, Jbqk.妇女婚姻, Jbqk.女婚变日期, Jbqk.丈夫姓名, Jbqk.丈夫身份证, Jbqk.丈夫民簇, Jbqk.丈夫婚姻, Jbqk.避孕时间, Jbqk.避孕状况, Jbqk.xynh, Jbqk.xynvh, Syjjtzn.孩次, Syjjtzn.性别, Syjjtzn.是否合法, Syjjtzn.子女出生, Syjjtzn.生育备注;(指明调用哪些字段,每一个字段前必须加有表名称,字段名之间用英文或半角下的逗号“,”分开)

FROM jbqk INNER JOIN syjjtzn ;(指明调用表的名称)

ON Jbqk.妇女编码= Syjjtzn.妇女编码;(指明两个表关联的字段名)

ORDER BY Jbqk.妇女编码;(设定排序字段名,本例中为升序)INTO TABLE g:\资料类\数据库文件\ylfn\出生查询2.dbf(查询结果保存路径)

七、VFP常用命令及用法实例

以“表”形式浏览内容:brow(表式浏览)

条件:for(浏览条件)

显示字段名:fields例如:brow fields fnxfhm (回车)只显示字段名为fnxfhm的内容(注意:两个命令之间不能用for)

八、在VFP中显示某特定条件的数据记录

包含命令:$例如:将fnxm中包含“陈”字的显示出来Brow for“陈” $ fnxm

相对等于命令:= (包括)

绝对等于命令:==(完全相等)

大于命令:>fncsrq大于1970.03.21的显示出来:brow for fncsrq>{^1970.03.21}

九、VFP中身份证号码修复

replace all fnsfhm with substr(fnsfhm,1,6) + substr(dtoc(fncsrq),3,2) + substr(dtoc(fncsrq),6,2) + substr(dtoc(fncsrq),9,2) +substr(fnsfhm,13,3) for len(alltrim(fnsfhm))=15

replace all fnsfhm with substr(fnsfhm,1,6) + substr(dtoc(fncsrq),1,4) + substr(dtoc(fncsrq),6,2) + substr(dtoc(fncsrq),9,2) +substr(fnsfhm,15,4) for len(alltrim(fnsfhm))=18

十、VFP中计算年龄

1、育龄妇女初婚时达到晚婚年龄的人数

select count(fnxm) from jbqk.dbf where year(fnchrq) - year(fncsrq) >= 23

2、显示达到某个条件的内容

Brow for year(fnchrq) –year(fncsrq) >=23

十一、VFP程序设计中英文注释

FontSize:设定字号大小

Alignment:文档对齐方式

Caption:标题属性(可输入文字内容)

Visible:可见属性(真或假)

Click Event:按动事件

thisform.release :本表单.释放

ForeColor:设置文字或前景颜色

Disabledback:设置背景颜色

十二、VFP中统计年龄

1、育龄妇女初婚时达到晚婚年龄的人数

select count(fnxm) from jbqk.dbf where year(fnchrq) - year(fncsrq) >= 23 (select为选择命令,count为统计计算命令,from为调用表命令)

2、显示达到某个条件的内容

Brow for year(fnchrq) – year(fncsrq) >=23

select count(fnxm) from jbqk.dbf where (year(fnchrq)-year(fncsrq) >= 23 and month(fnchrq)>=month(fncsrq) and day(fnchrq)>=day(fncsrq)) or (year(fnchrq)-yea r(fncsrq)>23and

month(fnchrq)23 and day(fnchrq)

十三、在VFP中设置焦点

设置焦点:意思是程序开始后默认动作处

https://www.360docs.net/doc/057226217.html,mand1.SetFocus &&本表单.command1.设置焦点.command1是开始按扭的名称,程序开始时系统自动在该处显示动作虚框。

表单后缀名是scx

十四、VFP中几个常用函数1

DATE()返回目前的系统日期

TIME()返回目前的系统时间

UPPER()将小写字母转换成大写字母

LOWER()将大写字母转换成小写字母

CTOD()将字符型转换成日期型格式

DTOC()将日期型转换成字符型格式

LEN()计算字符表达式的长度

ALLTRIM()删除字符串前置和尾部空白

TRIM()删除字符串尾部空白

LTRIM()删除字符串前置空白

SUBSTR()节选字符串的位数,第一个数为第几位,第二个数为连续的个数

STR()将数值表达式转换成字符串

VAL()将字符串转换成数值表达式

十五、VFP中时间函数

Year()取年份

Month()取月份

Day()取天日

十六、VFP中的字符串替换命令

STUFF()字符串替换,如:REPLACE all fnhjddm with STUFF(fnhjddm,7,3,“999”)意思是将字段fnhjddm中从第7位起取3个字符替换成999

字段名”Fnhjddm”是妇女户籍地代码

十七、VFP中的常量

字符常量都必须包含在引号中

日期常量都必须包含在大括号中

逻辑常量都必须包含在句点(.)中

十八、在一个表内查询有关字段内容的方法:

SELECT

JBQK.Fnbm,JBQK.Pyxm,JBQK.Fnxm,JBQK.Fnxjd,JBQK.xynh, xynvh;

(指定字段名命令)(字段名,每一个字段名必须带有表的名称,如:jbqk.fnxm,)

FROM E:\乡级软件安装\数据表\乡级软件安装

\BFHFS\JBQK.DBF;

(指定路径命令)(文件的路径……………………………………………….)

WHERE (JBQK.PYXM='zz')

(显示的条件命令)(显示的条件,可以不用条件)

意思是:显示E盘下的乡级软件安装\数据表\乡级软件安装\BFHFS\JBQK.DBF表的几个字段内容,一行不够用另起一行时在上一行的后面加分号,表示继续执行下一行命令

十九、VFP的多表查询

SELECT Jbqk.fnbm, Jbqk.fnxm, Jbqk.fngzdw, Jbqk.fnsfhm, Jbqk.fnmz,Jbqk.fnhyzk,Jbqk.fnhbrq,Jbqk.zfxm,Jbqk.zfsfh m, Jbqk.zfmz, Jbqk.zfhyzk,Jbqk.byzk, Jbqk.byksrq, Jbqk.xynh, Jbqk.xynvh, Syjjtzn.znhc, Syjjtzn.znxb,Syjjtzn.zcsx, Syjjtzn.zncsrq, Syjjtzn.sybz; FROM jbqk INNER JOIN syjjtzn ;

ON Jbqk.fnbm = Syjjtzn.fnbm;

INTO CURSOR查询4

二十、将系统日期格式设置为年月日格式

SET DATE ANSI (将系统日期格式设置为年月日格式)

SET CENTURY on (年份为四位)

计算年龄

1、育龄妇女初婚时达到晚婚年龄的人数

select count(fnxm) from jbqk.dbf where year(fnchrq) - year(fncsrq) <= 20 另外一个计算晚育的句子:sele coun(*) as wy,left(fnbm,12) as dwdm into dbf tempdb from tempwy wher ((year(zncsrq)-ye ar(fncsrq))*12+month(zncsrq)-month(fncsrq))>=283

2、显示达到某个条件的内容

Brow for year(fnchrq) – year(fncsrq) >=23

3、替换领取独生子女证时间

日期为当前月的最后一天

gomonth(date(),1) - day(gomonth(date(),1))

下个月的第一天

gomonth(gomonth(date(),iif(day(date())=1,1,0)) - day(gomonth(date(),iif(day(date())=1,1,0))-1),1)

40、另外一个替换独生子女日期命令

SELECT 表

GO top

DO WHILE NOT EOF()

aa=V AL(SUBSTR(DTOC(出生时间),1,4))

bb=V AL(SUBSTR(DTOC(出生时间),6,2))

IF bb=12

REPLACE 领证时间WITH CTOD(ALLTRIM(STR(aa+1))+'01'+'01') ELSE

REPLACE 领证时间WITH CTOD(ALLTRIM(STR(aa))+ALLTRIM(STR(bb+1))+'01')

ENDIF

SELECT 表

SKIP

ENDDO

修改身份号码

1、以下命令将修复身份证号码和出生年月日相同,15位和18位的分别修复:

replace all fnsfhm with substr(fnsfhm,1,6) + substr(dtoc(fncsrq),3,2) + substr(dtoc(fncsrq),6,2) + substr(dtoc(fncsrq),9,2) +substr(fnsfhm,13,3) for len(alltrim(fnsfhm))=15

replace all fnsfhm with substr(fnsfhm,1,6) + substr(dtoc(fncsrq),1,4) + substr(dtoc(fncsrq),6,2) + substr(dtoc(fncsrq),9,2) +substr(fnsfhm,15,4) for len(alltrim(fnsfhm))=18

替换命令

如:想替换现居地代码,

1、先用brow for查出要查看的内容,例如:查县直县委办(县委办代码是401)代码等于空的,请打入:brow for fndwdm='

'{回车}。

2、然后,再用repl fndwdm with '371421600401'{回车}

3、替换日期型字段内容

replace妇女初婚日期with妇女婚变日期for empty(妇女初婚日期) = .t. and. 婚姻状况='初婚'

4、将妇女出生日期前面加上“371421”后面加上“321”组成一个15位的身份证号码替换到身份证号码字段里面:replace all fnsfhm with "371421"+subs(dtoc(fncsrq),7,4)+subs(dtoc(fncsrq),1,2)+s ubs(dtoc(fncsrq),4,2)+"331"

用命令修改字段名

select 字段1 as "名称1",.... from 表1 into cousor 临时表

select 临时表

copy to XXX.xls type xl5

Alter Table xs Add Column BJ C(8)表示在表XS中添加一个字段BJ;

Alter table xs Alter BJ C(10)表示把XS表中BJ字段宽度改为10;

Alter Table xs Renaem column BJ to BJMC表示将XS 表中的BJ字段改名为BJMC;

Alter Table xs Drop Column BJMC表示删除BJMC字段

(1)把"婚姻变更日期"替换成"初婚日期"的内容

replace all 婚姻变更日期with 初婚日期

(2)身份证号为18位,取第17位不是奇数

brow for (val(substr(身份证,17,1)) % 2)=0 and len(alltrim(身份证))=18 (3)身份证号为15位,取第15位不是偶数

brow for (val(substr(身份证,15,1)) % 2)=1 and len(alltrim(身份证))=15

相关主题
相关文档
最新文档