如何自定义GeneXus 17U6中「属性未找到」错误提示?
如何在GeneXus 17U6中自定义关联属性的未找到错误消息
针对你遇到的关联属性错误提示仅显示属性名(如CODART)的问题,可通过以下几种方式修改为更易懂的消息:
方法一:关闭系统默认验证,自定义事务验证逻辑
- 打开包含关联属性的事务,找到目标关联属性(如
CODART)的属性面板,取消勾选自动验证关联选项,禁用系统默认的错误提示。 - 进入事务的事件面板,添加
BeforeValidate事件,编写自定义验证逻辑:If Not Exist(ART, CODART) // 直接使用属性的描述文本或自定义提示内容 Msg(!"未找到对应的商品记录") // 若要动态调用属性的描述,可使用&CODART.Descr(需确保属性已配置描述) // Msg(!"未找到对应的" + &CODART.Descr + "记录") EndIf - 重新生成事务,此时验证失败时会显示自定义的易懂提示。
方法二:重定义系统语言对象消息
系统默认的“未找到'{0}'”提示对应特定的语言对象ID,可通过以下步骤修改:
- 打开语言对象面板,切换到当前项目使用的语言(如中文)。
- 搜索关键词“未找到”,定位到对应消息(通常ID为
MSG_RECORDNOTFOUND或类似)。 - 修改消息文本为包含属性描述的格式,例如将原文本
未找到'{0}'改为未找到对应的{1}记录,后续结合自定义逻辑传递属性描述作为参数(需配合方法一中的验证代码,手动传入属性描述值)。 - 重新生成整个项目,确保语言对象修改生效。
方法三:WWP客户端实时验证提示(Web场景)
如果你使用Web Work Panel开发,可在关联控件的客户端事件中添加实时验证:
- 选中关联输入控件,进入事件面板,添加
OnBlur事件。 - 编写客户端验证逻辑:
Event OnBlur &Exists = Exist(ART, CODART) If Not &Exists webmsg(!"请输入有效的商品编码", CODART) EndIf EndEvent - 生成并部署后,用户离开输入框时会实时显示自定义提示,提升交互体验。
注意事项
- 修改语言对象后必须重新生成整个项目,否则修改不会生效。
- 多语言项目需在对应语言的语言对象中分别修改提示文本。
内容的提问来源于stack exchange,提问作者Nicola
相关产品推荐
相关产品推荐

