18.10.2013, 08:49 | #1 |
Участник
|
textChange на форме. Как изменить текст?
Всем добрый день. На форме есть поле типа Range. Нужно из выпадающего списка выбирать значение, оно добавляется к уже существующим в этом поле. Решил улучшить, чтобы между значениями автоматически проставлялась запятая. Перекрыл методы lookup() и textChange() на элементе ppoSlitters. На диалогах RunBase все отлично работает, а вот на форме не хочет, чего-то не хватает. Не подскажите, чего я мог упустить?
X++: public class FormRun extends ObjectRun { Range ppoSlittersBeforeLookup; } public void lookup() { SysTableLookup tableLookup; Query query = new Query(); ; tableLookup = SysTableLookup::newParameters(tableNum(WrkCtrTable), this); tableLookup.addLookupfield(fieldNum(WrkCtrTable, WrkCtrId)); tableLookup.addLookupfield(fieldNum(WrkCtrTable, WrkCtrGroupId)); tableLookup.addLookupfield(fieldNum(WrkCtrTable, Name)); query.addDataSource(tablenum(WrkCtrTable)); tableLookup.parmQuery(query); tableLookup.performFormLookup(); ppoSlittersBeforeLookup = this.text(); } public void textChange() { str text; int pos; ; if (ppoSlittersBeforeLookup) { text = this.text(); if (text) { pos = strscan(text, ppoSlittersBeforeLookup, 1, strlen(text)); if (pos) { text = strins(text, ',', pos + strlen(ppoSlittersBeforeLookup)); } this.text(text); // <-- этот метод почему-то не отрабатывает на форме, но в диалоге все ок this.setSelection(strlen(text), strlen(text)); } ppoSlittersBeforeLookup = ''; } }
__________________
// no comments Последний раз редактировалось dech; 18.10.2013 в 09:14. |
|