2015-11-06 3 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

если я сообщение НИТЬ (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 .. да, он работает только с использованием строкового значения. No labels спасибо снова – noob

 Смежные вопросы

  • Нет связанных вопросов^_^