AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.07.2006, 11:50   #1  
sergeyoskol
Гость
 
n/a
ComboBox
Добрый день!
Подскажите пожалуйства вот в такой ситуации... Есть динамический ComboBox, которы в зависимость о условий меняет свое содержимое. Замену делаю вот так :
int _count=1;
PersonGroupDestination.clear();

while select
where tt.Department ==<условие>
{
<ComboBoxAutoDeclarationName>.insert(tt.UserName,_count);
_count++;
}
<ComboBoxAutoDeclarationName>.update();
Вопрос: почему новые данные не появляются, т.е. как обновить Combo???
Вопрос еще один как можно ратать с данным контролом без
AutoDeclaration???
Старый 11.07.2006, 12:04   #2  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Вопрос: зачем вы используете ComboBox для таких задач?
Старый 11.07.2006, 12:28   #3  
sergeyoskol
Гость
 
n/a
На мой взгляд для пользователя так будет удобней или у вас есть другое мнение. А вы что предлагаете использовать?
Старый 11.07.2006, 12:33   #4  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Для этих задач лучше использовать лукап форму, поищите на форуме, обсуждалось не раз. Есть еще вариант: посмотрите, как выбирается договор в форме заказов в зависимости от группы договоров и кода клиента. Обратите внимение на настройку relations таблицы SalesTable.
Старый 11.07.2006, 12:37   #5  
Obapol is offline
Obapol
Участник
 
25 / 10 (1) +
Регистрация: 19.05.2003
Цитата:
Сообщение от sergeyoskol
Вопрос еще один как можно ратать с данным контролом без
AutoDeclaration???
ClassDeclaration()
FormComboBoxControl Depth;

init()
Depth = element.control(control:epth);

Взято с первой попавшейся на глаза формы CACHierPrompt
Старый 11.07.2006, 12:43   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от sergeyoskol
Добрый день!
Вопрос: почему новые данные не появляются, т.е. как обновить Combo???
Вопрос еще один как можно ратать с данным контролом без
AutoDeclaration???
1) Как вариант, чтоб не мучаться с перезаполнением comboBox каждый раз, (если таки не устраивает лукап-форма с фильтрацией, что намного предпочтительней), создайте 2, которые изначально заполняйте по нужным условиям значениями. а потом по нужному условию отображайте либо один либо второй

2) Можно через перечисление control::[ControlName], как вам написали выше, но ИМХО лучше отказаться от этого способа и работать через AutoDeclaration
Старый 11.07.2006, 12:51   #7  
sergeyoskol
Гость
 
n/a
Встречный вопрос в чем "минус" использования AutoDeclaration? Например, просиходит высвобождение памяти после того как форма закроется? Или нет?
А так же, но уже сугобо для себя, как всетаки динамически обновить ComboBox??
Старый 11.07.2006, 13:04   #8  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Вот так:
PHP код:
ComboBoxAutoDeclarationName.Clear();
while 
select someTable
where tt
.Department ==<условие>
{
ComboBoxAutoDeclarationName.add(tt.UserName);
}
ComboBoxAutoDeclarationName.selection(0); 
Старый 11.07.2006, 14:18   #9  
sergeyoskol
Гость
 
n/a
Не работает
ComboBoxAutoDeclarationName.selection(0) - эта команда просто задает какой элемент будет выбран, а где же обновление ???
Старый 11.07.2006, 14:19   #10  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
обновление в данном случае есть пара действий:ъ
1. Clear()
2. Add("element")
Проверено, работает!
Старый 11.07.2006, 15:04   #11  
sergeyoskol
Гость
 
n/a
спасибо за содействие
Старый 11.07.2006, 22:58   #12  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от sergeyoskol
Встречный вопрос в чем "минус" использования AutoDeclaration? Например, просиходит высвобождение памяти после того как форма закроется? Или нет?
Нет никаких минусов. Простов в "древних" версиях свойства AutoDeclaration не было
и вс работа с контролами шла через синтаксис control::

Цитата:
Сообщение от sergeyoskol
А так же, но уже сугобо для себя, как всетаки динамически обновить ComboBox??
Обновить значение комбобокса в конкретной позиции можно так
X++:
    combobox.delete(combobox.getText(idx));
    combobox.insert(newText, idx);
Индексы отсчитываются с нуля

Но все вышеописанное в вашем случае имеет чисто академический интерес. Забейте на все это и используйте лукапы
Старый 11.07.2006, 23:02   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от db
Нет никаких минусов. Простов в "древних" версиях свойства AutoDeclaration не было
и вс работа с контролами шла через синтаксис control::
Единственный "минус", если конечно его так можно назвать - это странное поведение контролов, у которых AutoDeclaration = True, после добавления на форму еще одного контрола и установки у него этого свойства.

Часто происходят глюки - какой-нить из ранее объявленных контролов теряется. То есть компиляция проходит успешно, но переменная = null. Приходится сбрасывать у него свойсвто в No, затем обратно в Yes - и он сразу находится.

А так, очень просто и главное, намного удобнее перечня control::
Старый 11.07.2006, 23:05   #14  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от kashperuk
Единственный "минус", если конечно его так можно назвать - это странное поведение контролов, у которых AutoDeclaration = True, после добавления на форму еще одного контрола и установки у него этого свойства.

Часто происходят глюки - какой-нить из ранее объявленных контролов теряется. То есть компиляция проходит успешно, но переменная = null. Приходится сбрасывать у него свойсвто в No, затем обратно в Yes - и он сразу находится.

А так, очень просто и главное, намного удобнее перечня control::
Интересно... Ни разу не такое не видел. Можно поподробнее как это воспроизвести? Просто действительно интересно
Старый 11.07.2006, 23:11   #15  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Знал бы как толком воспроизвести, исправил бы, или хотя бы понял толком, почему происходит.

А происходит приблизительно так - на какую-нить форму, типа SalesEditLines, где много обращений к контролам на форме (см. метод run(), к примеру), добавляем галку, к примеру, в конец группы Parameters - и ставим ей autodeclaration = true.

Вот после этого запускаем какую нить обработку заказа, и иногда (опять же, такое получалось у меня не всегда), начинает постоянно (именно постоянно) вылетать ошибка времени выполнения, что мол нет метода visible() , к примеру у объекта null

Дебаггером смотрю - контрол пустой (null) таки. Соответственно, сама природа ошибки понятна.

А лечилось так как написал.

З.Ы. Но может дело вообще не в колчиестве полей на форме, а в сложной классовой обработке их
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
PatrickChua: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 18:14
Fred Shen: Change the combobox options in RunbaseBatch class Blog bot DAX Blogs 0 28.10.2006 16:40
Странный ComboBox DenNik DAX: Программирование 1 22.09.2005 15:31
Как поместить данные из БД в ComboBox? Yuri Safronov DAX: Программирование 1 29.08.2002 16:49
Как поместить данные из БД в ComboBox? Yuri Safronov DAX: Программирование 4 29.08.2002 13:50

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:55.