在PB中如何控制DATAWINDOW列的修改属性

2025-06-21 05:24:37
推荐回答(1个)
回答1:

工资表基本列如下: 代码 姓名 工作时间 基础工资 浮动工资 岗位工资 知识分子补贴 其它工资
code name workdata basesa movesa stationsa BT othersa
char varchar char decimal decimal decimal decimal deciaml
在PB中有两种方式可控制列属性,一是静态方式,另一种是动态方式实现。所谓静态方式就是在列的属性上通过选项实现。所谓动态方式就是利用编程实现。现分别给予介绍:一、静态方法 (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}”)。