|
|
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
A2К Прошу совета. Есть база с документами. Необходимо ежемесячно делать сводные отчеты по количеству, типу документа и т.д и генерить его в WORD.Теперь вопрос - через рекордсет как правильно: 1.Открывать rs и в цикле суммировать значения переменных счетчиков по условиям 2.Открывать rs по условию (метод Open) брать нужное значение, закрывать rs, открывать со следующей инструкцией SQL и т.д. Что посоветуете, какой путь предпочтительнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 05:53 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
А зачем в Word? Неужели нельзя обойтись аксесовским отчетом? Тогда рекордсет вообще не потребуется. Но это не так важно. Единственное, возможно, что придется делать в цикле, так это генерить строки отчета в Ворде. Хотя и без этого можно вполне обойтись. Что касается рекордсета, то открывать его нужно в качестве источника указав запрос, уже содержащий агрегированные данные. Естественно открытие рекордсета должно происходить 1 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 06:45 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
Отчеты должны и формируются в Ворде.Этому несколько причин - 1.довольно сложные формы отчетности, периодически меняющиеся. 2.Требование управления, куда я передаю данные (они там их правят). С вордом все - ОК. 2Pavel. "Что касается рекордсета, то открывать его нужно в качестве источника указав запрос, уже содержащий агрегированные данные. Естественно открытие рекордсета должно происходить 1 раз." Именно в этом и был вопрос - Если мне нужно агрегировать данные по разным признакам (скажем, 10 признаков. Например, все аннулированные, все аннулированные за месяц, все измененные, все измененные за год и т.д.), значит ли, что правильнее будет открывать и закрывать разные рекордсеты?. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 07:49 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
Ну так и сделай 1 запрос, в котором собери все необходимые агрегации. В случе чего Union тебе поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 08:56 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
2Pavel "Ну так и сделай 1 запрос, в котором собери все необходимые агрегации. В случе чего Union тебе поможет." Простите неразумного, а как в одном запросе собрать, скажем итоговые количества выданных документов за прошлый месяц, кол-во аннулированных за год и к примеру, кол-во продленных до конца года ? :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 09:04 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
Вариантов много: Union, iif, если adp то еще и CASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 09:09 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
2Pavel Я правильно понял, что нужно делать ОБЩИЙ запрос в который попадают ВСЕ необходимые данные, а потом их суммировать, используя всякие IIF, If ...ELSE и т.д? Т.е. вернее избрать п.1 (см.вопрос)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 09:22 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
Нет, это не п.1. Все операции по агрегированию данных нужно выполнять наиболее оптимальными средствами, и в данном случае это использование SQL. Зачем крутиться в цикле, наращивая знаяения кучи счетчиков, если запрос может выдать готовое значение? Поскольку речь идет о различных, возможно взаимоисключающих агрегациях, готового оптимального запроса я привести не могу. Выкладывай структуру хранения данных и необходимые итоговые агрегации, тогда можно привести конкретный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 09:35 |
|
||
|
Опять рекордсет, сводные данные
|
|||
|---|---|---|---|
|
#18+
2Pavel Огромное спасибо за отзывчивость :-) По последнему ответу полностью с тобой согласен, поэтому я и использую п.2 (см.вопрос). Т.е. используя соответствующие инструкции SQL открываю соотв.рекордсет, беру .RecordCount, благо тип курсора и локтайп позволяют, закрываю rs, новая инструкция SQL и т.д. По структуре - tbl("Лицензии"). Fields: [Номер документа],[Дата выдачи],Дата изменения],[Дата аннуляции]. Задача: Ежемесячно выдавать в отчете: 1.Общее кол-во документов за год 2.Кол-во выданных документов за месяц 3.Общее кол-во аннулированных 4."-----" за месяц 5.Кол-во измененных ну и так далее Если не трудно, попробуй. У меня все работает, но хотелось бы рассмотреть другие варианты.Заранее благодарен. ЗЫ. На сегодня интернет закончился :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32348609&tid=1677722]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 471ms |

| 0 / 0 |
