访问数据窗口中的数据可以通过两种方式,一是数据窗口的函数,一是通过表达式。
下面先熟悉一下数据窗口常用的函数。
函数名称 | ||
GetItemDate | 语法 | dw.getitemdate(row,column,[dwbuffer,originalvalue]) |
功能 | 获取数据窗口控件对象指定缓冲区中的date型数据 | |
参数说明 | dw 数据窗口控件的名称 | |
row long类型,为行的位置 | ||
column long类型,为列的位置 | ||
dwbuffer 取值为primary! delete! filter! 为指定的数据缓冲区 | ||
originalvalue boolean类型,true为取原始值(默认) | ||
getitemstatus | 语法 | dw.getitemstatus(row,column,dwbuffer) |
功能 | 报告某行或一行内某列的修改状态 | |
参数说明 | dw 数据窗口控件的名称 | |
row long类型,为行的位置 | ||
column long类型,为列的位置 | ||
dwbuffer 取值为primary! delete! filter! 为指定的数据缓冲区 | ||
返回值 | new! newmodified! notmodified! datamodified! | |
currentrow | 语法 | dw.currentrow() |
功能 | 得到数据窗口控件当前行的行号 | |
deleterow | 语法 | dw.deleterow() |
功能 | 删除主缓冲区中的指定行 | |
describe | 语法 | dw.describe(properltlist) |
功能 | 得到数据窗口对象中当前对象内部的对象属性值 | |
返回值 | string类型 | |
find | 语法 | dw.find(expression,start,end) |
功能 | 在数据窗口对象的缓冲区中按照简单的查询要求查询数据 | |
返回值 | 行号 | |
getrow | 语法 | dw.getrow() |
功能 | 主数据缓冲区中当前行的行号 | |
返回值 | long类型,0表示没有选中当前行,-1表示失败 | |
getclickedrow | 语法 | dw.getclickedrow() |
功能 | 数据窗口控件中用户单击或双击的行的行号 | |
返回值 | long类型,如果用户没有单击某行,返回值为0 | |
getcolumn | 语法 | dw.getcolumn() |
功能 | 获取数据窗口控件中当前列的列号 | |
返回值 | integer类型,没有当前列则返回0,出错返回-1 | |
insertrow | 语法 | dw.insertrow(row) |
功能 | 在数据窗口中插入一行。有缺省值的列则用其缺省值填充 | |
返回值 | 成功时返回新增的行号,出错返回-1 | |
isselect | 语法 | dw.isselected(row) |
功能 | 确定数据窗口中某行是否被选中 | |
返回值 | boolean类型,选中则返回true,否则返回false,参数row无效时返回false | |
pagecount | 语法 | dw.pagecount() |
功能 | 返回数据窗口控件中文档中的总页数 | |
返回值 | integer类型,若不包含文本则返回1,出错则返回-1 | |
reset | 语法 | dw.reset() |
功能 | 清除控件中的所有数据(不影响与之相关的数据表) | |
返回值 | integer类型,成功则返回1,失败返回值为-1 | |
setrow | 语法 | dw.setrow(row) |
功能 | 将当前行设置为某个给定的行号 | |
返回值 | integer类型,成功返回1,失败返回-1,参数row无效则返回-1 | |
scrolltorow | 语法 | dw.scrolltorow(row) |
功能 | 改变当前行,但不改变当前列 | |
返回值 | integer类型,成功返回1,失败返回-1 | |
setitem | 语法 | dw.setitem(row,column,value) |
功能 | 把数据窗口控件中的某行某列设置为指定值 | |
返回值 | integer类型,成功返回1,失败返回-1 | |
sort | 语法 | dw.sort() |
功能 | 用当前排序准则对数据窗口排序。(用setsort函数设置排序准则) | |
返回值 | integer类型,成功返回1,失败返回-1 | |
filter | 语法 | dw.filter() |
功能 | 显示数据窗口中通过当前过滤准则的行。(用setfilter设置过滤准则) | |
返回值 | integer类型,成功返回1,失败返回-1 | |
下面通过一个示例掌握其中部分函数的用法:
在w_maintain窗口中加入新的标签页,按下图增加控件,其中数据窗口是uo_dw控件,其datawindow属性为dw_emp(您可新建一个grid风格的数据窗口)。
为该控件的getfocus losefocus事件分别加入脚本:dw_cur=this 和setnull(dw_cur)
修改该数据窗口控件,加入一文本标签cr,将其expression属性设置为"currentrow()"。
在foot区加入一个计算列expression属性为"pagecount()"。
设置salary列的颜色设置表达式属性为"if(salary>2000,rgb(255,0,0),rgb(0,255,0))"
为数据窗口的rowfocuschanged事件添加如下代码:
在窗口的open事件中为该数据窗口设置事务对象并检索数据。
为“修改状态”按钮添加如下代码以查看数据的当前状态。
为重置窗口后重新检索数据添加如下代码:
为重置数据窗口加入如下代码:
保存所做的修改并运行程序。
数据空间