powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / [Отчёты] поделитесь опытом кто может.
15 сообщений из 15, страница 1 из 1
[Отчёты] поделитесь опытом кто может.
    #32056255
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Необходимо создать отчёт[ы] и потом выложить их в Web. Отчёты не простые, и посему хотелось бы узнать как народ в таких случаях делает.
что есть.
есть список товаров, список дистрибьюторов и список складов дистрибьюторов есть таблица остатков на складах. Необходимо вывести отчёт, в котором будет выведенно кол-во товара для каждого дистрибьютора, разложенного по складам, при этом на каждую дату
т.е. что то вроде
Код: plaintext
1.
2.
   дистрибьютер | склад    | товар     | дата1 | дата2 | дата3
     ТулаПром   | Склад  1   | гайка  0 , 5  |    10   |   23    |   45 


Составить таблицу (tbl_a)
Код: plaintext
дистрибьютор | склад | товар 

Не проблема. ПРоблема в том как правильно заполнить кол-во по датам. Я вижу тут 2 подхода.
1. Получить рекордсет с tbl_a и затев в presentation layer (ASP) бежать по нему и в нужной колонке дергать SQL на вопрос а сколько кол-ва на данном моменте.
2. В SP собрать начала табличку tbl_a и потом пробежавшесь по ней курсором так же заполнить данные.

что смущает
для создания tbl_a используется временные таблицы. Если собирать их руками то в случае решения 1,если страничка повиснет (по таймауту например) то мы имеем повисшую временную таблицу.
В случае решения 2 меня смущает прогиб сервера при беге курсором.

вполне возможно что я не виду что то еще.. Если есть какое мнение - пишите

с уважением
Станислав Свириденко
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056329
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надейтель что я подскажу чего-то умное. Просто мысль.

Вот Вы выводите таблицу в ХТМЛ и думаете что процедура в СКЛ тоже должна выводить таблицу такой же структуры. Откажитесь от этого стреотипа. На самом деле таблица в ХТМЛ - это последовательность ячеек. И Вы можете выдавать из процедуры последвательность ячеек.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056334
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав,
оба подхода у нас успешно работают.
Единственная деталь - откажись от on-line
расчета отчетов...

Переодически /ночью, раз в час и т.п./
отчет расчитывается и скидывается
в статическую таблицу.
А Web просто ее "эксплорит" :)
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056337
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2SergSuper: Интересная мысль, а можно чуть чуть популярнее?

2dkstranger: Да я и не отрицаю, но ТЗ спущено сверху.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056345
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я подумал что у Вас неизвестно количество дат, т.к. надо разворачивать таблицу и предложил её разворачивать на ASP. На самом деле это не так трудно как представляется сначала.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056346
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хотят on-line,
то целесообразно физически поделить таблицы отчетов

- например, на каждый склад - своя ....

Не зная задачи и объема данных, трудно оценить
возможность on-line реализации...

Наш наиболее близкий пример, насколько я понял
/до нескольких тысяч операций ежедневно/ -
расчет в статике остатков на утро каждого дня,
on-line только по сегодняшним операциям
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056358
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Сколько может быть дат в отчете и отчего это зависит?
2) Я бы сделал запрос с использованием FOR XML и выводил бы отчет с исользоанием xsl. Кроме того - почему нельзя использовать execsql?
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056366
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, действительно кол-во дат неизвестно (пользователь задаёт диапазон дат "от" и "до" ). Обьём довольно таки большой. Грубо говоря подсчитайте все сорта пива в России, все эти сорта по крупнейшим городам россии (ну например 50) в каждом городе 2-3 партнера и у них свои склады. вариант с XML. Нет проблем. проблема в том, как наиболее дёшево (по нагрузке и времени) создать этот отчёт. Перекладывать всё это на SQL? Или подтягивать presentation layer, учитывая его ненаджность?
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056384
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так и не понял, как определяется кол-во дат в отчете.
Кол-во сортов пива, поставщиков и складов, не оказывает заметное влияние на скорость работы для данного отчета.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056389
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в хранимую процедуру передаётся 2 даты - начало периода и конец периода. Практически минимальное кол-во дат 1 дата, максимальное .. да неделя, месяц, год, бесконечность
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056393
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неделя - это не дата. Так что, если я правильно понимаю в хранимую процедуру должно передаваться или список дат или третьим параметром - период.
Создате димический запрос - типа
Выбрать поставщика, склад, товар, (Select Sum(количество) from tbl where <указываете сравнения поставщика, склада, товара) и критерии даты group by количество)) as qnty_1, при необходимости в цикле генерите дальше и завершаете построение главного запроса частями from, where, order.
дальше под это подкладываете xsl и как я понимаю это все.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056535
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше получать обычную, плоскую таблицу типа

дистрибьютер1 | склад1 | товар1 | дата1
дистрибьютер1 | склад1 | товар1 | дата2
...

дистрибьютерN | складN | товар1 | дата1
дистрибьютерN | складN | товар1 | дата2


а потом разворачивать ее на клиенте. Подобные темы неоднократно обсуждались. Если повезет, найдете по словам "Развернуть таблицу".
А у меня в постинге, помнится фигурировали "StringGrid" и "изврат"
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32056541
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, нашел\r
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32059619
АМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для динамической подготовки отчётов и их просмотра можно воспользоваться Crystall Report 8.0 (8.5 не подойдёт). Там можно нарисовать формы отчётов в дизайнере и с помощью спец. прибамбас подружить их с IIS.
...
Рейтинг: 0 / 0
[Отчёты] поделитесь опытом кто может.
    #32060143
lubimov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAP-средства некоторых производителей позволят решить эту задачу (и сотни других).
Преобразование отчетов на лету в html или представление доступа к ним через java-апплет, аутентификация пользователей - автоматизированы.
Думать и кодировать, конечно, придется, но не на уровне представления, а на уровне бизнес-логики, что более пристало современному программисту.

Пример: http://www.1bi.ru/panorama_webaccess.html
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / [Отчёты] поделитесь опытом кто может.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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