Я в тупике в данный момент. Что мне нужно сделать, так это то, что когда основной цикл считывает заказ aaord#, нам нужно подсчитать в этой подпрограмме все остальные строки заказа, которые имеют вес коробки. таблица доставки такая: для вывода мы можем поставить ord_wt на каждую строку, я не могу придумать другого способа.
PHORD# PHWGHT PHBNO#
04924920 1.05 1
05012409 27.40 2
05012409 27.40 3
05012409 27.40 4
05012409 27.40 5
05012409 27.40 6
05012409 27.40 7
05012409 27.40 8
05012409 20.00 9
05012421 26.90 2
05012421 26.90 3
05012421 26.90 4
05012430 13.70 2
05036997 21.60 1
05036997 21.60 2
05036997 21.60 3
05036997 21.60 4
05037155 14.55 1
05037173 12.25 1
05037173 12.20 2
05039479 8.10 1
поэтому в этом коде я хочу посмотреть, не равен ли номер заказа = предыдущему номеру заказа, тогда я сделаю этот код, чтобы подсчитать все веса заказов из таблицы кораблей. Мне также нужно очистить поле хранения, когда есть такой новый номер заказа. \ но мой вывод - только нули в ord_wt
c eval mhcmno4= aacom#
c* eval wkrel@ = %EDITC(aarel#:'X')
c* eval wkrel2 = %subst(wkrel@:4:2)
c eval mhordr4 = aaord#
c eval wkvsf='N'
c* endif
c z-add 0 phwtno 702
c*
c mhordr4 ifne prvord
c z-add 0 phwtot
c mhkey4 setll pshipLL4
c read pshipLL4
c* loop thru all orders in the ship table and add the weight to get a
c* total weight per order #
c dow not %eof(pshipLL4)
c if mhcmno4 = PHCOM# and
c mhordr4 = PHORD#
c* phwght is 11 char
c**
c eval prvord = mhordr4
c eval phwtno = %dec(PHWGHT:7:2)
c add phwtno phwtot
c else
c leave
c endif
c read pshipLL4
c enddo
c endif
c endsr
OUTPUT: packages of course cannot be 0.
05475731 0
05475731 0
05475731 0
05475731 0
05475731 0
05475731 0
05475731 0
05475731 0
05475731 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05476179 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475736 0
05475750 0
05475750 0
05475750 0
05475750 0
05475750 0
05475750 0
mhkey4
? Как это связано сmhordr4
? - person user2338816   schedule 23.04.2015mhkey4
это DS или KLIST или что-то подобное. Можете ли вы показать, как программа определяет его и как устанавливаются значения подполей? Кстати, почему вы используете READ в этом цикле вместо READE? Кроме того, я не вижу никакой проверки ошибок и не вижу ничего, что проверяло бы успешность SETLL. Как узнать, что это работает, как вы ожидаете? То есть как узнать, что вы обращаетесь к нужным записям? - person user2338816   schedule 24.04.2015