|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Привет! Прошу совета в организации сабжевого вопроса. Вобщем такая у заказчика интересная идея появилась - он хочет чтобы в программе регистрировалось время, затрачиваемое каждым определенным юзером на заполнение той или иной формы. Естесственно, на мой взгляд, всплывут такие ньюансы, типа тело ввело в одно поле данные и тут срочно понадобилось обсмаковать очередной слух (позвонил тел,мобила, пришел начальнег и тд и тп), из-за чего активность чела в проге становиться =0, а в это время комп будет исправно считать сколько веремни прошло. И второе - юзер форму открыл и пошел на обед и т.п. втч приведенные выше "приколы". Сие не будет иметь постоянства, но портить картину будет 100%. Как это вижу я: 1) создается таблица с ид. юзера, и ид. формы, и время в сек. - 3 поля. 2) у формы создаеццо пропертя StartSeconds в которую вставляется SECONDS() по нажатии на форме какой-либо клавиши. 3) в момент сохранения данных с формы сохраняется разница SECONDS()-thisform.StartSeconds, а сама пропертя формы StartSeconds обнуляется. Что посоветуете? Мож кто-то такое уже решал и имеет опыт в части подводных граблей? спасибо. ЗЫ я тут еще думаю на счет таймера на форме для той же цели, но пока не могу толком додумать как. Типа нажал кнопу - таймер куда-то слился и обнулилсо, а если не жмут кнопы определенное время - знач не работают и просто обнуляемся... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 13:52 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Во-первых не с той стороны смотришь на проблему. Надо с позиции заказчика, т.к. думаю ему интересно в т.ч. сколько каждый пользователь в носу ковырял. Вобщем с ним все ньюансы измерения проговори для начала. Надо понять что он этим замером померить хочет. Например можно мерить время от открытия до сохранения, но для подсчета среднего брать не все записи, а откидывать 10% самых коротких и 10% самых длинных, чтобы один-два случайно коротких или очень длинных (забыл форму закрыть и ушел) не портили картину. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 14:04 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Насколько я понял задача стоит в нормировании, а не в контроле носоковыряний. Последнее, скорей всего, всплывет как приятный addon. Короче нужно вывсети среднестатистическое время на внесение данных юзером в определенную форму. А для себя отмечу, что буду также пытаться оптимизировать процесс (вид формы, расположение полей, порядок и прочее) и по ходу, возможно, будет видна польза/вред тех или иных нововведений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 14:45 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Для контроля за нажатиями кнопок можешь использовать Form.KeyPreview = .T. и в событии Form.KeyPress() считать как тебе надо. Как вариант считай просто количество нажатых кнопок. Но я бы сильно не заморачивался на алгоритм отлова носоковыряний пользователя, т.к. если форма редко используется, то ее оптимизация большого эффекта не даст, если часто, то маловероятно что при каждом запуске юзер будет в носу ковырять :) поэтому думаю достаточно мерить время между открыл-сохранил и откинуть самые долгие интервалы при расчете среднего. Тут было про откидывание некорректных значений при расчете среднего. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 15:14 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Не совсем понятна постановка задачи. Если речь идет о нормировании документооборота, то меня, как заказчика, не интересовало бы среднее время, за которое те или иные формы были открыты - это средняя температура по больнице. И не интересовало бы меня время, которое работник тратит на сплетни и ковыряние в носу – это я и без того вычислить могу, зная время, необходимое для заполнения одного документа, и количество документов, заполненных работником. Вот по этим двум параметрам я и хотел бы получать отчеты за определенный период времени. Как программист, я бы ввел в таблицу реестра документов (та, в которой на один документ создается одна запись) три поля: datetime создания записи, считая это началом обработки документа datetime окончания обработки документа. Это время, скорее всего, должно явно устанавливаться пользователем по нажатию кнопки, после чего документ должен становиться нередактируемым. Кто имеет право отрыть его для исправления – вопрос организационный. В системе обязательно должен быть пользователь с такими правами. User_id – идентификатор пользователя, обрабатывавшего документ. В качестве времени, необходимого на обработку одного документа, я бы считал среднее по 10% записей, имеющих минимальное время обработки документов одного типа. Как руководитель, интересующийся производительностью труда, я хотел бы иметь данные в цифре и графике: 1 - об изменении времени, необходимого на обработку одного документа, чтобы видеть, не наступил ли момент сговора сотрудников для увеличения этого самого времени. А он обязательно наступит, когда они узнают об алгоритме нормирования их труда. :) 2 – количество документов каждого типа, обработанных каждым сотрудником по месяцам. Как переводить полученные данные в зарплату – это уже следующий вопрос, при условии, что я правильно понял Ваш вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 19:13 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
будь проще - твое решение и пиши в базу с миенем формы и юзера сделаешь простой отчте нач-во посмотрит может чего еще захоячяет ИМХО баловстово это - нач-во побалуется и забуедет зы кстати где то читал что дос-е формы даже выигрышней при наборе БОЛЬШОГО ОБХЕМА ИНФЫ мышка вообщем точно не дожна юзаться ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2008, 19:45 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Им, короче, надо такое - вычислить среднее время на регистрацию того или иного документа в системе с целью определить при поступлении большого кол-ва документов нужны ли в отдел дополнительные работники или справятся те что есть. И обратка с целью перевода работнега в более загруженный отдел. ни зарплата ни наказания здесь не являются целевыми задачами. Дополнительная задача - оптимизация ввода инфы с целью ее ускорения и облегчения. Кроме того, по опыту известно, что чаще всего юзер открывает форму для регистрации документа и... так оно и висит. Поэтому не хочется считать время от запуска формы до момента регистрации,а именно от момента когда чего-то нажали (хотя могут и случайно чего-то нажать), т.е. концепция - определить активность пользователя, если таковая наличествует, начать отсчет. Если активность за определенный интервал не обнаруживается - отсчет приостанавливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2008, 12:45 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Dima Tдумаю достаточно мерить время между открыл-сохранил и откинуть самые долгие интервалы при расчете среднего. Тут было про откидывание некорректных значений при расчете среднего. туда сходил, там есть пример, но решения так и не выложили. Т.е. там предложен был вариант, но он не работает (вообще ничего в выборку не попадает), но если убрать половину условия, то в завивсимости какую уберешь выбирает либо все записи без 900 и 1125, либо выбирает только 2 записи: 900 и 1125. Задававшему вопрос намекнули на медианный фильтр, тот обрадовался и все на этом :) Я в свою очередь почитал на wiki про этот фильтр, затем перешел на медиану и квантиль . В итоге делал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Развейте сомнения, кто знает - это и есть правильная выборка с медианой/квантилем? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2008, 13:09 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
CTAC-KO...а именно от момента когда чего-то нажали (хотя могут и случайно чего-то нажать), т.е. концепция - определить активность пользователя, если таковая наличествует, начать отсчет. Если активность за определенный интервал не обнаруживается - отсчет приостанавливается. Распечатайте и покажите заказчику то, что я написал Вам в предыдущем посте. Думаю, что вопрос с подсчетом нажатий каких-то клавиш отпадет сам собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2008, 19:05 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
CTAC-KO Код: plaintext 1. 2. 3.
Развейте сомнения, кто знает - это и есть правильная выборка с медианой/квантилем? Тут в формуле зачем-то на 2 поделено, как мне кажеться это лишнее. Похоже на решение подогнанное под ответ. Если честно я не большой спец в матстатистике, но как я понял суть идеи в следующем: каким-то образом выбирается диапазон отсекающий максимальные и минимальные значения и среднее считается от того что осталось. Для себя взял бы один из вариантов: 1. Без привязки к записям - среднее плюс-минус среднее отклонение, т.е. от (std-avg * k) до (std+avg * k), где k подбирать опытным путем. 2. Сортируем по значению, находим среднюю по порядку запись (ее значение и есть медиана), от нее отступаем вверх/вниз на 30-40% записей (т.е. 60-80% записей из середины) и считаем среднее полученной выборки. 3. С той же медианой, только минимум берем (медиана / K) и максимум (медиана * K) K подбирать опытным путем, думаю что в том топике автор на этом варианте и остановился. Мне этот вариант тоже нравится больше чем остальные. Как вариант - можешь сначала исходных данных набрать, а потом на реальных данных способ расчета среднего изобретать. PS Можешь еще в форум программирование поспрашивать, там может кто есть, кто в статистике хорошо разбирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2008, 11:05 |
|
Подскажите - как лучше организовать засечение времени, затрачиваемого на заполнение форм?
|
|||
---|---|---|---|
#18+
Вам все равно когда-то самому захочется знать кто что и когда делал в проге.. Я храню такую табличку .. как в 1С .. Кто, когда что, как делал. Из этой таблички можно отчетами выбрать все.. что позволит воображение. Все вычисления в отчетах. В табличке просто сохранение текущих операций. Ну типа того.. Иванов, ДатеВремя с сервера(), открыл документ такой-то на редактирование.. Иванов, ДатеВремя с сервера(), заменил в документе таком-то поле такое-то.. Иванов, ДатеВремя с сервера(), сформировал отчет такой то.. с параметрами такими-то.. и убивать старые записи .. скажем месяц назад.... Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2008, 16:51 |
|
|
start [/forum/topic.php?fid=41&msg=35441848&tid=1587472]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 344ms |
total: | 496ms |
0 / 0 |