|
16.06.2015, 11:24 | #1 |
Участник
|
Цитата:
Работа с Query - это довольно часто выполняемая операция. Как следствие, удобнее вынести эту обработку в общую "библиотеку" пользовательских функций Global, о которой "все знают", чем в специализированный класс SysQuery о котором еще надо "вспомнить" На всякий случай напомню, что статические методы класса Global можно вызывать и без указания имени класса. Как системную функцию. Т.е. можно просто написать queryNotValue(...) Это уже лично я пишу имя класса, чтобы не вспоминать точное название метода, а посмотреть в выпадающем списке после ввода двоеточий. Мне так удобнее Ну, и еще появляется возможность внести дополнительные параметры и обработки, не трогая класс SysQuery. Например, добавить второй параметр по аналогии с методом global::queryRangeConcat(), чтобы добавлять отрицание к уже существующему условию. Но это так, идет скорее дополнением (бонусом), чем причиной...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
16.06.2015, 16:03 | #2 |
Участник
|
Цитата:
Когда туда начинают сливать все подряд (ну а что, кому-нибудь пригодится же!), Global превращается не пойми во что с кучей непонятного и зачастую дублирующего друг друга функционала. В итоге каждый раз начинаем искать то что нам подойдет: Цитата:
Мне кажется намного удобнее, когда вспомогательные функции именно для работы с запросами собраны в одном классе SysQuery, что в итоге значительно сужает область поиска. И другие такие примеры тоже есть, даже среди системных классов, например, DateUtil для utcdatetime или CLRInterop для работы с .NET. А есть еще, например, WinAPI/WinAPIServer А почему его нельзя трогать? |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (2). |
16.06.2015, 18:03 | #3 |
Участник
|
Цитата:
Сообщение от makbeth
Проблема выноса подобных функций в Global в том, что Global в итоге превращается в помойку, где можно что-то очень долго искать, и... в конце концов действительно найти.
(...) Когда туда начинают сливать все подряд (ну а что, кому-нибудь пригодится же!), Global превращается не пойми во что с кучей непонятного и зачастую дублирующего друг друга функционала. В итоге каждый раз начинаем искать то что нам подойдет: Проблему дублирования кода и "превращение в помойку" заменой одного класса на другой не исправишь... Цитата:
Цитата:
Сомнительно... Помнить все классы просто не реально. Как правило, это кончается созданием личной библиотеки наиболее часто используемых "функций". Т.е. некой альтернативы класса Global, куда собираются "свои" статические методы. Цитата:
Кстати, в Ax2009 классы DateTimeUtil и CLRInterop являются системными и изменить их невозможно. Создавать отдельные классы для расширения их функциональности или все-таки методы Global? Можно, конечно, только если работаешь с классом Global, то логично и изменения вносить в класс Global...
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
17.06.2015, 12:22 | #4 |
Участник
|
А ВОТ по теме еще помогите
inventDim1 = queryRunSub.get(tableNum('Dim1')); как теперь получить таблицу именно InventDim которая Dim1 ? |
|
17.06.2015, 12:27 | #5 |
Участник
|
|
|
16.06.2015, 17:22 | #6 |
Участник
|
Цитата:
Хотя согласен с makbeth что global часто превращается в помойку. |
|