Можно ли создать очет по движению товара по складу с разделением по типу документов по приходу и расходу
Разделить колонку приход на две - движение товара по накладной на перемещение и движение товара по приходной накладной.
Аналогично разделить колонку расход на три - движение товара по расходной накладной, движение товара по акту списания
и движение товара по накладной на перемещение.
Если мы имеем несколько складов по одной фирме нам нужно для контроля истинного расхода и прихода из вне этот отчет.
Если Вас это устроит мы можем написать скрипт как сделать 3 отдельных отчета по приходам, передвижениям и ввод остатков.
Спасибо за помощь. Жду ответа со скриптами.
Цитата: Horis від Вересень 09, 2008, 11:24:24
Спасибо за помощь. Жду ответа со скриптами.
Думал будет проще :), давайте попробуем.
Внимаение все скрипты копируйте и вставляйте при включенной русской раскладке, не английской
Выполняете след скрипт в SQL менеджере:
CREATE PROCEDURE USR_SKLAD_VIEW_1_1 (
doc_type_id1 INTEGER,
doc_type_id2 INTEGER,
sklad_id INTEGER,
date_from DATE,
date_to DATE)
RETURNS (
num INTEGER,
z_kolvo DOUBLE PRECISION,
z_suma DOUBLE PRECISION,
to_kolvo DOUBLE PRECISION,
to_cena DOUBLE PRECISION,
to_suma DOUBLE PRECISION,
from_kolvo DOUBLE PRECISION,
from_cena DOUBLE PRECISION,
from_suma DOUBLE PRECISION)
AS
DECLARE VARIABLE date_last_fix DATE;
BEGIN
date_last_fix = '1900.01.01';
/*Nachalnie ostatki*/
FOR
SELECT
tovar_id AS num,
kolvo AS z_kolvo,
suma AS z_suma,
CAST(NULL AS DOUBLE PRECISION) AS to_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS to_cena,
CAST(NULL AS DOUBLE PRECISION) AS to_suma,
CAST(NULL AS DOUBLE PRECISION) AS from_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS from_cena,
CAST(NULL AS DOUBLE PRECISION) AS from_suma
FROM
tovar_zal_fix
WHERE
sklad_id=:sklad_id AND fdate=:date_last_fix
INTO :num,:z_kolvo,:z_suma,:to_kolvo,:to_cena,:to_suma,:from_kolvo,:from_cena,:from_suma
DO
SUSPEND;
/*Dobavlennie ostatki*/
FOR
/*Dobavlennie ostatki - Prihod*/
SELECT
t.tovar_id AS num,
SUM(t.to_kolvo) AS z_kolvo,
SUM(t.to_suma) AS z_suma,
CAST(NULL AS DOUBLE PRECISION) AS to_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS to_cena,
CAST(NULL AS DOUBLE PRECISION) AS to_suma,
CAST(NULL AS DOUBLE PRECISION) AS from_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS from_cena,
CAST(NULL AS DOUBLE PRECISION) AS from_suma
FROM
tovar_move t, tovar_zal z
WHERE
(t.doc_type_id = :doc_type_id1 OR t.doc_type_id = :doc_type_id2) AND t.doc_type_id != 6 AND t.tovar_id=z.tovar_id AND z.sklad_id=:sklad_id AND to_sklad_id=:sklad_id AND mdate>:date_last_fix AND mdate<:date_from
GROUP BY t.tovar_id
UNION
/*Dobavlennie ostatki - Rashod*/
SELECT
t.tovar_id AS num,
SUM(t.from_kolvo)*(-1) AS z_kolvo,
SUM(t.from_suma)*(-1) AS z_suma,
CAST(NULL AS DOUBLE PRECISION) AS to_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS to_cena,
CAST(NULL AS DOUBLE PRECISION) AS to_suma,
CAST(NULL AS DOUBLE PRECISION) AS from_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS from_cena,
CAST(NULL AS DOUBLE PRECISION) AS from_suma
FROM
tovar_move t, tovar_zal z
WHERE
(t.doc_type_id = :doc_type_id1 OR t.doc_type_id = :doc_type_id2) AND t.doc_type_id != 6 AND t.tovar_id=z.tovar_id AND z.sklad_id=:sklad_id AND t.from_sklad_id=:sklad_id AND t.mdate>:date_last_fix AND t.mdate<:date_from
GROUP BY t.tovar_id
INTO :num,:z_kolvo,:z_suma,:to_kolvo,:to_cena,:to_suma,:from_kolvo,:from_cena,:from_suma
DO
SUSPEND;
FOR
/*Prihod*/
SELECT
t.tovar_id AS num,
CAST(NULL AS DOUBLE PRECISION) AS z_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS z_suma,
SUM(t.to_kolvo) AS to_kolvo,
AVG(t.to_cena) AS to_cena,
SUM(t.to_suma) AS to_suma,
CAST(NULL AS DOUBLE PRECISION) AS from_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS from_cena,
CAST(NULL AS DOUBLE PRECISION) AS from_suma
FROM
tovar_move t, tovar_zal z
WHERE
(t.doc_type_id = :doc_type_id1 OR t.doc_type_id = :doc_type_id2) AND t.doc_type_id != 6 AND t.tovar_id=z.tovar_id AND z.sklad_id=:sklad_id AND t.to_sklad_id=:sklad_id AND t.mdate>=:date_from AND t.mdate<=:date_to
GROUP BY t.tovar_id
UNION
/*Rashod*/
SELECT
t.tovar_id AS num,
CAST(NULL AS DOUBLE PRECISION) AS z_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS z_suma,
CAST(NULL AS DOUBLE PRECISION) AS to_kolvo,
CAST(NULL AS DOUBLE PRECISION) AS to_cena,
CAST(NULL AS DOUBLE PRECISION) AS to_suma,
SUM(t.from_kolvo) AS from_kolvo,
AVG(t.from_cena) AS from_cena,
SUM(t.from_suma) AS from_suma
FROM
tovar_move t, tovar_zal z
WHERE
(t.doc_type_id = :doc_type_id1 OR t.doc_type_id = :doc_type_id2) AND t.doc_type_id != 6 AND t.tovar_id=z.tovar_id AND z.sklad_id=:sklad_id AND t.from_sklad_id=:sklad_id AND t.mdate>=:date_from AND t.mdate<=:date_to
GROUP BY t.tovar_id
INTO :num,:z_kolvo,:z_suma,:to_kolvo,:to_cena,:to_suma,:from_kolvo,:from_cena,:from_suma
DO
SUSPEND;
END
Как делать отчет на основе другого?
1. Заходим в меню "Отчеты" и открываем нужный нам отчет.
2. Потом нажимаем на кнопку "В режим редактирования", и раскрываем
окно на максимум (так будет удобней)
3. В открывшемся окне в полях "Название по-украински" и "Название
по-русски", меняем или дописываем название для будущего отчета.
4. Далее меняем или правим в окне SQL запрос текст SQL запроса к базе
данных.
5. Если надо включаем в "Выбор нужных параметров для отчета" галочки
что надо выбирать перед формированием отчета, а что нет.
6. Нажимаем кнопку "Сохранить как новый", и закрываем окно.
7. Далее заходим обратно в меню "Отчеты" и ищем имя отчета которое вы
задали в п.3 Открываем его и запускаем, если надо правим печатную форму.
Мы используем отчет
"Движение товара по складу" как базу
Для расходных/приходных: меняем в п.4 с
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
usr_sklad_view_1_1(1,8,#склад_№#,'#дата_с#','#дата_по#') s,
Для остатка/списания: меняем в п.4 с
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
usr_sklad_view_1_1(9,11,#склад_№#,'#дата_с#','#дата_по#') s,
Для перемещения: меняем в п.4 с
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
usr_sklad_view_1_1(10,10,#склад_№#,'#дата_с#','#дата_по#') s,
Уменя проблема другово плана. Нужен фильтр по товару и по клиенту. Створив новий звіт. поставив галочку для вибору кліента. А в звіті все одно кидаєвесь перелікруху товара за період......Поможіть
По всіх клієнтах
Выполняю Ваш скрипт в SQL менеджере и получаю такое сообщение:
SQL error code = -104
Token unknown - line 37, char 10
?.
Жду ответа...
Цитата: Horis від Вересень 22, 2008, 14:51:33
Выполняю Ваш скрипт в SQL менеджере и получаю такое сообщение:
SQL error code = -104
Token unknown - line 37, char 10
?.
Жду ответа...
Ошибка при вводе скрипта, копируйте и вставляйте скрипт полностью, только с включенной русской раскладкой и ничего сами не изменяйте?
Вставляю текст Вашего скрипта.
Выдается одно и то же сообщение.
Не хочет видет символ двоеточия : после выражения INTO, выдает ошыбку. После удаления двоеточия
дает ошыбку на следующем двоеточии. Пробывал ввести другое - та же самая ошыбка.
Может Вы что-то подскажите...
Повторно:
Копируйте и вставляйте скрипт полностью, только с включенной русской раскладкой и ничего сами не изменяйте?
Ничего не меняю, копирую и вставляю скрип со включенной русской раскладкой,
все равно выдает сообщение об ошыбке.
Не может быть, проверили все работает, сохранили скрипт прикрепленный файл, пробуйте из него копировать.
Я тоже пыталась сделать такой же отчет(он мне подходит), затем скопировала все из прикрепленного файла и программа все равно выдает:
SQL error code = -104
Token unknown - line 37, char 10
?.
Ну если и так не проходит тогда, еще один способ:
1. Выйдите из программы
2. Перекопируйте прилагаемый файл 999 в подпапку /db/patch/
3. Запустите программу.
4. Выйдите из программы
5. Удалите файл 999 из подпапки /db/patch_ok/
6. Продолжайте работу по инструкции, считайте "Выполняете след скрипт в SQL менеджере" выполнено.
Спасибо за помощь. Все работает отлично.
помогите и мне сделать такой отчет. У меня не получается, выдает след:
Dynamic SQL Error
SQL error code=-204
procedure unknown
USR_SKLAD_VIEV_1_1
At line 23, column 56
Цитата: Lyudasiya від Серпень 04, 2009, 11:55:09
помогите и мне сделать такой отчет. У меня не получается, выдает след:
Dynamic SQL Error
SQL error code=-204
procedure unknown
USR_SKLAD_VIEV_1_1
At line 23, column 56
Вы не выполнили как написано выше:
Цитата
Выполняете след скрипт в SQL менеджере:
Код:
CREATE PROCEDURE USR_SKLAD_VIEW_1_1 (
...
Прочитайте повторно http://www.softbalance.com.ua/forum/index.php?topic=366.msg2613#msg2613 и выполните все по порядку ничего не пропуская.
Сделала все как написано с файлом 999, потом выполнила след:
меняем в п.4 с
Код:
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
Код:
usr_sklad_view_1_1(1,8,#склад_№#,'#дата_с#','#дата_по#') s,
Для остатка/списания:
меняем в п.4 с
Код:
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
Код:
usr_sklad_view_1_1(9,11,#склад_№#,'#дата_с#','#дата_по#') s,
Для перемещения:
меняем в п.4 с
Код:
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
Код:
usr_sklad_view_1_1(10,10,#склад_№#,'#дата_с#','#дата_по#') s,
и все равно ничего не получилось. Понимаю, что если у людей работает, значит я где-то ошиблась, но найти ошибку не могу
Цитата: Дмитрий Котельников від Серпень 04, 2009, 12:24:29
Вы не выполнили как написано выше:
Цитата
Выполняете след скрипт в SQL менеджере:
Код:
CREATE PROCEDURE USR_SKLAD_VIEW_1_1 (
...
Прочитайте повторно http://www.softbalance.com.ua/forum/index.php?topic=366.msg2613#msg2613 и выполните все по порядку ничего не пропуская.
Что я делаю:
1. Через меню Опции захожу в SQL менеджер
2. Удаляю то, то там написано, авместо него вставляю скопированный привключеной рус. раскладке скрипт
3. Нажимаю кнопку выполнить
Получаю: SQL error code=-104
Token unklown-line 37,
chair 10?
Цитата: Lyudasiya від Серпень 04, 2009, 14:15:45
Что я делаю:
1. Через меню Опции захожу в SQL менеджер
http://www.softbalance.com.ua/forum/index.php?topic=366.msg2732#msg2732
Як обєднати в звіті залишки по складу та реалізацію.
Процедура описана вище не спрацьовує (вер. 4.75) ( видає помилку див. вище). З файлом 999 та сама історія
просить передати Вам наступне
CREATE PROCEDURE USR_SKLAD_VIEW_1_1 (
........
SUSPEND;
END
unsuccessful metadata update
Procedure USR_SKLAD_VIEW_1_1 already exists
Хоча в версії 5.бета все Ок
ПС При створені нового звіту на основі іншого (Реалізація) зникає з меню користувачів "Всі користувачі". Допоможіть.
Цитата: buvoro від Березень 15, 2010, 20:00:39
Procedure USR_SKLAD_VIEW_1_1 already exists
Ошибка говорит о том что такая процедура уже есть, приступайте к след. шагу.
Для расходных/приходных:
меняем в п.4 с
sklad_view_1(#склад_№#,'#дата_с#','#дата_по#') s,
на
usr_sklad_view_1_1(1,8,#склад_№#,'#дата_с#','#дата_по#') s,
[/quote]
При побудові звіту видає неправильні залишки на поч періоду! І взагалі при зміні параметру виводу (реалізація чи списання чи переміщення ) видає різну інформацію по залишках.
Чи можна хоча би звіт про рух товарів по складу за період з розбивкою по приходу, переміщення, реалізація, інше - тільки в шт(кг, м.п., ..) без привязки до ціни? Або в різних звітах але по всій базі товарів (без виключень), щоб все це звести в Екселі (якщо є 750 назв товарів то щоб в кожному звіті було відображено всі 750 назв). На мою думку це основний звіт в торгівлі для ефективного управління товарними залишками. а його в програмі реалізувати не можливо, на жаль!!