LKDS
8 800 100 8421
звонок бесплатный

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Автоматизированное размещение лифтов в панели состояний
Андрей Ефименко
сообщение 21.4.2017, 15:20
Сообщение #1


Активист
****

Группа: Разработчики
Сообщений: 1 597
Регистрация: 8.2.2006
Пользователь №: 4



Клиент - серверное решение используется все шире. На одном сервере может быть много клиентов, имеющих доступ к разному набору лифтов, размеры мониторов разные. Для решения проблемы рационального размещения прямоугольников лифтов в панели состояния SPult были введены "профили" пользователей. Этим инструментом пользуются, но это достаточно трудоёмко - переделывать профили (т.е. размещения в произвольных группах для конкретных пользователей) при появлении новых лифтов.

Проблема автоматизированного размещения лифтов в панели состояний уже обсуждалась в теме по SPult, но в связи с важностью проблемы вынес обсуждение отдельную тему.

Что бы обсуждать предметно, была разработана программа AvtoTable доступная по ссылке

В неё можно загрузить XML файл структуры от MPultPro (MPultPro.XML), загруженные структуры SPult, выгруженную структур LKDSDisp (LKDSDispStruct.XML): Прикрепленное изображение Прикрепленное изображение Далее можно прорисовать любой диспетчерский пункт: Прикрепленное изображение назначить дополнительные параметры размещения: Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение и получить, например, такое размещение: Прикрепленное изображение Можно менять размеры окна.

Предлагаю посмотреть размещение реализованное в программе, осудить, ну и предложить что-нибудь, опять же конструктивное.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kranch
сообщение 21.4.2017, 15:40
Сообщение #2


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 1.2.2013
Пользователь №: 6 734



Цитата(Андрей Ефименко @ 21.4.2017, 12:20) *

Клиент - серверное решение используется все шире. На одном сервере может быть много клиентов, имеющих доступ к разному набору лифтов, размеры мониторов разные. Для решения проблемы рационального размещения прямоугольников лифтов в панели состояния SPult были введены "профили" пользователей. Этим инструментом пользуются, но это достаточно трудоёмко - переделывать профили (т.е. размещения в произвольных группах для конкретных пользователей) при появлении новых лифтов.

Проблема автоматизированного размещения лифтов в панели состояний уже обсуждалась в теме по SPult, но в связи с важностью проблемы вынес обсуждение отдельную тему.

Что бы обсуждать предметно, была разработана программа AvtoTable доступная по ссылке

В неё можно загрузить XML файл структуры от MPultPro (MPultPro.XML), загруженные структуры SPult, выгруженную структур LKDSDisp (LKDSDispStruct.XML): Прикрепленное изображение Прикрепленное изображение Далее можно прорисовать любой диспетчерский пункт: Прикрепленное изображение назначить дополнительные параметры размещения: Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение и получить, например, такое размещение: Прикрепленное изображение Можно менять размеры окна.

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


Для применения настройки ко всей диспетчерской целиком не хватает контекстного меню "Параметры размещения диспетчерской" которое появляется при нажатии на название диспетчерской.
А вообще было бы удобней, что бы при вызове контекстного меню Диспетчерской, и выборе"Параметры размещения диспетчерской" появлялось появлялось окно с 2 блоками:
-Первый блок -меню из "Параметры размещения улицы "
-Второй блок -меню из "Параметры размещения дома"
При изменениях в данных блоках применяются параметры для всех улиц и домов размещения. Впоследствии можно откорректировать определенную улицу или дом отдельно.

При вызове контекстного меню определенной улицы и выборе "Параметры размещения улицы" алгоритм тот же, что и описанный выше (с двумя блоками) с поправкой на то, что изменения применяются к одной улице.

По размещению: В "Параметрах отображения дома" не хватает пункта "С разделителем в одно место+наименование", при выборе которого в пустой клетке разделения прописывается номер дома.

Так же на 1 улице может быть всего 1 дом с одним лифтом, и выделять для такой улицы целых 2 строки экрана, которые будут почти пустые, негуманно, а обозначить улицу надо. Можно ввести параметр типа"Совмещать не полностью занятые строки" если выбран данный параметр, то:Прикрепленное изображение
То есть производится проверка, если следующая улица помещается в предыдущую строку, то она переносится вверх, и так далее.Соответственно между улицами делается 1 пропуск, если в настройках выбрано указывать наименование дома, то 2 пропуска, и во втором указывается наименование дома.

Так же, в дополнение к вышеописанному параметру можно сделать дополнительный параметр типа"Совмещать улицы не по порядку" при выборе которого происходит проверка и если выше есть полупустая строка к ней присоединяется улица, которая помещается в эту строку, пусть даже c разных концов экрана.Прикрепленное изображение

При добавлении новых лифтов в улицу, на которой было мало лифтов происходит проверка, если все улицы, которые были на данной строке помещаются, то все остается без изменений, если не помещается последняя, она спускается на новую строку, но если выбрано "совмещение не по порядку" происходит проверка, и при наличии места выше(или ниже) она перемещается туда. Потом происходит проверка n-1 улицы данной строки, и алгоритм тот же. При уменьшении количества домов(лифтов) алгоритм примерно тот же.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Андрей Ефименко
сообщение 24.4.2017, 14:06
Сообщение #3


Активист
****

Группа: Разработчики
Сообщений: 1 597
Регистрация: 8.2.2006
Пользователь №: 4



Цитата(Kranch @ 21.4.2017, 16:40) *

Для применения настройки ко всей диспетчерской целиком не хватает контекстного меню "Параметры размещения диспетчерской" которое появляется при нажатии на название диспетчерской.
А вообще было бы удобней, что бы при вызове контекстного меню Диспетчерской, и выборе"Параметры размещения диспетчерской" появлялось появлялось окно с 2 блоками:
-Первый блок -меню из "Параметры размещения улицы "
-Второй блок -меню из "Параметры размещения дома"
При изменениях в данных блоках применяются параметры для всех улиц и домов размещения. Впоследствии можно откорректировать определенную улицу или дом отдельно.

При вызове контекстного меню определенной улицы и выборе "Параметры размещения улицы" алгоритм тот же, что и описанный выше (с двумя блоками) с поправкой на то, что изменения применяются к одной улице.

По размещению: В "Параметрах отображения дома" не хватает пункта "С разделителем в одно место+наименование", при выборе которого в пустой клетке разделения прописывается номер дома.

Так же на 1 улице может быть всего 1 дом с одним лифтом, и выделять для такой улицы целых 2 строки экрана, которые будут почти пустые, негуманно, а обозначить улицу надо. Можно ввести параметр типа"Совмещать не полностью занятые строки" если выбран данный параметр, то:Прикрепленное изображение
То есть производится проверка, если следующая улица помещается в предыдущую строку, то она переносится вверх, и так далее.Соответственно между улицами делается 1 пропуск, если в настройках выбрано указывать наименование дома, то 2 пропуска, и во втором указывается наименование дома.

Так же, в дополнение к вышеописанному параметру можно сделать дополнительный параметр типа"Совмещать улицы не по порядку" при выборе которого происходит проверка и если выше есть полупустая строка к ней присоединяется улица, которая помещается в эту строку, пусть даже c разных концов экрана.Прикрепленное изображение

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

Предложения понятны, буду реализовывать и попутно выкладывать доработанную программу.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kranch
сообщение 26.4.2017, 13:23
Сообщение #4


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 1.2.2013
Пользователь №: 6 734



Цитата(Андрей Ефименко @ 24.4.2017, 11:06) *

Предложения понятны, буду реализовывать и попутно выкладывать доработанную программу.


Ещё, для нас было бы актуально, что бы можно было поменять цвет фона с белого на любой. Можно это организовать либо настройках "Параметры размещения диспетчерской" по типу, как это реализовано в размещении в"виде произвольных групп", в "цвет фона группы", либо, как это реализовано сейчас, через ключ. Так же, было бы удобно, если эти настройки выполнялись через создание профиля, а клиент уже подтягивал эти настройки.

Хотя, система профилей больше подходит вот для чего. У нас некоторые прорабы, и некоторые механики просят доступ к лифтам, которые они обслуживают. Сейчас мы думаем, как это можно организовать, и получается, что на текущий момент придется для каждого создавать отдельную группу(а их всего может быть 32), с их лифтами, и давать им к ней доступ для просмотра.Что не есть удобно. Так же у нас забиты справочные параметры лифта(то есть каждый лифт на сервере привязан к прорабу+механику). Соответственно, было бы удобно дать пользователю доступ ко всем лифтам, но ограничивать видимость и взаимодействие с лифтом фильтром "профиль". При подключении SPult, или ASpult вбиваем пользователя, пароль, в поле "профиль" данные из справочных параметров лифта(допустим, что забито в поле "Бригадир"), и при подключении сервер подгружает файл не со всеми доступными лифтами, этого пользователя, а только те лифты, у которых в поле "Бригадир" предварительно записаны нужные данные. Права определяются настройкой пользователя. Можно добавить "наследование" то есть, если механик ушел в отпуск, и нужно его лифты передать на просмотр другому, то делаем Профиль нового механика наследником профиля старого механика, и при заходе в ASpult ему отображаются лифты 2х профилей. Конечно, это все ИМХО, и расписано, как было бы удобнее нашей организации.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Андрей Ефименко
сообщение 27.4.2017, 9:02
Сообщение #5


Активист
****

Группа: Разработчики
Сообщений: 1 597
Регистрация: 8.2.2006
Пользователь №: 4



Цитата(Kranch @ 26.4.2017, 14:23) *

Ещё, для нас было бы актуально, что бы можно было поменять цвет фона с белого на любой. Можно это организовать либо настройках "Параметры размещения диспетчерской" по типу, как это реализовано в размещении в"виде произвольных групп", в "цвет фона группы", либо, как это реализовано сейчас, через ключ. Так же, было бы удобно, если эти настройки выполнялись через создание профиля, а клиент уже подтягивал эти настройки.

Хотя, система профилей больше подходит вот для чего. У нас некоторые прорабы, и некоторые механики просят доступ к лифтам, которые они обслуживают. Сейчас мы думаем, как это можно организовать, и получается, что на текущий момент придется для каждого создавать отдельную группу(а их всего может быть 32), с их лифтами, и давать им к ней доступ для просмотра.Что не есть удобно. Так же у нас забиты справочные параметры лифта(то есть каждый лифт на сервере привязан к прорабу+механику). Соответственно, было бы удобно дать пользователю доступ ко всем лифтам, но ограничивать видимость и взаимодействие с лифтом фильтром "профиль". При подключении SPult, или ASpult вбиваем пользователя, пароль, в поле "профиль" данные из справочных параметров лифта(допустим, что забито в поле "Бригадир"), и при подключении сервер подгружает файл не со всеми доступными лифтами, этого пользователя, а только те лифты, у которых в поле "Бригадир" предварительно записаны нужные данные. Права определяются настройкой пользователя. Можно добавить "наследование" то есть, если механик ушел в отпуск, и нужно его лифты передать на просмотр другому, то делаем Профиль нового механика наследником профиля старого механика, и при заходе в ASpult ему отображаются лифты 2х профилей. Конечно, это все ИМХО, и расписано, как было бы удобнее нашей организации.

Это все касается клиент-серверного решения в целом. Ограниченное число групп лифтов, к которым даётся доступ и права существенно упрощает реализацию ПО, но и накладывает ограничения на дробление доступа. Если использовать профили и в группах разместить не все лифты, то действительно в панели состояний будут только лифты, которые присутствую в группах размещения в профиле, но в дереве все равно будут все лифты и в ASPult будут все лифты.

При разработки нашего "облака" (LKDSCloud) было введено понятие "организации", причем в разных организациях может быть описан один и тот же лифт. Наверное можно было бы и в LKDSDisp ввести понятие "организации", тогда каждая организация может иметь свои 32 группы лифтов по доступу и ограничение на число групп по доступу будет снято. "Организацией" может быть, например, хозяин лифтов - ТСЖ, в этой организации только лифты данного ТСЖ для наблюдения за ними самим ТСЖ, а "объединенная организация" содержит все лифты и предназначена для диспетчеризации.

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Андрей Ефименко
сообщение 27.4.2017, 10:41
Сообщение #6


Активист
****

Группа: Разработчики
Сообщений: 1 597
Регистрация: 8.2.2006
Пользователь №: 4



Цитата(Kranch @ 21.4.2017, 16:40) *

Для применения настройки ко всей диспетчерской целиком не хватает контекстного меню "Параметры размещения диспетчерской" которое появляется при нажатии на название диспетчерской.
А вообще было бы удобней, что бы при вызове контекстного меню Диспетчерской, и выборе"Параметры размещения диспетчерской" появлялось появлялось окно с 2 блоками:
-Первый блок -меню из "Параметры размещения улицы "
-Второй блок -меню из "Параметры размещения дома"
При изменениях в данных блоках применяются параметры для всех улиц и домов размещения. Впоследствии можно откорректировать определенную улицу или дом отдельно.

При вызове контекстного меню определенной улицы и выборе "Параметры размещения улицы" алгоритм тот же, что и описанный выше (с двумя блоками) с поправкой на то, что изменения применяются к одной улице.

По размещению: В "Параметрах отображения дома" не хватает пункта "С разделителем в одно место+наименование", при выборе которого в пустой клетке разделения прописывается номер дома.

Так же на 1 улице может быть всего 1 дом с одним лифтом, и выделять для такой улицы целых 2 строки экрана, которые будут почти пустые, негуманно, а обозначить улицу надо. Можно ввести параметр типа"Совмещать не полностью занятые строки" если выбран данный параметр, то:Прикрепленное изображение
То есть производится проверка, если следующая улица помещается в предыдущую строку, то она переносится вверх, и так далее.Соответственно между улицами делается 1 пропуск, если в настройках выбрано указывать наименование дома, то 2 пропуска, и во втором указывается наименование дома.

Так же, в дополнение к вышеописанному параметру можно сделать дополнительный параметр типа"Совмещать улицы не по порядку" при выборе которого происходит проверка и если выше есть полупустая строка к ней присоединяется улица, которая помещается в эту строку, пусть даже c разных концов экрана.Прикрепленное изображение

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

Выложен следующий вариант Программы демонстрации авторазмещения

Попытался упростить. Все параметры указываются только для вкладки (Диспетчрской), для отдельной улицы или отдельного дома задать параметры нельзя.

Параметры следующие: Прикрепленное изображение

Опять же хотел бы получить отзывы.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Kranch
сообщение 27.4.2017, 12:39
Сообщение #7


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 1.2.2013
Пользователь №: 6 734



Цитата(Андрей Ефименко @ 27.4.2017, 7:41) *

Выложен следующий вариант Программы демонстрации авторазмещения

Попытался упростить. Все параметры указываются только для вкладки (Диспетчрской), для отдельной улицы или отдельного дома задать параметры нельзя.

Параметры следующие: Прикрепленное изображение

Опять же хотел бы получить отзывы.


Ответил в ЛС
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Андрей Ефименко
сообщение 28.4.2017, 14:08
Сообщение #8


Активист
****

Группа: Разработчики
Сообщений: 1 597
Регистрация: 8.2.2006
Пользователь №: 4



Цитата(Андрей Ефименко @ 27.4.2017, 11:41) *

Выложен следующий вариант Программы демонстрации авторазмещения

Попытался упростить. Все параметры указываются только для вкладки (Диспетчрской), для отдельной улицы или отдельного дома задать параметры нельзя.

Параметры следующие: Прикрепленное изображение

Опять же хотел бы получить отзывы.

Очередной вариант.

Сделаны косметические изменения:

1) можно менять цвет фона всей панели
2) Надписи делаются посередине строки по высоте.
3) Номера домов выравниваются вправо
4) Если наименование улицы или номер дома не помещается полностью, то строка обрезается и в конце "..."
5) Если используются разделители улиц, но номер первого дома пишется в этом разделителе, т.е. экономится одно место на одну улицу
6) Размер шрифта надписей меняется в зависимости от размера одного места (прямоугольника лифта)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 1.5.2017, 0:48