Итак, сперва прелюдия...
Есть датапорт, основной его элемент - Item. Чего хочется - чтобы в выгрузке были наличия по складам (поля Inventory,"Reserved Qty. on Inventory", "Qty. on Purch. Order" являются FlowFields). Читаю мануал... Говорят, используйте "CALCFIELDS". Радостно подсовываю эту функцию в OnBeforeExportRecord.... Тишина... Вернее нули. А в базе остатки ненулевые. Спрашиваю знакомых Навизаторов, те советуют завести переменную, взять в ней запись, равную текущей, и рассчитать там. Получаю такой код:
<div class='CALtop'>C/AL</div><div class='CAL'>rItem.COPYFILTERS(Item);
rItem.GET("No.");
rItem.CALCFIELDS(Inventory,"Reserved Qty. on Inventory", "Qty. on Purch. Order");
SkladFree := rItem.Inventory - rItem."Reserved Qty. on Inventory";</div>
Ради проверки делаю
<div class='CALtop'>C/AL</div><div class='CAL'>IF rItem.Inventory <> 0 THEN
MESSAGE('#1', rItem.Inventory);</div>
Нули... Пробовал распечатывать фильтры через MESSAGE, всё верно, так же как в форме 50006 "Sales Find Items", где всё прекрасно рассчитывается. Какие еще будут варианты?
|