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