22.05.2006, 07:54 | #1 |
Участник
|
Дисплей метод таблицы который вызывается из ГРИДА
Задача: Есть дисплей метод таблицы который вызывается из ГРИДА, нужно чтобы он отрабатывал только если на форме стоит галочка.
Попробовал создать дисплей метод на датасорсе который вызывает дисплей метод таблицы но для грида это не проходит, метод получает текущее значение курсора и вовсе поля грида возвращает одинаковое значение. При вызове метода таблицы проблематично получить значение галочки на форме? Может кто что подскажет? |
|
22.05.2006, 08:27 | #2 |
Программатор
|
Если метод таблицы вызывается из формы, то в чём сложность передать значение галки?
ИмяТаблицы.ваш_метод(Название_галки.value()); С уважением - Sada... |
|
22.05.2006, 08:33 | #3 |
Участник
|
2 Sada
Это дисплейный метод. Ваш способ для него не подходит 2 Зорро Посмотрите это обсуждение Еще раз о Display-методах
__________________
Axapta v.3.0 sp5 kr2 |
|
22.05.2006, 09:23 | #4 |
Участник
|
мне кажется рациональнее просто прятаь поле, если стоит галка. на modified галки поставьте ваш_элемент_грида.visible(true/false) в зависимости от логики.
|
|
22.05.2006, 09:25 | #5 |
Member
|
Цитата:
Сообщение от 3oppo
...
Попробовал создать дисплей метод на датасорсе который вызывает дисплей метод таблицы но для грида это не проходит, метод получает текущее значение курсора и вовсе поля грида возвращает одинаковое значение. ... А вообще согласен с mit.
__________________
С уважением, glibs® |
|
22.05.2006, 11:39 | #6 |
Участник
|
Цитата:
Сообщение от mit
мне кажется рациональнее просто прятаь поле, если стоит галка. на modified галки поставьте ваш_элемент_грида.visible(true/false) в зависимости от логики.
Но тут остаётся один момент, если кэшировать этот метод (как раз мой случай) то показать\спрятать на производительности никак не отражается! |
|
22.05.2006, 12:09 | #7 |
Участник
|
В хелпе про cacheAddMethod() так и написано
Цитата:
Do not sign up display methods that are not used on the form - they will be calculated for each record even though the values are never shown.
__________________
Axapta v.3.0 sp5 kr2 |
|
22.05.2006, 12:59 | #8 |
Administrator
|
Цитата:
Сообщение от 3oppo
Попробовал создать дисплей метод на датасорсе который вызывает дисплей метод таблицы но для грида это не проходит, метод получает текущее значение курсора и вовсе поля грида возвращает одинаковое значение.
Цитата:
The exception to this is when you define display on a form data source method. If you choose to write a display method on a form data source, you must include the data source as parameter, for example
display InventQty Accumulated(InventBudgetInvent Budget) which is a method on the data source for the InventBudgetInvent form. Note You must use display on a form data source method when the return value is to be shown on a grid control.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
22.05.2006, 14:21 | #9 |
Участник
|
а что, такие большие накладные расходы по методу?
в любом случае, если метод вызывается, то вне зависимости от галки он будет отрабатывать. или с галкой хотите по укороченной логике пустить? думаю, что визуально разницы не будет заметно. а если будет, может код оптимизировать? |
|
22.05.2006, 21:42 | #10 |
Участник
|
Такое ощущение, что вы не учли, что при создании дисплей метода на DataSource в него нужно передавать параметром таблицу, для которой этот дисплей метод.
А вы вызываете метод таблицы, используя не этот передаваемый параметр, а имя датасорса, что и есть - текущий курсор, поэтому и получаете все строки с одинаковым значением. |
|
23.05.2006, 06:47 | #11 |
Участник
|
Цитата:
Сообщение от Maxim Gorbunov
Открываем Microsoft Axapta Developer's Guide, ищем статью Creating Forms/Form Basics/Designing Forms/Using display and edit method modifiers. Читаем:
|
|