浏览值更改期间字符串值突然更改
sudden change in string value during a browse value change
在浏览中的值更改期间,我的字符串值突然发生变化,特别是字符串 (9) 将更改为字符串 (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).
在浏览的值改变:
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')).
如果 employee no 的字符串值为 9,progress 会将其更改为 0.. 生成包含无效值的错误消息..
ex: from 819001 /*correct*/ to 810001 /*incorrect*/
如果没有string(9),则显示like:818002
如果我向 STRING(employee.employee-no, '99999999')) 发送消息,它将显示正确的字符串值
显然,在这种情况下,版本无关紧要。我只是在 10.2B08 中使用名为 tables 的临时 table 模拟了它。问题是当您将屏幕值分配给您试图将整个字符串(员工编号 + 姓名 + 分隔符)转换为格式 99999999 的组合时。
由于您的组合是列表项对
('Whatever I want it to display','the real value',
'and so on display' , 'and so forth value')
您的解决方案是将屏幕值分配给实际值,忽略标签。换句话说,就像将您的值更改代码更改为
一样简单
ASSIGN cb-name:SCREEN-VALUE = STRING(employee.employee-no, '99999999') .
它对我有用。如果您仍然遇到问题,请告诉我。
在浏览中的值更改期间,我的字符串值突然发生变化,特别是字符串 (9) 将更改为字符串 (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).
在浏览的值改变:
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')).
如果 employee no 的字符串值为 9,progress 会将其更改为 0.. 生成包含无效值的错误消息..
ex: from 819001 /*correct*/ to 810001 /*incorrect*/
如果没有string(9),则显示like:818002
如果我向 STRING(employee.employee-no, '99999999')) 发送消息,它将显示正确的字符串值
显然,在这种情况下,版本无关紧要。我只是在 10.2B08 中使用名为 tables 的临时 table 模拟了它。问题是当您将屏幕值分配给您试图将整个字符串(员工编号 + 姓名 + 分隔符)转换为格式 99999999 的组合时。 由于您的组合是列表项对 ('Whatever I want it to display','the real value', 'and so on display' , 'and so forth value') 您的解决方案是将屏幕值分配给实际值,忽略标签。换句话说,就像将您的值更改代码更改为
一样简单ASSIGN cb-name:SCREEN-VALUE = STRING(employee.employee-no, '99999999') .
它对我有用。如果您仍然遇到问题,请告诉我。