如何在Dynamics Nav C/AL中合并多条Message为单条输出?
解决方法
核心思路是先收集所有消息内容,待所有检查逻辑执行完毕后,再一次性输出合并后的消息。具体步骤如下:
定义消息存储变量
在所有检查逻辑开始前,声明一个文本变量用于累积所有消息:var errorMessages: Text;替换原有Message调用为消息追加
将所有分散的Message(...)调用,改为把消息内容追加到上述变量中,同时添加换行符区分每条消息:
原代码:Message('Day %1 is already present.', RecDate."Day");修改为:
errorMessages += StrSubstNo('Day %1 is already present.', RecDate."Day") + '\n';注:
StrSubstNo用于格式化带占位符的字符串,和Message的参数格式一致;'\n'是换行符,确保每条消息在最终输出里单独一行。最后一次性输出合并后的消息
在所有检查逻辑执行完成后,判断是否有累积的消息,若有则一次性输出:if errorMessages <> '' then Message(errorMessages);
这样就能把原本分散的多条消息合并成一条,用户只需关闭一次弹窗即可查看所有内容。
内容的提问来源于stack exchange,提问作者Canjo
相关产品推荐
相关产品推荐

