<
转
>
在
PB
中控制
数据窗口
列的修改属性
在编制管理信息应用系统中,
一般都会遇到一个共同问题,
那就是如何根据不同
情况去控制表中的数据列,比如对于同一
DATAWINDOW
不同的用户有不同的操作
(如对于数据录入人员可以更改数据,
而对于查询人员一般不能更改数据)
,
下
面就以一个简单的工资表为例来说明利用
PB
如何在
DATAWINDOW
中控制列的修改
方式。
工资表基本列如下:
代码
姓名
工作时间
基础工资
浮动工资
岗位工资
知识分子补贴
其它工资
code name workdata basesa movesa stationsa bt othersa
char varchar char decimal decimal decimal decimal deciaml
在
P
B中有两种方式可控制列属性,一是静态方式,另一种是动态方式实现。所
谓静态方式就是在列的属性上通过选项实现。所谓动态方式就是利用编程实现。
现分别给予介绍:
一、静态方法
(1)
在
datawindow
中选中某列后点
MOUSE
右键,
选“properities”后系统弹
出一标签,选中“Edit”标签,将“Display Only”选项制为有较;
(2)或者选中“Expression”标签,在“Protect Express”中填入“1”;
(3)或者选中“Expression”标签,在“Protect
Express”中填入条件表达
式,如工作时间不满一年的人员不能修改,则写入“if
(daysafter(date(workdate),today()) <= 365,1,0)”;
(4)在
datawindow
中,将某列的
Tab Order
值制为
0
,则该列因得不到焦点
而不能被修改
;
(5)
在
DataWindow
Painter
状态下选取
Rows
菜单,
再选取
Update
Properties,
弹出
Specify Update Properties
对话框,将
Allow Updates
设为空。
二、动态修改方法
(1)
将整个
Datawindow
设置为保护方式:
利用
DataWindow
Object
的
ReadOnly
属性可以将整个
Datawindow
设置为保护方式。
语法为:
dw_1.Object.DataWindow.ReadOnly=value
或
dw_1.Modify(“DataWindow.ReadOnly{=value}”),其中:
value
表示
Datawindow
是否为只读(
read-only
)状态,它有两个取值:
Yes
和
No
。
Yes
表
示使
Datawindow
为
read-only;No
则相反,默认值是
No
。例如:如果要使
Datawindow
设置为保护方式,可以在相应事件的脚本中包含下列代码:
dw_1.Modify(“DataWindow.ReadOnly=Yes”) 或者为:
dw_1.Object.DataWindow.ReadOnly=Yes
(2)只保护
Datawindow
的某些列
方法一:利用列的
Protect
属性
语法为:
dw_1.Object.name.Protect=integer
或
dw_1.Modify(“columnname.Protect{=integer}”)。
参数说明:
cloumnname
:为要保护的列名;
integer
:为该列的保护状态,值为
0
或
False
时该列不受保护;
值为
1
或
True
时该列受到保护。
例如,
要将列
name
设置为保护状态,则相应的代码为:
dw_1.Object.name.Protect=1
或者为:
dw_1.Moidfy(“name.Protect=1”)