31.10.2011, 11:43 | #1 |
Участник
|
Почему display/edit методы не поддерживают переход к основной таблице
Почему для отдельных контролов (не связанных с источником данных), но c заданым свойством ExtendedDataType нет функции перехода к основной таблице. Аналогичный вопрос для display и edit методов?
|
|
|
За это сообщение автора поблагодарили: Alexius (2). |
31.10.2011, 13:04 | #2 |
MCT
|
По все видимости потому, что display и edit методы - это некие функции для расчета, поэтому и не содержат перехода к таблице, так как сама таблица может не существовать.
__________________
Axapta book for developer |
|
31.10.2011, 13:19 | #3 |
Участник
|
А если указать ExtendedDataType на котором будет relation? Что мешает выполнить переход в таком случае?
|
|
31.10.2011, 13:52 | #4 |
Мрачный тип
|
EDT недоступен для указания в контролах display- и edit-методов, что само по себе логично - сам метод в своем определении несет информацию о EDT возвращаемого значения. Если указывать в этих методах в качестве типа возвращаемого значения EDT того поля, по которому идет расчет возвращаемого значения, то ни к чему хорошему не приведет - кастрируется по размеру результат, да и переход вряд ли работать будет, т.к. есть сильное подозрение, что сия функциональность запрограммирована исключительно для связанных с DS контролами. Если предположить, что цепочка анализа возможности активации этого пункта в контекстном меню выглядит как "контрол -> DS/поле -> таблица/поле в AOT -> EDT поля -> таблица ссылки EDT", то видно, что отвязанный от DS контрол или контрол с display/edit-методом обрубается в цепочке на втором шаге и никакого счастия в виде пункта "Перейти к основной таблице" не будет.
P.S. По поводу отвязанного контрола вопрос и негодование разделяю - логически и технически каких-то препятствий не видится для реализации перехода к таблице.
__________________
Мы летаем, кружимся, нагоняем ужасы ... Последний раз редактировалось TasmanianDevil; 31.10.2011 в 14:04. Причина: P.S. дописал |
|
31.10.2011, 14:00 | #5 |
Участник
|
В объявлении метода явно стоит тип возвращаемого значения, так что логичного объяснения, кроме как - "бикоз" тут нет.
А есть у кого-нибудь возможность на 2012-й проверить? |
|
31.10.2011, 14:11 | #6 |
Участник
|
Присоединяюсь с негодованием и непониманием отсутствия такой возможности.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
31.10.2011, 15:32 | #7 |
Участник
|
|
|
31.10.2011, 16:11 | #8 |
Участник
|
Ведь форма для перехода к основной таблице указывается на таблице, с которой связан EDT.
В АХ 2012 это работает. В смысле, если создать EDT, связать его с таблицей, и на таблице указан FormRef, переход к основной таблице будет. Для дисплей методов, имхо, это некорректно |
|
31.10.2011, 16:16 | #9 |
Участник
|
Цитата:
Почему? |
|
31.10.2011, 16:36 | #10 |
Участник
|
Потому-что данные, показываемые в этом поле, скорее всего не относятся к той таблице, к которой будет осуществлятся переход.
Я могу понять несколько примеров, когда это можно было бы использовать, но делать это поведением по-умолчанию... хмм, не знаю, неправильно как-то. |
|
31.10.2011, 16:37 | #11 |
Участник
|
Может быть потому, что по большому счёту в дисплей методе можно выводить, к примеру, фразу: "Тут был Вася". Никак не привязанную ни к каким полям никаких таблиц? Либо часть из части поля одной таблицы, часть из другой части другого поля другой таблицы... Надеюсь я не очень путано...
|
|
31.10.2011, 16:46 | #12 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
31.10.2011, 16:47 | #13 |
Участник
|
Цитата:
Цитата:
Сообщение от Krasher
Может быть потому, что по большому счёту в дисплей методе можно выводить, к примеру, фразу: "Тут был Вася". Никак не привязанную ни к каким полям никаких таблиц? Либо часть из части поля одной таблицы, часть из другой части другого поля другой таблицы... Надеюсь я не очень путано...
|
|
31.10.2011, 16:50 | #14 |
Участник
|
У display-методов, как и у edit-методов есть описание какой тип этот метод возвращает, что-то наподобе
X++: display ItemName itemName()
{
.........
}
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
31.10.2011, 17:15 | #15 |
Участник
|
А куда, в общем случае, должен быть осуществлен переход? В edit или display методе может быть жутко замороченный алгоритм. Как система должна разобраться что там е этом методе происходит?
Пусть EDT на методе будет AmountMST, в методе производится расчет средней стоимости отгрузок клиенту с условием, что клиент оплачивает на 10% быстрее, чем предоставленная ему отсрочка платежа. Куда переходить ? |
|
31.10.2011, 17:41 | #16 |
Участник
|
для AmountMST очевидно никуда, для этого типа нет формы.
А например если возвращается клиент переходить в форму клиентов |
|
31.10.2011, 18:21 | #17 |
Administrator
|
Если нужно показать клиента, то можно и таблицу приджойнить, в которой это поле указано. При этом из таблицы унаследуется вся настройка прав доступа. Не стоит забывать о том, что на display-метод настроить доступ не так-то просто
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
31.10.2011, 19:04 | #18 |
Участник
|
А она и не должна. Это решит программист, указав у метода нужный ему тип возвращаемого значения. К слову в случае edit-метода именно таким способом происходит назначение на контрол нужной lookup формы.
|
|
31.10.2011, 19:38 | #19 |
Участник
|
Цитата:
В основном эти методы для этого и пишутся. С правами в АХ2009 гайки закручены мама не горюй. Мало того, что теперь проверяются лукапы, дак еще и при желании в коде можно закрыть доступ через соответствующее свойство таблицы. Не думаю, что в этом случае это сложнее.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 31.10.2011 в 20:06. |
|
01.11.2011, 00:30 | #20 |
Участник
|
Одним словом, feedback taken - я обсужу, создам баг, а как будут новости, расскажу
|
|
|
За это сообщение автора поблагодарили: macklakov (2), sukhanchik (5), lev (2), S.Kuskov (3), imir (2). |