天天看点

PB数据窗口对象之字段操作

----------

字段的编辑类型

PB提供了六种编辑类型:

1)Edit是字段的缺省编辑类型,可以用于所有类型的字段上。

2)CheckBox编辑类型在这里是一种状态选择,可以为其规定选中和非选中状态时的文字,当字段的输入内容非此即彼时,可以使用这种编辑类型。

3)DropDownDW是一种用来限制用户输入数据的非常好的编辑方式,用户只能通过选择录入数据,并且选择的数据来自其他数据窗口的某字段,从而可以确保数据的一致性和正确性。当录入外部键时,经常使用这种编辑类型。使用这种方式可以增强程序的适应性和灵活性。

4)DropDownListBox在外观上和DropDownDW类型相同,但它的数据不会发生变化,是固定的,适合用来录入诸如学历、省份、月份等范围固定的数据项。

5)EditMask经常用来录入整型或日期型数据。它底优势在于可以给用户提供清晰的数据格式,对用户的操作有很强的提示性;还可以为该编辑类型设置Spin,以便用鼠标单击上下箭头来增大或减小数据。

6)Radio Buttons在录入取值为比较小范围内的数据经常使用,用户使用鼠标进行选择操作即可录入数据,操作比较方便。

----------

字段的编辑格式

1、Limit - 限制输入长度

可以规定在该字段中输入的信息长度,缺省是字段在数据表中定义的长度。如果在数据窗口创建以后又添加了字段,这时缺省长度是0,这时用户所能输入的长度取决于编辑框的长度(如果没有设置字段的AutoHorzScroll属性或者设置了该属性并且Limit属性为0,则用户输入的最大长度取决于编辑框所能接受的最大长度),应该手工修改其限制长度为字段在表中定义的长度。修改方法是,在字段属性窗口的Edit页Limited输入框中输入一个整数即可

2、Display Only - 不允许用户修改

选中字段对应属性窗口中的Display Only选项即可。在程序运行时,该字段中的内容可以显示,并且可以获得焦点,但是用户不能修改字段的内容,从而起到保护数据的作用。建议使用这种方式来保护字段中的数据,虽然不能编辑字段内容,但可以选中并复制,比设置字段的Tab Order值有更多的灵活性

3、Required - 必须输入

有些信息要求用户必须输入,这时可以选中字段的Required属性。不输入数据就无法离开该字段。

4、Password - 密码输入

选中字段属性窗口中Edit页上的Password属性即可,字段上数据显示为“*”号

5、Format - 格式

属性视图中Edit属性页中包含Format属性,并且还有一个专门的Format属性页。Edit属性页的Format属性可以设置字段编辑时的显示格式,Format属性页中的Format设置字段不被编辑时的显示格式。

Format的设置:

Numbers:可以使用“0”、“#”、“.”和一些算术符号来表示,使用保留字“[general]”或者“[Currency]”时,PB将使用操作系统的设置格式。关于操作系统的格式,Windows可以在控制面板的区域设置中修改。

[General] 5 -5 0.5

0 5 -5 1

0.00 5.00 -5.00 0.50

#,##0 5 -5 1

#,##0.00 5.00 -5.00 0.50

$#,##0;($#,##0) $5 ($5) $1

$#,##0;-$#,##0 $5 -$5 $1

$#,##0;[RED]($#,##0) $5 ($5) $1

$#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50

$#,##0.00;[RED]($#,##0.00)$5.00 ($5.00) $0.50

0% 500% -500% 50%

0.00% 500.00% -500.00% 50.00%

0.00E+00 5.00E+00 -5.00E+00 5.00E-01

Strings:可以用两部分来表示该类型数据的显示,前面是必需部分,后面是NULL时表示。“@”代表一个字符。如:"[red](@@@)@@@-@@@@"

Dates:使用几个特定的字母代表特定的含义,它们的组合构成Data类型的格式。

d 表示天的数字,没有前缀0 9

dd 表示天的数字,有前缀0 09

ddd 星期几的英文缩写 Mon

dddd 星期几的英文全称 Monday

m 没有前缀0的月份 6

mm 有前缀0的月份 06

mmm 月份的英文缩写 Jun

mmmm 月份的英文全称 June

yy 两位数字表示的年份 97

yyyy 四位数字表示的年份 1997

两位的年份如果小于50,PB则认为是21世纪;大于50则认为是20世纪。比如,“85”表示的年份PB认为是“1985”年;“40”表示的年份PB认为是“2040”。

Times:使用几个特定的字母代表特定的含义,它们的组合构成Time类型的格式。

h 没有前缀0的表示小时的数字

hh 有前缀0的表示小时的数字

m 没有前缀0的表示分钟的数字,必须出现在h或者hh之后

mm 有前缀0的表示分钟的数字,必须出现在h或者hh之后

s 没有前缀0的表示秒的数字,必须出现在m或者mm之后

ss 有前缀0的表示秒的数字,必须出现在m或者mm之后

ffffff 没有0前缀的毫秒,必须出现在s或者ss之后

AM/PM 两个大写的缩写字母,代表上午和下午

am/pm 两个小写的缩写字母,代表上午和下午

A/P 一个大写的缩写字母,代表上午和下午

a/p 一个小写的缩写字母,代表上午和下午

6、Auto Selection - 自动选中

当字段获得焦点时,自动选中当前行字段中的内容,这在需要删除或者拷贝时用处比较大。选中字段对应属性窗口中Edit页上的auto selection即可。

7、设置滚动条

Auto Horz Scroll--自动横向滚动

Auto Vert Scroll--自动纵向滚动

Horz Scroll Bar --横向滚动条

Vert Scroll Bar --纵向滚动条

8、Use Code Table - 使用Code Table

使用Code Table可以自动转换用户的输入信息,也可以校验用户的输入信息是否正确。

a)选中字段的Use Code Table属性

b)在Code Table中定义代码表,该输入框中包括两列,DisplayValue用来进行显示,Data Value是和该显示值对应的实际值,是保存在数据库中的值。

c)选中Validate选项,从而可以确保用户的输入必须是代码表中定义了的,否则就出现报错信息。

9、Show Focus Rectangle - 显示焦点边框

焦点边框就是当字段获得焦点时,在字段编辑框的周围显示一个矩形边框,可以醒目地提醒用户当前的输入位置,这是一个比较好的界面,建议使用该属性。选中字段对应届性窗口Edit页中的Show Focus Rectangle即可。Tabular默认选中

10、Accelerator - 设置加速度

可以为字段设置加速键,以便很快捷地定位到特定的字段上。只要在字段对应属性窗口Edit页的Accelerator编辑框中输入字母或数字即可,只能输入一个字符。加速键由Alt和所输入的字母或数字构成。程序运行时,使用加速键可以将焦点马上转移到有该加速键的字段上。

11、Case - 选择大小写

可以给字符型字段指定大写、小写、还是原样显示输入内容。在字段对应的属性窗口Edit页中的Case下拉列表框中选择即可。Up代表始终大写,Any代表原样,Lower代表小写。

----------

增加和删除字段

进入数据窗口对象的SQL Select画板后可以对字段进行以下三种操作:

1、增加字段

2、删除字段

3、重选字段。取消某字段,再重新选中该字段。这看起来好像没有什么作用。实际上,这样做可以同步数据窗口对象和数据表的定义。当创建了数据窗口后又修改了该数据窗口对象对应数据表中某字段的定义,例如,增加了字段的长度,这是应该保证字段和数据窗口中的定义一致,使用上面的方法就可以做到数据的一致

*当添加字段时,PB不能正确设定新添加字段的默认属性,必须认真检查新添加的属性,最重要的属性是Limit的大小以及Show Focus Rectangle、Auto Selection和Auto Horz Scroll属性是否选中。如果数据窗口对应的数据表中既没有定义主键也没有定义唯一性索引,并且数据窗口还是用来进行数据录入的,这时不管是删除了数据窗口中的字段或添加了字段,还是重新选择了字段,都要仔细检查并重新设置数据窗口的Update属性了,如果数据表中定义了主键或者唯一性索引,就不用考虑这个问题了。

----------

字段的显示顺序

在大多数显示样式的数据窗口中都可以使用鼠标拖放直接改变字段的位置,惟独grid类型的数据窗口在Design窗口中不能。解决方法是,在预览窗口中拖动字段到适当的位置,Design窗口中的字段顺序就会自动做相应的调整。

可以用字段名或者字段号来标识一个字段。例如,产生数据窗口的SQL语句是:

select name,sex,address from addr_book;

在该数据窗口中,name和#1都是指同一个字段。显示位置的调整不会影响字段号,字段号和产生数据窗口的SQL语句中字段的顺序相对应,在SQL语句中,第一个字段对应的字段号为#1,依次增加一个。要调整字段号的顺序,可以进入到SQL select画板,取消所有字段,再按照正确的字段顺序重新选择字段;或者切换到语法状态,手工修改SQL语法中字段的顺序。经过这样的调整后,可能字段在数据窗口中显示的顺序没有变化,但是字段号却进行了重新分配。因为在窗口脚本中引用数据窗口的数据时,有可能用到字段号,在数据窗口的计算域中也有可能用到字段号,所以要保证字段号正确设定,尤其是习惯使用字段号引用数据时。