Задание 2. Создание включаемых файлов для временных таблиц набора данных
В этом задании необходимо создать проект с именем CommonInfrastructure, который будет содержать код, используемый как клиентской, так и серверной частями приложения. Создаваемый набор данных для бизнес-сущности CustomerBE должен использовать данные о клиентах, заказах и элементах заказов, которые будут поступать из базы данных Sports2000. В этом задании вы создадите включаемые файлы и определите временные таблицы, подобные таблицам из базы данных Sports2000.
В рабочей области Developer Studio создайте новый проект с именем CommonInfrastructure:
- Выберите в верхнем меню File -> New -> OpenEdge Project.
- Введите CommonInfrastructure в качестве имени проекта. Не выбирайте категорию проекта. По умолчанию будет создан проект из категории Basic OpenEdge project.
- Щёлкните по кнопке Next.
- Выберите Use separate source and r-code directories.
- Замените rcode на bin.
- Щёлкните по кнопке Finish.
Создайте папку Include в папке src проекта CommonInfrastructure:
- Щёлкните правой кнопкой мыши по папке CommonInfrastructure/src.
- В открывшемся меню выберите пункт New -> Folder.
- Введите Include в качестве имени новой папки.
- Щёлкните по кнопке Finish.
Создайте включаемый файл с именем ttCustomer.i в папке Include:
- Щёлкните правой кнопкой мыши по папке Include.
- В открывшемся меню выберите пункт New -> ABL Include.
- Введите ttCustomer.i в качестве имени файла.
- Щёлкните по кнопке Finish.
Добавьте в файл код для определения временной таблицы ttCustomer, поля которой должны соответствовать полям таблицы Customer из базы данных Sports2000. В определении таблицы укажите параметр {&ClassAccess}, а также NO-UNDO и before-таблицу с именем ttCustomerBefore.
Используйте следующий код для вставки в файл:
define {&ClassAccess} temp-table ttCustomer no-undo before-table ttCustomerBefore field Custnum as integer field Country as character field name as character field Address as character field Address2 as character field City as character field State as character field PostalCode as character field Contact as character field Phone as character field SalesRep as character field CreditLimit as decimal field Balance as decimal field Terms as character field Discount as integer field Comments as character field Fax as character field EmailAddress as character index Comments is word-index Comments index CountryPost Country PostalCode index CustNum is unique primary Custnum index name Name index SalesRep SalesRep.
Сохраните изменение в файле и убедитесь в отсутствии ошибок компиляции.
Аналогичным путём создайте включаемый файл ttOrder.i и добавьте в него определение временной таблицы ttOrder, поля которой должны соответствовать полям таблицы Order из базы данных Sports2000. В определении таблицы укажите параметр {&ClassAccess}, а также NO-UNDO и before-таблицу с именем ttOrderBefore.
Используйте следующий код для вставки в файл:
define {&ClassAccess} temp-table ttOrder no-undo before-table ttOrderBefore field Ordernum as integer field CustNum as integer field OrderDate as date field ShipDate as date field PromiseDate as date field Carrier as character field Instructions as character field PO as character field Terms as character field SalesRep as character field BillToID as integer field ShipToId as integer field OrderStatus as character field WarehouseNum as integer field Creditcard as character index CustOrder is unique CustNum Ordernum index OrderDate OrderDate index OrderNum is unique primary Ordernum index OrderStatus OrderStatus index SalesRep SalesRep.
Сохраните изменение в файле и убедитесь в отсутствии ошибок компиляции.
Создайте третий включаемый файл ttOrderLine.i и добавьте в него определение временной таблицы ttOrderLine, поля которой должны соответствовать полям таблицы OrderLine из базы данных Sports2000. В определении таблицы укажите параметр {&ClassAccess}, а также NO-UNDO и before-таблицу с именем ttOrderLineBefore.
Используйте следующий код для вставки в файл:
define {&ClassAccess} temp-table ttOrderLine no-undo before-table ttOrderLineBefore field Ordernum as integer field Linenum as integer field Itemnum as integer field Price as decimal field Qty as integer field Discount as integer field ExtendedPrice as decimal field OrderLineStatus as character index itemnum Itemnum index orderline is unique primary Ordernum Linenum index orderlinestatus OrderLineStatus.
Сохраните изменение в файле и убедитесь в отсутствии ошибок компиляции.