Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 4.21 KB

README.md

File metadata and controls

60 lines (42 loc) · 4.21 KB

SysEnumerators

SysEnumerators - это набор классов на языке X++, который позволяет разработчику единообразно "пробежать" по:

  • интервалу чисел;
  • интервалу дат;
  • элементам контейнера;
  • элементам коллекций Аксапты (array, set, map, list, struct);
  • элементам enum;
  • элементам коллекций из .Net-пространства System.Collections (как с генериками, так и без них);
  • промаркированным на форме записям;
  • записям QueryRun, Query, select Table where...;
  • записям из коллекций RecordSortedList, RecordLinkList;
  • элементам TreeNode;
  • элементам коллекций Dict-классов;
  • XML-элементам;
  • файлам (CommaIo, AsciiIo, BinaryIo, TextIo);
  • строкам, словам и regexp-токенам из TextBuffer;
  • и прочим системным коллекциям Аксапты.

Подробнее о SysEnumerators для Microsoft Dynamics AX 2009 можно почитать в каталоге ax2009.

Пример использования SysEnumerators

SysEnumeratorExample03_Container

container c = ['a', 'b', 1, 'd', systemdateget(), 'f'];
SysEnumerator se = SysEnumerator::newFromContainer(c);

while( se.moveNext() )
{
    info(strfmt("%1", se.current()));
}

Больше примеров с описанием и скриншотами результатов можно найти в каталоге Examples.

Благодарности

Спасибо Ивану Захарову и Роману Долгополову (RDOL, db), на проекте которых я убедился что энумераторы реально снижают время разработки, а вопросы быстродействия энумераторов легко решаются после профилирования кода и выявления узких мест.

Спасибо Дмитрию Толстову (damn) за вклад в данный проект.

Disclaimer

  • Названия классов и методов, иерархия и порядок вызовов в наборе классов будут по возможности сохраняться, но это не гарантируется - в будущих версиях SysEnumerators все может измениться.
  • Код в xpp-файлах конвертирован из xpo только для удобства использования человеком. Оригиналом является код в xpo-проектах, отличия между xpo и xpp всегда трактуются в пользу текста из xpo-проектов.
  • Проект выложен "как есть" под лицензией MIT: вы можете использовать данный код как угодно безо всяких отчислений, автор не дает никаких гарантий и не несет ответственности за возможный эффект от использования кода на проектах.

ChangeLog

Помощь проекту

Буду признателен за ваши замечания, предложения, советы в разделе Issues и Pull requests по проекту, а также в виде письма на адрес [email protected]

Мазуркин Сергей (mazzy)