| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5087 人关注过本帖, 1 人收藏
标题:VFP编程技巧,不断增加中(千万别灌水)
只看楼主 加入收藏
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

数字与汉字的转换:

例:1978,如何转化为汉字一九七八?

lc数字 = Allt(Str(1978))

lc汉字= Strtran(Strtran(Strtran(Strtran(STRTRAN(Strtran(STRTRAN(Strtran(Strtran(Strtran(lc数字,[1],[一]),[2],[二]),[3],[三]),[4],[四]),[5],[五]),[6],[六]),[7],[七]),[8],[八]),[9],[九]),[0],[零])

?Chrtranc("1978","0123456789","零一二三四五六七八九")

&&VFP6.0-8.0均可唯独VFP7.0要用:

?Chrtranc("1978 ","0123456789 ","零一二三四五六七八九")


2005-08-02 11:28
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

使用提问式退出:

在表单的QueryUnloadEvent事件中加入

If Messagebox("真的退出系统吗? ",4+32+256,"警告") = 6

Clear Events

Quit

Endif

Nodefault


2005-08-02 11:29
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 
连接ACCESS数据库

*****************************************************************
*获取连接句柄
*****************************************************************
Procedure Get_Handle
Acc_Connect=Sqlstringconnect([Driver={Microsoft Access Driver (*.Mdb)};DBQ=.\DataBase\School_Manage.Mdb;UID=Admin;Pwd=])
If Sql_Connect<0
  Messagebox([获取连接句柄不成功,可能网络不通或者服务器未启动!],16,[错误信息])
  Return -1
Else
  Return Acc_Connect
Endif
Endproc
*****************************************************************
*删除连接句柄
*****************************************************************
Procedure Dele_Handle
=SqlDisConnect(Acc_Connect)
Endproc

[此贴子已经被作者于2005-8-10 10:09:01编辑过]



2005-08-10 10:08
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

当filter设置时,应该用locate代替seek

当你的查找字段是建立了索引且当前索引是该索引时,SEEK 通常是查找单个记录的最快的方法。不过,当设置了filter时,SEEK非常慢。理由是SEEK将查找符合你的搜索标准的第一个记录。FoxPro为了移动记录指针到相应的记录上,必须找到和你的标准相匹配且和filter条件相称的记录。和SEEK不同, LOCATE 是可进行Rushmore优化的.?当一个可优化的filter 起作用时,LOCATE FOR CustId=m.CustId 通常比SEEK m.CustId 更快。在GO TOP 和 GO BOTTOM

中也存在相似的问题。用无子句的LOCATE来执行GO TOP,将会使记录指针移动到乎合filter 条件的第一个记录。要执行 GO BOTTOM, 设置当前索引标识的降序然后LOCATE, 在将索引设置为原来的升序。


2005-08-12 17:55
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

设置多个过程或类文件

使用ADDITIVE 子句:

SET PROCEDURE TO proc.prg ADDITIVE

SET LIBRARY TO class.vcx ADDITIVE


2005-08-12 17:55
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

2005-08-12 17:56
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

为什么不能从VALID事件中把焦点设置到另一个对象上

SETFOCUS()方法不能从Valid事件中运行,试着用LostFocus事件作为替代。


2005-08-12 17:57
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

制作WINDOWS格式的更改日期的程序

制作一个WIN9X格式的日期设置程序对于你自己的软件,除能够起到美化程序界面,而且能够提高程序的易用性,主要步骤如下:

1、首先建立一个表单,在表单的INIT事件中要首先设置一个判断星期的循环程序。

2、在表单中加入年微调控件,编写该控件的InteractiveChange事件过程,主要是编写当年变动的时候,要刷新月中每天的星期。

3、加入月下拉选项框,进行月份选择,同样要编写该控件的InteractiveChange事件过程,主要是编写当月变动的时候,要刷新月中每天的星期。

4、加入Grid控件,以选择日期。


2005-08-12 17:58
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

在一自定义窗口中预览报表

通常情况下,我们在使用REPORT FORM

命令加PREV可在系统预设窗口中预览报表,但是能不能在一自定义窗口中预览报表呢?这一功能在VFP5.0中是可以的,方法如下:

DEFI WIND WIN1 FROM 0,0 TO 26,100 TITLE“报表预预览”

MOVE WIND WIN1 CENTER

REPORT FORM CUSTOMERS PREV WIND WIN1

RELEASE WIND WIN1


2005-08-12 17:59
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

解决在使用REPORT FORM....TO FILE命令报表输出至文件出现的乱码问题

这个问题自FOXPRO2.5 FOR WIN 时已出现,实际上如果于REPORT FORM 命令中加入了TO FILE参数,此报表将会通过目前所采用之打印机驱动程序将报表输出至所指定的文字文件中,除非特别指定附加名,非党员则此文字文件的附加名将为.TXT。但是,如果仅仅使用TO

FILE参数指定报表输出的文字文件,则很可能储存至此文字文件的是POSTSCRIPT或其它打印机代码,而非你所期望的文字,要解决这个问题,请于REPORT FORM....TO FILE中再加入关键字ASCII,如下:

REPORT FORM CUMSTOMERS TO FILE DEMO1 ASCII

MODI FILE DEMO1.TXT


2005-08-12 18:00
快速回复:VFP编程技巧,不断增加中(千万别灌水)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012980 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved