2015-11-06 52 views
1

在浏览内的值更改期间,我的字符串值突然更改,具体而言,字符串(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')). 

如果员工no的字符串值为9,则进度会将其更改为0 ..以生成具有无效值的错误消息。

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

如果没有字符串(9),会显示如下:818002

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

+0

什么版本的OE? – Jensd

+0

9.1E我相信.. – noob

+0

听起来很奇怪,9.1是成熟/古老的。如果出现错误,应通过知道知道。也许还有其他事情发生?你能发布更多的代码吗? – Jensd

回答

1

显然,在这种情况下版本并不重要。我刚刚在10.2B08中使用带有指定表的临时表进行了仿真。问题是,当您将屏幕值分配给要尝试将整个字符串(employee-no + names + separators)转换为99999999格式的组合。由于您的组合是列表项对 ('无论我希望它显示','真实值', '等等显示','等等值') 您的解决方案是将屏幕值分配给实际值,忽略标签。换句话说,只要将您的价值改变代码更改为

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

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

+0

谢谢@ bupereira ..是的,它只是使用字符串值..没有标签再次感谢 – noob