【问题标题】:sudden change in string value during a browse value change浏览值更改期间字符串值的突然变化
【发布时间】:2016-02-07 01:18:12
【问题描述】:

在浏览器中的值更改期间,我的字符串值突然发生了变化,特别是 string(9) 将更改为 string(0)。

样本:

在我的组合框中,我使用了带有以下代码的列表项对:

cb-name:LIST-ITEM-PAIRS = ?.
cb-name:DELIMITER = '?'.
FOR EACH employee WHERE employee.date-resigned = ? NO-LOCK BY employee.employee-no.
    cb-name:ADD-LAST(TRIM(STRING(employee.employee-no, '99999999') + " - " + employee.last-name + ", " + employee.first-name + " " + SUBSTRING(employee.middle-name,1,1)) + ".",employee.employee-no).
END.
cb-name:SCREEN-VALUE = cb-name:ENTRY(1).

在browse的value-changed中:

ASSIGN cb-name:SCREEN-VALUE = 
STRING(TRIM(STRING(employee.employee-no, '99999999') + " - " + employee.last-name + ", " + employee.first-name + " " + SUBSTRING(employee.middle-name,1,1)) + "." , 
       STRING(employee.employee-no, '99999999')).

如果员工编号的字符串值为 9,则进度会将其更改为 0.. 生成一条错误消息,其中包含无效值..

ex: from 819001 /*correct*/ to 810001 /*incorrect*/

如果没有字符串(9),则显示为:818002

如果我向 STRING(employee.employee-no, '99999999')) 发送消息,它将显示正确的字符串值

【问题讨论】:

  • 听起来很奇怪,9.1已经成熟/古老。如果有错误,应该知道。也许还有别的事情发生?你能发布更多代码吗?
  • 我可以试试。但不是所有的。出于保密原因..需要代码的哪一部分?据我所知,这些代码是唯一存在问题的相互关系。我尝试在浏览的值更改中添加消息语法。它显示了正确的字符串值。

标签: string combobox progress-4gl openedge


【解决方案1】:

显然,在这种情况下,版本无关紧要。我刚刚在 10.2B08 中使用带有命名表的临时表对其进行了模拟。问题是当您将屏幕值分配给您尝试将整个字符串(员工编号 + 名称 + 分隔符)转换为格式 99999999 的组合时。 由于您的组合是 list-item-pairs ('无论我想让它显示什么','真正的价值', '等等显示','等等值') 您的解决方案是将屏幕值分配给实际值,忽略标签。换句话说,就像将值更改代码更改为一样简单

ASSIGN cb-name:SCREEN-VALUE = STRING(employee.employee-no, '99999999') .

它对我有用。如果您仍然遇到问题,请告诉我。

【讨论】:

  • 谢谢@bupereira.. 是的,它只使用字符串值就可以工作.. 再次感谢没有标签
猜你喜欢
  • 2020-07-05
  • 2014-12-24
  • 2015-07-19
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 2013-11-24
相关资源
最近更新 更多