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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.12.2012, 11:37   #1  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Tutorial Form. Непонятное влияние на таблицу.
При открытии формы tutorial_AuctionBids поле Auctioner отображает значение из первой строки таблицы tutorial_AuctionItems

Если на форме вставить в это поле другое значение, то после закрытия формы первая строка в таблице обновится в соответствии с ним.

Таким образом, добавить строку в таблицу, используя эту форму, невозможно, при этом форма портит данные в таблице без подтверждения.

Прошу объяснить, в чем смысл такой работы формы и в каком случае такое поведение требуется.
Старый 05.12.2012, 12:02   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А что за версия у вас? Я в стандарте не нахожу такой формы.
Старый 05.12.2012, 12:07   #3  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Axapta 3.0 SP 4

Насколько я понял это поведение любой формы по умолчанию, т.к. на tutorial_AuctionBids нет перекрытых методов, которые могли бы влиять на этот результат.
__________________
Axapta 3.0 SP 4

Последний раз редактировалось bodeaux; 05.12.2012 в 12:12.
Старый 05.12.2012, 12:28   #4  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
это нормальное поведение, когда при переходе на другую строку( или закрытие формы или нажатие кнопки), измененная текущая строка записывается
За это сообщение автора поблагодарили: bodeaux (1).
Старый 05.12.2012, 12:44   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,698 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Это имеет смысл, если данная форма - подчиненная. Вызывается из формы со списком по таблице tutorial_AuctionItems. Ну, например, добавить кнопку вызова в форму tutorial_AuctionItems. Т.е. выбор конкретной записи таблицы tutorial_AuctionItems происходит в родительской форме

Правда, для такой работы на таблице tutorial_AuctionItems должен быть Primary Key или Relation по которому и организуется автоматическая связка. Здесь этого нет, поскольку цель данной формы несколько другая.

Собственно, это действительно стандарт. Ну, например, вызов формы "Строк" из любого "Журнала". Правда, обычно, поля из "головной" таблице в подчиненной форме отображаются только на просмотр. Но никто не запрещает давать возможность их редактировать
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: bodeaux (1).
Старый 05.12.2012, 12:51   #6  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Цитата:
Сообщение от ice Посмотреть сообщение
это нормальное поведение
Я согласен, что такое поведение ожидаемо и понятно, если поле расположено на гриде, где выведены все (нужные) строки таблицы.
Дело в том, что в данном случае поле Auctioner просто выведено как отдельное поле и сложно предсказать, на что оно повлияет.

Как известно, если в свойствах поля формы указать не конкретный столбец таблицы, а EDT (в данном случае подойдет CustAccount),
то поведение формы для пользователя останется прежним, но пропадет эффект замены значения поля в таблице.

Однако, при этом появляется отступление от BestPractice:
Unknown data field or data method on data source 'AuctionItems'.

Подскажите, можно ли реализовать поле на форме так, чтобы:
1. была возможность выбора из выпадающего списка (значений поля таблицы);
2. поле в таблице (помещенной в DS) не изменялось при выборе нового значения;
3. были соблюдены BestPractice.


Добавлено позже: просто я перестарался, не нужно указывать DS в свойствах поля и все ок
__________________
Axapta 3.0 SP 4

Последний раз редактировалось bodeaux; 05.12.2012 в 13:19.
Старый 05.12.2012, 13:38   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Ещё такие "отдельные" контролы можно реализовывать на базе edit-методов.
1) в ClassDeclaration формы объявляем переменную.
2) в методах формы создаём edit-метод, который отображает/изменяет переменную
3) перетаскиваем метод на дизайн формы.

Плюсы такого подхода. Хранение и доступ к данным не связан с логикой их отображения. Нет необходимости выставлять свойство AutoDeclaration. Можно иметь несколько контролов связанных с одной и той же переменной.
За это сообщение автора поблагодарили: bodeaux (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Paying a Vendor Blog bot DAX Blogs 0 22.03.2012 22:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Dianne Siebold: AX Tutorials in the AOT Blog bot DAX Blogs 0 05.12.2009 10:07
axaptapedia: Tutorial Form Dynalink Blog bot DAX Blogs 0 22.08.2007 23:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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