21.06.2006, 07:00 | #1 |
Программатор
|
Не берется значение контрола
Доброго времени суток, уважаемые Дамы и Господа!
Вот какая ситуация... У формы есть датасоурс. На форме создал свой контрол(перечислимый тип) и edit методом из InventParameters вставляю значение в этот контрол при открытии формы. Затем, после нажатия кнопки ОК в CloseOK вставляю значение контрола в датасоурс. При открытии формы мой контрол показывает то, что надо. Но при нажатии ОК дебугер показывает что мой контрол имеет значенеие "". Соответственно ничего в датасоурс не вставляется. Если же просто поставить (ручками) курсор на контрол или поставить другое значение(выбрать тоже), то все отрабатывает нормально. Поскажите как быть и в чём проблема. Setfocus() и Gotfocus() в ините формы не срабатывают (но если и заставить так насильно вставлять курсор в мой контрол, то это крайний случай, ибо сее не желательно)... Заранее всем благодарен. С уважением - Sada... |
|
21.06.2006, 07:42 | #2 |
Участник
|
Привет!
Значение из ComboBoxа можно получить через метод selection().
__________________
С уважением, Андрей Беседин |
|
21.06.2006, 07:44 | #3 |
Программатор
|
Цитата:
Сообщение от Andrew Besedin
Привет!
Значение из ComboBoxа можно получить через метод selection(). Последний раз редактировалось Sada; 21.06.2006 в 07:46. |
|
21.06.2006, 08:16 | #4 |
Участник
|
Напиши код едит-метода, плиз. Мне кажется, собака порылась там
__________________
С уважением, Андрей Беседин |
|
21.06.2006, 08:23 | #5 |
Программатор
|
PHP код:
объявлена в ClassDeclaration. Скорее всего проблема связана с тем что не вызывается Edit метод. НО КАКИМ образом, её Богу ума не прилажу... |
|
21.06.2006, 09:17 | #6 |
Модератор
|
Вопрос: а ГДЕ этот эдит метод написан? Попробуй перенести его на датасорс.
И еще: не пробовал в ините после супера проинициализровать переменную? Все равно пусто? С Уважением, Георгий |
|
21.06.2006, 09:17 | #7 |
Участник
|
А зачем вам что-то брать из контрола?
Вызовите этот метод со значением _set=false да и все. PS Это уже замечание к реализации метода - InventParameters у вас используется только в одной ветке из трех, а ищите вы это значение в любом случае.
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 21.06.2006 в 09:19. |
|
21.06.2006, 09:46 | #8 |
Программатор
|
Цитата:
Сообщение от George Nordic
Попробуй перенести его на датасорс.
И еще: не пробовал в ините после супера проинициализровать переменную? Все равно пусто? |
|
21.06.2006, 09:50 | #9 |
Программатор
|
Цитата:
Сообщение от AndyD
А зачем вам что-то брать из контрола?
Вызовите этот метод со значением _set=false да и все. . |
|
21.06.2006, 10:09 | #10 |
Участник
|
Ваш метод на датасоурсе? Надо вызывать так
X++: Object o; ; o = []; // InventTable_ds [] = o.CurrentShift(false, ""); X++: InventParameters InventParameters; ; ... InventParameters = InventParameters::find(); tmp_curshift = InventParameters.CurrentShift; ... X++: edit CurrentShift CurrentShift (boolean _set, CurrentShift _txt) { InventParameters InventParameters; ; if(_set) { if (!_txt) { // если вам необходимо, чтобы значение было установлено всегда InventParameters = InventParameters::find(); tmp_curshift = InventParameters.CurrentShift; } else tmp_curshift = _txt; } return tmp_curshift; }
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Sada (1). |
21.06.2006, 10:16 | #11 |
Модератор
|
Sada! Ну, едрены пассатижи!
Лови форму: все работает. Георгий |
|
|
За это сообщение автора поблагодарили: Sada (1), Gustav (2). |
21.06.2006, 10:24 | #12 |
Программатор
|
Цитата:
Сообщение от AndyD
И при закрытии формы читать tmp_curshift
С уваженеим - Sada... |
|