Table Of ContentSteen Andreasen
MORPHX IT
Введение в язык программирования в Axapta X++
и среду разработки MorphX
MORPHX IT
Введение в язык программирования в Axapta X++
и среду разработки MorphX
Copyright © 2007 Steen Andreasen, www.steenandreasen.com
Редактор: Steen Andreasen
Вып. редактор: Steen Andreasen
Обложка: Poul Cappelen og Ulla Bjulver
Фотограф: Ulla Bjulver
Перевод: Михаил Ржевский и Иван Кашперук
Denmark 2007
ISBN: 87-991161-4-6
1. edition
Все права зарегистрированы. Автор предоставил код только для
использования читателями данного издания. Вы обладаете правом
ограниченного использования кода из этой публикации только с ссылкой на
автора, код не подлежит распространению, размещению online, в
интернете, продаже или коммерческой эксплуатации. Никакая часть из этой
публикации не может быть использована или переиздана любым способом
без предварительного письменного разрешения правообладателя за
исключением кратких обзоров в статьях или обзорах. Любое другое
использование без письменного разрешения запрещено, согласно Датскому
закону об авторском праве.
В случае обнаружения любых
погрешностей, пожалуйста, сообщите
автору по следующему адресу
электронной почты:
[email protected]
Торговые марки
Все термины, упомянутые в этой книге, являются
торговыми марками и соответственно
капитализированы. steenandreasen.com не несет
ответственности за эту информацию. Использование
термина в этой книге не должно расцениваться, как
воздействие на законность любой торговой марки.
Обратите внимание
Не пытайтесь использовать код, приведенный в
качестве примеров, при тестировании на рабочих
станциях. Информация в этой книге приведена только
в ознакомительных целях. Автор и сайт
steenandreasen.com не несут никакой ответственности
за потерю данных или любой другой вред,,
полученный в результате использования информации
из этой книги.
“Спасибо моей дорогой жене Улле (Ulla), и моему сыну Оливеру (Oliver),
кто создавал со мной и поддерживал меня во время написания этой
книги.”
S. A.
Благодарности
Выражаю благодарность всем, кто прямо или
косвенно внесли вклад в содержание этой книги,
внося вдохновляющие комментарии и предложения.
Отдельная благодарность Ларису Холму (Lars
Holm) за его вклад в Приложение Свойств. Полю Капелену
(Poul Cappelen) и Улле Бюлвер (Ulla Bjulver) www.photo-
art.dk за дизайн. А так же Jens Thrane, Christian Beck, Erik
Pedersen, Lars Kjærsgaard, Jim Long, Hanne Paarup, Eric
Fisher www.unitederp.com, Craig Brown
www.edenbrook.co.uk, Daryl Spires www.avionsystems.co.uk,
кто читал, редактировал рукопись и более всего поощрял
меня к написанию этой книги.
Рецензия на это издание
"Стин Андресен (Steen Andreasen) - это превосходный
программист по Axapta и технический специалист, а так же
терпеливый преподаватель. В этой книге Стин Андресен
тщательно разработал для Вас, увлекательное путешествие в
мир разработки Axapta.
Я настоятельно рекомендую эту книгу, как должную быть у
разработчика и опытного и новичка, который хочет сделать
карьеру в Axapta Programming.
Выражаю вам большую благодарность, Стин Андресен, за
ваши усилия по предложению такой хорошо
структурированной информации для открытой публикации."
С теплыми пожеланиями,
Harish Mohanbabu
Microsoft Dynamics Ax - MVP
http://www.harishm.com/
От переводчиков
Много лет моей сознательной жизни прошли в изучении
продуктов Microsoft. Иногда вспоминаются времена первых
операционных систем Windows 3.1, Windows’ 95. Разработка в
среде СУБД SQL прошла наиболее плотно для меня. Теперь
разработка Axapta.
Счастливый случай свел меня со Стином. Я сразу же, не
раздумывая сел за перевод книги. Надеюсь, что мой перевод
поможет начинающим разработчикам в освоении продукта.
Уверен, что вам будет интересно окунуться в этот мир под
названием Axapta. Там много интересного и неизведанного.
Теперь правда это уже называется Dynamics Ax.
Если у вас возникнет необходимость в контакте со мной, то
прошу [email protected]
Так же можете ознакомиться с моими публикациями на
http://miker-developer.blogspot.com
Ржевский Михаил
Я занимаюсь разработкой в Dynamics AX чуть более трех лет.
За это время очень часто сталкивался с ситуацией, когда
молодые разработчики отказываются от работы с этой ERP
системой по причине отсутствия хорошей документации по
разработке в среде MorphX. Поэтому такие книги, как эта, не
только помогают самим разработчикам, но и повышают
популярность продуктов Dynamics в целом, за что я особенно
благодарен автору.
Посетив мой блог по адресу http://kashperuk.blogspot.com, Вы
найдете полезные инструменты, советы и статьи по разработке
в Dynamics AX.
Кашперук Иван
MORPHX IT
Содержание
ПРЕДИСЛОВИЕ ........................................................................................... 15
ВВЕДЕНИЕ ................................................................................................... 17
Почему эта книга важна .............................................................................. 18
Структура книги ............................................................................................ 18
1 ВВЕДЕНИЕ В MORPHX ................................................................... 19
1.1 Репозитарий Прикладных Объектов (AOT) .......................................... 19
Слои .............................................................................................................. 20
Свойства ....................................................................................................... 23
Add-ins ........................................................................................................... 24
Редактор ....................................................................................................... 24
Отладчик ....................................................................................................... 27
Окно сообщения компилятора .................................................................... 29
Импорт и Экспорт ........................................................................................ 30
Сравнение объектов .................................................................................... 32
Обновление кода ......................................................................................... 33
Поиск ............................................................................................................. 34
Infolog ............................................................................................................ 35
Мусорная корзина ........................................................................................ 37
Настройки пользователя ............................................................................. 37
1.2 Проект .......................................................................................................... 41
Изменения в проекте ................................................................................... 41
Типы проектов .............................................................................................. 42
1.3 Резюме ......................................................................................................... 42
2 ВВЕДЕНИЕ В X++ ............................................................................. 43
2.1 Переменные ................................................................................................ 44
2.2 Операторы .................................................................................................. 48
Операторы присваивания ........................................................................... 48
Операторы отношения ................................................................................ 49
Бинарные операторы .................................................................................. 50
2.3 Условные операторы и операторы цикла ............................................ 51
Циклы ............................................................................................................ 51
Условные операторы ................................................................................... 53
Исключительные ситуации ......................................................................... 56
Вспомогательные операторы ..................................................................... 58
2.4 Запросы к базе данных ............................................................................ 59
2.5 Функции ....................................................................................................... 66
© 2007 Steen Andreasen 7
MORPHX IT
2.6 Резюме ......................................................................................................... 67
3 СЛОВАРЬ ДАННЫХ [DATA DICTIONARY] .................................... 69
3.1 Таблицы ....................................................................................................... 69
Компания ...................................................................................................... 70
Прикладные таблицы .................................................................................. 71
Системные таблицы .................................................................................... 77
Поля .............................................................................................................. 78
Группы полей ............................................................................................... 81
Индексы ........................................................................................................ 83
Связи [Отношения] ...................................................................................... 84
Действия при удалении [Delete Actions] .................................................... 86
Методы ......................................................................................................... 88
3.2 Карты соответствия (Maps) ..................................................................... 94
3.3 Представления ........................................................................................... 97
3.4 Расширенные типы данных .................................................................... 98
Расширенный тип данных из нескольких элементов ............................. 101
3.5 Перечислимые типы ............................................................................... 102
3.6 Функциональные ключи......................................................................... 104
3.7 Лицензионные коды................................................................................ 105
3.8 Конфигурационные ключи .................................................................... 105
3.9 Ключи контроля доступа ........................................................................ 107
3.10 Табличные коллекции ............................................................................ 109
3.11 Расширенные возможности использования таблиц ........................ 110
Использование системных классов ......................................................... 110
Внешние базы данных ............................................................................... 111
3.12 Резюме ....................................................................................................... 113
4 МАКРОСЫ ....................................................................................... 115
4.1 Команды макроса .................................................................................... 115
4.2 Определение констант ............................................................................ 116
4.3 Создание макроса.................................................................................... 117
4.4 Резюме ....................................................................................................... 119
5 КЛАССЫ .......................................................................................... 121
8 © 2007 Steen Andreasen
MORPHX IT
5.1 Основы класса ......................................................................................... 121
Методы ....................................................................................................... 122
Компоненты класса .................................................................................... 124
Модификаторы ........................................................................................... 127
Передача значений .................................................................................... 133
5.2 AOS ............................................................................................................. 137
Установка места выполнения ................................................................... 138
Объекты для оптимизации ........................................................................ 139
5.3 Структура класса Runbase ..................................................................... 139
Использование структуры класса Runbase ............................................. 140
Диалог ......................................................................................................... 144
5.4 Фундаментальные классы .................................................................... 149
ClassFactory ................................................................................................ 149
Global .......................................................................................................... 150
Info ............................................................................................................... 150
5.5 Системные классы .................................................................................. 150
Object .......................................................................................................... 151
Изменения во время исполнения ............................................................. 151
Args ............................................................................................................. 151
Базовые классы ......................................................................................... 152
Оптимизация операции записи................................................................. 153
Обработка файлов..................................................................................... 153
5.6 Специальное использование классов ................................................ 154
Использование COM ................................................................................. 154
X++ Compiler ............................................................................................... 155
5.7 Резюме ....................................................................................................... 157
6 ФОРМЫ ........................................................................................... 159
6.1 Создание форм ........................................................................................ 159
6.2 Запрос формы .......................................................................................... 162
Объединение источников данных ............................................................ 162
Установка доступа ..................................................................................... 166
6.3 Дизайн ........................................................................................................ 168
Создание дизайна ...................................................................................... 168
Поля в дизайне .......................................................................................... 171
Модификаторы Display и Edit .................................................................... 177
6.4 Методы на форме .................................................................................... 180
Методы формы .......................................................................................... 180
Методы источника данных формы ........................................................... 184
Методы полей источника данных ............................................................. 188
Методы полей формы ............................................................................... 190
Последовательность выполнения методов формы ............................... 190
Переопределение запроса формы .......................................................... 193
Изменение источника данных из X++ ...................................................... 195
© 2007 Steen Andreasen 9
MORPHX IT
Построение форм выпадающих списков ................................................. 198
Форма диалога ........................................................................................... 200
6.5 Специальные формы ............................................................................. 202
Вызов определенных методов формы .................................................... 202
Переопределение методов ....................................................................... 203
Общие изменения формы ......................................................................... 206
Цвета ........................................................................................................... 208
6.6 Резюме ....................................................................................................... 209
7 ОТЧЕТЫ........................................................................................... 211
7.1 Мастер отчета ........................................................................................... 211
7.2 Создание отчета ....................................................................................... 211
7.3 Запрос отчета ........................................................................................... 214
7.4 Шаблоны ................................................................................................... 217
Шаблон Отчета .......................................................................................... 217
Шаблон секции ........................................................................................... 220
7.5 Дизайн ........................................................................................................ 220
Создание дизайна ...................................................................................... 220
Авто дизайн ................................................................................................ 223
Генерируемый дизайн ............................................................................... 226
Поля в дизайне .......................................................................................... 226
7.6 Методы Отчета ......................................................................................... 228
Структура RunBase отчета....................................................................... 231
Динамические отчеты ................................................................................ 236
Последовательность методов отчета ...................................................... 238
7.7 Специальные Отчеты ............................................................................. 242
Выполнение отчета из X++ ....................................................................... 242
Использование временных таблиц .......................................................... 243
Подкраска рядов ........................................................................................ 245
Печать отчета, используя Microsoft Word ................................................ 247
7.8 Резюме ....................................................................................................... 250
8 ЗАПРОСЫ ....................................................................................... 251
8.1 Создание запросов .................................................................................. 252
Запрос AOT ................................................................................................ 252
X++ Запрос ................................................................................................. 259
8.2 Запросы в формах и отчетах ................................................................ 261
8.3 Резюме ....................................................................................................... 262
10 © 2007 Steen Andreasen