|
|
#1 |
|
Участник
|
DataField
Сталкивались вы с такой ситуацией?
В открытой форме при нажатии некой кнопки некоему контролу в гриде необходимо переобозначить источник данных (с одного поля таблицы на другое) PHP код:
итак вопрос? получалось ли заменить источник данных программно, и потом обновить грид? P.S. Вариант с переменным скрытием двух разных контролов RealContral1 = Field1, RealContral2 = Field2 не предлагать))) |
|
|
|
|
#2 |
|
Модератор
|
Говорил и еще раз говорю:
1) Используй дисплей метод , который берет данные то из одной, то из другой таблицы. Только закэшировать не забудь. 2) Или выводи 2 поля, и скрывай или одно, или другое. Ну, пожалей же ты людей, которые после тебя придут и будут в твоем чудесном код рыться. Мы все знаем, что тв отличный прогаммист ![]() С Уважением, Георгий. |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Изначально опубликовано George Nordic
Говорил и еще раз говорю: Ну, пожалей же ты людей, которые после тебя придут и будут в твоем чудесном код рыться. Мы все знаем, что тв отличный прогаммист ![]() еще раз отвечаю, таблица одна, а полей два...меняем одно поле на другое... P.S. прочитав мои сообщения, можно придти к выводу, что я деградирую)) |
|
|
|
|
#4 |
|
Administrator
|
Вообще, если проэкспериментировать - получается интересная картина (сразу оговорюсь - я считаю - скрытие поля или на худой конец дисплей-метод - заведомо лучшими решениями).
Формально - вроде как есть у контролов (тип FormControl) - есть свойство dataField, которое вроде как даже можно изменить. И оно меняется. Т.е. условно - берем форму, делаем грид, кнопку, по нажатию которой меняем вышеуказанное свойство. Получаем - да, свойство меняется... но форма не перерисовывается. Задумываемся - значит надо вызвать какой-то супер метод типа перестроить грид (ну в котором контрол сидит)... и вроде как о! есть у контрола метод update, updateWindow... Но они не дают ожидаемого эффекта. А вот заглянув в книжку Еременко-Шашкова - видим - что вот у формы есть метод reload, который вроде как должен позволять чего-то сделать (хотя может и не должен). И написано (в книжке) - зарезервировано для будущего использования. Отсюда можно сделать вывод - скорее всего в Аксапте пока нереализовали возможность в рантайме менять информацию о данных - в связи с тем, что это-то и не сильно нужно - ведь есть гораздо лучшие способы, предложенные George Nordic. Хотя я тоже могу ошибаться. |
|
|
|
|
#5 |
|
Участник
|
Создавай все свои контролы налету, как в диалогах. А при нажатии конопки все перестраивай.
Как раз укладывается в философию "сделаювсечерезодноместопоапотомбудувсехдоставатьтупымивопросамипочемуононеработает". |
|
|
|
|
#6 |
|
Administrator
|
не... так-то оно понятно... интересно было просто поэкспериментировать
![]() почему бы не поисследовать ...а потом если изначально (см первое сообщение) закладывается сия философия.... то всегда интересно на каком этапе сие застопорится
|
|
|
|
|
#7 |
|
Участник
|
2 БП
Во-первых, не хамите, не в трамвае. Во-вторых, всегда лучше промолчать, если сказать нечего. |
|
|
|
|
#8 |
|
Участник
|
to Alex_K
Спасибо |
|
|
|
|
#9 |
|
Участник
|
Дело в том, что простое спрятать/показать контролы, если их несколько, сопровождается неприятным мельтешением картинки, особенно на медленной машинке. Отсюда и попытка найти другие варианты...
|
|
|
|
|
#10 |
|
Участник
|
Цитата:
Изначально опубликовано Alex_K
Дело в том, что ... сопровождается неприятным мельтешением картинки... |
|
|
|
|
#11 |
|
Участник
|
Цитата:
Изначально опубликовано dn
А может лучше использовать lockWindowUpdate, чем идти на подобные эксперименты... то есть нада данное (каждое) поле описывать программно? |
|
|
|
|
#12 |
|
Moderator
|
Цитата:
сли данное свойство есть свойство контрола на форме, почему я не вижу его в списках свойств?
|
|
|
|
|
#13 |
|
Участник
|
Цитата:
Изначально опубликовано Андре
Если мне не изменяет память, то это метод. |
|
|
|
|
#14 |
|
Участник
|
опыт с lockWindowUpdate не удался...
помаргивание формы все равно есть, лучше способа с дисплей - методами не нашла)) |
|
|
|
|
#15 |
|
Участник
|
Спасибо всем за ответы))
|
|
|
|
|
#16 |
|
Участник
|
Цитата:
Сообщение от sukhanchik
Вообще, если проэкспериментировать - получается интересная картина (сразу оговорюсь - я считаю - скрытие поля или на худой конец дисплей-метод - заведомо лучшими решениями).
Формально - вроде как есть у контролов (тип FormControl) - есть свойство dataField, которое вроде как даже можно изменить. И оно меняется. Т.е. условно - берем форму, делаем грид, кнопку, по нажатию которой меняем вышеуказанное свойство. Получаем - да, свойство меняется... но форма не перерисовывается. Задумываемся - значит надо вызвать какой-то супер метод типа перестроить грид (ну в котором контрол сидит)... и вроде как о! есть у контрола метод update, updateWindow... Но они не дают ожидаемого эффекта. А вот заглянув в книжку Еременко-Шашкова - видим - что вот у формы есть метод reload, который вроде как должен позволять чего-то сделать (хотя может и не должен). И написано (в книжке) - зарезервировано для будущего использования. Отсюда можно сделать вывод - скорее всего в Аксапте пока нереализовали возможность в рантайме менять информацию о данных - в связи с тем, что это-то и не сильно нужно - ведь есть гораздо лучшие способы, предложенные George Nordic. Хотя я тоже могу ошибаться.
__________________
Denkt dran, dass jeder eurer Schritte auch durch die unsichtbare Welt fuehrt, und tut ihn so, dass ihr ihn bestehen koennt. |
|
|
|
|
#17 |
|
Участник
|
Цитата:
Сообщение от Hans
Кто-нибудь пробовал, изменять значение DataSource и DataField у поля в грида в зависимости от места открытия формы? Т.е. не менять эти параметры у уже открытой формы, а при открытии формы (в зависимости через какой menuItem она была открыта) выставлять нужные значения. Есть ли решение у этой проблемы, если поставить задачу таким образом?
класс SysTableBrowser тебе в помощь
|
|
|
|
| За это сообщение автора поблагодарили: Hans (1). | |
|
|
#18 |
|
Участник
|
ага, спасибо за помощь. сейчас хотя бы знаю куда "копать".
__________________
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 | 6 | |||
| Что возвращает FormStringControl.dataField()? | 2 | |||
|