|
OpenEdge ABL и OpenEdge Editor
Подключение базы данных к проекту
Прежде, чем начать программировать ABL-код для доступа к базе данных, необходимо сначала определить набор свойств, позволяющих проекту подсоединяться к ней. Для создания соединения проекта myFirstProject с базой autoEdge выполним следующее.
Убедитесь, что открыт редактор OpenEdge Editor Perspective.
Правой кнопкой мыши кликните на пункте myFirstProject в обозревателе Resources и выберите опцию Properties

С левой стороны окна Properties выберите пункт OpenEdge, вкладку Connection. Нажмите кнопку Add.

В окне New Connection в поле Name наберите "autoEdge", в поле Connection - "-db autoedge -H localhost -S 10001", нажмите кнопку Test Connection

В случае успешного соединения должно появиться диалоговое окно Connection: OK. Нажмите кнопку OK.

Теперь в окне New Connection для завершения создания соединения кликните OK.

В окне Properties появилось созданное новое соединение, отобразившееся в браузере. Нажмите OK.

Выберите вкладку Databases следующую за вкладкой Outline. Данный обозреватель в режиме чтения отображает схему базы данных. Разверните пункты AUTOEDGE -> Customer. Как вы и убедились, эту вкладку можно использовать для быстрого просмотра таблиц и их полей, определенных в базе данных.

Использование вспомогательных функций кода OpenEdge EditorИсследование особенностей редактора OpenEdge Editor
В данном разделе вы научитесь составлять ABL код для доступа и вывода на экран информации, содержащейся в базе данных, на примере базы autoEdge, используя для редактирования вспомогательные возможности OpenEdge Editor Architect. Код будет находить и выводить на экран список имен покупателей и их дней рождений из базы autoEdge. Создание нового файла с использованием File Template
File Template обеспечивает быстрый и легкий путь разработки кода на основе шаблона. Используем File Template для написания процедуры, сделав следующее.
В Resources View кликните по myFirstProject.
Выберите через стрелку возле кнопки New опцию Other.

В окне Wizards разверните пункты OpenEdge -> Editor и выберите Custom Procedure File. Нажмите кнопку Next.

В открывшемся окне измените значение поля File Name на "myCustom.p" и дайте описание в поле Description, как показано ниже. Нажмите кнопку Finish.

В OpenEdge Editor открылась программа myCustom.p. Обратите внимание - как в новом программном файле была размещена информация, которой заполнялось окно мастера Wizard .

Кликните дважды по названию программы myCustom.p в редакторе. Редактор развернется на весь экран и займет всю площадь видимой области. Чем больше виден текст кода, тем легче становится процесс его написания.

Использование Section Creators для создания фрагментов кода
Section Creators позволяет быстро создавать стандартные фрагменты кода, такие как функциональный или процедурный блок. В файле myCustom.p организуем функцию, которая бы объединяла две строки в одну с пробелом между ними. Данная функция будет использоваться при получении ФИО работников, составленного из полей First Name и Last Name.
Правой кнопкой мыши щелкните в поле окна редактора и в появившемся меню выберите Source -> Add Function option.

В окне мастера Function Definition наберите "concatStrings" в поле Name. Оставив остальные значения полей по умолчанию, нажмите OK.

Созданный новый фрагмент кода функции приведен ниже.

Просмотрите, как Section Creator использовал информацию из мастера Function Definition при автоматической генерации кода. Обратите внимание, созданы поименованные раздел объявления функции Function Prototype и, содержащий текущий код, Function Implementation, которые располагаются вокруг Main Block.
Добавьте следующий код для функции как показано ниже.

Использование Code Templates для написания кода
Code Templates предусматривают макросы для быстрого добавления в программный код общих синтаксических выражений. Используем их для определения переменных в программе myCustom.p, выполнив следующее.
В разделе Definitions кода программы myCustom.p наберем "dvch".

Нажмите клавишу пробела. Для вас будет сформирован синтаксис, определяющий переменную типа character. Введите имя переменной myChar и добавьте после Label и Format приведенный ниже код.

Установка Auto-Complete Preferences
Авто-заполнение Auto-Complete экономит время разработки программы при завершении синтаксических выражений, обращениях к базе и взятии в скобки. Опция авто-заполнения Auto-Completion может быть установлена через Auto-Complete Preferences в Architect. Привилегия авто-заполнения доступна по-умолчанию для расширения таблиц баз данных и имен полей. Однако не существует привилегии для расширения зарезервированных слов. Для обращения к Preference выполните следующее.
Откройте Window -> Preferences Main Menu option, выберите пункты OpenEgde -> Editor -> Formatting. Проверьте наличие выбора опции Expand keywords, нажмите копку OK.

Использование Auto-Complete
В разделе Main Blok программного файла myCustom.p необходимо добавить код, выводящий на экран все имена покупателей и дни рождения из полей Customer Name и Dates of Birth. Ускорим этот процесс, используя некоторые свойства Auto-Complete и Auto-Format.
В Main Block наберем "for each cus". Обратите внимание, каким шрифтом было выведено зарезервированное слово и, как изменился цвет "cus" после набора последнего символа "s". Architect распознал этот частичный код, как соответствующий имени базы данных.

Нажмите клавишу пробела для автоматической вставки имени базы "customer". Завершите код выражением "no-lock" и нажмите Enter или клавишу возврата.

Напечатайте "myChar = concatStrings(". Обратите внимание, Architect самостоятельно закрыл (в данном случае простые) скобки.

Напишите "cus.customerf<space>, cus.customerl<space>". Убедитесь, что после "f" и "l" поставлены пробелы и запятая между двумя выводимыми полями. Architect расширит текст для имени полей как показано ниже. Поставьте точку в конце выражения и нажмите клавишу Enter.

Наберите "disp" и нажмите пробел. Architect завершит написание зарезервированного слова, в соответствии с принятым синтаксисом.

Использование всплывающего списка Pop-up Pick List и поддержки Syntax Help
Pick Lists - это всплывающий список синтаксических выражений, являющихся возможными продолжениями частично набранного кода. Pick List реагирует как на зарезервированные слова, так и на имена полей базы данных, причем вместе с ним также выводится на экран Pop-up Syntax Help, описывающая предлагаемые варианты выбора. Использование Auto-Complete
Для завершения вывода на экран имен покупателей и дней рождения выполним следующее.
В редакторе установим курсор после оператора Display и через пробел добавим "myChar" и "cus." (Architect самостоятельно допишет название имени таблицы "Customer"). Подождите немного, пока появится список выбора по базе данных Database Schema Pick List (его вызов возможен также нажатием клавиш CTRL + SPACE). Найдите в нем поле Customer.CustomerBirthdate, нажмите клавишу Enter.

Поставьте точку по завершении строки и нажмите Enter.

Установите курсор в начало следующей строки. Наберите "en" и нажмите Ctrl + Space чтобы появился список выбора зарезервированных выражений Keyword Pick List. Найдите в нем END и нажмите Enter, чтобы применить выражение. Завершите строку точкой.

Синтаксическая проверка, сохранение и запуск программы
Для завершения и проверки программы выполним следующее.
Щелкните правой кнопкой мыши в поле редактора и, в появившемся меню, выберите опцию проверки ошибок Check Syntax, чтобы убедиться в их отсутствии.

В диалоговом окне проверки синтаксиса Syntax Check нажмите OK.

Сохраните и запустите файл. Полученный результат выглядит примерно следующим образом.

Кликнув дважды в редакторе по метке с названием выполняемой программы, вернем ему первоначальный стандартный размер.
|