1 Средства разработки Компания Тренер E-mail. Section Heading 2 План занятий Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню.

Презентация:



Advertisements
Похожие презентации
Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Advertisements

Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 4500 к решению Совета депутатов города Новосибирска от
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Матемтааки ЕТ СТ 2 класс Шипилова Наталия Викторовна учитель начальных классов, ВКК Шипилова Наталия Викторовна учитель начальных классов, ВКК.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение, на примере шага вперед человекоподобного робота Ю.К.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
База данных (БД) – Совокупность определённым образом организованной информации на определённую тему (в рамках определённой предметной деятельности); Организованная.
Масштаб 1 : Приложение 1 к решению Совета депутатов города Новосибирска от
ОДНОМЕРНЫЕ МАССИВЫ. РАБОТА С ЭЛЕМЕНТАМИ СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ.
1. Определить последовательность проезда перекрестка

ЦИФРЫ ОДИН 11 ДВА 2 ТРИ 3 ЧЕТЫРЕ 4 ПЯТЬ 5 ШЕСТЬ 6.
Лекция 1 Раздел 1 Windows Phone Темы раздела 3 Windows Phone Устройство на платформе Windows Phone 4.
Основные возможности MS ACCESS. CУБД Access - Представляет из себя программное средство, при помощи которого можно создать многотабличную реляционную.
Работа учащегося 7Б класса Толгского Андрея. Каждое натуральное число, больше единицы, делится, по крайней мере, на два числа: на 1 и на само себя. Если.
1 До зеленых человечков: исследовательское тестирование приложений для мобильных Роман Твердохлебов, Санкт-Петербург.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Результаты сбора и обработки баз данных неработающего населения муниципальных общеобразовательных учреждений города Краснодара за период с 02 по 10 февраля.
Транксрипт:

1 Средства разработки Компания Тренер

Section Heading 2 План занятий Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 3 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 4 MorphX – интегрированная среда разработки Независимый словарь данных и объектов Единая база данных Единое приложение Единый исходный код Единый набор инструментов Несколько интерфейсов Windows Web WAP All In One

Section Heading 5 MorphX объединяет все этапы создания программного продукта Полный набор средств для создания приложений любого уровня сложности Дизайнер форм и отчетов Специализированный текстовый редактор Компилятор Отладчик Редактор контекстной справки

Section Heading 6 Основные объекты AOT Data Dictionary Macros Jobs Classes Queries Forms Reports Menus Menu Items Web

Section Heading 7 Создание нового приложения 1. Разработка структуры данных 3. Cоздание классов для обработки данных 2. Создание типов данных и таблиц в DataDictionary 4. Создание форм для диалога с пользователем 5. Создание отчетов для извлечения и анализа данных 6. Создание меню для организации доступа к новой функциональности

Section Heading 8 Средства ведения проектов Вся модификация в одном окне Удобный перенос изменений на другие версии Позволяют собрать вместе все объекты, реализующие определенную функциональность

Section Heading 9 Архитектура слоев USPUser Patch CUPCustomer Patch VAPVar Patch BUPBusiness Patch LOPLocal Patch DIPDistributor Patch GLPGlobal Patch SYPStandard Patch SYSStandard Application Стандартная функциональность GLSGlobal Solutions Слой интегрированных решений DISDistributor Solutions Требования законодательства страны LOSLocal Solutions Интегрированные решения страны BUSBusiness Solutions Вертикальные решения партнера VARVar Solutions Слой партнерских модификаций CUSCustomer Solutions Слой клиентских модификаций USRUser Solutions Пользовательские модификации

Section Heading 10 Исполнение программного кода 1 index file: axapd.aoi

Section Heading 11 Сравнение модификаций разных слоев

Section Heading 12 Экспорт объектов приложения Позволяет сохранить прикладные объекты репозитория во внешнем файле для использования их в других приложениях или в качестве резервной копии Возможен экспорт как отдельного или нескольких выделенных объектов из AOT, так и всех объектов, входящих в проект

Section Heading 13 Импорт объектов приложения Посредством импорта производится загрузка в систему ранее экспортированных объектов приложения Импорт объектов приложения производится в слой, установленный в конфигурационной утилите

Section Heading 14 Визуальное моделирование с MorphXplorer Создание моделей данных и связей между ними в стандарте UML Для построения моделей используются существующие объекты таблиц и классов репозитория Связи устанавливаются на основе данных таблиц перекрестных ссылок

Section Heading 15 Меточные файлы Вынесенный за приложение текстовый интерфейс Поддержка многоязыкового интерфейса Повторное использование меток Метки на английском языке, файл Person '%1' does not Group Default lead time or lead time in number of days Метки на русском языке, файл Сотрудник '%1' не Группировать Время упреждения в днях

Section Heading 16 Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Функциональные ключи Стандарты разработки Где мы сейчас

Section Heading 17 Объектно–ориентированный язык X++ Принципы инкапсуляции и наследования Легкий синтаксис Встроенный язык запросов (SQL) SQL Syntax C++ Syntax Java Syntax

Section Heading 18 Типы данных Скалярные типы данных Составные типы данных Расширенные типы данных

Section Heading 19 Скалярные типы данных boolean логический типtrue, false integer тип целых чисел-1000, 0, 1, 123 real действительные 0.0, date дата 1\1\ \12\2154 timeOfDay время часы:мин:сек str строка«MorphX» enum перечислениеEnum::Literal Перечислимый тип данных Enum создается в узле Base Enums репозитория прикладных объектов

Section Heading 20 Скалярные типы данных. Определение Определение скалярной переменной: тип_переменной имя_переменной {= значение}; Примеры: booleanbVar1, bVar2 = true; intiVar1, iVar2 = -123; realrVar1, rVar2 = 4.56; datedVar1 = 31\12\2002; timeOfDay tVar1= 0; strsVar1 = Declare string variable; NoYeseVar1= NoYes::Yes;

Section Heading 21 Составные типы данных. Массивы Массивы - Список элементов одного типа Динамические тип_массива имя_массива[] тип_массива имя_массива[, memory] Фиксированные тип_массива имя_массива[length] тип_массива имя_массива[length, memory] Примеры: int iArray1[], iArray2[100], iArray3[100, 20]; real rArray4[] = 0;

Section Heading 22 Составные типы данных. Контейнеры Контейнеры - Динамический список элементов базисного или составного типа Определение переменной типа контейнер container имя_контейнера = [значение 1, значение 2, …]; Примеры: container c1, c2[]; container c3 = [false, 16, 3.14, MorphX];

Section Heading 23 Функции для работы с контейнером container c; Объявление контейнера conins(c, n, value); Вставка нового элемента condel(c, n, num); Удаление элементов из контейнера conpoke(c, n, value); Замена существующего элемента conpeek(c, n); Извлечение значения элемента confind(с, value); Поиск последовательности элементов conlen(с); Число элементов контейнера с = connull(); Удаление из памяти, где n – индекс элемента, value – значение элемента, num – кол-во удаляемых позиций Составные типы данных. Контейнеры

Section Heading 24 Определение переменной типа класс: Имя_Класса имя_переменной_класса; Создание объекта класса: имя_переменной_класса = new Имя_Класса(); Примеры: LedgerVoucherledgerVoucher; ledgerVoucher = new LedgerVoucher(); Составные типы данных. Классы

Section Heading 25 Составные типы данных. Таблицы Определение переменной типа таблица: Имя_Таблицы имя_переменной_таблицы; Примеры: LedgerTableledgerTable; Commoncommon;

Section Heading 26 РТД создается в узле Extended Data Types репозитория прикладных элементов В основе РТД лежат скалярные типы данных и контейнер РТД имеет уникальное пользовательское наименование. Тем самым РТД реализует пользовательский тип данных MorphX РТД по умолчанию определяет формат отображения данных на формах и отчетах РТД можно наследовать. При этом потомок РТД наследует свойства родителя РТД. Объявление переменных РТД аналогично объявлению скалярных типов данных Расширенные типы данных

Section Heading 27 Операторы X++ по старшинству postfix[]. () expr++ expr- - unary++expr --expr -expr ~ ! creationnew multiplicative* / % additive+ - shift > relational = equality== != bitwise AND& bitwise XOR^ botwise OR| logical&& || conditional? : assignment= += -=

Section Heading 28 Синтаксис X++ Операторы ветвления if (expression) statement [else statement] switch (expression) {case expression : statement} expression ? statement1 : statement2 Циклы while (expression) statement do {statement} while (expression) for (initialization; expression; update) statement Исключения try {throw exception} … catch (expression) statement

Section Heading 29 Синтаксис предложения SELECT SelectStatement = select Parameters Parameters = [ [ FindOptions ] [ FieldList from ] ] TableVariable [IndexClause] [ Options ] [ Where Clause ] [ JoinClause ] FindOptions = reverse | firstfast | firstonly | forupdate | nofetch FieldList = Field {, Field } | * Field = Aggregate ( FieldIdentifier ) | FieldIdentifier Aggregate = sum | avg | minof | maxof | count Options = ( order by | group by ) FieldIdentifier [ Direction ] {, FieldIdentifier [ Direction ] } IndexCaluse = index Idx | index hint idx Direction = asc | desc WhereClause = where Expression JoinClause = [exists | not exists | outer ] join Parameters

Section Heading 30 Транзакции ttsbegin - начало транзакции ttscommit - конец успешной транзакции, все изменения сохранены в БД ttsabort - отмена транзакции, все (throw) изменения в пределах транзакции отменены Допускаются вложенные транзакции

Section Heading 31 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Функциональные ключи Стандарты разработки

Section Heading 32 Макросы #DEFINEОбъявление макро константы #UNDEFОтмена объявления макро константы #MACROLIBЗагрузка макробиблиотеки #GLOBALMACROОпределение глобального макроопределения #LOCALMACROОпределение локального макроопределения #ENDMACROИдентифицирует окончание макроопределения #IF Условное подключение макроопределения #IF.EMPTY() #IFNOT.EMPTY() #ENDIFОкончание макроопределения #IF #LINENUMBERВозвращает текущий номер строки. Используется для отладки.

Section Heading 33 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 34 Таблицы (Tables) Таблицы могут быть временными и постоянными Постоянные таблицы имеют отображение на сервере БД Временные таблицы обрабатывает Axapta. Данные в этих таблицах не сохраняются после работы С точки зрения программиста работа с временными и постоянными таблицами практически не различается Все таблицы наследованы от системной таблицы Common

Section Heading 35 Поля таблиц (Tables/Fields) Поля таблицы могут иметь базовый тип: String Integer Real Date Time Enum Container

Section Heading 36 Группы полей на таблицах Поля в таблицах объединяются в группы Группы полей автоматически обрабатываются генератором форм При добавлении нового поля в группу во всех элементах системы, использующих эту группу, добавляется новое поле

Section Heading 37 Индексы на таблицах Индексы определяются на некотором наборе полей таблицы – ключе Свойство AllowDuplicates показывает, может ли таблица иметь несколько записей с одинаковым ключом Индекс может быть неактивен Доступность индекса также зависит от того, доступен ли связанный с ним функциональный ключ

Section Heading 38 Отношения на таблицах Отношения показывают, каким образом поля данной таблицы связаны с полями других таблиц Отношения между полями могут быть заданы как на самой таблице, так и на расширенном типе данных поля Отношения на таблице могут быть трех типов: Normal Field fixed Related field fixed LedgerTrans LedgerTable 1 *

Section Heading 39 Действия при удалении None- нет действия Cascade- каскадное удаление строк в связанных таблицах Restricted- удаление лишь при отсутствии связанных строк Cascade + Restricted

Section Heading 40 Методы на таблицах При работе с табличными данными система генерирует ряд событий. Для каждого события определен собственный метод Примерами таких методов служат Update(), Insert(), Delete() Эти и другие методы на таблицах могут быть перекрыты программистом Помимо событийных методов можно создавать собственные методы Такие методы могут быть динамическими и статическими

Section Heading 41 Maps Если для нескольких таблиц предполагается однотипная обработка, то эти таблицы целесообразно объединить в Map Table 1 Table 2 Table 3 Map

Section Heading 42 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Функциональные ключи Стандарты разработки

Section Heading 43 Формы (Forms) Формы имеют три составляющие: Методы Системные (classDeclaration, init, и пр) Пользовательские Источники данных Дизайн Все составляющие задаются статически при построении формы. Но в процессе работы формы программным образом можно изменить как дизайн, так и источники данных

Section Heading 44 Источники данных на формах Источники данных предоставляют данные для формы (заполнение) Каждый источник данных является запросом, состоящим из одной таблицы. Это позволяет пользователю использовать фильтры и сортировки Источники данных можно соединять (join)

Section Heading 45 Дизайн форм Дизайн на форме определяет ее внешний вид и поведение Дизайн является древовидной структурой, узлами и листьями которой являются control-элементы Примерами таких элементов служат закладки, кнопки, элементы ввода текстовой строки, числа, даты и прочее

Section Heading 46 Методы на элементах форм Каждый элемент формы имеет специальный узел Methods, где содержится программный код Каждый элемент формы (источник данных, control и даже сама форма) имеет ряд предопределенных методов, соответствующих событиям внешнего мира щелчок мыши dragndrop …

Section Heading 47 CloseOK CanClose Методы на элементах форм При работе с формой система генерирует ряд событий. Для каждого события определен собственный системный метод, который может быть перекрыт разработчиком Close CloseCancel CanClose Close Нажали кнопку OKкнопку Отменить

Section Heading 48 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 49 Запросы (Queries) Запросы являются удобной альтернативой использования оператора while select языка X++ Запросы предоставляют пользователю интерфейс для определения ограничения выборки и сортировки данных Запрос не выводит данные на устройство вывода. Этим занимается тот элемент системы, который использует данный запрос (запросы в основном используются в классах и отчетах)

Section Heading 50 Структура запросов Запросы состоят из: Источников данных (таблицы). Источники данных могут быть связаны между собой Методов. Существуют методы для стандартных событий, также можно создавать собственные методы

Section Heading 51 Виды запросов Запросы могут быть: Статические. В этом случае структура запроса хранится в AOT Динамические. Структура запроса создается программным образом всякий раз, когда работает данный код

Section Heading 52 Работа с запросами Для запуска и построения запросов существуют специальные системные классы Классы Query и QueryRun служат для инициализации запроса и запуска его на исполнение Классы QueryBuild* позволяют создать структуру запроса перед его исполнением

Section Heading 53 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Функциональные ключи Стандарты разработки

Section Heading 54 Классы (Classes) Классы в Axapta выполняют основную часть работы по обработке данных и обеспечению функций

Section Heading 55 Модификаторы места выполнения Статические методы классов в Axapta имеют специальный дескриптор, обозначающий место исполнения программного кода Server Client Класс, как элемент AOT, имеет свойство RunOn, принимающее такие же значения (значение Called from является значением по умолчанию)

Section Heading 56 Наследование классов Для наследования классов применяется специальный дескриптор extends RunBaseBatch RRepLedgerPosting

Section Heading 57 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Функциональные ключи Стандарты разработки

Section Heading 58 Пункты меню (Menu Items) Пункты меню являются листьями меню и содержат ссылку на элемент системы (форму, отчет, класс) Пункты меню делятся на три категории: Display. Ссылки на формы Output. Ссылки на отчеты Action. Ссылки на классы Пункты меню связаны с функциональными ключами

Section Heading 59 Меню (Menus) Меню в системе является деревом, состоящим из узлов (подменю) и листьев (пункты меню, ссылки на меню)

Section Heading 60 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 61 Средства разработки отчетов Мастера создания отчетов Среда MorphX Внешние приложения

Section Heading 62 Быстрые средства создания отчетов Автоотчет Позволяет мгновенно получить отчет интересующих Вас справочников Мастер создания отчетов Пользователь имеет возможность создавать отчеты не прибегая к программированию

Section Heading 63 Отчеты среды MorphX Автоматический дизайн Дизайн создаваемый во время работы приложения Сгенерированный дизайн Дизайн сформированный средствами разработки

Section Heading 64 Сгенерированный дизайн PrologEpilog Section Group Page Header Page Footer Header Footer Body

Section Heading 65 Спецификация автоматического дизайна Body Page footer Page header Report template PrologEpilog Page footer Page header Report Design PrologEpilog Body Page footer Page header

Section Heading 66 Методы на отчетах Init Время Run Fetch Query prompt PromptSend Print Execute section Основные методы на отчетах

Section Heading 67 Метод: Init Инициализирует отчет Init Время Run Fetch Query prompt PromptSend Print Execute- section

Section Heading 68 Метод: Run Производит запуск отчета Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 69 Метод: Fetch Выполняет запрос Выдает полученные записи в отчет При прерывании отчета выдает ошибку Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 70 Метод: Query Prompt Открывает диалог запроса Выполнение отчета прерывается, если Query Prompt возвращает false Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 71 Метод: Prompt Открывает диалог печати Выполнение отчета прерывается, если Prompt возвращает false Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 72 Метод: Send Выдает выбранные записи в отчет Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 73 Метод: Execute Section Каждая секция имеет метод Execute Section Execute Section записывает секцию и ее содержание в отчет Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 74 Метод: Print Выводит сгенерированный отчет в диалог печати Init Время Run Fetch Query prompt PromptSend Print Execute section

Section Heading 75 Отчеты внешних приложений Работа с COM-объектами Документы MS Word и MS Excel

Section Heading 76 Работа с COM-объектами Технология COM позволяет Microsoft Axapta использовать функциональность внешних приложений: интеграция с любыми Windows- приложениями, поддерживающими COM повторное использование бизнес- логики встраивание ActiveX-компонентов в формы Axapta

Section Heading 77 О технологии COM и DCOM COM (Component Object Model) – это спецификация Microsoft на взаимозаменяемые компоненты, выросшая из стандарта связывания объектов OLE. Объект в стандарте COM можно разработать на любом языке программирования, единственное условие – реализация определенного набора неизменных интерфейсов DCOM – стандарт организации распределенных вычислений путем обращения к COM-объектам, находящимся на удаленных ПК

Section Heading 78 Microsoft Axapta как COM-клиент Набор классов для взаимодействия с COM объектами COM COMDispFunction COMEnum2Object COMEnum2Variant COMError Элементы управления ActiveX в формах Мастер оболочек для COM – объектов

Section Heading 79 Microsoft Axapta как COM-сервер Axapta Business Connector Инкапсулирует бизнес-логику, предоставляя внешним приложениям доступ к объектам системы

Section Heading 80 Документы MS Office Выдача отчетов через MS Word ComWordDocument_RU MS Excel ComExcelDocument_RU

Section Heading 81 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 82 Управление безопасностью системы Конфигурационные ключи (configuration keys) Объединяют группу программных элементов системы, в сумме предоставляющих некоторую функциональность Включение/выключение функциональности Контролируются лицензионными кодами Ключи контроля доступа (security keys) Инструмент управления доступом к интерфейсу на уровне групп пользователей

Section Heading 83 Конфигурационные ключи Конфигурационный ключ отвечает за одну или более функциональных областей приложения Отключив конфигурационный ключ, Вы тем самым отключаете соответствующую функциональность системы Конфигурационные ключи образуют иерархическую древовидную структуру Таблицы Меню Пункты меню Элементы форм Поля таблиц Конфигурационный ключ Расширенные типы данных

Section Heading 84 Ключи контроля доступа Наследуют Конфигурационные ключи Управляют более детализированным конфигурированием системы Ключи управления доступом связаны с группами пользователей Axapta

Section Heading 85 Управление доступом Иерархия Ключи управления доступом Домены Axapta Права групп пользователей Доступ на уровне записи Проверка пароля Регистрация в базе данных Доступ к таблицам Пользователь Axapta Группа пользователей Домен Ключ упр. доступом Конфигурационный ключ Лицензионный код

Section Heading 86 Где мы сейчас Среда разработки MorphX Язык X++ Макросы Таблицы Формы Запросы Классы Меню и пункты меню Отчеты Конфигурационные ключи Стандарты разработки

Section Heading 87 Стандарты именования Для именования объектов в Аксапта следует придерживаться следующих правил: Мнемонические (само объясняющие) наименования на английском языке Правила разделения Российской и международной разработки - любые российские расширения и дополнения к стандартной функциональности начинаются на префикс R (постфикс RU – устаревший вариант) Правила наименований клиентских версий – клиентский код префикса или постфикса

Section Heading 88 Правила заглавных и строчных букв и цифр Наименование должно начинаться с буквы, далее можно использовать цифры Все слова в названии выделяются заглавной буквой Со строчной буквы начинаются наименования методов, функций, ключевых слов и переменных С заглавной буквы начинаются наименования таблиц, полей, индексов, отношений, классов, форм, источников данных, расширенных и перечислимых типов, макросов, запросов и отчетов С символа «_» начинаются параметры методов

Section Heading 89 Оформление кода Использование лаконичных комментариев Использование отступов и пробелов Величина отступа – 4 пробела или 1 Tab Пробелы используются При разделении всех ключевых слов После запятой при перечислении функций и методов

Section Heading 90 Вопросы... и ответы