У меня есть буфер bufCustomer для таблицы Customer, глобальный буфер gbufOrder для таблицы Order. Но этот код не работает. Я написал код вроде find bufCustomer, где bufCustomer.CustomerID = gbufOrder.CustomerID no-lock no-error. но если я проверю данные таблицы, данные там, но если я написал код, подобный приведенному выше, он не работает. Есть ли другой способ получить значения?
Сравнение двух незавершенных полей 4GL
comment
Вам нужно показать свой реальный код. Описание слишком расплывчато, чтобы делать какие-либо выводы.
- person Tom Bascom   schedule 03.10.2012
comment
определить буфер bufCustomer для клиента. найдите bufCustomer, где bufCustomer.CustomerID = gbufOrder.CustomerID no-lock no-error
- person user1204240   schedule 09.10.2012
comment
Я хочу получить имя клиента, поэтому я написал это, которое частично работает, т.е. получение имени клиента для некоторых записей, но я хочу получить имя клиента для всех записей. Пожалуйста, помогите.
- person user1204240   schedule 09.10.2012
comment
попробуйте запустить свой сценарий без опции NO-ERROR в операторе FIND. тогда вы должны получить сообщение об ошибке, которое объяснит вам, что не так ...
- person firhang   schedule 09.10.2012
comment
Это отображается как bufCustomer record not found. Как получить значения?
- person user1204240   schedule 09.10.2012
Ответы (1)
с БУФЕРОМ:
DEFINE BUFFER gbufOrder FOR Order.
DEFINE BUFFER bufCustomer FOR Customer.
FIND FIRST gbufOrder NO-LOCK NO-ERROR.
IF AVAILABLE(gbufOrder) THEN
DO:
FIND bufCustomer where bufCustomer.CustNum = gbufOrder.CustNum NO-LOCK NO-ERROR.
IF AVAILABLE(bufCustomer) THEN
DO:
DISP bufCustomer.name.
END.
ELSE
DO:
MESSAGE "Customer is not available!"
VIEW-AS ALERT-BOX ERROR BUTTONS OK.
END.
END.
ELSE
DO:
MESSAGE "Order is not available!"
VIEW-AS ALERT-BOX ERROR BUTTONS OK.
END.
без БУФЕРА
FIND FIRST Order NO-LOCK NO-ERROR.
IF AVAILABLE(Order) THEN
DO:
FIND Customer where Customer.CustNum = Order.CustNum NO-LOCK NO-ERROR.
IF AVAILABLE(Customer) THEN
DO:
DISP Customer.name.
END.
ELSE
DO:
MESSAGE "Customer is not available!"
VIEW-AS ALERT-BOX ERROR BUTTONS OK.
END.
END.
ELSE
DO:
MESSAGE "Order is not available!"
VIEW-AS ALERT-BOX ERROR BUTTONS OK.
END.
Эта программа работает с sports200
образцовой базой данных (она находится в каталоге установки PROGRESS / OpenEdge)
ОБНОВИТЬ:
- проверка доступности Заказчика
- добавить образец кода без БУФЕРА
person
ksimon
schedule
09.10.2012
это еще не на 100% правильно. вам следует проверить доступность bufcustomer после НАЙТИ bufCustomer - как после первого НАЙТИ заказа. иначе вы получите некоторую ошибку, например, клиент недоступен.
- person firhang; 10.10.2012