有没有办法在运行时以编程方式获取文本符号的值?
场景是我有一个调用函数模块的简单报表。我收到LV_MSG
类型为变量的导出参数CHAR1
。这表示在程序中创建了某个状态消息,例如F
(失败)、X
(匹配)或E
(错误)。我目前使用一条CASE
语句来打开LV_MSG
并用消息的简短描述填充另一个变量。这些描述被维护为我在编译时检索的文本符号,text-MS#
其中 # 与 的可能返回相同LV_MSG
,例如text-MSX
具有值“找到精确匹配”。
现在在我看来,整个CASE
语句是不必要的,因为我可以将带有 ID 的文本符号的值分配给我的描述变量'MS' + LV_MSG
(伪代码,将使用CONCATENATE
)。现在我的问题是如何在运行时根据其 ID 的字符串表示形式找到文本符号。这甚至可能吗?
如果是这样,我的代码会看起来更干净,并且在功能模块中添加新消息时我不必更新我的实际代码,因为我只需添加一个新的文本符号。但是这种方法会更快,还是实际上会降低报告的性能?