Упражнение 3.9: Получение набора данных с применением APPEND
Если необходимо добавлять данные в набор частями, то для этого можно использовать ключевое слово APPEND в операторе RUN. В этом задании мы очистим набор данных после предыдущих примеров, добавим код для получения данных с одним фильтром, а затем сделаем второй вызов процедуры с другим фильтром и ключевым словом APPEND.
|
Шаг |
Действие |
| 1 | Очистите набор данных выполнив метод EMPTY-DATASET(). Оператор следует добавить сразу после оператора закрытия файла OUTPUT CLOSE из предыдущего задания.
DATASET dsPO:EMPTY-DATASET (). |
| 2 | Добавьте оператор вызова процедуры get_dsPO со строкой фильтра для PurchaseOrder «PONum <= 8005» в качестве первого параметра и возвратом набора данных в качестве третьего параметра.
RUN get_dsPO IN hProc ("PONum <= 8005","",OUTPUT DATASET dsPO).
|
| 3 | Добавьте второй оператор вызова get_dsPO со строкой фильтра для PurchaseOrder «PONum >= 10130» в качестве первого параметра и возвратом набора данных в качестве третьего параметра.
RUN get_dsPO IN hProc ("PONum >= 10130","", OUTPUT DATASET dsPO).
|
| 4 | Добавьте оператор вывода в файл.
OUTPUT TO "C:\OpenEdge\WRK\ProDataSets\log\dsPO_NoAppend.txt". |
| 5 | Скопируйте и вставьте следующий код:
FOR EACH ttPurchaseOrder, FIRST bPOLine OF ttPurchaseOrder: DISPLAY ttPurchaseOrder.PONum ttPurchaseOrder.DateEntered ttPurchaseOrder.SupplierIDNum ttPurchaseOrder.ReceiveDate WITH 1 COLUMN STREAM-IO. FOR EACH ttPOLine OF ttPurchaseOrder: DISPLAY ttPOLine.PONum ttPOLine.LineNum ttPOLine.ItemNum ttPOLine.Price ttPOLine.Qty ttPOLine.Discount ttPOLine.ExtendedPrice WITH WIDTH 150 STREAM-IO. END. END. |
| 6 | Закройте вывод в файл.
OUTPUT CLOSE. |
| 7 | Очистите набор данных
DATASET dsPO:EMPTY-DATASET (). |
| 8 | Добавьте оператор вызова процедуры get_dsPO со строкой фильтра для PurchaseOrder «PONum <= 8005» в качестве первого параметра и возвратом набора данных в качестве третьего параметра.
RUN get_dsPO IN hProc ("PONum <= 8005","",OUTPUT DATASET dsPO).
|
| 9 | Добавьте второй оператор вызова get_dsPO со строкой фильтра для PurchaseOrder «PONum >= 10130» в качестве первого параметра и возвратом набора данных в качестве третьего параметра с ключевым словом APPEND.
RUN get_dsPO IN hProc ("PONum >= 10130","", OUTPUT DATASET dsPO APPEND).
|
| 10 | Добавьте оператор вывода в файл.
OUTPUT TO "C:\OpenEdge\WRK\ProDataSets\log\dsPO_Append.txt". |
| 11 | Скопируйте и вставьте следующий код:
FOR EACH ttPurchaseOrder, FIRST bPOLine OF ttPurchaseOrder:
DISPLAY
ttPurchaseOrder.PONum
ttPurchaseOrder.DateEntered
ttPurchaseOrder.SupplierIDNum
ttPurchaseOrder.ReceiveDate
WITH 1 COLUMN STREAM-IO.
FOR EACH ttPOLine OF ttPurchaseOrder:
DISPLAY
ttPOLine.PONum
ttPOLine.LineNum
ttPOLine.ItemNum
ttPOLine.Price
ttPOLine.Qty
ttPOLine.Discount
ttPOLine.ExtendedPrice WITH WIDTH 150 STREAM-IO.
END.
END.
|
| 12 | Закройте вывод в файл.
OUTPUT CLOSE. |
| 13 | Сохраните процедуру и убедитесь в отсутствии ошибок компиляции. |
