![]() |
#21 |
Участник
|
![]() ------------------------- В задаче не просилось решение, которым пользуются. В задаче не просилось даже решение, а только описание. ------------------------- Только описание? Тогда это выглядит примерно так: Есть форма: 7002 Sales Prices, под кнопку "Функции" добавляем еще один пунктик и код (с целью экономии объектов) В коде пишем ... .... смотрим в таблицу Product Group, по ней мы будем строить группировки товаров при выгрузке в Excel. Бежим поочередно по всем группам при этом фильтруя таблицу Item и читая из нее все записи, и создаем записи в Excele. При переходе на каждую следующую запись в Product Group создаем группу в Excel, ну и для красоты по умолчанию ее схлапываем. В конце на всякий случай фильтруем таблицу Item по пустой Товарной группе и выгружая все товары, которые не попали под товарные группы. Таким образом мы выгрузим все позиции сгруппировав их. Теперь следующий этап - нам надо выгрузить цены, причем их должно быть несколько. Мы можем либо определить заранее какие цены мы будем выгружать либо выгружать все возможные варианты. К примеру в первом случае мы хотим выгрузить цены когда "Тип продажи" = "Все Клиенты", "Тип продажи" = "Группа Скидки Клиента"+"Код продажи"="хххх" и "Тип продажи" = "Группа Скидки Клиента"+"Код продажи"="yyyy". Тогда беря товар из таблицы Item идем в таблицу Sales Prices фильтруем ее сначала для первого столбца с ценой, потом для второго и третьего, беря из нее последние записи, и предварительно фильтруем ее, чтобы "Дата Конца Цены" > рабочей даты. есть еще замечательный codeunit Sales Price Calc. Mgt., но на первый взгляд я там не обнаружил функции которая могла бы вернуть значение с ценой (видимо кроме как из документов продажи его не попользуешь, хотя могу и ошибаться) В случае, если нам не надо выгружать позиции по которым нет никаких цен, то мы просто не делаем запись в Excel. Это если писать с минимальным воздействием на стандартные объекты, а можно еще добавить в таблицу Sales Prices поле Product Group Code из Item и тогда можно будет бегать только по таблице Sales Prices, что ускорит выгрузку и позволит попроще решить вопрос, если не надо выгружать строки без цен (т.к. таковых просто не будет ![]() |
|
|
|