Задание 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.

Сохраните изменение в файле и убедитесь в отсутствии ошибок компиляции.
