Powerbuilder - 如果value为null,则db表上的帐户ID将更改为0

时间:2018-06-10 10:27:06

标签: powerbuilder

目前我在datawindow上有一列 profile.acct_no ,用户从弹出列表中选择一个客户帐户。现在的问题是,用户无法清除以前已选择的帐户,它始终显示所选帐户,除非您选择其他帐户。用户可以清除列框并单击已保存,但当他们返回查看时,帐户会再次显示。

现在,从数据库中,所有选定的帐户ID都注册到表格调用 interco.acct_id ,我需要做的是,将事件itemchanged代码,其中if列 profile.acct_no 为空,然后它会将表 interco.acct_id 中的帐户ID清除为0

我已经做的是编码数据窗口的非可视对象业务规则,事件 ue_itemchanged_acct_no return none

字符串s_value

s_value = invo_tm.uf_getcolumnstring(istr_vldmsg.l_row,istr_vldmsg.s_column)

如果isnull(s_value)或trim(s_value)=''那么 invo_tm.uf_setcolumn(istr_vldmsg.l_row,is_dirulealias +'。acct_id',0)

结束

问题是,帐户仍然显示并且ID不会更改为0.任何人都可以提供帮助和建议吗?非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

我会检查几件事。

  • 检查数据窗口的更新属性。 interco.acct_id应该是可更新的。

  • 如果 interco profile 都在同一个数据窗口中,则需要花一些精力来更新两个表。在https://pbbraindump.wordpress.com/2008/07/02/pfc-datawindow-multi-table-update-service/

  • 上查看 Rick Schultz 关于 PFC DataWindow多表更新服务的精彩文章。
  • 此外,如果interco.acct_id或profile.acct_no在数据库中是唯一的,那么您将无法成功将多个记录更改为0。