Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Help. Генерация отчетов. Single User -> Multi User  [new]
dmitry_cmc
Member

Откуда:
Сообщений: 139
Всем привет!

Помогите, пожалуйста, разобраться со следующей вещью.
Сразу прошу прощения, если вопрос мой покажется странным - я только недавно начала работать с отчетами.

Вообщем было раньше приложение, которое работало у клиентов и использовало MSDE (на каждом клиенте свой) и соответственно при создании этого приложения исходили из того, что с базой будет работать одновременно только один человек.

Что это означало:
Вот например нужно было составить отчет по сотрудникам за определенный период времени.

Данные о работе сотрудников лежат в таблице dataVisits.
Есть вьюшка по этой таблице viewVisits, которая лишь фильтрует таблицу dataVisits по промежутку времени.
Далее на основе этой вьюшки строятся другие вьюшки (которые агрегируют по всякому данные для каждого сотрудника) и уже с помощью их строился сам отчет viewEmployeesReport.

Когда пользователь хотел посмотреть отчет, он выбирал промежуток времени и запускал процесс создания отчета.
После этого прога только и делала всего, что меняла вьюшку viewVisits (устанавливала другой промежуток времени) далее в Екселевском файле обновлялся Пивот по viewReport и готовый отчет подсовывался пользователю.
Все красиво и просто.

Теперь же надо сделать тоже самое, только с учетом того, что с базой работают несколько людей и все генерят отчеты. Соответственно вьюшку уже просто так не поменяешь.
Кроме того (хотя это наверное и не так важно в рамках задачи) еще надо добавить фильтрацию всех данных по соотвествующему юзеру.
Вопрос - как бы сделать так (минимально уродуя текущую структуру), чтобы теперь отчеты могли генерировать одновременно несколько людей.

Я так понимаю, что пивоту теперь в качестве сорса надо будет динамически подсовывать функцию с параметрами промежутка времени и ID usera.
Это не сложно.
Далее, как понимаю, перейти от исользования viewVisits на опять же функцию от времени и id. Но ведь это означает, что данные будут просчитываться каждый раз когда будет вызываться функция! Решение - использовать временные таблицы.
Вот в принципе и все.

Вопрос - можно ли выйти из ситуации красивее и с наименьшими затратами?
Спасибо.

P.S. Если, я чтото забыл написать, пожалуйста, скажите и я уточню все моменты.
2 дек 04, 03:04    [1151057]     Ответить | Цитировать Сообщить модератору
 Re: Help. Генерация отчетов. Single User -> Multi User  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
А кто мешает все это сделать в Excel? Например, так
Private Sub CommandButton1_Click()
ActiveSheet.PivotTables("СводнаяТаблица1").PivotCache.CommandText = "pstudent_browsebydate @actualdate=" + Strings.Chr(39) + Strings.Format(ActiveSheet.Range("B2").Value, "yyyymmdd") + Strings.Chr(39)
ActiveSheet.PivotTables("СводнаяТаблица1").PivotCache.Refresh
End Sub
Где pstudent_browsebydate - это хранимая процедура, которая и генерит отчет
2 дек 04, 05:31    [1151095]     Ответить | Цитировать Сообщить модератору
 Re: Help. Генерация отчетов. Single User -> Multi User  [new]
dmitry_cmc
Member

Откуда:
Сообщений: 139
Короче как понял по любе придется все переделывать.
2 дек 04, 15:53    [1153400]     Ответить | Цитировать Сообщить модератору
 Re: Help. Генерация отчетов. Single User -> Multi User  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
>> Короче как понял по любе придется все переделывать.

Лучше, конечно, всё переписать, но, в данном случае, это не обязательно. Так как нет бизнес-сервера, то за одним хостом сидит один пользователь и можно сделать таблицу параметров (USER_HOST_NAME <PK>, START_TIME, STOP_TIME), for example и переделать только (1) вьюшку, добавив join с таблицей параметров через host_name() и (2) процедуру генерации отчета, которая должна вместо пересоздания вьюшки менять параметры в таблице параметров. Остальное оставить как есть - все будет работать.
2 дек 04, 16:10    [1153468]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить