Упражнение 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 | Сохраните процедуру и убедитесь в отсутствии ошибок компиляции. |