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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.02.2019, 11:00   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
А что такое NZ?
NotZero - принимает два аргумента. возвращает первый, если он не пустой и второй, если первый пустой.
удобнее, чем тренарный оператор, если второй параметр что-то быстро вычисляемое (константа, strfmt и т.п.)

Цитата:
Сообщение от trud Посмотреть сообщение
по остальному - в D365 лучше наверное использовать класс System.String - там есть просто все и даже больше.
не очень больше.
System.String не так работает на вправо-выровнянных строках.
а в предыдущих версиях требует постоянного InteropPermission (будь проклят тот архитектор, кто ввел эту шнягу)


Цитата:
Сообщение от trud Посмотреть сообщение
Если пришлете тексты, могу включить, но лучше наверное в отдельный класс DEVStringHelper
Да, опубликую, пришлю.

только наоборот
это методы работы с рэнджами, буферами, датасорсами и прочими сложными объектами нужно переносить в отдельные классы - SysQuery, SysDataSource, SysRecord, SysArgs.
а методы конвертации базовых типов как раз просятся в Global

Цитата:
Сообщение от trud Посмотреть сообщение
Если не ошибаюсь изначально позаимствовал у Ромы, нужен если у вас есть FormRun и на нем надо вызвать метод. В последнее время кстати приходилось несколько раз пользовать(хотя понятно что лучше этого избегать). Врядли он будет работать для System.Object
эх, Рома, Рома.
Понятно. Он использует это для получения внутреннего представления, насколько я помню. Дикие хаки. Но эффективные, чёрт побери.
Насколько я понимаю, в 365fo контейнер реализован на System.Array, поэтому дикие хаки с cObject работать не должны. Но в этом расширении метод cObject предлагается. Вот я и удивляюсь - может еще как это можно использовать?

Цитата:
Сообщение от trud Посмотреть сообщение
Я наоборот за критику, в спорах рождается истина. Более того, по опыту выкладывания утилит, самое частое что я использую сам - это создание экстенш метода(которое добавил skull), т.е. пока это win-win стратегия
Ок, спасибо.
Я тоже за критику. Просто с этим случаем у меня подозрение, что это я чего-то не знаю.

Цитата:
Сообщение от trud Посмотреть сообщение
Идея метода - продублировать стандартный SysQuery::countPrim, но без условия
это-то понятно. без вопросов.
вопрос - почему pack применяется для QueryRun, а не для Query.

Цитата:
Сообщение от trud Посмотреть сообщение
зачем там пакуется QueryRun и почему они возвращают Integer я честно говоря не знаю, но идея была чтобы заменить один на другой. А какие с этим проблемы?
не знаю. вот не знание то и беспокоит. вдруг, проблемы таки есть?
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 28.02.2019 в 11:03.
За это сообщение автора поблагодарили: trud (2).
Старый 28.02.2019, 12:44   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
это методы работы с рэнджами, буферами, датасорсами и прочими сложными объектами нужно переносить в отдельные классы - SysQuery, SysDataSource, SysRecord, SysArgs.
Такая схема не будет работать при аутсорсинговом программировании(т.е. изначально эти все методы и были разбиты по данным классам). При попытке использовать данные расширения велика вероятность что вам вернут задачу в доработку с комментарием - "убрать код не относящийся к задаче."
Доходило до смешного - мы помогали нашим UK коллегам, и начали с импорта всяких утилит, причем в каком-то минимальном варианте, через пару дней пришло разгневанное письмо от вед.разработчика проекта, которое она отправила к ПМ с пометкой важно - типа эти русские заимпортили какие-то классы, я не знаю что мне делать, я же предупреждала что не надо их брать...
Ну т.е. надо иметь максимально удобный к установке вариант, допускающий легкую частичную установку(т.е. методы должны минимально вызывать друг друга), плюс не заменять стандарт
Цитата:
Сообщение от mazzy Посмотреть сообщение
эх, Рома, Рома.
Понятно. Он использует это для получения внутреннего представления, насколько я помню. Дикие хаки. Но эффективные, чёрт побери.
Да, если бы Рома устроился архитетектором в МС, то сейчас бы не было тем "Интеграция - использовать стандарт или писать на коленке ? "
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.02.2019, 13:27   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
В двенашке и этого нет. Видимо потому, что
Цитата:
Сообщение от trud Посмотреть сообщение
не заменять стандарт
__________________
Sergey Nefedov
Старый 28.02.2019, 13:26   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
4,001 / 3298 (118) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Но в этом расширении метод cObject предлагается. Вот я и удивляюсь - может еще как это можно использовать?
Недавно писал такой же метод cObject .

Мне он пригодился для таких конструкций:
Раньше можно было написать
X++:
if (... && SysDictClass::is(element.args().caller().runBase(), ClassNum(MyClass))
теперь аналог
X++:
if (... && element.args().caller().runBase() is MyClass)
не прокатывает потому что element.args().caller().runBase() это с точки зрения компилятора - anyType и он автоматом не приводится к Object

теперь приходится писать

X++:
if (... && cObject(element.args().caller().runBase()) is MyClass)
За это сообщение автора поблагодарили: mazzy (2), EVGL (5), trud (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DynamicsAxSCM: Change license plate, split quantity, skip and override location during inbound put away Blog bot DAX Blogs 0 27.11.2015 16:11
DynamicsAxSCM: Creating Custom Solutions with the Warehouse Mobile Device Portal Blog bot DAX Blogs 0 13.03.2015 16:11
crminthefield: Creating SSL Certificates for CRM Test Environment Blog bot Dynamics CRM: Blogs 0 10.12.2013 02:12
Microsoft Dynamics CRM Team Blog: Using Power View in Excel 2013 to Analyze CRM Data Blog bot Dynamics CRM: Blogs 0 19.04.2013 00:11
DynamicsAxSCM: Personalization of Role Centers in Dynamics AX 2009 Blog bot DAX Blogs 0 21.06.2010 16:05
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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