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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.10.2004, 17:45   #1  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
? Как открыть две формы с одинаковым DataSource?
Привет всем!
Такой вопрос.
У меня есть форма, в которой есть источник данных, основанный на InventTable. И есть другая форма с таким же источником данных. Эта вторая форма вызывается через MenuItemButton из первой формы. В результате, во второй форме записи фильтруются по активной записи той формы, которая ее вызвала. Мне же надо, чтобы вызываемая форма была независима от вызывающей, то есть, отображала все записи.
Как это сделать?

PS. Чувствую, что это как-то решается стандартными средствами, но не знаю, где копать.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 07.10.2004, 17:51   #2  
axLog is offline
axLog
Участник
 
286 / 10 (1) +
Регистрация: 01.03.2004
не совсем ясно.
В первой форме у вас датасорсы 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  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
В .init() второго источника данных вызвать this.query().dataSourceTable(...)..clearDynalinks()
Старый 07.10.2004, 18:00   #4  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
У кнопки MenuItemButton на первой форме есть свойство DataSource. Вероятно, оно у вас заполнено.
Старый 07.10.2004, 18:03   #5  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
Только что переименовал датасурс во второй форме - эффект нулевой.
В вызывающей форме у меня всего один датасурс - "InventTable"
В вызываемой форме у меня также всего один датасурс - "InventTable111"

Хожу по записям в датасурсе 1-й формы - датасурс 2-й формы автоматически фильтруется по текущей записи датасурса 1-й формы! Никаких вторый датасурсов ни в первой, ни во второй формах нет.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 07.10.2004, 18:05   #6  
sassas
Гость
 
n/a
menuItemButton:

void clicked()
{
   //super();
&nbsp;&nbsp;new MenuFunction(menuItemDisplayStr(<Ваш менюИтем>), MenuItemType:: Display).run();
}

и в вызываемой форме копаться не надо

совет Hezl не поможет
Старый 07.10.2004, 18:10   #7  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
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  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
sassas - супер!!!
Спасибо большое! Я тоже уже склонялся к вызову через MenuFunction. Жалко что простыми настройками этого нельзя добиться.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 07.10.2004, 18:19   #9  
sassas
Гость
 
n/a
можно удалить релайшн на EDT ключевого поля теблицы (на саму таблицу). Но это не есть гуд.

Вот так можно обойтись настройками. Без программинга )
Старый 07.10.2004, 18:21   #10  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
И еще большее спасибо EVGL - так тоже работает. И мне как раз надо это написать в вызываемой форме, чтобы она вызывалась изо всех мест стандартно и не с кем не линковалась.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 07.10.2004, 18:44   #11  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
Согласен, тот способ не работает
Но можно свойство AutoQuery у источника данных на второй форме отключить.
Старый 07.10.2004, 18:52   #12  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
Да, отключение AutoQuery помогает.
Но самый лучший все-таки способ - это через clearDynaLinks() источника данных. Все-таки отключать создание Query у формы не хочется - вдруг когда-нибудь понадобится.
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление DataSource из формы Печать\Новый отчет. Poleax DAX: Программирование 19 13.04.2011 09:28
Открыть дизайн формы в режиме Edit из кода arnold DAX: Программирование 11 27.11.2008 16:20
Как программно добавить DataSource в процессе работы формы Владимир Максимов DAX: Программирование 1 29.11.2006 18:28
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Как получить доступ к текущей строке в DataSource формы Maxim Gorbunov DAX: База знаний и проекты 0 28.11.2001 13:46

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

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

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