foxtable软件开发基础使用说明书.docx
- 文档编号:29034771
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:76
- 大小:52.04KB
foxtable软件开发基础使用说明书.docx
《foxtable软件开发基础使用说明书.docx》由会员分享,可在线阅读,更多相关《foxtable软件开发基础使用说明书.docx(76页珍藏版)》请在冰豆网上搜索。
foxtable软件开发基础使用说明书
写给初学者
如果你是初次接触编程,那么我们给你几个非常重要的建议:
一、凡事就怕不敢入门
虽然Foxtable看上去比易表难了一些,但是只要你静下心来看帮助,你会发现其实并没有难到哪去,深入之后,你也许会觉得更容易。
凡事就怕不敢入门,一旦入门就会觉得:
不过如此嘛!
二、不要尝试去记住一切
学习编程的重点,不是记住什么,而是要了解每一段示例代码的原理和逻辑。
要知道,优秀的程序员之所以优秀,绝不是因为他们记住了什么,他们和你我一样,需要不停地借助帮助文件。
三、不要急于求成
磨刀不误砍柴工,心急也吃不得热豆腐。
帮助文件非常详细,提供了大量的示例,内容也是循序渐进的,只要你多点耐心,就一定能掌握。
有的用户只是粗略地看了一次帮助,连基本的概念都没有掌握,就开始开发系统,结果往往是事倍功半。
四、实践出真知
要想全面、深入地掌握Foxtable,在学习初期,应该将帮助中的示例全部实际操作一次,以便加深印象。
学习的后期,可以自己尝试写一写代码进行测试,特别是有疑惑的地方。
五、三人行必有我师
如果你在学习和应用的过程中遇到难题,自己无法解决,可以访问Foxtable社区。
在寻求帮助的同时,也别忘记帮助他人,让我们一起进入Foxtable编程的奇妙天地,一起来提高吧。
Foxtable社区地址:
最重要的两章
Foxtable的开发篇非常庞大,其中最重要的有两章,分别是《编程基础》和《Foxtable编程》。
这两章既是基础,又是精华,可以说掌握了这两章的内容,剩余的内容都是“小菜”,因为开发篇除这两章之外的内容,基本上都是参考性质,在学习的过程中,只需做到有所了解即可,在实际开发的时候再来查阅。
所以我们在学习开发篇的时候,应该在这两章花上最多的精力,特别是《Foxtable编程》这一章,要反复看,细致看,多实践,只有基础打好了,才能融会贯通,才能在开发过程中做到游刃有余。
再好的程序员,也不能保证自己的代码和设置100%正确,肯定要反复调试,才能最终达到目标。
一些错误可能直到运行的时候才被发现,普通的错误没关系,重新修改代码和设置即可;不过有的错误可能非常严重,以致每次打开项目文件时,Foxtable就会崩溃退出,或者无法正常进入操作界面;怎样才能回到正常的操作界面,给开发者提供更改错误的机会呢?
很简单,首先按住Ctrl键,然后打开出现错误的项目文件,直到项目文件被完全打开,再松开Ctrl键即可。
如果打开的过程中出现了登录窗口,先松开Ctrl键,选择以开发者身份登录,输入密码,然后重新按住Ctrl键,单击登录窗口的确定按钮,直到项目文件被完全打开,再松开Ctrl键。
以这种方式打开的项目文件:
1、不会执行用户代码。
2、外部表不会加载数据,只加载结构。
3、系统菜单将代替用户菜单。
在修改错误代码和设置后,重新打开项目文件。
提示:
如果你确认你的代码没有问题,但是还是出现莫名其妙的错误,可以尝试先删除项目目录下的子目录Catch,然后重新打开项目。
FoxTable使用的编程语言是VisualBasic,即使您完全没有接触过编程,也不用担心,因为Foxtable使用的只是VisualBasic中很少的一部分,大多数人都可以在短时间内掌握。
VisualBasic近似于自然语言,不区分大小写,非常适合普通用户学习使用,这就是我们选择VisualBasic作为用户二次开发语言的原因。
VisualBasic编程是面向对象的,而面向对象的编程,就离不开属性、方法和事件。
程序开发的任务,就是根据用户的动作与要求来设置属性、执行方法和响应事件。
那么什么是属性、方法和事件呢?
我们暂不讲编程,先来一个现实生活的例子,例如对于一辆汽车来说:
1、品牌、型号、颜色、座椅个数、发动机排量等等,就是汽车的属性。
2、启动、熄火、转弯、刹车就是汽车的方法,汽车通过执行这些方法来完成日常工作。
3、为什么踩油门会加速,而踩刹车会减速?
这是因为驾驶员的每一个操作,都会被当作一个“事件”,并通过传感装置通知到汽车的控制系统。
再来看Foxtable中的表,表名、行数、列数就是它的属性;增加行、删除行就是它的方法;而执行方法,又会引发对应的事件,通知系统某个表已经增加了一行、已经删除了一行。
任何你在Foxtable中所看到的,包括表,行、列,窗口、菜单等等,都可以看作是一个对象,有自己的属性、方法和事件。
甚至简单到一个数据,也可以看作是一个对象,也会有自己的属性、方法;例如一个字符串,它也有自己的属性,例如长度,还有自己的方法,例如替换、插入、大小写转换等等。
数据类型
VisualBasic有以下数据类型:
数据类型
说明
String
任意个数的字符,常称为字符串。
Date
日期时间
Boolean
逻辑值,逻辑值就两个,分别是True(是)和False(否)。
Byte
微整数,介于0到255之间的微整数
Short
短整数,介于–32768到32767之间的短整型
Integer
整数,介于–48到47之间的整数。
Long
长整数,值的范围为-808到807。
Single
单精度小数,单精度小数,有效数字为7位。
Double
双精度小数,有效数字为15位。
Decimal
高精度小数,有高达28位的有效数字,适用于要求使用大量有效的整数及小数位数并且没有舍入错误的财务计算。
Object
通用型,可存放任何类型的数据。
数值类型较多,一般情况下,小数用Double型,整数用Integer型即可,如果整数范围较大,可以用Long型。
我们最常用的数据类型是:
String、Date、Boolean、Integer、Long、Double。
什么是有效数字?
简单地说,就是从左边第一个不是0的数字算起,直到最后一个数字,就是一个数值的有效数字,例如1.324的有效数字是4位(1、3、2、4),1.3240的有效数字是5位(1、3、2、4、0),而0.024的有效数字是两位(2、4)。
声明变量
变量用来在执行代码的过程中临时存放数据,要使用一个变量,必须先声明它。
声明一个变量,就是要指定变量的名称和它的数据类型。
声明变量的语法是:
Dim变量名As数据类型
例如:
DimNameAsString
表示声明了一个新的String(字符串)型变量,变量名为“Name”。
再例如:
DimriqiAsDate
表示声明了一个新的Date(日期)型变量,变量名为“riqi”。
可以在定义变量的同时指定其初始值,例如:
DimNameAsString="foxtable"
表示声明了一个新的String(字符串)型变量,变量名为“Name”,初始值为“foxtable”。
可以在同一行定义多个变量,前提是这些变量的类型相同,变量名之间用逗号分割,例如:
DimVal1,Val2AsInteger
DimStr1,Str2AsString
上面的代码,定义了两个整数型变量Val1、Val2,以及两个字符型变量Str1、Str2。
提示:
上面出现的彩色字符,是Foxtable的代码编辑器自动加上去的,只是为了便于阅读,并无特殊的意义。
关于变量名
变量名称必须以字符或者下划线(_)开始,而且至少应该包括一个字符或者数字。
变量名不能包含除下划线(_)之外的符号和空格。
变量名也不能是关键词,所谓关键词,就是对VisualBasic有特殊意义的单词,例如上面的Dim、As。
关键词有几百个,你很难全部记住的,但你只要记住一点,如果输入代码,单击“确定”按钮后,提示“关键词作为标识符无效!
”,那么就表明你可能用关键词作为变量名了。
圆点符号
任何对象的方法和属性,都必须通过圆点符号才能调用和访问,例如:
DimdAsDate
DimiAsInteger
i=d.Month
d=d.AddDays(36)
日期型数据有一个属性Month,用于返回该日期的月份,我们通过圆点符号来访问该属性:
i=d.Month现在变量i的值等于日期d的月份。
日期型数据有一个AddDays方法,用于给日期加上指定的天数,并返回新的日期,我们同样通过原点符号调用这个方法:
d=d.AddDays(36)
现在变量d等于原日期加上36天后的新日期。
上面的属性和方法我们会在后续章节介绍,你现在只需了解圆点符号的用法即可。
共享成员
例如我们定义了一个日期变量d,那么通过该变量的Month属性可得到其月份值:
DimdAsDate=#12/31/2008#
DimiAsinteger=d.Month
上面的代码通过Month属性获得日期型变量d的月份值,并保存在整数型变量i中。
Month属性和具体的日期变量相关,不同的日期变量,Month属性返回不同的值;事实上,绝大多数属性,都和Month属性一样,是和具体变量相关的。
但是有一些属性是不同的,它不是通过变量,而是通过类型名称访问,例如要得到今天的日期值:
DimdAsDate
d=Date.Today
上面的代码将今天的日期值保存在变量d中。
请注意用于返回当天日期值的Today属性,它不属于任何一个日期型变量,而是属于日期类型Date,我们直接通过Date类型来访问这个属性。
这很好理解,Today这个属性返回的是今天的日期值,和具体的日期变量无任何关系。
我们将这种直接通过类型名称访问的属性,称为共享属性。
同样直接通过类型名称执行的方法,称为共享方法。
在这里,共享的意思就是:
大家共用的,不属于某个具体变量的。
命令窗口
这一节并不是VisualBasic的内容,但是为了便于我们接下来的学习,我们有必要先插入这么一节。
我们在学习的过程中,会接触到大量的示例代码,有时我们有必要通过执行示例代码,来加深印象、解除疑虑。
命令窗口可以直接输入并执行代码。
执行代码
在“杂项”功能区,单击下面的按钮,可以打开命令窗口:
命令窗口右下角有一个“执行”按钮,用于执行你输入的代码:
查看执行结果
Foxtable提供了一个Output类型,该类型有一个共享方法Show,用于在命令窗口显示信息。
例如将下面的代码复制到命令窗口执行:
Dimi1AsInteger=1
Dimi2AsInteger
i2=i1*2
Output.Show(i2)
Output.Show显示的信息,位于命令窗口的信息显示区,具体位置请看下面的图片:
重要特性
命令窗口为非模式窗口,可以在不关闭命令窗口的情况下,继续进行其它操作,例如编辑数据、执行菜单命令等等。
命令窗口的辅助功能
词汇:
对于初学编程的人来说,记住Integer、Double、String这些单词不是一件很容易的事,英文基础差的用户更甚。
不过没关系,命令窗口的词汇页,列出了所有的常见词汇,双击某个词汇,即可自动输入该词汇:
字段
在编写代码的时候,要记住所有的表名和列名,几乎是一个不可能的任务。
其实完全不需要为此担心,命令窗口的字段页列出了所有表的字段(列),双击即可自动插入字段名。
你还可以选择插入的字段名是否用双引号或单引号括起来,还是不需要任何引号。
帮助
命令窗口的帮助页内置了整套帮助文档,可以让大家更便捷地获得帮助。
不过我个人不太喜欢这个内置的帮助,我觉得独立的帮助文档使用起来更方便。
命令窗口的自动输入功能
在命令窗口输入:
DimxAsd
然后按Tab键,将列出所有以d开头的类型供选择:
按上下箭头键移动光标,可以选择类型,将光标移到Date,按回车即可输入类型Date:
回车后,按下图所示输入"x.",然后按Tab键,系统会自动判断出变量x为日期型,然后列出日期类型所有的方法和属性供选择:
选择AddMonths,然后按回车,会自动输入AddMonths,同时显示AddMonths的帮助:
不是任何时候都需要选择的,例如输入:
DimxAsString
x.e
按Tab键,会自动输入EndsWith:
DimxAsString
x.EndsWith
这是因为x是一个字符型变量,而字符型变量以E开头的属性或者方法,就只有EndsWith。
再例如:
DimxAsString
x.r
按Tab键,将列出字符型以r开头的属性和方法:
显然手工输入能记住的开头字符,可以更加快速的定位所需要的成员。
目前介绍的是命令窗口(代码编辑器)的基本功能,其它功能,我们会随着学习的深入逐个介绍。
可以看到,在Foxtable中编写代码,并不需要死记的,不仅可以自动输入类型、属性和方法,甚至连帮助都是自动显示的。
自动全角转换和着色
在默认的情况下,代码编辑器会自动将全角字符转换为半角,如果你不喜欢这种强制转换,可以在第一行代码输入:
'''。
例如:
'''
Dims1AsString
s1="我喜欢Foxtable,因为..."
Output.Show(s1)
此外编辑器会用不同的颜色标出各种关键词,以及表名和列名,如果你的电脑性能不太好,代码又比较长,这种代码自动着色的功能会耗费较长的时间,此时你只需在第一行输入"'...",即可关闭自动着色。
例如:
'...
Dims1AsString
s1="我喜欢Foxtable,因为..."
Output.Show(s1)
如果你希望同时关闭全角转换和着色,只需在第一行输入"'''..."。
例如:
'''...
Dims1AsString
s1="我喜欢Foxtable,因为..."
Output.Show(s1)
代码注释
给代码的关键位置加上注释,是一个很好的习惯。
注释以符号'开始,通常是单独一行,或者位于某一行代码之后。
如果注释和代码在同一行,注释和代码之间应该至少有一个空格。
注释不会对代码的运行有任何影响。
例如:
'下面的代码用于测试Month属性,请复制到命令窗口执行
Dimd1AsDate'定义变量d1
d1=#12/31/2008#'给变量赋值
Output.Show(d1.Month)'在命令窗口显示月份
上面的代码只是为了说明如何加注释,实际使用的时候,只需给关键的位置加上注释即可,太多的注释,反而会影响代码的可读性。
在代码编辑窗口,注释的颜色为灰色。
字符常量
字符型常量用双引号括起来,例如:
DimsAsString
s="NBA"
等效于:
DimsAsString="NBA"
表示定义一个字符变量s,并将s的值设为“NBA”。
可以在定义变量的时候,设定该变量为指定个数的某字符组成,语法为:
Dim变量名AsNewString(字符,重复次数)
例如:
DimsAsNewString("*",5)
变量s的值将等于"*****",也就是由5个符号*组成。
也可以在定义变量后,用NewString语句给变量赋值,例如:
DimsAsString
s=NewString("*",5)
实际上上面的语句完全等效于:
DimsAsString
s="*****"
或:
DimsAsString="*****"
不过假定你要将变量设置为100个空格或100个符号*,此时用NewString赋值显然要简洁得多。
如果字符串中本身包括双引号,那么用每两个双引号表示一个双引号。
将下面的代码复制到命令窗口执行:
Dims1AsString="利马是有名的""无雨之都"""
Output.Show(s1)
你会发现s1的值为:
利马是有名的"无雨之都"
日期常量
日期型常量必须包括在符号#之间,格式为:
#月/日/年#
例如:
Dimd1AsDate=#12/31/2008#
等效于:
Dimd1AsDate
d1=#12/31/2008#
表示定义一个日期变量d1,初始值为2008年12月31日。
下面是另一种定义日期变量的语法:
Dim变量名AsNewDate(年,月,日)
例如:
DimStartDateAsNewDate(2008,12,31)
同样表示定义一个日期变量StartDate,初始值为2008年12月31日。
NewDate表示创建一个新的日期,既然是创建一个日期,当然得指定年、月、日。
NewDate是可以单独使用的,例如:
DimStartDateAsDate
StartDate=NewDate(2008,12,31)'变量值设为2008年12月31日
Output.Show(StartDate)
这一行代码:
StartDate=NewDate(2008,12,31)等效于:
StartDate=#12/31/2008#
逻辑常量
逻辑常量值就两个,分别为True(是)和False(否)。
逻辑变量通常用于保存某一个条件表达式的值。
例如:
Dimv1AsBoolean=(1=2)
Dimv2AsBoolean=(1<2)
Dimv3AsBoolean=True
Dimv4AsBoolean
上述代码执行后,变量v1的值等于False,变量v2的值等于True,因为1=2是不成立的,而1<2是成立的。
逻辑变量的默认初始值为False,所以变量v4的值等于False,而变量v3的值显然等于True。
枚举
枚举就是一组有名称的整数,例如星期一、星期二、星期三....,就可以看作是枚举,因为他们实际上代表着一个整数,这个整数表示这一天是该星期的第几天。
程序中的枚举,通常用于选项设置,选项通常是一些整数,0、1、2表示不同的设置,为了提高程序的可读性,我们用一些更具描述性的字符型名称来代替这些整数,这些代表着不同整数的名称,就是枚举。
例如在列属性设置中,有一个名为“中文输入”的属性,它就是一个枚举类型,包括三个值,分别是:
Default:
保持当前输入法状态不变
True:
自动打开中文输入法
False:
自动关闭中文输入法
显然,对于用户来说,用Default、True、False表示不同的设置,比用0、1、2表示不同的设置,要容易理解得多。
关于枚举,你现在只需要了解这么多,今后我们会接触到更具体的枚举类型,那时你会觉得枚举其实是很容易理解的。
数组
数组是同一数据类型的一组变量的集合。
定义数组语法为:
Dim数组名(索引上限)As数据类型
例如:
DimNames(3)AsString表示定义了一个字符型(String)数组,数组名为“Names”,数组的索引从0开始,所以该数组包括4个字符型变量(我们称之为数组元素),分别是:
Names(0),Names
(1),Names
(2),Names(3)
数组有一个Length属性,用于返回数组的长度。
下面是一段完整的代码,用于测试数组的基本特性,请复制到命令窗口执行:
DimNames(3)AsString
Names(0)="杨国辉"
Names
(1)="柯迎"
Names
(2)="陈绍月"
Names(3)="朱志欣"
Output.Show(Names
(1))'在命令窗口显示第二个数组元素的值。
Output.Show(Names.Length)'在命令窗口显示数组的长度。
可以在定义数组的时候,直接给数组元素赋值,例如:
DimValues()AsInteger={1,3,5}
上面的代码定义了一个整数型数组,数组包括三个元素,分别是1、3、5。
再例如:
Dims1()AsString={"中国","美国","日本","俄罗斯"}
上面的代码定义了一个字符型数组,数组包括四个元素。
如果采用直接赋值的方式定义数组,不需要指定数组的索引上限,此时索引上限由值的个数确定。
可以在定义数组之后,再给数组批量赋值:
Dims1()AsString
s1=NewString(){"中国","美国","日本","俄罗斯"}
集合
集合类似于数组,但是比数组更为灵活,定义集合的语法是:
Dim集合名称AsNewList(Of数据类型)
例如:
DimNamesAsNewList(OfString)
表示定义了一个字符型(String)集合,集合的名称为Names。
集合的成员包括:
名称
类型
说明
Add
方法
向集合中增加一个值
Insert
方法
向集合的指定位置插入一个值
Remove
方法
删除指定的值
RemoveAt
方法
删除指定位置的值
Contains
方法
判断集合中是否包括某个值
AddRange
方法
批量增加多个值
Count
属性
返回集合中值的个数
一旦定义了集合,我们就可以用Add方法向其中添加值,例如:
Names.Add("电视机")
Names.Add("电冰箱")
Names.Add("洗衣机")
可以用Remove方法删除指定的值,例如:
Names.Remove("电视机")
可以用RemoveAt删除指定位置的值,例如:
Names.RemoveAt(0)
表示删除第一个值。
还可以用Insert方法将值插入到指定位置,例如:
Names.Insert(0,"电视机")
可以用Contains方法判断集合中是否包括某一个对象,例如:
IfNames.Contains("电视机")=FalseThen
Names.Add("电视机")
EndIf和数组一样,我们通过索引来引用集合中指定位置的值,例如:
Names(0)
Names
(1)
当然也可以改变指定位置的值,例如:
Names(0)="微波炉"
可以用集合的Count属性返回集合中值的个数:
Names.Count
下面是一段完整的代码,用于测试集合的基本特性,请复制到命令窗口执行:
DimNamesAsNewList(OfString)
Names.Add("电视机")
Names.Add("电冰箱")
Names.Add("洗衣机")
Names.Remove("电视机")
IfNames.Contains("电视机")=FalseThen
Names.Add("电视机")
EndIf
Names.Insert(0,"传真机")
Names
(2)="微波炉"
Output.Show(Names.Count)'显示集合的长度
OutPut.Show(Names(0))'显示第一个值
用AddRange方法,可以将一个数组或另一个集合中的所有元素加入到集合中,例如:
Dimv1()AsString={"中国","美国","日本","俄罗斯"}
Dims1AsNewList(ofString)
Dims2AsNewList(ofString)
s1.AddRange(v1)'将数组中的元素全部加入到集合中
s2.AddRange(s1)'将集合s1中的元素全部加入到集合s2中
字典
Dictionary表示键与值的集合,俗称字典。
定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- foxtable 软件 开发 基础 使用 说明书