网站首页 首页 > 专业解读 > 正文
关于visual foxpro 6.0中的打印输出问题
vfp6.0的十个实用技巧
vfp60教程_vfp60命令大全
---- 一.选择网络打印机
---- 笔者单位里的局域网上安装有多台网络打印机,在使用vfp 6.0编制的程序进行打印作时,是否可以选择其中的某一台空闲的网络打印机进行打印,而不一定非要从默认打印机输出,从而提高工作效率呢?经笔者研究,在执行命令:report from … to printer 之前,先执行下列程序代码:set printer to name getprinter(),就可以调用作系统的"打印设定"对话框,用户利用该窗口即可达到灵活选择空闲打印机进行打印输出的功能。(注:可供选择的打印机名是用户计算机上已安装好的打印机名。)
---- 二.恢复丢失了的fpt文件
---- 由于误作,将自由表的备注文件删除,致使自由表无法打开。遇到这种情况我们可采用下述方法解决:
---- 1.创建一个新的自由表,且该自由表只含一个字段,其类型为备注型。关闭该自由表,将其扩展名为fpt的备注文件给误删除的自由表的备注文件,或将该备注文件改名为误删除的自由表的备注文件即可。运行下面的程序同样也可以恢复丢失了的fpt 文件:
accept ''请输入丢失了.fpt
namef=trim(namef)+''.bbb''
crea dbf &namef (aa m)
use
dele file &namef
---- 2.用vfp低级文件函数创建一个空的fpt文件,原自由表即可打开。程序清单如下:
accept ''请输入丢失了.fpt
namef=trim(namef)+''.fpt''
hand=fcreate(namef)
abc=repl(chr(0),3)+chr(8)+
repl(chr(0),3)+''@''+repl(chr(0),504)
=fwrite(hand,abc)
=fclose(hand)
return
---- 上述方法只是为丢失了fpt文件的自由表建立了一个新的fpt文件,原fpt文件中的内容已经丢失,无法恢复。在实际作中若遇到这种情况,是恢复原来的fpt文件,若原fpt文件无法恢复时再采用上述方法。
---- 三.脱离vfp运行程序
---- 利用vfp 6.0创建的应用程序,被编译成可执行程序后,若要使其脱离vfp环境运行,除了我们所知道的在应用程序目录中需包含一个名为"config.fpw"的配置文件外,经笔者试验发现还必须包含"vfp6r.dll"、"vfp6rchs.dll"、"vfp6renu.dll"这三个动态链接库文件。这三个文件在"windows\"目录下,用户可直接将其到自己的应用程序目录中。再经过编译形成可执行程序,运行安装向导创建发布磁盘,我们开发的小应用程序就可以堂堂正正地在win 98下安装运行了。
---- 四.低级文件函数加密数据库
---- vfp有一个十分薄弱的环节就是数据库的保密性。由于.dbf文件都是敞开式的,甚至用dos中最简单的type命令都可以浏览,因此,笔者从以下两方面对数据进行加密:
---- 1.在向自由表中增加数据时,就进行加密,即更新自由表时就对数据进行加密,在读取数据时再解密。
---- 2.用vfp提供的低级文件函数进行加密,加密后的文件无法打开、浏览,使用时,再执行该加密程序即可将加密的自由表还原。
加密数据库程序(同时也是解密程序)
set talk off
close all
clea
自由表名(含扩展名):" get file1 defa '' ''
read
if handle< 0
@14,10 say "不能打开文件!"
=inkey(0)
endif
j=0
do while .not.feof(handle)
bb=fread(handle,1)
cc=chr(mod(asc(bb)+128,256))
=fseek(handle,j)
=fwrite(handle,cc)
j=j+1
enddo
=fclose(handle)
close all
---- 五.简易设置textbox对象的输入长度
---- 在以前的xbase语法中,我们可以通过picture参数定义某变量或文本栏的输入长度格式,而在vfp中的textbox对象中则支持了format和inputmask属性来定义输入的格式。我们可以使用比较原始的方法来进行设定,比如当要求输入有20个栏位的文本框对象时,我们可以在此对象的inputmask属性中定义为inputmask="xxxxxxxxxxxxxxxxxxxx"。
---- 但是这样的设定方法非常麻烦,尤其是当面对更长的字符串输入时更是不方便。其实我们完全可以用另外一种方法来把这样的需求设计过程变得很简单,下面就具体介绍一下这种简易的快速设定输入栏位的方法。
---- 利用replicate()函数设定输入长度这里我们同样利用了对象的inputmask属性来定义输入格式和输入长度,但是当对象的输入比较长时,则可以借助算术表达式的方式来对其进行设定。通过属性窗口中的inputmask属性建立表达式对话框,我们可以利用replicate()函数设定重复的"x"的个数即可(本例为20)。完成后回到属性设置窗口,我们可以看到在inputmask属性栏中出现了"=replicate(20)"位值的表达式,这样,我们就轻松地完成了长字符输入的长度控制。由此我们也可以体会到善于使用表达式给我们带来的方便之处。
---- 在程序开发过程中,我们经常要设计一些文本框,而且这些文本框要求只能输入中文。在这种情况下,通常需手工启动某一种中文输入法。如果软件能够自动启动缺省的中文输入法,那么将会给编程人员带来很大的方便。下面的类便能实现这一功能,具体的设计步骤如下:
---- 1.创建一个新类,其基类是"textbox",类名为"中文textbox",存储于"myclass"类库中。
---- 3.设计gotfocus,代码为: =imestatus(1) 表示当光标移到此框后,自动启动中文输入法。
---- 4.设计lostfocus,代码为: =imestatus(0) 表示当光标移开此框后,自动关闭中文输入法。设计好后,保存到文件即可。
---- 七.立体框类的设计方法
---- 然而这样的三维立体框太单调,缺少变化。通过以下的设计方法, 我们可以作出类似于vb中的three_d panel那样的效果。具体设计步骤如下:
---- 1.新建一个类,基类是"container",类名为"three_panel",存储于"myclass"类库中。
---- 2.进入类设计器后,设置"three_ panel"的各项属性,如表1所示。属性设计完毕后,存入文件,就可以得到凸起效果的边框类。
---- 八.在程序中播放动画
---- 我们知道,vfp只支持静止的,无法直接播放gif动画。但网上许多有趣而华丽的gif动画的确令人心动,如何将这些动画插入到你的vfp程序中,让你的程序更吸引人呢?
---- 其实很简单,将gif动画分解成各单独的静止的gif或bmp,然后在vfp使用计时器让这些静止的轮流出现,就产生动画效果了。
---- 将gif动画分解为静止的软件有很多,在网上很容易找到,如animagic gif 等。分解出来的我们分别以a0.bmp、a1.bmp……这样的形式保存。在表单中添加计时器timer1,timer1的interval属性设为100,enabled属性设为.t.,再添加image1控件,其backstyle属性设为0(透明),stretch也设为0(裁剪)。
---- 在form的load过程中写代码:
public i , n
n=5(静止的总共数目)
在timer1的timer过程中写代码:
local j
i = mod (i+1,n)
thisform.image1.picture="a"-j-".bmp"
---- 九.粘贴vfp顶层表单
---- 当你将表单设置为顶层表单并运行于windows下,就会发现表单中粘贴功能失效,给实际工作造成极大的不便,从而使编制的软件达不到专业水准。通过认真分析与实践,笔者认为,造成这一问题的原因是微软设计vfp时,只考虑了位于系统选单下的表单的和粘贴情况,即位于系统选单下的表单可使用及粘贴热键,而处于windows下的表单完全脱离了系统选单的控制,因此及粘贴热键失效。
keypress nt
lparameters nkeycode, nshiftaltctrl
if nkeycode=3
&& ctrl+c
-cliptext=this.seltext
endif
if nkeycodeVisual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。=22
&& ctrl+v 粘贴
do case
case this.selstart=0
this.value=-cliptext+this.value
case this.selstart〉=1
this.value=subs(this.value,1,this.selstart)+
-cliptext+subs(this.value,this.selstart+1)
endcase
endif
thisform.grid1.column1.setfocus()
sele recetem
if not eof()
skip
endif
thisform.refresh
---- 十.为vfp添加循环微调控件类
---- 在vfp编程中,微调控件是最常用的控件之一运行表单,我们就可以看到熟悉的gif动画了。。按照微调控件提供的基本功能,通过单击向上或向下箭头,而达到微调控件的或最小值时,如继续单击向上或向下箭头,将保持或最小值不变。笔者通过对spinner控件属性和的分析,用编程的方法实现了循环微调控件功能。
---- 循环微调控件(cyclespinner)所实现的功能是:当单击向上箭头而达到值时,再单击向上箭头,能自动跳到最小值;当单击向下箭头而达到最小值时,能自动跳到值;其余功能均继承spinner基类的功能。具体实现方法如下:利用表单控件,在表单中设计一个微调按钮,并设置如下属性:
spinnerhig---- 在vfp的标准类里提供了一个形状控制类(shape),可以简单地将s hape的"specialef fect"属性设置为"0-3d",将"backstyle"属性设为 "0-透明",来设计三维立体框。hvalue=max
&&max应小于spinner基类所
&&提供的默认值
spinnerlowvalue=min
&&min应大于spinner基类所
&&提供的最小默认值
value=1
name=''cyclespinner''
在init中写入如下代码:
this.spinnerhighvalue=this.
spinnerhighvalue+this.increment
在interactivechange中写入如下代码:
this.value=int(this.
spinnerlowvalue+this.increment)
endif
if this.value=this.spinnerlowhvalue
this.value=int(this.
spinnerhighvalue-this.increment)
endif
thisform.refresh
---- 若你在编程中,需用此功能,就可直接用此循环微调控件类了。
什么是变量,VF6.0提供了那几种变量?内存变量的命名规则是什么?
spinnerlowvalue-this.increment就是可能会动态变化数值的一个符号。就像方程式里的未知数用x替代一样。
if this.value=this.spinnerhighvalue主要有两种,全局变量和局部变量
详细问题可以参考vfp6.0教程,网上能搜到的UsedRange =nrows.UsedRange&&返回工作表中可使用的区域,UsedRange表的属性很多
VFP6.0 表
---- 3.通过调整"specialeffect"的值为"1-凹下",可以设计凹下效果的边框类(three_p anel_ao)。 调整其余参数可以得到不同效果的边框。表结构用:copy structure to <文件名>
修改表结构用:modify structure 同时可以修改字段名,添加新字段
用命令方式来添加新的字段:ALTER TABLE 表名 ADD COLUMN 字段名 类型RETURN MAX(lnSz1,lnSz2,lnSz3)(宽度)
例如:ALTER TABLE aa ADD COLUMN dd C(10)
就myexcel.workbooks.close&&关闭工作区是在表aa中添加一个宽度为10的字符型字段dd
表结构用:copy structure to <文件名>
修改表结构用:modify structure
表结构Copy Stru to 表名
修改表结构Modi Stru,同时可以修改字段名,添加新字段。
那里有关于电脑学习的网址和资料啊
i=0以下是一些关于电脑学习的常用和资源:1. W3Schools:.w3schools. - 提供关于网页设计、编程(如HTML、CSS、JaScript等)的学习和在线教程。2. Codecademy:.codecademy. - 提供的交互式编程课程,包括Python、Ja、JaScript等各种的学习。3. Mozilla Dloper Network:dloper.mozilla - 非常全面、详细的Web开发技术文档和教程,涉及HTML、CSS、JaScript等。4. Coursera:.coursera - 提供各种或付费在线课程,包括计算机科学、编程、 &&选择区域合并单元格数据科学等主题。5. Khan Academy:.khanacademy - 提供广泛的学习资源,包括编程和计算机科学等多个学科。6. GitHub:.github. - 是全球的代码托管平台,提供许多开源项目和学习资源,可以通过搜索找到相关的学习。7. Stack Overflow:.stackoverflow. - 是技术问答社区,你可以在这里提问和解答关于电脑学习中的问题。8. YouTube:.. - 提供了许多的教ACCEPT "请输入第三个数:" TO lnSz3学视频,你可以在搜索栏中输入你需要学习的主题,例如“电脑编程教学”等。这些和资源将帮助你获取关于电脑学习的知识和技能。无论是初学者还是进阶者,它们都对于学习和提高自己的技能非常有帮助。
以下是一些关于电脑学习的和:1. Codecademy(.codecademy./):在线学习编程的,提供各种编程的课程。2. Coursera(.. Udacity(.udacity./):提供或收费的在线课程,包括计算机科学、数据科学、等领域。4. edX(.. Stack Overflow(stackoverflow./):开发者社区,可以在上面寻求技术帮助和进行交流。6. GitHub(github./):代码托管平台,上面有各种开源项目和资源。7. W3Schools(.w3schools./):提供网页开发教程和在线编程工具的。8. 云课堂(study.163./):提供各种IT课程和证书考试培训。9. 慕课网(.imooc./):提供和收费的在线课程,包括编程、设计、运维等领域。以上是一些比较常用和有用的电脑学习和,希望对您有帮助。
下面是一些关于电脑学习的和:1. Codecademy(codecademy/):的在线编程学习平台,提供多种编程的学习课程和实践项目。2. Coursera(. edX(. Udacity(udacity/):针对互联网行业的在线学习平台,提供计算机科学、数据科学、等方向的课程。5. GeekSalon(geeksalon/):为程序员提供学习和交流机会的社区,包含各类编程相关的技术文章和视频教程。6. GitHub(github/):由全球开发者共同构建的开放式社区平台,其中包括大量代码、教程和项目。7. Stack Overflow(stackoverflow/):面向程序员的问答社区,致力于解决技术上的各种问题和疑问。除此之外,还有许多的电脑学习和,可以通过搜索引擎进行查询。
Visual FoxPro 6.0的数据导出
and this.selstart〈=len(this.value)遇到这种情况我是逐记录写入到EXCEL的单元格上去。我手头电脑没有现成的例子,家里的倒有。不过我先发个相关的资料给你看看,如果不清楚的话,留言给我,我发具体的代码给你。
VFP控制EXCEL的语法如下:
myexcel=createobject('excel.application')
&&创建一个对象
myexcel.visible=.t.&&可见
&&bookexcel=myexcel.workbooks.add
bookexcel=myexcel.workbooks.open("C:\Documents and Settings\Administrator\桌面\学习\dd.xls")
&&打开指定文件
nrows=bookexcel.worksheets('sheet1')&&打开工作表
usedrange.columns.count&&计算共几列
r=usedrange.rows.count&&汇总行
c=usedrange.columns.count&&汇总列
with myexcel.application
.sheets('sheet3').select
.sheets.add&&添加一个工作表
.ActiveSheet.Name = 'ddddd'&&重命名表
endwith
myexcel.cells(1,1).value='sss'&&1,1处的值为
myexcel.activesheet.columns(2).columnwidth=15&&第2列的列宽设
myexcel.activesheet.rows(2).rowheight=50&&设第2行的行高
myexcel.activesheet.rows(2).insert&&第2行前插入一行
myexcel.activesheet.columns(2).insert&&第2列前插入一列
myexcel.activesheet.Cells(1,1).Font.size=25&&设置1,1的字体大小
myexcel.activesheet.Cells(1,1).Font.name='黑体'&&设置字体
myexcel.activesheet.range('A1:C2').select&&选择区域
myexcel.activesheet.Columns('A:B').Select&&整列选中
myexcel.Selection.NumberFormatLocal="@" &&设置选中的区域为字符型数据
myexcel.Selection.EntireRVisual FoxPro6.0继承了以往所有旧版本数据库管理系统的功能,并且扩展了对应用程序的管理和在Internet上发布用户数据的功能,使得开发数据库的工具更加完善与快捷,从而成为当今功能最为强大、可靠的数据库管理系统。Visual FoxPro6.0是一个功能强大的数据库管理系统(DBMS),同以前的数据库管理系统相比,具有更快速、更有效、更灵活的突出特点。它能够迅速而又简单地建立数据库,从而方便地使用和管理数据。它不仅支持客户机/(C/S)结构,而且具有与其他软件(如Excel,W---- 再将其作为类保存起来,添加到你的类库中。ord)共享和交换数据的能力。VisualFoxPro6.0提供对象和处理模式,利用面向对象编程(OOP)的威力使用户能够最快速地建立和修改应用程序。Visual FoxPro6.0对以前版本的FoxPro提供完全的兼容性,以前的应用程序可完全不经修改直接在Visual FoxPro6.0上ow.Delete&&删除选中的行
myexcel.Selection.columns(1).Delete&&删除第几的列
myexcel.workbooks.close(.f.)&&关闭工作区不提示保存
myexcel.quit&&excel
生成一个表并显示可用的sheets
&&oExcel = CREATE("Excel.Application")
&&oExcel.Workbooks.ADD
&&FOR EACH oMyVar IN oExcel.sheets
&& ? oMyVar.name
&&NEXT oMyVar
VFP6.0程序设计到底是用来干嘛的啊?感觉好难学。,,
retuVF就是一个小型的数据库管理系统。集数据库管理和应用系统开发于一体的。之所以叫数据库是应为数据多,多张表之间可以根据相同的项进行关联,进行作。Excle适用于办公报表,比较简单直观,所见即所得,但只能算是办公软件,还不能算是数据库软如:路径设:set defa to c:\件;数据量较大就需要用Foxpro,如果只是单张复myexcel.activesheet.Cells(1,1).clear&&清除内容杂的报表那就使用Excle。
在VFP 6.0中,DELETE FOR .T.是什么意思
this.spinnerlowvalue=this.因为 .t. 恒为真---- 解决的办法是可在表单的控件(本文举例为文本框)中,为keypress nt编写如下处理程序,该处理程序首先将选择内容到windows剪贴板上,然后再将剪贴板上的内容添加到控件中。,所以每一条记录都符合条件。
---- 六.中文文本框的设计方法安全可靠退出vfp6.0系统的方法
myexcel.Worksheets('sheet1').Activate&&选择表为当前工作表要安全退出vfp,可以先保存备份,然后再退出。
DELETE FOR .T.首先,新建一个表单后,点保存,输入名称后会出现一个路径,选择你的U盘,保存在里面就好了,
在系统中用文件另存为。。。保存到u盘,另外表单可能用到的文件也用过handle=fopen("&file1",2)去。
不要这样保存备份文件,把vfp 所用文件建一个文件夹。备份文件夹。
然后退出的方法有很多:
1、在命令窗口中执行Quit命令
2、点菜单中的"文件"--"退出"
3、点左上角的小狐狸图标--再点关闭,或者双击该图标
vfp 怎样往表格里录入数据?
j = alltrim( str(i) )给表格设置数据源,修改表格,数据源会自动修改的。(你在加入表格控件到表单后,右击表格控件,按生成器向导设置其数据源)
如果你还想在表中输入新数据,就将表格的allowaddnew设置为.t.
如果表只没有任何记录,你应该先加一记录进去才可以要表单中正确地作下去
给表格帮定表这是一个正确的命令,最终效果是将全部记录逻辑删除,即打上删除标记。就行了,在表---- 2.进入类设计器后,设置"中文textbox"的各项属性,如字体、颜色等。格的属性recordsource="表名"
vfp6.0是什么
Microsoft Visual FoxPro6.0for Windows(简称VFP6.0)是Microsoft公司推出的新一代全32位、面向对象的数据库开发管理工具。它的发展及使用不仅大大简化了用户数据库的管理,使组织数据、创建用户应用程序等工作更加快捷,而且由于提供了功能强大的面向对象编程工具、OLE支持及Web服务能力,从而使开发应用程序的功能更加完备。运行?asc(bb),asc(cc)
文件的自由表名称(不带扩展名):'' to namef急救,VFP编程。。
myexcel.activesheet.rows(1).selectLOCAL lnSz1,lnSz2,lnSz3
clearACCEPT "请输入个数:" TO lnSz1
ACCEPT "请输入第二个数:" TO lnSz2
?"数是:"
??SzMax(lnSz1,lnSz2,lnSz3)
?"最小数是:"
??SzMin(lnSz1,lnSz2,lnSz3)
FUNCTION SzMax()
LPARAMETERS lnSz1,lnSz2,lnSz3
ENDF@10,10 say "请输入要加密的UNC
FUNCTION SzMin()
LPARAMETERS lnSz1,lnSz2,lnSz3
RETURN Min(lnSz1,lnSz2,lnSz3)
ENDFUNC
免责声明: 本文由用户上传,如有侵权请联系删除!
- 上一篇:工程图复印机(工程图复印机价格)
- 下一篇: 美股大全dq 美股大全DQ
猜你喜欢:
- 2024-06-03 内蒙古科技大学绩点满分是多少(内蒙古科技大学挂几科降级)
- 2024-06-03 深圳高新企业公示名单2021 深圳高新企业查询
- 2024-06-03 台球初学者手势图解 台球手驾教程
- 2024-06-03 类似咖啡遇上香草的动漫 与咖啡遇上香草类似的动漫
- 2024-06-03 肇庆快速驾校怎么样报名 肇庆驾校收费标准
- 2024-06-03 浙江本地网站(浙江在线网)
- 2024-06-03 新疆医学院分数线是多少 新疆医学院多少分录取
- 2024-06-03 室内设计师助理有多苦(室内设计师助理要熬多久)
- 2024-06-03 曲靖中考怎么样报名的高中 曲靖中考录取新政策
- 2024-06-03 c罗已确定留在曼联 c罗已确定留在曼联的球队
- 最新文章
- 热评文章