我正在使用 PowerBuilder classic 12.5,在插入、编辑、创建和打印报告时遇到了困难。
我有一个dw_NewEmployee带有数据对象的数据窗口,d_newrecord它是可更新的。
- 我应该使用列通过列插入记录还是在窗口对象上创建单行文本
- 是
itemchanged在数据对象或单行文本的列和行上使用的事件...我无法弄清楚如何实现验证规则。请给我一个例子来验证员工ID_Number
我正在使用 PowerBuilder classic 12.5,在插入、编辑、创建和打印报告时遇到了困难。
我有一个dw_NewEmployee带有数据对象的数据窗口,d_newrecord它是可更新的。
itemchanged在数据对象或单行文本的列和行上使用的事件...我无法弄清楚如何实现验证规则。请给我一个例子来验证员工ID_Number我看到您似乎对数据窗口的使用感到困惑。
我们试着总结一下:
d_newrecordselect id_number, name from employeeid_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