Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помоготе воспитать юзеров / 25 сообщений из 25, страница 1 из 1
09.10.2003, 19:08
    #32289335
JinP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
У меня распределенная база по заводу. Часто на агрегатах по несколько часов данные не вносяться, но юзеры из базы не вылезают, а нужно чтоб вылезали (зачем другой вопрос, но нужно), т.е. закрывали приложение на своем компе. Как, какой и куда повесить код, чтоб база сама закрывалась, если в течении, скажем, 2-х часов ее никто не трогал - не смотрел и данные не вносил. Или ссылочку, плз, где это можно посмотреть. Спасибо.
...
Рейтинг: 0 / 0
09.10.2003, 19:11
    #32289339
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
1. Заводим переменную, которая обозначает время последнего прикосновения к системе.

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

3. В таймере какой-нибудь формы, которая никогда не закрывается, пишем:

If Now - та переменная > 2 часов Then DoCmd.Quit
...
Рейтинг: 0 / 0
10.10.2003, 04:17
    #32289463
JinP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Неужели только так муторно можно это дело исполнить? Такая мысль у меня была. Но рука не поднималась. Думал может есть чего-то вроде контрольного центра, где храниться время последнего изменения или "телодвижения".
...
Рейтинг: 0 / 0
10.10.2003, 08:43
    #32289510
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2 Саныч

Я в одном своем проекте пункт 2 просто опустил. По истечении 20 минут по событию таймер выскакивает вопрос "Остаемся в программе ?" Если за 1 минуту не скажут "Да", то вываливаемся. Не очень красиво - но не нужно перелопачивать весь проект.
...
Рейтинг: 0 / 0
10.10.2003, 09:16
    #32289529
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Да разослать всем сообщение
Код: plaintext
net send *  "Всем выйти из базы. Кто не выйдет через 5  минут - сам за это заплатит"

и подождать 10 минут. Если человек не вышел - срубить его на фиг, все равно его на рабочем месте нет, он ничего не делает, и база не обрушится от его отключения.
...
Рейтинг: 0 / 0
10.10.2003, 12:19
    #32289785
Bor-L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
А я своих воспитываю бархатно. Не закрываю, а просто вывожу свою БД на передний план. До воспитания одновременно торчало до 30, после - 15. Удачи
...
Рейтинг: 0 / 0
10.10.2003, 15:19
    #32290096
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
> Не закрываю, а просто вывожу свою БД на передний план.

Это опасно. Если юзер клацает по клаве в какой-нибудь другой аппликации, а в этот момент ему вместо его аппликации подсовывается наша, - то он по инерции нажмет еще на пару клавиш и наверняка что-нибудь запорет.
...
Рейтинг: 0 / 0
10.10.2003, 15:40
    #32290125
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Вариант от Odess эфективный и простой в реализации.
Я пользуюсь чем-то подобным , когда нужно принудительно (но мягко)
выгнать юзеров из базы или обновить проэкт на клиентских компах.
Можно кстати сделать селективным относительно юзера.
Например директора не беспокоить , а мерзких АгРеГаТоВ тудыть в качель.
...
Рейтинг: 0 / 0
10.10.2003, 15:45
    #32290136
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2Лох Позорный
Послать сообщение легко , а можно как-то поймать его на стороне клиента?
Получилось бы очень изящно:
Послал net send -ом кодированное сообщение , но вместо дурацкого
диалога на экране - соответствующая реакция открытого приложения.
(Примерно как у пиратского пейджера)
...
Рейтинг: 0 / 0
10.10.2003, 15:54
    #32290148
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Latuk писал:Послать сообщение легко , а можно как-то поймать его на стороне клиента?
Поймать - глазами оператора
Если он его не увидел - значит его на рабочем месте нет. Если его нет - он ничего не делает. Если ничего не делает - его можно безбоязненно срубить.
Но это, конечно, несерьезное решение.

По хорошему можно смотреть в сторону очередей сообщений (какое-нибудь MSMQ). Не только в целях срубания юзверей, оно вообще полезно. Вроде у MSMQ объектов и ActiveX события есть, лови не хочу.
Жаль руки пока не дошли до изучения....
...
Рейтинг: 0 / 0
10.10.2003, 16:04
    #32290167
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
> Если ничего не делает - его можно безбоязненно срубить.

Угу. Он возвращается из туалета, а у него голова в тумбочке.
...
Рейтинг: 0 / 0
10.10.2003, 16:07
    #32290170
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Ну если его ТАК приперло, что он на полчаса свалил в туалет, да еще не закончив бросив работу на полпути (накладную там недовбивал или еще чего) - тогда когда он из туалета вернется ему будет ТАК хорошо, что он программеру эту накладную (или чего там еще) легко простит.
...
Рейтинг: 0 / 0
10.10.2003, 16:25
    #32290204
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
net send поймать можно (правда, по-моему, стандартный сервис должен быть отключен), но возни много и от операционнки методика их пересылки зависит, так что имхо лучше что-нибудь своё использовать...
...
Рейтинг: 0 / 0
10.10.2003, 16:31
    #32290215
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
IgorM писал:так что имхо лучше что-нибудь своё использовать...
А может все-таки лучше чужое? Уже готовое и заточенное под это?
Можно, конечно, и Exchange написать на аксесе, но зачем?
...
Рейтинг: 0 / 0
10.10.2003, 16:32
    #32290216
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Я еще где то читал (но не проверял) более изящное решение.
В отдельной таблице создается логическое поле типа "Финиш". Клиентские программы опрашивают с нужным интервалом таймера его на предмет появления в нем значения "Истина". После этого выдается сообщение - типа все в сад - через минуту закрываемся. А потом если не закрылись - DoCmd.Quit
...
Рейтинг: 0 / 0
10.10.2003, 16:47
    #32290234
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
завести поле...
периодически его опрашивать...

Ну не изобретайте велосипед. это и есть msmq (упрощенно). ей для работы даже MS SQL Server раньше нужен был, она там собственное все очереди сообщений и хранила. Теперь уже и MS SQL вроде не нужен, типа на 2000-м серваке умеет и так данные хранить.

А на клиенте - сидит себе компонент, который и опрашивает нужную ему очередь, или шлет сообщения другим. Ловишь от компонента события и делаешь все что душе угодно. Один компонент в невидимой форме сидит и базу закрывает когда нужно, другой - в форме со списком документов сидит и этот список обновляет (когда там изменения произошли) и т.п.
...
Рейтинг: 0 / 0
10.10.2003, 17:05
    #32290263
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2ЛП:
1. "Своё" - это не значит Exchange на Access.
2. Код для использования очередей тоже будет уже "своим".
3. Не стоит обобщать на всех пусть даже передовой опыт. У кого-то может и не стоять нужного ПО.
4. В данном случае имхо трудозатраты будут сопоставимы.
...
Рейтинг: 0 / 0
10.10.2003, 17:17
    #32290284
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
У Гетца в "Рецептах" есть готовый пример рассылки сообщений внутри акцесса.

Аналогичный можно сделать хоть для удаленного выключения компьютеров.

Я похожий использую для "выгоняния" юзеров из программы для копирования/архивирования/сжатия. Потом у них назреет идея внутреннего чата - придется сделать за символическую плату :)

А закрывать программу - это слишком имхо слишком круто. Особенно если полунабранная "накладная" на пару сотен полей.

Легче пару раз отправить какого-нить менеджера поискать отсутствующего на рабочем месте оператора - и операторы перестанут на рабочих местах отсутствовать.
...
Рейтинг: 0 / 0
10.10.2003, 17:31
    #32290300
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2 IgorM
1. Не спорю. Хотя видел и именно подобие Exchange на аксесе.
2. Разумеется своим. Только много ли того кода будет?
3. Может и не стоит нужный софт. У меня вон все на 97-м аксесе крутится, что ж мне теперь, про фичи 2002 не знать, а что успел узнать - то забыть? А про adp даже и не вспоминать никогда?
4. Неправда ваша . В данном случае - при ручной реализации трудозатраты будут на порядок меньше. Но сделать быстро - не всегда значит сделать правильно. Если сроки поджимают - делать как придется (с мыслю, что не мешало бы переделать). Если не критично по времени - пытаться сделать хорошо. Конечно если стоит софт, начальство согласно, и т.д. ИМХО.

+

5. Механизм все равно полезный. Если его освоить - в дальшейшем трудозатраты как раз и снизятся на порядок. Обновление списка документов, обновление локального закешированных данных, и т.п. - везде похожая задача. Кто-то что-то сделал - надо всех оповестить. Вот я и думаю, может лучше один механизм один раз освоить, чем каждый раз велосипед изобретать?
...
Рейтинг: 0 / 0
10.10.2003, 17:38
    #32290306
StaleX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Для JinP
HOW TO: Detect User Idle Time or Inactivity in Access 2000
http://support.microsoft.com/default.aspx?scid=kb;en-us;210297

там пример кода
...
Рейтинг: 0 / 0
10.10.2003, 17:47
    #32290314
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2ЛП: 2. И в том и другом случае, зависит от функциональности. У кого-то много, у кого-то мало. И для очередей и для анализа что_там_предлагалось.
3. У меня тоже крутится. И A2002 стоит для разработки. Но это не означает то, что я должен непременно его всем поставить.
4. По трудозатратам: тем более. :) По второй части: трудно не согласится.
5. Кстати, о бесполезности очередей я ни слова не сказал. Да что там, даже неиспользовать их не призывал. :) Если удобно и в кассу - пожалуйста. Я про net send говорил вообще-то... Не знаю, чего это ты на меня так взъелся... :)
...
Рейтинг: 0 / 0
10.10.2003, 18:02
    #32290328
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Я не взъелся. Я даже почти со всем согласился (за исключением п.4)
Но "завести поле... периодически его опрашивать..." считаю все-таки изобретением велосипеда. Может оно и оправданно иногда.
...
Рейтинг: 0 / 0
11.10.2003, 00:42
    #32290525
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
2 ЛП
считаю все-таки изобретением велосипеда
ИМХО это самое правильное решение в контексте поставленной задачи. Пусть не самое красивое, но самое простое. Пока речь не шла об обмнене документами, и т.п. Я на базе таких общих таблиц даже кассовые сервера организовывал - а уж просто завершение задачи организовать - как 2 пальца обос..ть.
Ну а насчет прерывания программы при вводе накладной на 4568 записей - так для этого и дается сообщение с запасом времени для сохранения работы. В критичной ситуации можно организовать еще одно поле для администратора - типа при ответе "нет" организовать еще увеличение периода ожидания...
...
Рейтинг: 0 / 0
11.10.2003, 11:55
    #32290585
Roalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
Как вариант: может быть какую-нибудь программулину вместо хранителя экрана у юзера. Проверить открытые окна или что там еще надо и отправить команды.
...
Рейтинг: 0 / 0
11.10.2003, 18:46
    #32290637
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помоготе воспитать юзеров
помню в 98 была такая WINPOPUP
или нечто подобное по названию. позволяла трепаться письменно.
в принципе можно использовать для рассылки предупреждения.
можно еще и PCan... из нортона - подключаешься и сам закрываешь что нада
долго но надежно
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помоготе воспитать юзеров / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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