25.09.2014, 20:12 | #1 |
Участник
|
Добрый день!
Работаю с навижн совсем недавно. Появилась задача: Необходимо вывести отчет по товарам, перемещенным (в связи с ремонтом к примеру) из одного магазина в другой. Как делаю: в report designer добавляю 2 таблицы: - основная: item sales lines (возможно ошибаюсь в точном ее названии) - в ней задаю фильтры "по дате" - когда было перемещение и "по отделу". - вложенная: item - из нее в отчет буду выводить - код товара и наименование и "количество перемещенного товара" (но т.к. этого поля в таблице нет, поэтому беру Quantity из таблицы item sales lines) И вроде все ничего - но появилась необходимость "группировки записей" - т.е. избежать в отчете одинаковых записей товаров (и просуммировать их перемещенное количество). Сделать это возможно только программно. Делаю так: 1) создаю временную таблицу: в CAL Globals добавляю переменную tmpitem и ставлю ее свойство temporary(yes). 2) в свойствах item sales lines – сортировка по Item No. 3) в свойствах item – сортировка по No., взаимосвязь: No.=FIELD(Item No.) 4)добавляю код (в OnPreRecord item): *********************************************************** IF Item.FINDSET THEN REPEAT // tmpItem - временная таблица, которая будет содерж. Сгруппир. записи tmpItem.RESET; // накладываю фильтр на записи, по которым хочу сделать группировку tmpItem.setrange("No.",’No.’); IF NOT tmpItem.FINDFIRST THEN BEGIN // не нашел требуемое сочетание, добавляю запись tmpItem := Item; tmpItem.insert(FALSE) END ELSE BEGIN // нашел требуемое сочетание, группирую и суммирую tmpItem.Inventory += item sales lines.Quantity; // в правильности не уверен tmpItem.MODIFY(FALSE); END; UNTIL Item.NEXT = 0; // по идее теперь во временной таблице д.б. сгруппированные записи, c проссумир. их Кол-вом ***************************************************************** ВОПРОСЫ (ЧТО я делаю не так?): 1) когда находится одинаковый товар во временной таблице, выскакивает системная ошибка("товар под №№ уже существует"), причем в условие: END ELSE BEGIN (см.код) - программа НЕ переходит!!! Почему????? 2) Как в коде правильно просуммировать к-во перемещенных товаров?? |
|