31.03.2003, 17:16 | #1 |
Участник
|
функция 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 - что типа не могу такую сформировать.(скрин в аттаче) У кого нибудь есть какие-нибудь идеи по поводу реализации подобной проблемы? |
|