16.05.2006, 14:04 | #1 |
Участник
|
За долгие-долгие годы накопилась на нашем предприятии масса интересных и не очень отчетов и решили мы отделить зерна от плевел, но не тут-то было...
Короче, пытаюсь сделать лог всех запусков отчетов, чтобы определить, какие отчеты часто используются, а какие просто место занимают. Понятно, что вставить во все отчеты некий код, который призапуске будет отмечаться в специальной таблице занятие неблагодарное, отчетов около 2000... В 1 коудюните есть такая чудесная фукция, называется findPrinter. Она вызывается при каждом старте отчета. и остается только одна проблема: в ней нельзя произвести запись в БД Пробовал так: Код: Статистика.Дата:=TODAY; Статистика.Время:=TIME; Статистика."Отчет Но.":=ОтчетID; IF Объекты.GET(Объекты.Тип::Report,COMPANYNAME,ОтчетID) THEN Статистика."Название Отчета":= Объект.Имя; Статистика.INSERT(FALSE); Может кто подскажет дельную мысль, как решить проблему? |
|
16.05.2006, 14:24 | #2 |
Участник
|
А если писать в темповую табличку и скидывать в базу в функции LogInEnd ?
|
|
16.05.2006, 14:59 | #3 |
Участник
|
Да, почти помогло, только почему-то на момент вызова logInEnd временная таблица оказывается пустой, хотя при каждом запуске печати все значения хранятся, проверял...
|
|
16.05.2006, 15:12 | #4 |
Участник
|
Создайте Single Instance кодеюнит, вынесите туда функции по заполнению временной таблички и занесению данных в базу
|
|
16.05.2006, 15:17 | #5 |
Участник
|
|
|
16.05.2006, 15:39 | #6 |
Участник
|
Ну тогда либо пихать вызов в отчеты, либо всякие извращения вроде записи в файл, с последующей очисткой и занесением в базу.
|
|
16.05.2006, 17:47 | #7 |
Участник
|
отчеты запускаются откуда?
из трех мест 1. отчеты в грануле (типа товар-отчеты,продажа-отчеты...) 2. отчеты в документе (фактуры,накладные,статистики...) 3. периодические задания (тут вряд ли у вас есть неопознанные самописки) если что-то упустил - поправьте в этих местах совсем нетрудно написать протоколирование запуска репортов с последующим комитом. единственное что плохо - неясно, просмотрели репорт или ошиблись и не стали запускать - но согласитесь этой погрешностью можно пренебречь. |
|
17.05.2006, 10:55 | #8 |
Участник
|
Есть такая вещь, как Code Coverage (Сервис/Debugger/Выполнение Кода). Именно с помощью ее мы писали логи запуска отчетов и различных функций (из таблиц, кодеюнитов и пр.)
При запуске клиента автоматически запускаем Code Coverage (при открытии фирмы) и он пишет инфу в свои таблицы, которые потом без проблем анализируются. P.S. В версии 2.60 он находится в Сервис/Debugger/Приложение Код
__________________
Вот такие, брат, дела! |
|
17.05.2006, 11:23 | #9 |
Участник
|
Цитата:
Сообщение от SVG
отчеты запускаются откуда?
из трех мест 1. отчеты в грануле (типа товар-отчеты,продажа-отчеты...) 2. отчеты в документе (фактуры,накладные,статистики...) 3. периодические задания (тут вряд ли у вас есть неопознанные самописки) если что-то упустил - поправьте в этих местах совсем нетрудно написать протоколирование запуска репортов с последующим комитом. единственное что плохо - неясно, просмотрели репорт или ошиблись и не стали запускать - но согласитесь этой погрешностью можно пренебречь. Цитата:
Сообщение от Yuriy
Есть такая вещь, как Code Coverage (Сервис/Debugger/Выполнение Кода). Именно с помощью ее мы писали логи запуска отчетов и различных функций (из таблиц, кодеюнитов и пр.)
При запуске клиента автоматически запускаем Code Coverage (при открытии фирмы) и он пишет инфу в свои таблицы, которые потом без проблем анализируются. P.S. В версии 2.60 он находится в Сервис/Debugger/Приложение Код Спасибо, сделал с сохранением в файл, пожалуй в данной ситуации самый простой и быстрый способ. Благо все пользователи системы работают на терминальном сервере, так что все очень удачно получилось. |
|