VFP程序设计各种代码
vfp第6章程序设计内容
例6.2 Open database 教学管理(lz2) Use 学生 Accept ―请输入学生姓名:‖ to name Locate for 姓名=name If found() Display Endif ?―结束” Use return
例6.3 Use zgda(lz3) Locate for 基本工资<650.00 If .not. Eof() display Endif
Input "x=" to x
if x=0 y=cos(x) - x^3+3* x endif y=sin(x)+sqrt(x*x+1 )
例6.37铁路托运行李,假设每张车票可按每公斤 0.5元托运50公斤以内的行李,如果超过50公斤时, 超过的部分每公斤加价0.8元。计算公式和程序如下: p143 X=0.5×W 当W≤50公斤 X=0.5×50+0.8×(w-50) 当W>50公斤 Set talk off Input ―请输入行李的重量为:” to w If w<=50 x=0.5*w Else x=0.5*50+0.8*(w-50) Endif ?‖行李的重量为:”+str(w,6,2)+‖公斤,其运费 为:”+str(x,6,2)+‖元”
例6.4 输入乘出租车的公里数,求乘车费(计费标准: 2.5公里以内6元;2.5公里以外,每超过1公里,增 加到1.2元,要求四舍五入到元)。(lz5) * PROG6.PRG CLEAR INPUT ―请输入公里数:” TO X IF X>2.5 PAY=(X-2.5)*1.2+6 ELSE PAY=6 ENDIF ? "应付费",ROUND(PAY,0), "元" CANCEL
vfp最常用代码
登陆界面确认:if ER.value=alltrim(用户表.用户名).and.thisform.PASSWORD.value=alltrim(用户表.密码)do form 主界面.scxrelease thisformelse=messagebox("对不起,用户名或密码错误!",0+56+0,"用户名+密码错误")ER.value=""thisform.PASSWORD.value=""ER.setfocusendif退出:RELEASE THISFORM主程序代码set fweek to 1set mark to '.'set separator to','set point to '.'set talk offset safety offpublic xtbtxtbt="学生信息管理系统"_screen.caption =xtbt_screen.picture="Home.jpg"do form 系统主页release window 常用read events修改密码中确认修改LOCAL jjjj=0for i=1 to 3s="text"+alltrim(str(i))d="label"+alltrim(str(i))if empty(thisform.&s..value)messagebox(thisform.&d..caption+"不能为空",64,"系统提示")thisform.&s..setfocusELSEIF s="text3"jj=1ENDIFENDIFENDFORIF jj=1select 用户表GO toplocate for alltrim(thisform.text1.value)=alltrim(用户名)if found()if alltrim(thisform.text2.value)=alltrim(thisform.text3.value)replace 密码with ALLTRIM(thisform.text2.Value)MESSAGEBOX("密码修改成功",64,"系统提示")thisform.text1.Value=""thisform.text2.Value=""thisform.text3.Value=""thisform.text1.SetFocusELSEMESSAGEBOX("两次输入密码不一致,请重新输入",48,"系统提示")thisform.text2.Value=""thisform.text3.Value=""thisform.text2.SetFocusENDIFELSEMESSAGEBOX("用户名"+ALLTRIM(thisform.text1.Value)+"不存在,请确认重新输入",48,"系统提示")thisform.text1.setfocusthisform.text1.SelStart=0thisform.text1.SelLength=LEN(ALLTRIM(thisform.text1.Value))thisform.text2.Value=""thisform.text3.Value=""ENDIFENDIF返回do form 功能选项.scxrelease thisform运动的时间代码bel1.Caption = TtoC(datetime())数据维护首记录go topthisform.refresh上一个skip-1if bof()messagebox("hehe,已到文件头",48)endifthisform.refresh下一个skip+1if eof()messagebox("hehe,已到文件尾",48)endifthisform.refresh未记录go bottomthisform.refresh增加append blankgo bottomthisform.refresh删除if messagebox("确实要删除吗?",1,"提示!")=1 deletepackendifthisform.refresh关闭release thisform预订信息查询locate all for bo1.value=预定表.客户中文名thisform.text1.value=预定表.预订名称thisform.text2.value=预定表.性别thisform.text3.value=预定表.住客籍贯thisform.text4.value=预定表.预定时间thisform.text5.value=预定表.房间类型thisform.text6.value=预定表.入住时间thisform.text7.value=预定表.离开时间thisform.text8.value=预定表.预订数量thisform.text9.value=预定表.住客总人数thisform.text10.value=预定表.确认方式thisform.text11.value=预定表.预付方式thisform.text12.value=预定信息表.预付款thisform.text13.value=预定信息表.应付款thisform.text14.value=预定信息表.差额thisform.text15.value=预定表.联系方式房间信息查询locate all for bo1.value=房间信息表.房间号thisform.text1.value=房间信息表.房间号thisform.text2.value=房间信息表.房间类型thisform.text3.value=房间信息表.单价你要做什么入住do form 登记表单.scxrelease thisform预定do form 预定表单.scxrelease thisform退出do form 主界面.scxrelease thisformtime1i=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)2if bel1.left+bel1.width>432 thisform.timer2.enabled=.f.thisform.timer3.enabled=.t.elsebel1.left=bel1.left+2 endif3if bel1.left<12thisform.timer3.enabled=.f.thisform.timer2.enabled=.t.elsebel1.left=bel1.left-2 endifi=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)bel17.forecolor=rgb(i,j,k) bel18.forecolor=rgb(i,j,k) bel19.forecolor=rgb(i,j,k) bel20.forecolor=rgb(i,j,k) bel21.forecolor=rgb(i,j,k)i=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)用两个时间控制一个字bel2.forecolor=rgb(255,0,0)bel2.forecolor=rgb(0,0,255)向下移动i=i+1if bel1. left+100>860bel1. left=100bel1 .top=100elsebel1. left=thisform .label1 .left+20 bel1.top=bel1.top+20endifif alltrim (thisform.text1.value)=="张三"if thisform.text2.value="123456"bel4.caption="欢迎使用该系统"elsebel4.caption="用户名或密码有误" endifendif放大字体bel2.fontsize=bel2.fontsize+2 变红bel2.forecolor=RGB(255,0,0)注册locate all for alltrim(Mima.Yhm)=alltrim(thisform.text1.text) close allquit。
3、VF程序设计
如果在命令窗口输入并执行命令:“LIST名称”后在主窗口中显示: 精选考题 记录号 名称 1 电视机 2 计算机 3 电话线 4 电冰箱 5 电线 假定名称字段为字符型、宽度为6,那么下面程序段的输出结果是( )。 GO 2 SCAN NEXT 4 FOR LEFT (名称,2)=“电“ IF RIGHT (名称,2)=“线“ LOOP ENDIF ??名称 ENDSCAN A)电话线 选 C)电冰箱电线 B)电冰箱 C)电冰箱电线 D)电视机电冰箱
公共变量 内存变量
声明格式
public <内存变量名> 初始值为.F.
作用域
任何模块中
建立它的模块及其下属 各层模块
私有变量
局部变量
local <内存变量名> 初始值为.F.
只能在建立它的模块中
Private <内存变量名>
作用: 隐藏指定的在上层模块中可能已经存在的内存变量, 使得这些变量在当前模块程序中暂时无效. (隐藏了的变量的值不会改变上层变量的值)
精选考题
如下程序显示的结果是 _____ 。 s=1 i=0 do while i<8 s=s+i i=i+2 enddo ?s 结果是:13 执行过程: 1、i=0 s=1 2、i=2 s=3 3、i=4 s=7 4、i=6 s=13
i=8
11、以下程序运行后的显示结果是_____________。
选B 20 20
14、在以下程序中,main.prg为主程序,pro.prg为过程文件, 程序运行后的显示结果是_________。 *pro.prg 子程序 FUNCTION f1 *main.prg PRIVATE a SET TALK OFF PUBLIC a SET PROCEDURE TO pro a=2 PUBLIC a , b b=a+b a=1 DO pro2 b=2 RETURN DO f1 PROCEDURE pro2 ?a , b ?a, b RETURN A、1 2 B、2 4 C、1 2 D、2 4 1 2 1 4 1 4 1 2
vfp程序设计知识点总结
vfp程序设计知识点总结Visual FoxPro(简称VFP)是一种基于Windows的关系型数据库管理系统和编程语言。
它提供了丰富的功能和工具,用于开发数据库应用程序。
本文将总结VFP程序设计中的关键知识点,并探讨其应用。
一、VFP环境配置VFP程序设计之前,首先需要进行环境配置。
安装VFP软件后,可以通过设置和调整各种选项来满足具体需求,例如界面风格、编辑器设置、代码库配置等。
二、基本语法1. 变量和数据类型:VFP支持多种数据类型,包括字符型、整数型、逻辑型、日期型等。
声明变量时,需要指定数据类型,并赋予初始值。
2. 控制结构:VFP支持常见的控制结构,如条件语句(if-else)、循环语句(for-loop、while-loop)、选择语句(switch-case)等,用于根据不同情况执行相应的代码块。
3. 函数和过程:VFP提供了大量内置函数用于字符串处理、数学计算等操作。
同时,也可以通过自定义函数和过程来扩展VFP的功能,提高代码的复用性和可读性。
三、数据库操作1. 连接数据库:VFP可以连接各种类型的数据库,如Visual FoxPro数据库、SQL Server数据库等。
通过设定数据库连接字符串和使用相应的驱动程序,可以实现与数据库的交互。
2. 数据查询:使用SQL语句或者VFP内置的查询命令,可以实现数据的查询和分析。
通过指定查询条件和选择输出字段,可以灵活地获取所需的数据。
3. 数据处理:VFP提供了各种数据处理的功能,如数据排序、筛选、统计等。
可以通过内置函数和命令,快速实现对数据的操作。
四、用户界面设计1. 窗体设计:VFP提供了窗体设计器,可以通过拖拽和设置属性来创建用户界面。
可以添加各种控件,如按钮、文本框、列表框,以及设计和调整布局。
2. 报表设计:VFP内置了报表设计器,可以生成多种格式的报表,如表格、图表、交叉表等。
可以自定义报表的样式、布局和数据源,实现灵活的报表生成。
VFP命令大全
VFP命令、函数及程序语句大全(一)学过VFP〔Microsoft Visual FoxPro〕的朋友都知道它是微软公司开发的数据库管理系统。
它经历了从dBASE、FoxBASE、FoxPro直到VFP的开展过程。
本文便以VFP 6.0为例介绍它的命令、函数及程序语句,为学习VFP的朋友提供必要的学习参考,也为已经精通VFP的朋友提供复习的好时机。
一主要命令:1、CREATE 作用:建立一个新的表。
格式:CREATE [<文件>|?]〔注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。
〕说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。
在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
2、MODIFY STRUCTURE作用:显示表文件构造,并允许修改此表的构造。
格式:MODIFY STRUCTURE说明:只有在用USE命令翻开表文件以后,才能显示或修改表文件的构造。
3、APPEND作用:在当前表的尾部〔无论表中有无记录〕追加记录〔在当前表指当前正使用的表〕。
格式:APPEND [BLANK]说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]说明:INSERT 在当前记录后插入一记录;INSERT BEFORE 在当前记录前插入一记录;INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE作用:主要用于翻开浏览窗口,查阅表文件并同时进展修改。
格式:BROWSE6、USE作用:翻开和关闭表文件。
vfp数据库程序设计程序示例
vfp数据库程序设计程序示例如何进行VFP数据库程序设计的示例。
请注意,vfp数据库是Visual FoxPro数据库的缩写。
第一步:理解VFP数据库编程的基础知识在进行VFP数据库程序设计之前,我们需要先理解VFP数据库编程的基础知识。
VFP数据库是一种关系型数据库,它使用表格来组织和管理数据。
每个表格包含一系列的字段,并且可以在表格之间建立关系。
VFP数据库还支持SQL查询语言,可以方便地查询和操作数据。
第二步:创建数据库在VFP中创建数据库非常简单。
首先,打开VFP软件,在菜单栏中选择"数据库",然后选择"新建"。
接下来,为数据库指定一个名称,选择保存位置,并点击"确定"。
数据库创建成功后,我们可以在VFP软件中看到它的图标。
第三步:创建表格在VFP数据库中,表格用于存储和管理数据。
要创建一个表格,首先确保数据库窗口处于活动状态。
然后,在数据库窗口中右键单击,选择"新建",然后选择"表格"。
接下来,为表格指定一个名称,并定义字段。
在每个字段中,我们可以定义字段名称、字段类型、字段长度以及其他属性。
创建完所有字段后,点击"确定" 完成表格创建。
第四步:插入数据在VFP数据库中插入数据十分简单。
首先,双击要插入数据的表格,打开表格编辑窗口。
然后,在表格编辑窗口中,点击"插入"按钮。
接下来,输入要插入的数据,每个字段占一列,然后点击"确定" 完成数据插入。
可以重复这个过程,插入更多的数据。
第五步:查询数据VFP数据库支持使用SQL查询语言来查询和操作数据。
在VFP软件中的菜单栏中选择"工具",然后选择"查询",打开查询编辑器。
在查询编辑器中,我们可以输入SQL查询语句。
例如,要查询某个表格中所有记录的所有字段,可以使用以下SQL查询语句:"SELECT * FROM table_name"。
VFP程序设计教程
VFP程序设计教程VFP(Visual FoxPro)是Microsoft公司开发的一种基于xBase语言的高级数据库开发工具。
它具有丰富的功能和强大的数据库管理能力,是许多企业和开发者首选的数据库管理工具之一、在本教程中,我们将介绍VFP的基本概念和常用操作,帮助您快速入门并掌握VFP程序设计的基本技能。
一、VFP程序设计环境介绍VFP是一个集成式的开发环境,它包含了数据库管理、图形用户界面设计和编程功能。
在VFP中,您可以通过可视化的方式设计和管理数据库表、表单和报表,同时还可以使用VFP编程语言进行定制化的业务逻辑编写。
二、VFP程序设计基础1.数据库管理在VFP中,您可以通过“数据库”菜单进行数据库管理操作。
可以创建新的数据库、打开已有的数据库、创建、修改和删除数据库表,以及执行SQL查询等数据库操作。
2.界面设计VFP提供了丰富的界面设计工具,可以轻松地设计数据库表单和报表。
您可以通过拖拽控件、设置属性等操作,创建符合需求的用户界面。
3.编程操作三、VFP程序设计实例接下来,我们将通过一个简单的实例介绍VFP程序设计的基本操作。
假设我们需要设计一个学生信息管理系统,包括学生表和成绩表。
首先,在VFP中创建一个新的数据库文件,然后创建两个表,一个是学生表包括学生ID、姓名、性别等字段,另一个是成绩表包括学生ID、科目、成绩等字段。
接下来,我们设计一个学生信息表单,包括学生信息展示、添加和修改功能。
通过VFP的界面设计工具,我们可以轻松地设计出符合需求的表单界面。
最后,我们编写程序代码,实现学生信息的查询、添加和修改操作。
我们可以通过VFP的编程语言编写相应的逻辑代码,实现系统的功能。
通过这个实例,我们可以看到VFP程序设计的整个流程,包括数据库管理、界面设计和编程操作。
希望这个实例可以帮助您更好地理解VFP的程序设计方法。
总结:。
vfp相关代码
1.字体移动以及色彩变化if bel1.left>thisform.widthbel1.left=bel1.widthelsebel1.left=bel1.left+4endifa=int(rand()*255)b=int(rand()*255)c=int(rand()*255)bel1.forecolor=rgb(a,b,c)2.打印报表Report form 报表名to printer prompt preview3.3次错误自动退出(不全面)elseuseif js=3messagebox('用户名和密码错误超过3次,将退出系统!')close databasethisform.releaseelsemessagebox('用户名和密码错误,重新输入!')thisform.text2.value="thisform.text2.setfocusjs=js+1endifendif4. 登陆x1=alltrim(thisform.text1.value)x2=alltrim(thisform.text2.value)if x1=="" or x2==""messagebox("用户名和密码不能为空",0+48,"错误提示") elseopen database 玩具出租管理系统use 管理员表loca for alltrim(管理员表.姓名)==alltrim(x1) and allt(管理员表.密码)==alltrim(x2)if found()do form 主表单thisform.releaseelsemessagebox("姓名和密码有误,请重新输入",0+48,"错误提示")thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocusendifendif5.表单特效首先建立一个新表单。
VFP程序设计各种代码
系统首页点击进入系统:doform用户登录.scxreleasethisform用户登录登陆:usepasswordLocateFor用户密码=and用户名=IfEof()?Messagebox("密码错误,请重新输入!!",0+48+0+0,"确定")Thisform.RefreshCloseDatabaseElseThisform.releaseDoform主表单.scxEndIf退出:thisform.release影碟登记首页:gototopthisform.refresh上一页:skip-1ifbof()messagebox("不好意思,已是第一个记录",48,"信息窗口")endifthisform.refresh下一页:skipifeof()messagebox("不好意思,已是最后一条记录",48,"信息窗口")skip-1endifthisform.refresh末页:gotobottomthisform.refresh添加:iflen(thisform.影片编号.value)=0gobottomdelepackwaitwindow"影片编号不能为空"timeout1endifappendthisform.refresh删除ifmessagebox("确实要删除本记录么?",1+64+256,"提示")=1deletepackskip-1thisform.refreshendif退出a=messagebox("你真的要退出吗?",4+16+0,"对话")ifa=6releasethisformendif影碟信息查询用户信息查询(用户名用户信息表)租借信息查询()查询locafor影片编号=aiffound()sele*from影碟信息表videoinfwhere影片编号=aintocursor"ling"elsemessagebox("未找到该影片编号的记录!",48,"提示")endif退出thisform.refresh主程序settalkoffsetsafetyoffsetstatbaroffsetsysmenuoffsetsysmenutosetcenturyon_screen.visible=.f.doform系统首页readevents退出程序:是closeall否releasethisformQuit。
一些很有用的VFP代码
一些很有用的VFP代码————————————————————————退出按钮代码if messagebox('你真的要退出本系统吗?',4+32+256,'请确认')=7 &&用户回答"否"nodefault &&表示不进行默认的行为模式elseclear events &&是否要支行clear,视需要而定quitendif————————————————————————导入EXCEL数据,另存为DBF表IMPORT FROM (GETFILE('XLS', '','', 0, '选择一个EXCEL表,然后另存为DBF 表')) TYPE XL5 &&或XL8COPY TO PUTFILE('', '', 'DBF')lcTmpTable=DBF()CLOSE DATABASESDelete FILE (lcTmpTable)————————————————————————VFP中导入EXCEL,使原来EXCEL第一行变为DBF字段名import from E:\test\原表.xls type xlscopy to test.dbf for recno()>1go toplnFieldNum=fcount()lcString='Select 'for lnCount=1 to lnFieldNumlcString=lcString+field(lnCount)+' As '+alltrim(evaluate(field(ln Count)))+','endforlcString=left(lcString,len(lcString)-1)+' into table ttt2 from test'&lcString————————————————————————超链接代码(文本或按钮click)ThisForm.HyperLink1.NavigateTo("")————————————————————————改变路径set path to D:\完成————————————————————————获取当前程序所在路径*方法一:**********************PUBLIC LCNowpathLCNowpath=SYS(5)+SYS(2003)+"\"set default to "&LCNowpath" &&设置默认工作目录***********************方法二:**********************PUBLIC LCSys16,LCNowpathLCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。
第七章 VFP程序设计五
二、SCAN循环基本结构
命令格式:SCAN [<范围>][FOR <条件>] <循环体> ENDSCAN 功能:在指定范围内查找满足条件的 记录的循环命令 例1:USE ZGDA
SCAN FOR 性别=“男” DISPLAY ENDSCAN RETURN 例2: USE ZGDA ACCE“请输入查 询条件”TO A SCAN FOR() DELE ENDSCAN
注:①可选项WITH<参数表>的作用是 主程序向子程序传递参数的,若 选用了WITH项,则子程序第一 条命令必须是 PARAMETERETURN[TO MASTER] 结束,表示终止程序执行,返回 到该过程的调用处。若加上 TO MASTER表返回到最高层的程序
例1:
五、内存变量的局限性(作用域)
1、全局变量(公共变量) 命令格式:PUBLIC<内存变量表> 功能:建立公共的内存变量,在任何 模块中都可以使用,并为它们 赋初值.F. 2、局部变量(LOCAL ) 命令格式: PRIVATE <内存变量表> 功能:建立局部的内存变量,并为 它们赋初值.F. 注意:①局部变量只能在建立它的 模块中使用,不能在上层或 下层模块中使用。
3、内部过程调用 一个过程文件最多可存放128个过程,调 用文件时,系统能找到各个过程的入口位 置,只要一次打开过程文件,就可以调用 其中任何一个过程,从而减少磁盘的频繁 读写,提高程序运行速度。 (1)过程 所谓过程就是一段程序,它必须由 PROCEDURE命令开头,以RETURN 命令结尾,其命令格式: PROCEDURE<过程名> <过程体> RETURN[TO MASTER/TO <程序名>]
VFP案例源代码
VFP第二周案例—登录窗口源代码一、创建“登录”表单建立“学生管理系统登录窗口”表单,如图所示。
功能:连接到数据库中“口令”表验证用户名和密码,对输入情况做判定,并做相应提示,验证成功,提示等待下次程序制作。
图4-15 学生管理系统登录窗口设置步骤如下:1.在“项目管理器”的“文档”选项中选择“表单”,单击“新建”按钮,弹出“新建表单”对话框,单击“新建表单”按钮,弹出表单设计器。
2.在表单中添加3个标签,2个文本框,2个命令按钮。
各控件主要属性修改如下:1).表单form1:Caption属性:学生管理系统。
2).标签Label1:Caption属性:学生管理系统登录窗口;Forecolor属性:0, 255,0;Fontsize属性:20;Fontbold属性:.T。
3).标签Label2:Caption属性:用户名:;Fontsize属性:16;Fontbold属性:.T。
4).标签Label3:Caption属性:密码:;Fontsize属性:16;Fontbold属性:.T。
5).命令按钮command1:Caption属性:确认;Fontsize属性:16;Fontbold属性:.T。
6).命令按钮command2:Caption属性:退出;Fontsize属性:16;Fontbold属性:.T。
7).文本框text1:Fontsize属性:16;Fontbold属性:.T。
8).文本框text2:passwordchar属性:*;Fontsize属性:16;Fontbold属性:.T。
二、将欢迎窗口与登录窗口连接双击“进入”按钮,写入下列代码:(右边部分是注释)do form 登录.scx &&进入登录窗口thisform.release &&关闭本窗口双击“退出”按钮,写入下列代码:ask=messagebox("确定要退出系统吗?",4+32+256,"学生管理系统")if ask=6close allquitelseendif三、创建学生管理数据库,保存在本项目文件夹内db文件夹下单击“项目管理器”中的“数据”选项,选中数据库,单击“新建”按钮,在如图示的“新建数据库”话框中单击“新建数据库”按钮,在“创建”对话框中输入数据库文件名“学生管理”并确定数据库路径单击“保存”。
VFP代码整理
VFP代码1.数据库建立create database <数据库名>2.数据库打开open database <数据库名>3.指定当前数据库set database to <数据库名>4.修改数据库modify database <数据库名>5.关闭数据库close database (关闭当前数据库)或close all (关闭所有已打开的数据库)6.删除数据库delete database <数据库名> [deletetables](是否删除数据库里的表)7.建立数据表结构create8.记录的输入append9.修改数据表结构modify structure10.显示数据表结构list structure 或display structure11.打开数据表文件use <表文件名>12.记录指针的定位go 记录号skip nlocate for <条件>13.状态测试函数recno():检测当前记录的记录号bof():检测记录指针是否指向表文件头eof():检测记录指针是否指向表文件尾found():检测locate命令执行后,是否有满足条件的纪录14.查看数据表内容list、display或browse15.修改记录browse、change、edit或replace [范围] <字段1> with <表达式1> [additive] [,<字段2> with <表达式2> [additive] …] [for|while <条件>]或update <表名> set <字段1=表达式1>[,<字段2=表达式2>…][while <条件表达式>]16.插入记录insert17.记录的逻辑删除与恢复delete recall18.记录的物理删除pack zap(全部记录删除)19.排序sort to <新表文件名> on <字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][<范围>][fields<字段表名>][for|while<条件表达式>]20.单索引index on <关键字表达式> to <单索引文件名> [additive]21.复合索引index on <关键字表达式> tag <标识名> [for|while<条件表达式>] [ascending(升序)|descending(降序)] [unique(建立唯一索引)|candidate(建立候选索引)]22.设置当前(主控)索引set order to <索引序号>|[tag] <索引标识名>[ascending|descending]23.删除索引delete tag <索引标识名> 或delete tag all24.重新索引reindex25.将自由表添加为数据库表add table <自由表名>26.从数据库中移去或删除数据表remove table <自由表名> [delete]27.制定工作区select<工作区号>|<工作区别名>28.多工作区中表文件的打开与关闭use [<表文件名>] [in <工作区号>] [again] [alias <别名>]29.建立临时关系set relation to <关系表达式> into <工作区号|别名>(在主表工作区中运行)30.解除临时关系 select <工作区号|别名>set relation to31.表定义 create table <表名> [name <长表名>] [free](<字段名1><类型>[(<字段宽度>[,<小数位数>])][null|not null] [default<表达式默认值>][primary key|unique][references <子表表名>[tag<标识名>]][,<字段名2>…][,foreign key <表达式> tag <标识名> references <父表表名> [tag <标识名>]32.添加新字段 alter table <表名>add [column[<字段名><字段类型>][<长度>{,<小数位数>}][null|not null][default <表达式默认值>]33.修改表的字段名 alter table <表名>alter [column] <字段名1> [null|not null][set default <表达式>](修改默认值)[rename column <字段名2> to <字段名3>](字段改名)34.删除表中的字段、主索引 alter table <表名>[drop [column [<字段名>][drop primary key]]]35.删除表 drop table [<数据库名>.]<表名>36.插入记录命令 insert into <表名> [(字段名1[,字段名2,…])] values(表达式1[,表达式2,…]) 或 insert into <表名> from array <数组名>或 insert into <表名> from memvar (从内存中插入)37.删除记录delete from <表名>[where <条件1>[and|or <条件2>]]38.SQL 查询命令select [all|distinct] [<别名>.]<表达式>[as <列名>],…from [<数据库名>!]表名[[[inner|left|outer]|right|outer]|full||outer]join<数据库名!><表名>[on <连接条件>][[into <目标>]|[to file <文件名>|to printer|to screen]where <连接条件>[group by <分组表达式>][having <筛选条件>][union [all] <下一个查询命令>][order by <排序表达式>[asc|desc]][top <数值表达式>[precent]]声明:所引用的代码和模版等权利归原作者拥有。
vfp命令和SQL命令(参考代码)
期末上机考试复习数据处理部分参考资料第1套有两个数据表:学生信息表(XS.DBF)和学生成绩表(CJ.DBF)。
其数据形式如下:2、建立程序文件COM-SQL711.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)(1)正确修改每个学生的“成绩合格否”字段,并填入学生成绩表CJ.DBF中。
规定笔试成绩<60或上机成绩为“缺考”或“不及格”,则该字段值为.F.,否则为.T.;(2)在学生成绩表CJ.DBF中,查询并显示成绩合格学生的考号、姓名、笔试成绩和上机成绩;(3)逻辑删除学生成绩表CJ.DBF中,上机考试缺考的考生;(1)VFP命令:USE CJREPLACE ALL成绩合格否 WITH .T. FOR 笔试成绩>=60 AND (上机成绩=“及格” OR上机成绩=“优”)SQL命令:UPDATE CJ SET 成绩合格否=.T. WHERE笔试成绩>=60 AND (上机成绩=“及格” OR上机成绩=“优”)(2) VFP命令:SELECT 1USE XSINDEX ON 考号 TAG KHSELECT 2USE CJSET RELATION TO 考号 INTO XSLIST 考号,XS.姓名,笔试成绩,上机成绩 FOR成绩合格否=.T.SQL命令:SELECT XS.考号,姓名,笔试成绩,上机成绩 FROM XS,CJ WHERE XS.考号=CJ.考号 AND 成绩合格否=.T.(3)VFP命令:USE CJDELETE FOR 上机成绩=“缺考”SQL命令:DELETE FROM CJ WHERE上机成绩=“缺考”有两个数据表:职工数据表(ZGB.DBF)和工资数据表(GZB.DBF)。
其数据形式如下:2、建立程序文件COM-SQL712.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
VFP_代码
登陆页面Form loadpublic username,userid,bc, errornumber,inname,inpass errornumber=0bc=0m.inpass=space(20)m.inname=space(20)set exact onreturnForm activatesele userusername=alltrim(name)userid=alltrim(english)ln=len(username)li=len(userid)n=1m=1do while .t.s=subs(username,1,n*2)t=subs(userid,li-m+1,2*m)bel1.left=1024-n*50bel1.caption=sbel2.left=10*m bel2.caption=twa=0for k=1 to 10^5wa=inkey()if wa>0exitendifnextif wa>0exitendifn=n+1if n>lnn=1endifm=m+1if m>lim=1endifenddobel1.left=(1024-ln)/3bel1.caption=usernamebel2.left=(1024-li)/4bel2.caption=useridthisform.pageframe2.enabled=.t.thisform.pageframe2.visible=.t.SET BELL TO 'music.wav',1?? CHR(7)SET BELL TOReturn登陆页面下方的日期代码Form initbel3.caption="当前日期为:"+alltrim(str(year(date())))+"年"+alltrim(str(month(date())))+"月"+alltrim(str(day(date())))+"日"+"星期"+alltrim(str(week(date())))登陆按钮Form clickselect messageif alltrim(m.inpass)="zex"RELEASE thisformdo form xsxxglxt.scxretuendifif len(alltrim(m.inname))=0messagebox("请输入用户名",48+0+0,"操作提示")endifif len(alltrim(inpass))=0messagebox("请输入密码",48+0+0,"操作提示")retuendiflocate all for inname=name.and.password=alltrim(inpass) if .not. found()messagebox("密码与操作人员不配",48+0+0,"操作提示") errornumber=errornumber+1if errornumber>2messagebox("非法用户不可使用",48+0+0,"操作提示")quitendifinname=space(20)inpass=space(20)thisform.refreshretuelseRELEASE thisformmessagebox("欢迎"+alltrim(inname)+"同学!")do form xsxxglxt.scx管理员文本框的control source: m.inname密码文本框的control source:m.inpass退出:clickx=messagebox("真的要退出系统吗?",256+32+4,"操作提示!") if x=6RELEASE thisformquitENDIFretu关于时间代码:timerDO caseCASE bc=0bel2.foreColor=RGB(0,0,255)CASE bc==1bel2.foreColor=RGB(0,255,0)CASE bc=2bel2.foreColor=RGB(255,0,0)CASE bc=3bel2.foreColor=RGB(255,255,0)CASE bc=4bel2.foreColor=RGB(205,39,219)ENDCASEbc=bc+1IF bc=5bc=0ENDIFRETURN关于菜单中浏览报表浏览:clickREPORT FORM streport.frx preview Retu标签浏览:clickLABEL FORM student.lbx preview Retu报表日期和页数标签中的照片插件:连编的代码X=SYS(5)+SYS(2003)SET DEFAULT TO &XSET TALK OFFSET ECHO OFFSET SAFE OFFZOOM WINDOWS SCREEN MAX SET STATUS OFFCLOSE ALLSET SYSMENU OFFSET SYSMENU TOSET DATE YMDSET EXACT ONMODIFY WINDOW SCREEN TITLE '高等院校学生管理系统' MODIFY WINDOW SCREEN ICON FILE BOOK.ICODO FORM face1.scxREAD EVENT邮政编码党员。
[汇编]vfp40代码大全
1!+2!+3!+4!+5!+6!+7!+8!+9!+10! S=0 N=1 For n=1 to 10 M=1 For I=1 to n M=m*I EndforVFP40代码大全0000 【40】 本题素材是考生文件夹中的表单tk04.scx 。
该表单的功能是:在文本框中输入一个整数,单击命令按钮“判断”后,若该整数是偶数,则label2显示“该数是一个偶数”,若为奇数,则显示“该数是一个奇数”。
0000请将command1_click()中的程序补充完整以实现上述功能。
下图为运行效果,输入8,则label2显示该数是一个偶数。
00000000【39】 本题素材文件是考生文件夹中的sz11.scx ,完成以下操作:0000(1)设置label1的文字颜色为红色(255,0,0),背景透明;(backstyle)0000(3)设置属性使得Command2不可见(即运行时不显示);00000000 【40】 本题素材为考生文件夹中的表单文件tk13.scx ,表单运行效果图如下所示:0000x = Val(thisform.text1.Value)if x%2=0 then &&如果x 除以2的余数为0,说明它是一个偶数,否则为奇数。
bel2.Caption = "偶数"elsebel2.Caption = "奇数"endif0000该表单实现的功能是设置文本框中文字的字体,要求选中宋体则文本框的字体为宋体,选中幼圆则文本框的字体为幼圆,选中隶书则文本框的字体为隶书。
(文本框中的文字任意输入。
)0000或分别在Option1、Option2和Option3的Click 事件写如下程序:0000thisform.Text1.BackColor = RGB(255,0,0)0000thisform.Text1.BackColor = RGB(0,255,0)0000 thisform.Text1.BackColor = RGB(0,0,255)0000【40】 本题素材为考生文件夹下的tk23.scx ,表单包括1个标签、1个命令按钮和1个计时器控件。
VFP代码收藏
VFP代码收藏2008年01⽉03⽇VFP经典代码* 程序………..: Copy2xls.prg* 作者…………: Daniel Gramunt* 项⽬………..: common* 创建………..: 11.10.2000 17:25:06*) 说明…….: 替换 VFP ⾃⼰的 COPY TO TYPE XL5 命令.*) : Excel 5 和 Excel 95 有⼀个限制就是⼀张⼯作表只能有 16,383 ⾏.*) : 该限制在 Excel 97 和 Excel 2000 是 65,536 ⾏.*) : 由于没有 TYPE XL8 命令, VFP 只能复制最初的 16,383 条记录.*) :*) : 该程序处理该限制并允许复制⽤户机器上的 Excel 版本所⽀持的记录数.*) :*) : 该⽅案是⾮常简单的:*) : 1. COPY TO TYPE CSV*) : 2. 打开 CSV ⽂件并⽤ Automation 来 SaveAs(tcExcelFile)*) :*) : 假定 MS Excel (Excel 97 或以上) 安装在⽤户的机器上*) : (好, 它将也可处理 Excel 5.0 和 95, 但将使⽤ 16,383 的限制).*) :*) : 返回成功导出的记录数, 否则:*) : -1 = 缺少参数或参数类型错误*) : -2 = 当前⼯作区中未打开表*) : -3 = 记录数超过最⼤ Excel ⾏数*) : -4 = ⽤户不想复盖已存在的 Excel ⽂件 (SET SAFETY = ON)*) :*) : 性能注意: 在 VFP 中的 COPY TO 命令⽐起任何 automation 都要快得多.*) : 但是, 由于我们只⽤来打开导出的⽂件并保存为不同格式, ⼏乎没有*) : 性能损失.*) :*) :* 调⽤⽰例….: Copy2Xls('c:\temp\bidon.xls')* 参数列表….: tcExcelFile – 要创建的 Excel ⽂件的路径\⽂件名.* 主要修改….: 26.10.2000: COPY TO FOX2X 和 SaveAs() 代替* : '组合' 个别的 Excel ⽂件.* : 谢谢 UT 的莈tin Bas鰖的意见* : 12.04.2000: COPY TO CSV 代替 FOX2X.* : FOX2X 有以下限制:* : – 代码页 850 的问题 (如字符 '?)* : – 不⽀持长⽂件名 (虽然很容易处理)* : – 不⽀持 datetime* : CSV 没有上述问题, 但有其它限制:* : – 逻辑字段转换为 F/T ⽽不是 FALSE/TRUE.* : 这不是⼀个问题, 但为了保持⼀致性, 我们* : 对于记录数没有超过限制的表,* : 不再使⽤ VFP ⾃⼰的 COPY TO TYPE XL5.* : – 如果⼀个字符字段只包括数值且值中包括前导的零,* : Excel 转换它为数值型的值 (如 '00000100' => 100).* : 这是⼀个问题, 特别是字段是⼀个专⽤关键字且你⼜要在稍后从* : Excel ⽂件转换回 VFP 时. *————————————————————————————————– LPARAMETER tcExcelFile#INCLUDE FoxPro.h#DEFINE xlWorkbookNormal -4143 && 被 SaveAs() ⽤来保存于当前 Excel 版本#DEFINE ccErrorNoParameter 'Parameter : 参数丢失失或类型错误 (⾮ ‘C’)'#DEFINE ccErrorNoTableOpen '当前⼯作区中没有打开表'#DEFINE ccErrorToManyRows '记录数' + ;ALLTRIM(TRANSFORM(lnRecords, '999,999,999')) +;') 超过 Excel 最⼤⾏数 (' -;ALLTRIM(TRANSFORM(lnXlsMaxNumberOfRows, '999,999,999'))+;')'*– 检查参数IF VARTYPE(tcExcelFile) <> 'C' OR EMPTY(tcExcelFile)CHR(7)WAIT WINDOW NOWAIT ccErrorNoParameterRETURN -1ELSEtcExcelFile = ForceExt(tcExcelFile, 'XLS')ENDIF*– 确信在选定的⼯作区中打开了表或游标IF EMPTY(ALIAS())CHR(7)CHR(7)WAIT WINDOW NOWAIT ccErrorNoTableOpenRETURN -2ENDIFLOCAL loXls, lnXlsMaxNumberOfRows, lnRecords, lnRetVal, lcTempDbfFileloXls = CREATEOBJECT('excel.application')*– 抑制 Excel 的警告和信息 (类似于 SET SAFETY OFF)loXls.DisplayAlerts = .f.*– 从 Excel 获取最⼤⾏数. 在我们计算⼯作表中的⾏数前, 需要添加⼀个⼯作簿.loXls.workbooks.add()lnXlsMaxNumberOfRows = loXls.ActiveWorkBook.ActiveSheet.Rows.Count – 1 && 1 头⾏lnRecords = RECCOUNT()*– 检查记录数是否超过了 Excel 的限制IF lnRecords > lnXlsMaxNumberOfRowsCHR(7)WAIT WINDOW NOWAIT ccErrorToManyRows*– 关闭 ExcelloXls.application.quit()RETURN -3ENDIF*– 维持 SET SAFETYIF SET('SAFETY') = 'ON' AND FILE(tcExcelFile)IF MESSAGEBOX(tcExcelFile + ' 已经存在, 复盖它?',;MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2) = IDNO*– ⽤户选择了因此退出*– 关闭 ExcelloXls.application.quit()RETURN -4ENDIFENDIFlcTempDbfFile = AddBs(SYS(2023)) + SYS(3) + '.CSV'COPY TO (lcTempDbfFile) TYPE CSVlnRetVal = _TALLY*– 打开导出的 CSV ⽂件loXls.Application.Workbooks.Open(lcTempDbfFile)*– 保存为 Excel ⽂件loXls.ActiveSheet.saveAs(tcExcelFile, xlWorkbookNormal)*– 删除 CSV ⽂件IF FILE(lcTempDbfFile)DELETE FILE (lcTempDbfFile)ENDIF*– 关闭 ExcelloXls.application.quit()RETURN lnRetVal归类于:VFP代码收藏 — ⿊鹰 @ 10:36 am 评论(0)2007年12⽉05⽇vfp9 运⾏库简要说明在发布⼀个 Visual FoxPro 9.0 开发的可执⾏程序(.exe)⽂件时,你需要考虑发布下⾯的⽂件:①.VFPV9R.dll/VFPV9T.dllVFPV9R.dll ⽂件是单线程运⾏库,⽽ VFPV9T.dll ⽂件是多线程运⾏库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统首页
点击进入系统:do form 用户登录.scx
release thisform
用户登录
登陆:use password
Locate For 用户密码= thisform.text1.value and 用户名= bo1.displayvalue If Eof()
?Messagebox("密码错误,请重新输入!!",0+48+0+0,"确定")
Thisform.Refresh
Close Database
Else
Thisform.release
Do form 主表单.scx
EndIf
退出:thisform.release
影碟登记
首页:goto top
thisform.refresh
上一页:skip -1
if bof()
messagebox("不好意思,已是第一个记录",48,"信息窗口")
endif
thisform.refresh
下一页:skip
if eof()
messagebox("不好意思,已是最后一条记录",48,"信息窗口")
skip -1
endif
thisform.refresh
末页:goto bottom
thisform.refresh
添加:if len(thisform.影片编号.value)=0
go bottom
dele
pack
wait window "影片编号不能为空" timeout 1
endif
append
thisform.refresh
删除if messagebox("确实要删除本记录么?",1+64+256,"提示")=1
delete
pack
skip -1
thisform.refresh
endif
退出a=messagebox("你真的要退出吗?",4+16+0,"对话")
if a=6
release thisform
endif
影碟信息查询用户信息查询(用户名用户信息表)租借信息查询()查询a=alltrim(thisform.text1.value)
loca for 影片编号=a
if found()
sele * from 影碟信息表videoinf where 影片编号=a into cursor "ling"
thisform.grid1.recordsource="ling"
else
messagebox("未找到该影片编号的记录!",48,"提示")
endif
退出thisform.refresh
主程序set talk off
set safety off
set stat bar off
set sysmenu off
set sysmenu to
set century on
_screen.visible=.f.
do form 系统首页
read events
退出程序:是close all 否release thisform
Quit。