07.10.2004, 17:45 | #1 |
Участник
|
Как открыть две формы с одинаковым DataSource?
Привет всем!
Такой вопрос. У меня есть форма, в которой есть источник данных, основанный на InventTable. И есть другая форма с таким же источником данных. Эта вторая форма вызывается через MenuItemButton из первой формы. В результате, во второй форме записи фильтруются по активной записи той формы, которая ее вызвала. Мне же надо, чтобы вызываемая форма была независима от вызывающей, то есть, отображала все записи. Как это сделать? PS. Чувствую, что это как-то решается стандартными средствами, но не знаю, где копать.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
07.10.2004, 17:51 | #2 |
Участник
|
не совсем ясно.
В первой форме у вас датасорсы ds_1 и ds_2, и во второй ds_1 и ds_2, так вторая форма отображает только ds_2, относящиеся к ds_1 которая является текущей в первой форме ? так ? может вам нужно просто переименовать во второй форме истоник данных с ds_1 на ds_1_1 (InventTable_1, название таблицы останется прежним - InventTable)? |
|
07.10.2004, 17:58 | #3 |
Banned
|
В .init() второго источника данных вызвать this.query().dataSourceTable(...)..clearDynalinks()
|
|
07.10.2004, 18:00 | #4 |
Участник
|
У кнопки MenuItemButton на первой форме есть свойство DataSource. Вероятно, оно у вас заполнено.
|
|
07.10.2004, 18:03 | #5 |
Участник
|
Только что переименовал датасурс во второй форме - эффект нулевой.
В вызывающей форме у меня всего один датасурс - "InventTable" В вызываемой форме у меня также всего один датасурс - "InventTable111" Хожу по записям в датасурсе 1-й формы - датасурс 2-й формы автоматически фильтруется по текущей записи датасурса 1-й формы! Никаких вторый датасурсов ни в первой, ни во второй формах нет.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
07.10.2004, 18:05 | #6 |
Гость
|
menuItemButton:
void clicked() { //super(); new MenuFunction(menuItemDisplayStr(<Ваш менюИтем>), MenuItemType:: Display).run(); } и в вызываемой форме копаться не надо совет Hezl не поможет |
|
07.10.2004, 18:10 | #7 |
Участник
|
2 Hezl - на кнопке MenuItemButton не указан датасурс.
Вообще с нуля моделирую эту ситуацию: 1. Создаю новую форму с источником данных InventTable 2, Вставляю в эту форму грид и вывожу пару полей из InventTable. 3, Создаю вторую форму с источником данных InventTable111 (таблица InventTable) 4. Вставляю во вторую форму грид и вывожу пару полей из InventTable. 5. Создаю MenuItemButton - все настройки по умолчанию. 6. В первой форме вывожу MenuItemButton, которая вызывает вторую форму. Все настройки MenuItem по умолчанию. 7. Открываю первую форму. Нажимаю MenuItemButtion, В открывшейся форме в гриде отображается только одна запись - а надо, чтобы так же как и в первой форме, отображались все записи!
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
07.10.2004, 18:12 | #8 |
Участник
|
sassas - супер!!!
Спасибо большое! Я тоже уже склонялся к вызову через MenuFunction. Жалко что простыми настройками этого нельзя добиться.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
07.10.2004, 18:19 | #9 |
Гость
|
можно удалить релайшн на EDT ключевого поля теблицы (на саму таблицу). Но это не есть гуд.
Вот так можно обойтись настройками. Без программинга ) |
|
07.10.2004, 18:21 | #10 |
Участник
|
И еще большее спасибо EVGL - так тоже работает. И мне как раз надо это написать в вызываемой форме, чтобы она вызывалась изо всех мест стандартно и не с кем не линковалась.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
07.10.2004, 18:44 | #11 |
Участник
|
Согласен, тот способ не работает
Но можно свойство AutoQuery у источника данных на второй форме отключить. |
|
07.10.2004, 18:52 | #12 |
Участник
|
Да, отключение AutoQuery помогает.
Но самый лучший все-таки способ - это через clearDynaLinks() источника данных. Все-таки отключать создание Query у формы не хочется - вдруг когда-нибудь понадобится.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|