Здравствуйте, как я могу объединить таблицу в процессе 4gl? И дисплей - PullRequest
0 голосов
/ 09 марта 2020

Определите переменную i как целое число без отмены.

For each Sports.customer where Sports.customer.CustNum = 1 AND Sports.Order.OrderDate = 11/21/1997 NO-LOCK. 
/* it says Missing for find etc */

Мне нужно отобразить порядок туров подъема. Я использовал его первичный ключ, но у меня возникли проблемы с доступом к 2 таблицам

Таблицы
Заказчик PK CustNum Заказ PK OrderName FK CustNum

     Order-line PK Orderline

Мне нужно отобразить Заказы Лифтовых туров с датой заказа от 21.11.1997 и указать общую стоимость подъемных туров

Спасибо, ребята

Ответы [ 2 ]

3 голосов
/ 09 марта 2020
define variable orderTotal as decimal no-undo.

for each customer no-lock where name = "Lift Tours",
    each order no-lock where order.custNum = customer.custNum and order.orderDate = 11/21/1997,
    each orderLine no-lock where orderLine.orderNum = order.orderNum:

  orderTotal = orderTotal + ( orderLine.Qty * orderLine.price ).

end.

display orderTotal.

"," используется для объединения предложений WHERE в FOR EACH. Вы указываете общие поля для объединения в этих предложениях WHERE.

2 голосов
/ 09 марта 2020

Для полной цены вам нужно присоединиться к Order и OrderLine.

DEFINE VARIABLE deTotal AS DECIMAL NO-UNDO. 
FOR EACH Order WHERE Order.CustNum = 1 AND Order.OrderDate = 11/21/1997 NO-LOCK, 
    EACH OrderLine OF Order NO-LOCK:
    ASSIGN deTotal = deTotal = deTotal + OrderLine.Qty * OrderLine.Price . 
END.
...