Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549

Функция оповещения пользователей

25.01.2018, 08:06. Показов 5637. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте! Подскажите, пожалуйста, как можно оптимальнее решить такую задачу.
Имеем форму заявки, с которой работает производственный технолог, закладывая для изготовления некий перечень деталей.
При изменении КД или ТП детали, информация об этом должна как можно быстрее попадать к технологу, для чего имеется сетевая таблица «Изменения»(в примере она разумеется локальная). В которую конструктор или технолог – разработчик ТП вносит соответствующую запись.
Вопрос в том, как наиболее эффективно реализовать функцию извещения технолога производственника – либо это сообщение о поступивших изменениях, либо визуальные эффекты и т.п. Во общем информация к пользователю должна поступить как можно быстрее. Такая вот задачка.
Функция извещения должна работать в момент, когда заказаны детали без изменений, а изменения в КД произошли в процессе обработки заявки и выпуск старых деталей нужно исключить, либо свести к минимуму.
Разумеется, что другая заявка на измененные детали будет поступать уже с учетом изменений.
Интересует именно такой вот момент.
Вложения
Тип файла: 7z Извещение.7z (34.1 Кб, 14 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2018, 08:06
Ответы с готовыми решениями:

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

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

Можно ли сделать какую-то систему оповещения о добавлении данных?
Всем привет! Помогите, Пж, есть БД, в нее с помощью сетевого диска, запросом на добавление попадают данные из других БД (сотрудники в...

27
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
25.01.2018, 08:12
Цитата Сообщение от Braser Посмотреть сообщение
Вопрос в том, как наиболее эффективно реализовать функцию извещения технолога производственника
позвонить по телефону.
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 08:25
Проверять на наличие изменений по событию - технолог нажал кнопку сохранения, например. Или по таймеру, если нужно совсем срочно. Но т.к. Акцесс не совсем многопоточная среда, таймеры имеют некоторые неприятные побочные явления, по возможности нужно обходиться без них или запускать параллельный процесс через отдельную библиотеку.
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 08:39  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
позвонить по телефону
остроумно, но не смешно.
в номере детали до 15 цифр может быть, не считая букв, есть похожие наименования с различием в 1-2 цифры, ну и изменений в деталях за день штук до 10, а если учесть, что таблицей пользуются технологи 3-х заготовительных участков, то представляю сколько должен конструктор на телефоне висеть и объяснять каждому что и где поменялось...

Добавлено через 7 минут
Цитата Сообщение от MrShin Посмотреть сообщение
Или по таймеру, если нужно совсем срочно.
Можно сделать процедуру проверки, чтобы 1 раз в час запускался процесс проверки новых записей в таблице регистрации изменений ? По принципу-открыл, проверил если да visible=True если нет, DoCmd.Close. я просто не в курсе всех возможностей таймера в приложении. Я так понимаю если открыть форму в фоне и проверять новую запись в какой то период времени с определенным интервалом, то будут какие-то побочные явления присутствовать типа мерцания или еще что -то не очень приятное, так?
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 09:03
Цитата Сообщение от Braser Посмотреть сообщение
будут какие-то побочные явления присутствовать типа мерцания или еще что -то не очень приятное, так?
Ну, раз в час это будет практически незаметно, особенно если в код, работающий по таймеру натыкать DoEvents побольше. Если к таймеру обращаться часто, то он, например, очень сильно замедляет перерисовку полей с условным форматированием, заголовок редактора VBA мерцает, кое-какие вещи еще подтормаживать начинают, но в вашем случе это будет не критично. Запустите в фоне отдельное невидимое окно с таймером, в нем и проверяйте. Проверку нужно максимально сократить, чтобы не лопатить всю базу. Записывайте, например, в отдельную общую табличку время последнего изменения, на клиенте проверяется эта табличка, если последняя проверка была до этого времени, лезем в основную таблицу и опять-таки по дате модификации строки анализируем изменения.
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 09:29  [ТС]
в отдельную общую табличку время последнего изменения, на клиенте проверяется эта табличка, если последняя проверка была до этого времени, лезем в основную таблицу и опять-таки по дате модификации строки анализируем изменения.
не очень хорошо представляю как это реализовать если честно,а вы не могли бы показать этот процесс на примере прикрепленного мной файла?
0
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
25.01.2018, 09:40
Цитата Сообщение от Braser Посмотреть сообщение
остроумно, но не смешно.
Нормально. Пишем новую заявку, и сообщаем любым доступным методом, например по телефону. так-то технолог вдруг чаи гоняет и лясы точит.
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 09:46  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
Пишем новую заявку, и сообщаем любым доступным методом, например по телефону.
Ага, back to USSR...
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.01.2018, 09:52
Файл не смотрел. Пока не чем

Если интересует именно уведомление пользователей БД, то для этого надо воспользоваться командой винды MSG. Например, послать сообщение всем юзерам в сети:
Visual Basic
1
shell "msg * Текст сообщения"
Но в этом случае сообщение получат даже те у кого программа вообще не установлена. Но можно рассылать и отдельным юзерам
Visual Basic
1
shell "msg имяюзера Текст сообщения"
Но есть одно требование. Для обмена сообщениями необходимо разрешить службу MSG, поскольку по умолчанию она выключена. Для включения надо в каждом ПК который может/должен принимать сообщения внести изменения в реестр Windows, изменив параметр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Control\Terminal Server\AllowRemoteRPC на 1. А потом перезагрузить БД для включения MSG
1
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 10:05
Цитата Сообщение от Braser Посмотреть сообщение
не очень хорошо представляю как это реализовать
Ну как-то так. Идея, надеюсь, будет понятна.
Вложения
Тип файла: zip Извещение.zip (45.2 Кб, 18 просмотров)
1
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 10:13
Конвертировал в mdb и добавил автозапуск формы проверки. Проверяет раз в час или принудительно по кнопке
Вложения
Тип файла: zip Извещение.mdb.zip (61.9 Кб, 20 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 11:16  [ТС]
Вношу через форму изменений новую запись, затем закрываю. Открываю форму заказов, делаю принудительную проверку - ничего не показывает.
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 11:28
Цитата Сообщение от Braser Посмотреть сообщение
ничего не показывает
Ну, извините, я не писал всю логику, только логику проверки. Вам нужно при внесении изменений записывать дату изменения в измененной строке Изменения и менять дату на такую же в таблице ПоследнееИзменение
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 11:36  [ТС]
А если условием для вывода сообщения об изменениях сделать отсутствие в поле таблица "Изменения" [Учтено] = False ?

Добавлено через 4 минуты
По мере поступления записей, делается проверка,любая - принудительная или по таймеру... в результате если во всех строках таблицы в поле [Учтено] стоит отметка, значит данное изменение уже учтено, если нет, значит открыть форму чтобы показала записи с изменением, ну или сообщение выскакивало

Добавлено через 2 минуты
Цитата Сообщение от mobile Посмотреть сообщение
внести изменения в реестр Windows
вот с этим однозначно будут проблемы, парни из отдела IT жестко и негативно относятся к таким весчам...
0
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
25.01.2018, 11:42
Цитата Сообщение от Braser Посмотреть сообщение
вот с этим однозначно будут проблемы, парни из отдела IT жестко и негативно относятся к таким весчам...
Мало того, в разных версиях винды это разные службы (точно не помню уже, когда то поинтересовался)
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 11:43  [ТС]
Цитата Сообщение от MrShin Посмотреть сообщение
Ну, извините, я не писал всю логику, только логику проверки.
да я без претензий, спасибо большое за пример , но сумлеваюсь, может способ с меткой в строке попроще? Во общем то, чтобы не лопатить всю таблицу, количество строк можно ограничить задав период, например - 1 мес.
0
Мы один, давай на "ты"
3838 / 1384 / 343
Регистрация: 16.06.2016
Сообщений: 3,275
25.01.2018, 11:46
Цитата Сообщение от Braser Посмотреть сообщение
Ага, back to USSR...
А вот СССР не надо трогать (там было много чего передового на тот момент).
По телефону будет однозначно быстрей в свете
Цитата Сообщение от Braser Посмотреть сообщение
информация к пользователю должна поступить как можно быстрее.
Цитата Сообщение от Braser Посмотреть сообщение
1 раз в час запускался процесс проверки
Но не неволю.
Такая задача должна решаться не таймерами.
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 11:46
Лучший ответ Сообщение было отмечено Braser как решение

Решение

Цитата Сообщение от Braser Посмотреть сообщение
А если условием для вывода сообщения об изменениях сделать отсутствие в поле таблица "Изменения" [Учтено] = False ?
Для одного пользователя пойдет, а если их несколько, то нет, надеюсь, не нужно объяснять почему.

Для записи изменений добавил обработчик в форму изменений
Вложения
Тип файла: zip Извещение.mdb.zip (73.8 Кб, 28 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,549
25.01.2018, 13:04  [ТС]
Цитата Сообщение от MrShin Посмотреть сообщение
Для одного пользователя пойдет, а если их несколько, то нет
Ну а если сделать несколько логических полей, для каждого пользователя свое? Для пользователя1 выводить только записи предназначенные ему, для второго аналогично и т.д. и пусть каждый отмечает "учтен-не учтен" в своем поле. При рассылке извещений архив указывает для кого предназначено данное извещение, для подразделения 1 например или для уПодразделения2 или для обоих. Строка будет одна, но будет ли видеть видеть ее пользователь будет определяться запросом к таблице. например: Пользователь 1 будет видеть только те записи, которые имеют пометку [Подразделение1] = True и [УчтеноПодр1]= False и так для всех пользователей.Как такой вариант, реализуем?

Добавлено через 1 минуту
Цитата Сообщение от Панург Посмотреть сообщение
Такая задача должна решаться не таймерами.
Как показала практика людями эту задачу решить сложно, они могут забыть, не захотеть,отложить на завтра, на потом и т.д. показательные порки не помогли и вряд ли помогут

Добавлено через 5 минут
Цитата Сообщение от Панург Посмотреть сообщение
А вот СССР не надо трогать
что вы...святое время...детство
имелось ввиду отсутсвие ПЭВМ
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
25.01.2018, 13:51
Цитата Сообщение от Braser Посмотреть сообщение
сделать несколько логических полей, для каждого пользователя свое
Это плохой стиль проектирования баз данных. Вам придется менять структуруру таблиц при изменении числа пользователей - ведь каждый пользователь должен иметь свою персональную колонку в серверной таблице, пользователи имеют свойство увольняться, приниматься, заменять друг друга, так что это плохая идея.

Если вам на сервере нужно знать, кто из пользователей учел данные - это другой вопрос, тогда нужно делать таблицу для хранения этих данных - там 2 ключевых колонки (ключи строки изменений и идентификатор пользователя) и флаг "учтено", клиент должен устанавливать флаг своей записи, если изменение было учтено.

Если не нужно знать, какой именно пользователь уже учел изменения, то вариант с датами наиболее подходящий - клиентское приложение определяет само учтена запись или нет.

Идея с метками, какому подразделению изменение предназначено уже лучше, но опять же - структура подразделения может меняться, поэтому лучше это сделать также через табличку с ключами строки изменений и кода подразделения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2018, 13:51
Помогаю со студенческими работами здесь

Создание оповещения об истекающих сроках и вывода соответствующих записей в форме
Здравствуйте! Помогите плиииз! Нужно сделать уведомление (оповещение) при открытии формы об истечении срока сдачи заказа за день. И...

Оповещения активных пользователей
Здравствуйте! Необходимо оповещать пользователей, например о прекращении работы программы. Было найдено решение: Сообщение=""; ...

Функция оповещения как вызвать?
if (isset($_GET)){ $err=$_GET; if($err==1) echo'<h4>Pls insert user and pass!</h4>'; ВЫВЕСТИ ОПОВЕЩЕНИЕ; ...

Функция для пользователей
Доброго времени суток, вот буквально сегодня начал работать с "Js" и столкнулся с некоторыми проблемами, данный скрипт мне нужно вставить...

Не работает функция проверки пользователей при авторизации
Здравствуйте! Я переписал функцию входа на сайт так, чтобы при неправильном логине или пароле мне переходило не на wp-login а на страницу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru