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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.12.2016, 22:18   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вариант 1 плох: клиент-сервер таки нужно поддержать, если хочется перфекционизма
Так он и поддерживается. Просто не создается "двухпалубная" система классов обслуживания формы диалога. Ну, когда к исходникам, созданным на сервере, создается дубликат на клиенте

Т.е. стоим несколько "в раскоряку". Немного избыточный сетевой трафик.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вариант 2 плох: класс можно вызывать из кода, без диалога, если хочется перфекционизма
При вызове без диалога и проблемы нет, поскольку нет конфликта между созданием экземпляра класса на сервер и необходимостью открытия формы диалога на клиенте. Вне зависимости от способа реализации

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вариант 3: там где-то метод можно перекрыть, что-то вроде allowSaveLast (либо метод, либо переменная, объявленная на уровне RunBase). Но, если не ошибаюсь, это поломает передачу параметром клиент/серер. Стоит проверить.
Переменная getLastCalled - определяет, был ли уже вызов метода getLast(). Есть метод по ее установке setGetLastCalled(), но он private. Т.е. из наследников не вызовешь

Т.е. я бы назвал это "хакерским трюком". Очень не стандартное решение. Будет предельно сложным в сопровождении такого класса в будущем

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вариант 4: я бы шел классическим путем:
- сохраняем вашу переменную в pack/unpak как положено.
- в диалоге аналогично, стандартно, чтобы инициализировалось переменной.
- в методе main, принудительно вызываем getLast(), после чего обнуляем переменную. Вы же написали parm метод?
- ну и все. getLast() второй раз не вызывается, так задумано. Будущему программисту вы этим явно покажете, что сделано это осознанно. Универсальность класса сохранится - овцы сыты, волки целы.
Да, да. "И пастуху вечная память"

Смысл как раз в том, чтобы не делать различных "приседаний" вокруг создания с последующим обнулением переменных. Это как-то напрягает. Создать, чтобы тут же удалить.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 13.12.2016 в 22:38.
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Critical issue in SQL Server 2012 Service Pack 1 that could crash your SQL server Blog bot DAX Blogs 0 01.11.2013 01:11
emeadaxsupport: How to disable the Public Sector solution when using Microsoft Dynamics AX 2012 Feature Pack Blog bot DAX Blogs 0 07.08.2012 00:13
emeadaxsupport: Error when upgrading to AX 2012 Feature Pack: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_ModelElementData_HasModelId_LayerId" Blog bot DAX Blogs 0 20.07.2012 00:11
AX UK: Microsoft Dynamics AX 2009 Management Pack for SCOM 2007 Blog bot DAX Blogs 2 12.08.2009 09:08
chrisfie: Announcing the release of Project Portfolio Server 2007 Service Pack 2 (SP2) Blog bot DAX Blogs 0 24.07.2009 04:20

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

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

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