我正在使用 PowerBuilder 经典 12.5
在插入、编辑、创建和打印报告时遇到困难。
我有一个数据窗口,dw_NewEmployee
带有数据对象,d_newrecord
这是可更新的。
在窗口对象上创建单行文本
itemchanged
在数据对象的列和行上使用的事件或在单行文本上...我无法弄清楚如何实现验证规则。
请给我一个例子来验证员工
ID_Number
最佳答案
我看到您似乎对数据窗口的使用感到困惑。
我们试着总结一下:
d_newrecord
(比如说它是一个网格)基于数据库中的一个 sql 选择,比如说 select id_number, name from employee
. id_number
和 name
)这些对象既可以显示现有数据,也可以接收用户输入以编辑数据和插入新记录。 dw_newemployee
在哪里绘制数据窗口的内容,你设置 d_newrecord
作为它的数据对象。 open()
窗口事件:dw_newemployee.SetTransObject(sqlca)
dw_newemployee.Retreive() //if you are using some retreival arguments, don't forget to include them here
当您想在表中插入新数据时(例如使用窗口按钮“添加”),在
clicked()
您调用的按钮事件 dw_newemployee.InsertRow(0)
插入到最后。ItemChanged()
修改一个单元格后将触发事件,您将获得行、项目(一个 dwobject)和新数据。通过选择事件的返回值,您可以接受或拒绝新数据。这是
itemchanged()
中的字段验证示例事件:long ll_return_code = 0
string ls_column
ls_column = lower(dwo.name)
choose case ls_column
case "id_number"
if long(data) = 42 THEN
messagebox("validation error", "You cannot use 42 for the ID")
ll_return_code = 1 //reject and stay in cell
end if
case "name"
if data = "foobar" then
messagebox("validation error", "Do not use dummy value...")
ll_return_code = 2 //reject but allow to go elsewhere
end if
end choose
return ll_return_code
关于events - 如何编码 itemchanged 事件和数据窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898839/