powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Источник для отчета в БЭСТ-5
10 сообщений из 10, страница 1 из 1
Источник для отчета в БЭСТ-5
    #34241679
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надеюсь это сообщение по теме раздела и модераторы меня не погонят отсюда.

Итак, есть задача, сделать отчет по сравнению остатков на разных складах по базе БЭСТ-5. База Фокспрошная, источники VFOXPRO7.
Количество складов может динамически изменятся, то есть могут добавиться еще склады, поэтому на определенное количество не хочется зашиваться.

Я думаю над следующим решением: сделать запрос, потом класть это в курсор, потом с помощью UNION ALL добавлять запрос по следующему складу, потом уже группировку по номенклатуре, когда все склады обработаю.

Код: plaintext
SELECT GRUP, NNUM, IF(VID= 1 ,KOLOUT,-KOLOUT) as KOL1,  0 . 00  as KOL2,  0 . 00  as KOL3 FROM SCLAD_MDOCM WHERE SCLAD = '000001' INTO CURSOR TMP_CUR
потом
Код: plaintext
1.
2.
3.
SELECT GRUP, NNUM, KOL1, KOL2, KOL3 FROM SCLAD_MDOCM FROM TMP_CUR
UNIOAN ALL
SELECT GRUP, NNUM,  0 . 00  as KOL1, IF(VID= 1 ,KOLOUT,-KOLOUT) as KOL2,  0 . 00  as KOL3 FROM SCLAD_MDOCM WHERE SCLAD = '000002' INTO CURSOR TMP_CUR
и потом уже
Код: plaintext
SELECT GRUP, NNUM, SUM(KOL1), SUM(KOL2), SUM(KOL3) FROM TMP_CUR GROUP BY  1 ,  2 

Примерно вот так. Отсюда вопрос. Как сделать чтобы этих KOL1, KOL2 было KOL-N и есть ли способ сделать проще?
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34241685
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Бумага "не резиновая". Она имеет строго фиксированные размеры. Поэтому сделать отчет на не определенное количество складов не получится. Есть некоторая предельная величина и очень маленькая. Обычно не более 5...6 столбцов. Если ориентация "ландшафт", то 8...9

2) Количество полей в DBF-таблице не может быть больше 254. Физически. Т.е. опять прощаемся с идеей не определенного количества столбцов

3) Хорошо, в принципе, можно через макроподстановку сделать динамический запрос с переменным количеством столбцов. А как Вы это собираетесь выдавать в отчет? Как Вы осуществите динамическую привязку объектов отчета к неизвестным полям таблицы? В принципе, тоже можно сделать, но, а оно Вам надо?

4) Научитесь грамотно формулировать задачу. Т.е. какую задачу Вы хотите решить ТАКИМ сравнением остатков? Цель сравнения? Просто посмотреть? Больше нечем заняться? Ну, получите Вы список из нескольких тысяч строк номенклатуры и ЧТО Вы в этой невообразимой куче сможете найти?

Вы потратите кучу времени и сил на отчет, который, по большому счету, никому не нужен. С ним просто невозможно работать. "Простыни" хороши для анализа на бумаге. Компьютерный анализ делается несколько по другим принципам.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34241697
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ1) Бумага "не резиновая". Она имеет строго фиксированные размеры. Поэтому сделать отчет на не определенное количество складов не получится. Есть некоторая предельная величина и очень маленькая. Обычно не более 5...6 столбцов. Если ориентация "ландшафт", то 8...9
Значит сделаем выбор тех складов с которыми будет сравнение.

ВладимирМ2) Количество полей в DBF-таблице не может быть больше 254. Физически. Т.е. опять прощаемся с идеей не определенного количества столбцов
Ну оно неопределенное, но не до идиотизма. Может быть 10, 15, 20, 30 складов. А вот больше уже наверное не будет. Ну пусть будет 50.

ВладимирМ3) Хорошо, в принципе, можно через макроподстановку сделать динамический запрос с переменным количеством столбцов. А как Вы это собираетесь выдавать в отчет? Как Вы осуществите динамическую привязку объектов отчета к неизвестным полям таблицы? В принципе, тоже можно сделать, но, а оно Вам надо?
А дальше оно будет выдаваться в FastReport. А там уже его задача сформировать отчет на нужное количество столбцов. Есть там такой - Cross-Tab отчет. Заранее нет привязки. Оно мне надо :)

ВладимирМ4) Научитесь грамотно формулировать задачу. Т.е. какую задачу Вы хотите решить ТАКИМ сравнением остатков? Цель сравнения? Просто посмотреть? Больше нечем заняться? Ну, получите Вы список из нескольких тысяч строк номенклатуры и ЧТО Вы в этой невообразимой куче сможете найти? Человек делает сверку по остаткам указанного склада с остальными складами и в случае необходимости делает заказ на подвоз товара с других складов. Дальше будет задача сделать автоматическое формирование заказов на подвоз на основании полученных данных.

ВладимирМВы потратите кучу времени и сил на отчет, который, по большому счету, никому не нужен. С ним просто невозможно работать. "Простыни" хороши для анализа на бумаге. Компьютерный анализ делается несколько по другим принципам.
Может быть. Такова постановка задачи клиентом. Если она идиотская и не реализуема, я в конце концов ему так и скажу. Но сначала все-таки надо попробовать. А в отчете будут различные фильтры по типам товара, по группам и так далее, поэтому будем надеяться что все-таки можно будет работать с этим отчетом.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34241815
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryOrlovНадеюсь это сообщение по теме раздела и модераторы меня не погонят отсюда. Это по теме :)
DmitryOrlov ... Как сделать чтобы этих KOL1, KOL2 было KOL-N и есть ли способ сделать проще?
Без макроподстановок не обойтись. Примерно так:
Код: plaintext
1.
lcQuery = "select GRUP, NNUM, sum(iif(SCLAD = '000001', IIF(VID=1,KOLOUT,-KOLOUT), 0)) as KOL1, sum(iif(SCLAD = '000002', IIF(VID=1,KOLOUT,-KOLOUT), 0)) as KOL2, ... FROM SCLAD_MDOCM GROUP BY GRUP, NNUM INTO CURSOR TMP_CUR"
&lcQuery
lcQuery соответственно генерится программно.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34246326
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmitryOrlovЧеловек делает сверку по остаткам указанного склада с остальными складами и в случае необходимости делает заказ на подвоз товара с других складов. Дальше будет задача сделать автоматическое формирование заказов на подвоз на основании полученных данных.

действительно класическая логистическая задача, только хочется посоветовать решеть её не со стороны "где взять" а со стороны "что надо":
заказ формируется на основе статистики расхода- сколько ушло за некоторый период и на какой период мы хотим затариться а уж потом решаем на каком складе мы разместим этот заказ - может и не надо сравнивать остатки всех складов
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34247253
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Озаказ формируется на основе статистики расхода- сколько ушло за некоторый период и на какой период мы хотим затариться а уж потом решаем на каком складе мы разместим этот заказ - может и не надо сравнивать остатки всех складов
интересный вариант, спасибо за подсказку. Боюсь только мы сейчас с заказчиком в согласованиях закопаемся, по какой схеме считать скорость выбытия.
Недавно начал делать у одних людей прогнозирование закупок. Они так задумались над ТЗ что уже второй месяц никак с места не сдвинемся. И вопрос в основном как раз в скорости выбытия (ну еще там сезонность спроса и еще кое-что)
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34247254
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TБез макроподстановок не обойтись.
...
lcQuery соответственно генерится программно.
Спасибо за помощь.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34247947
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryOrlovинтересный вариант, спасибо за подсказку. Боюсь только мы сейчас с заказчиком в согласованиях закопаемся, по какой схеме считать скорость выбытия.
...
Кое что из теории по этому поводу
А из практики - по какой бы схеме не считали, однозначно должен сидеть чел, который после расчета количества правит. Невозможно учесть все факторы, сам делал и как другие делают видел. Изобретали много, но рабочие реализации сводились к простому статанализу за последние Х дней. А учет сезонности, изменений цен, маркетинговые акции производителей и т.д. на совести чела который после количества правит.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34253860
Tsaranov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, DimaT, речь идет об организации, где руководство понимает о чем речь, и соответственно задача поставлена вполне конкретная, отвечающая текущим требованиям, именно поэтому вопросы задаются вполне конкретные.
...
Рейтинг: 0 / 0
Источник для отчета в БЭСТ-5
    #34254008
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsaranovДа нет, DimaT, речь идет об организации, где руководство понимает о чем речь, и соответственно задача поставлена вполне конкретная, отвечающая текущим требованиям, именно поэтому вопросы задаются вполне конкретные.
Редкий случай.
Все задачи поиска оптимального заказа сводятся к поиску золотой середины между несколькими взаимоисключающими показателями:
1. Минимизировать товарный запас, т.е. затраты на хранение и оборотные средства
2. Обеспечить поддержание постоянного ассортимента на складе, т.е. чтобы ничего не кончалось
3. Минимизировать затраты на отгрузку/доставку/приемку товара
Если вам удалось оптимально решить эту задачу, то я рад за вас и ваше руководство.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Источник для отчета в БЭСТ-5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]