gpt4 book ai didi

events - 如何编码 itemchanged 事件和数据窗口

转载 作者:行者123 更新时间:2023-12-04 18:15:06 26 4
gpt4 key购买 nike

我正在使用 PowerBuilder 经典 12.5
在插入、编辑、创建和打印报告时遇到困难。

我有一个数据窗口,dw_NewEmployee带有数据对象,d_newrecord这是可更新的。

  • 我应该使用列通过列插入记录还是我
    在窗口对象上创建单行文本
  • itemchanged在数据对象的列和行上使用的事件或
    在单行文本上...我无法弄清楚如何实现验证规则。
    请给我一个例子来验证员工 ID_Number
  • 最佳答案

    我看到您似乎对数据窗口的使用感到困惑。

    我们试着总结一下:

  • 你创建一个新的数据窗口d_newrecord (比如说它是一个网格)基于数据库中的一个 sql 选择,比如说 select id_number, name from employee .
  • 在数据窗口的详细信息区域(将在运行时为每条记录重复,但在设计中只重复一次),您需要为每列放置一个列对象(在这里您将拥有 id_numbername )这些对象既可以显示现有数据,也可以接收用户输入以编辑数据和插入新记录。
  • 如果您需要使 dw 可更新,请不要忘记设置 Rows/Update 属性。
  • 在数据窗口的标题区域中,您可以将静态文本与每一列相关联,该文本只是在这里显示列名,它与表数据无关。
  • 在某个窗口对象中,放置一个数据窗口控件dw_newemployee在哪里绘制数据窗口的内容,你设置 d_newrecord作为它的数据对象。
  • 您需要在某些时候设置 dw 的事务对象,例如在 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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com