AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2003, 17:16   #1  
Alex_V is offline
Alex_V
Участник
 
159 / 10 (1) +
Регистрация: 19.02.2003
функция STRSUBSTNO
Общая задача в следующем:
необходимо просмотреть товарные операции по менеджеру. Т.е. например какое кол-во того или иного товара(из учтенных заказов покупки продажи, кредит нот, возвратов клиентов и поставщикам,..) прошло через определенного менеджера.И допустим в разрезе какого нибудь ГТД надо все это видеть.

Для получения подобной информации понятно - лучше использовать таблицу Item Ledger Entry (товарные операции)

Код менеджера (поле "Salespers./Purch. Code") сохраняется только в таблице "Value Entry". В таблице "Item Ledger Entry" (которая используется для формирования необходимого отчета) данная информация не сохраняется. Но таблица "Value Entry" связана с таблицей "Item Ledger Entry" через поле "Item Ledger Entry No.".

Путь реализации:
1) Наложить фильтр на таблицу "Value Entry"
2) Составить фильтр из значений поля "Item Ledger Entry No." в полученной выборке.
3) Наложить этот фильтр(пункт 2) на таблицу "Item ledger Entry"
4) Наложить фильтр ГТД на таблицу "Item ledger Entry"
4) Получить необходимое количество.

Кусок кода из реализации данной задачи:

-//-
FilterString := FilterString + FORMAT(ValueEntry."Entry No.") //для простоты пока так

IF STRLEN(FilterString) >= MAXSTRLEN(FilterString) - 15 THEN BEGIN
IF ValueEntry.GETFILTER("Entry No.") <> '' THEN BEGIN
ValueEntry.SETFILTER("Entry No.", STRSUBSTNO('%1|%2', ValueEntry.GETFILTER("Entry No."), FilterString));
END ELSE BEGIN
ValueEntry.SETFILTER("Entry No.", FilterString);
END;

FilterString := ''
END;
-//-

НО есть одна проблема: естественно что стоимостных операций может быть очень большое количество. И в конечном итоге строка кода ValueEntry.SETFILTER("Entry No.", STRSUBSTNO('%1|%2', ValueEntry.GETFILTER("Entry No."), FilterString));
дает ошибку на ф-цию STRSUBSTNO - что типа не могу такую сформировать.(скрин в аттаче)

У кого нибудь есть какие-нибудь идеи по поводу реализации подобной проблемы?
Изображения
Тип файла: bmp error.bmp (720.1 Кб, 278 просмотров)
Старый 01.04.2003, 11:18   #2  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
По-моему, выбран не самый лучший путь решения задачи.
Попробую предложить свои варианты.

1)Действовать не через Item Ledger Entry, а через Sales Shipment Lines и Return Receipt Lines(строки учтенных заказов и возвратов).
В Sales Shipment Header и Return Receipt Header коды менеджеров обычно вбиваются. Соответственно, составляем отчет :
Sales Shipment Header (на него можно положить фильтр по менеджеру)
Sales Shipment Lines(связка по Document No.)
Return Receipt Header
Return Receipt Line (аналогично)

Пробегая по ним, заполняем временную таблицу(например хорошо подойдет Sales Shipment Lines).
А потом, например, в целом, можно уже спокойно анализировать полученную временную таблицу по нужным аналитикам(код товара, например)

2)Действовать всё же через Value Entry и Item Ledger Entry
Опять же, делаем репорт
Value Entry (фильтр по менеджеру)
Item Ledger Entry (связка по "Item Ledger Entry No.")
Создаем временную таблицу Item, например, и для каждого товара, который встречаем, делаем либо Insert(если такого товара еще нет) и записываем туда кол-во товара из Item Ledger Entry, либо делаем Modify(если такой товар уже встречался) и увеличиваем кол-во товара на число из Item Ledger Entry. Далее, в том же целом, мы можем спокойно вывести результаты из созданной временной таблицы.
Старый 01.04.2003, 11:30   #3  
Alex_V is offline
Alex_V
Участник
 
159 / 10 (1) +
Регистрация: 19.02.2003
втрой вариант мне кажется более разумный.в первом - большое количество таблиц надо перебирать(информация как о покупках так и о продажах, + еще производство).

спасибо за помощь.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:18.