--请看红色显示的地方.
数据窗口中各项指标的基本操作
第一条
dw_browse_basic.ScrollToRow(0)
前一条
integer row_current //定义参数当前行行数
//数据窗口向前滚动一条纪录
row_current=dw_browse_basic.ScrollPriorRow()
//如果已经到达第一条纪录,则弹出一个对话框警告
if row_current=1 then
MessageBox("警告","已经是最前一条记录")
end if
下一条
integer row_count //定义参数 表的总行数
integer row_current //定义参数 当前行
//数据窗口向后滚动一条纪录
row_current=dw_browse_basic.ScrollNextRow()
//得到表的总行数
row_count=dw_browse_basic.RowCount()
//判断是否是最后一条记录
if row_current= row_count then
MessageBox("警告","已经是最后一条记录")
end if
最后一条
//定义参数 表的总行数
integer row_count
//得到表的总行数
row_count=dw_browse_basic.RowCount()
//数据窗口滚动到表的最后一条记录
dw_browse_basic.ScrollToRow(row_count)
插入
long row_number
w_insert_job.dw_insert_job.reset()
row_number=insertrow(w_insert_job.dw_insert_job,0)
删除
long current_rownumber
integer emp_no
current_rownumber=w_insert_job.dw_insert_job.getrow()
getitemstring(w_insert_job.dw_insert_job,current_rownumber,1)
deleterow(w_insert_job.dw_insert_job,current_rownumber)
从其他表中删除该员工的记录
delete from emp_marriage where emp_no=:emp_no;
修改是否成功
if update(w_weihu_basic.dw_weihu_basic,true,false)=1 then
w_weihu_basic.dw_weihu_basic.resetupdate()
commit;
//w_insert.dw_insert_basic.reset()
else
rollback;
messagebox("错误!!!","数据保存失败")
end if
从数据窗口中获取数据
单条:假设我们要读取dept_id字段的第一笔数据,可以用下列方式表示∶li_id = dw_1.object.dept_id[1]
假设我们要读取第一行中第二个字段的数据,可以用下列方式表示∶ls_name = dw_1.object.DA
假设我们要读取dept_id字段的所有数据,可以用下列方式表示∶li_array = dw_1.object.dept_id.CURRENT
假设我们要读取过滤缓冲区 (filter buffer) 内dept_id字段的第一笔数据,可以用下列方式表示∶li_id = dw_1.object.dept_id.Filter[1]
假设我们要读取从第二笔数据的第一个字段到第三笔数据的二个字段之间的数据,表示∶lstr_array = dw_1.object.DA
假设我们要读取整个第二笔的数据,可以用下列方式表示∶lstr_dept = dw_1.object.DA
使用GetItemX ( )函数 x为string number等
lstr_name = dw_1.getitemstring (li_count , "emp_name") li_count为哪一条
多条:string ls_name[ ]
ls_name = dw_ 1.object.emp_name.current
数据的读取 一般格式∶数据窗口控件.Retrieve ( ) 返回个数 ,-1为错误
增加数据 数据窗口控件.InsertRow (行数) 参数为0加到最后
数据的删除 数据窗口控件.Deleterow (行数)
数据的过滤l 数据窗口控件.SetFilter (条件字符串).
数据窗口控件.Filter ( ) 用法∶将主要缓冲区 (Primary Buffer) 内不符合过滤条件的数据移到过滤缓冲区 (Filter Buffer)内。
例子:string ls_exp ls_exp = "dept_id = 100" dw_1.SetFilter (ls_exp) dw_1.Filter ( )
排序 dw_1.SetSort ("dept_id") dw_1.Sort ( )
将数据从所有的缓冲区 (Buffer) 中清除 dw_1.ReSet ( )
计算数据数目。例如∶dw_1.Rowcount ( ) 类似: .DeletedCount ( ) .ModifiedCount ( ) .FilteredCount ( )
数据窗口的滚动 数据窗口控件.ScrollToRow (行数)
数据窗口属性改变:
描述数据窗口对象本身颜色,可以表示如下∶long ll_color ll_color = dw_emplist.Describe ("DataWindow.Color")
描述数据窗口对象内标题 dept_id_t 的颜色,可以表示如下∶long ll_color ll_color = dw_emplist.Describe ("dept_id_t.Color")
修改数据窗口对象本身颜色,可以表示如下:dw_emplist.Modify ("DataWindow.Color = 255")
修改数据窗口对象内标题 dept_id 的颜色,可以表示如下∶dw_emplist.Modify ("dept_id_t.Color = 255")
假设当我们希望在程序运行阶段才给予下行条件∶薪水超过 50000 时显示红色,低于 50000 时显示黑色。程序的写法如下∶
ls_modstring = "Salary.Color = '0~tIf (Salary > 50000,255,0) '"
dw_1.modify (ls_modstring)
//定义要打印的页码
dw_1.Modify("DataWindow.Print.Page.Range='"+sle_1.text+"'")
dw_1.print()
//取到当前是第几页
dw_1.describe("evaluate('page()',"+string(dw_1.getrow())+")")
//注意返回值是STRING型的
//每15行统计一次
在 summary 栏中写 ceiling(Getrow()/15)
//如何判断当前行是不是当前页中的最后一行
if dw_1.getrow()=long(dw_1.describe("datawindow.lastrowonpage")) then
else
end if