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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.07.2005, 13:54   #1  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
DataField
Сталкивались вы с такой ситуацией?

В открытой форме при нажатии некой кнопки некоему контролу в гриде необходимо переобозначить источник данных (с одного поля таблицы на другое)

PHP код:
if (ok)
     
RealContral.dataField(Table.Field1);
else
     
RealContral.dataField(Table.Field2);

Table_ds.executeQuery(); 
хотя думаю, Table_ds.executeQuery(); - не выход

итак вопрос? получалось ли заменить источник данных программно, и потом обновить грид?

P.S. Вариант с переменным скрытием двух разных контролов RealContral1 = Field1, RealContral2 = Field2 не предлагать)))
Старый 28.07.2005, 13:57   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Говорил и еще раз говорю:

1) Используй дисплей метод , который берет данные то из одной, то из другой таблицы.
Только закэшировать не забудь.
2) Или выводи 2 поля, и скрывай или одно, или другое.

Ну, пожалей же ты людей, которые после тебя придут и будут в твоем чудесном код рыться. Мы все знаем, что тв отличный прогаммист

С Уважением,
Георгий.
Старый 28.07.2005, 14:02   #3  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Цитата:
Изначально опубликовано George Nordic
Говорил и еще раз говорю:

Ну, пожалей же ты людей, которые после тебя придут и будут в твоем чудесном код рыться. Мы все знаем, что тв отличный прогаммист

еще раз отвечаю, таблица одна, а полей два...меняем одно поле на другое...

P.S. прочитав мои сообщения, можно придти к выводу, что я деградирую))
Старый 28.07.2005, 14:28   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Вообще, если проэкспериментировать - получается интересная картина (сразу оговорюсь - я считаю - скрытие поля или на худой конец дисплей-метод - заведомо лучшими решениями).
Формально - вроде как есть у контролов (тип FormControl) - есть свойство dataField, которое вроде как даже можно изменить. И оно меняется. Т.е. условно - берем форму, делаем грид, кнопку, по нажатию которой меняем вышеуказанное свойство. Получаем - да, свойство меняется... но форма не перерисовывается. Задумываемся - значит надо вызвать какой-то супер метод типа перестроить грид (ну в котором контрол сидит)... и вроде как о! есть у контрола метод update, updateWindow... Но они не дают ожидаемого эффекта.
А вот заглянув в книжку Еременко-Шашкова - видим - что вот у формы есть метод reload, который вроде как должен позволять чего-то сделать (хотя может и не должен). И написано (в книжке) - зарезервировано для будущего использования.
Отсюда можно сделать вывод - скорее всего в Аксапте пока нереализовали возможность в рантайме менять информацию о данных - в связи с тем, что это-то и не сильно нужно - ведь есть гораздо лучшие способы, предложенные George Nordic.
Хотя я тоже могу ошибаться.
Старый 28.07.2005, 14:43   #5  
БП is offline
БП
Участник
 
28 / 10 (1) +
Регистрация: 02.06.2005
Создавай все свои контролы налету, как в диалогах. А при нажатии конопки все перестраивай.

Как раз укладывается в философию "сделаювсечерезодноместопоапотомбудувсехдоставатьтупымивопросамипочемуононеработает".
Старый 28.07.2005, 14:52   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
не... так-то оно понятно... интересно было просто поэкспериментировать
почему бы не поисследовать ...
а потом если изначально (см первое сообщение) закладывается сия философия....
то всегда интересно на каком этапе сие застопорится
Старый 28.07.2005, 15:31   #7  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
2 БП

Во-первых, не хамите, не в трамвае.
Во-вторых, всегда лучше промолчать, если сказать нечего.
Старый 28.07.2005, 15:35   #8  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
to Alex_K

Спасибо
Старый 28.07.2005, 15:36   #9  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
Дело в том, что простое спрятать/показать контролы, если их несколько, сопровождается неприятным мельтешением картинки, особенно на медленной машинке. Отсюда и попытка найти другие варианты...
Старый 28.07.2005, 16:10   #10  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано Alex_K
Дело в том, что ... сопровождается неприятным мельтешением картинки...
А может лучше использовать lockWindowUpdate, чем идти на подобные эксперименты...
Старый 01.08.2005, 16:24   #11  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Цитата:
Изначально опубликовано dn


А может лучше использовать lockWindowUpdate, чем идти на подобные эксперименты...
посмотрела информацию по lockWindowUpdate на форуме. если данное свойство есть свойство контрола на форме, почему я не вижу его в списках свойств?
то есть нада данное (каждое) поле описывать программно?
Старый 01.08.2005, 16:26   #12  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
сли данное свойство есть свойство контрола на форме, почему я не вижу его в списках свойств?
Если мне не изменяет память, то это метод.
Старый 01.08.2005, 16:29   #13  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Цитата:
Изначально опубликовано Андре


Если мне не изменяет память, то это метод.
угу уже посмотрела...
Старый 01.08.2005, 16:46   #14  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
опыт с lockWindowUpdate не удался...
помаргивание формы все равно есть, лучше способа с дисплей - методами не нашла))
Старый 01.08.2005, 16:47   #15  
Tays is offline
Tays
Участник
 
165 / 17 (1) ++
Регистрация: 18.07.2003
Спасибо всем за ответы))
Старый 03.07.2007, 12:57   #16  
Hans is offline
Hans
Участник
Аватар для Hans
 
108 / 22 (1) +++
Регистрация: 20.10.2005
? Кто-нибудь пробовал, изменять значение DataSource и DataField у поля в грида в зависимости от места открытия формы?
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Вообще, если проэкспериментировать - получается интересная картина (сразу оговорюсь - я считаю - скрытие поля или на худой конец дисплей-метод - заведомо лучшими решениями).
Формально - вроде как есть у контролов (тип FormControl) - есть свойство dataField, которое вроде как даже можно изменить. И оно меняется. Т.е. условно - берем форму, делаем грид, кнопку, по нажатию которой меняем вышеуказанное свойство. Получаем - да, свойство меняется... но форма не перерисовывается. Задумываемся - значит надо вызвать какой-то супер метод типа перестроить грид (ну в котором контрол сидит)... и вроде как о! есть у контрола метод update, updateWindow... Но они не дают ожидаемого эффекта.
А вот заглянув в книжку Еременко-Шашкова - видим - что вот у формы есть метод reload, который вроде как должен позволять чего-то сделать (хотя может и не должен). И написано (в книжке) - зарезервировано для будущего использования.
Отсюда можно сделать вывод - скорее всего в Аксапте пока нереализовали возможность в рантайме менять информацию о данных - в связи с тем, что это-то и не сильно нужно - ведь есть гораздо лучшие способы, предложенные George Nordic.
Хотя я тоже могу ошибаться.
Кто-нибудь пробовал, изменять значение DataSource и DataField у поля в грида в зависимости от места открытия формы? Т.е. не менять эти параметры у уже открытой формы, а при открытии формы (в зависимости через какой menuItem она была открыта) выставлять нужные значения. Есть ли решение у этой проблемы, если поставить задачу таким образом?
__________________
Denkt dran, dass jeder eurer Schritte auch durch die unsichtbare Welt fuehrt, und tut ihn so, dass ihr ihn bestehen koennt.
Старый 03.07.2007, 13:01   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Hans Посмотреть сообщение
Кто-нибудь пробовал, изменять значение DataSource и DataField у поля в грида в зависимости от места открытия формы? Т.е. не менять эти параметры у уже открытой формы, а при открытии формы (в зависимости через какой menuItem она была открыта) выставлять нужные значения. Есть ли решение у этой проблемы, если поставить задачу таким образом?
Да просто в грид поля добавляй при открытии формы, указывая нужны свойства.
класс SysTableBrowser тебе в помощь
За это сообщение автора поблагодарили: Hans (1).
Старый 03.07.2007, 13:33   #18  
Hans is offline
Hans
Участник
Аватар для Hans
 
108 / 22 (1) +++
Регистрация: 20.10.2005
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Да просто в грид поля добавляй при открытии формы, указывая нужны свойства.
класс SysTableBrowser тебе в помощь
ага, спасибо за помощь. сейчас хотя бы знаю куда "копать".
__________________
Denkt dran, dass jeder eurer Schritte auch durch die unsichtbare Welt fuehrt, und tut ihn so, dass ihr ihn bestehen koennt.
Теги
программно, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблемма с выводом итогов в отчетах AX 3.0 SP 4 Maksimka DAX: Программирование 6 08.01.2007 12:17
Что возвращает FormStringControl.dataField()? Gad DAX: Программирование 2 02.12.2005 11:57

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:41.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.