![]() |
#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 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|