Topic: Блокировка страницы для изменения при выдаче заказа

Доброго времени суток друзья, а возможно сделать так,  при установки галочки на дате выдачи что-бы  дальнейшее редактирование заказа было не возможным для всех кроме админа?

Post's attachments

Attachment icon 2021-02-13_20-56-55.png 3.53 kb, 92 downloads since 2021-02-13 

С уважением.

Re: Блокировка страницы для изменения при выдаче заказа

Возможно, с помощью скриптов )))

Визуальное программирование: блог и телеграм-канал.

Re: Блокировка страницы для изменения при выдаче заказа

k245 wrote:

Возможно, с помощью скриптов )))

дружище, это я понимаю, как это реализовать?

С уважением.

4 (edited by sibprogsistem 2021-02-14 14:33:54)

Re: Блокировка страницы для изменения при выдаче заказа

Patriot10200 wrote:

Доброго времени суток друзья, а возможно сделать так,  при установки галочки на дате выдачи что-бы  дальнейшее редактирование заказа было не возможным для всех кроме админа?

это не возможно просто так объяснить, нам даже не известно как у Вас происходит авторизация
загрузите Ваш проект

5 (edited by vovka3003 2021-02-14 17:25:02)

Re: Блокировка страницы для изменения при выдаче заказа

Patriot10200 wrote:

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

k245 wrote:

Возможно, с помощью скриптов )))

Согласен... Это возможно...

Patriot10200 wrote:

.. как это реализовать?

Методом написания скрипта (примерная логика ниже):

1. Так как для TControl объектов в форме программой не объявлено свойство Enabled, обход в цикле становится проблематичным, посему рекомендую для компактности кода уложить требуемые для закрытия к редактированию компоненты внутри TPanel и управлять ее свойством Enabled.

2. В событии OnChange DateTimePicker-а по условию "if not Application.User.is_admin then" {пользователь "не админ"} переключайте свойство Enabled панели (Form1.Panel1.Enabled := not Form1.DateTimePicker1.Checked;) {"включена" = "не установлен флаг"}

3. Для срабатывания скрипта управления доступностью, при появлении формы добавьте дополнительный вызов его в событии OnShow:
Form1_DateTimePicker1_OnChange(Form1.DateTimePicker1);

Вроде ничего не упустил... k245, проверьте плз, все правильно описал по теме "как это реализовать"?

Re: Блокировка страницы для изменения при выдаче заказа

vovka3003 wrote:

k245, проверьте плз, все правильно описал по теме "как это реализовать"?

Это верное решение, при условии, что есть техническая возможность разместить блокируемые компоненты на одной панели. Но, если такой возможности нет, то я предлагаю требование  "редактирование невозможно" преобразовать в "сохранение редактирования невозможно", что позволит упростить алгоритм: нужно в обработчике кнопки сохранения добавить проверку условия разрешения сохранения и, если условие не выполняется, то выдавать сообщение и устанавливать Cancel := True.


Плюс этого решения - простота реализации, минус - недружественость по отношению к пользователю, который узнает о факте невозможности сохранения только после нажатия кнопки "Сохранить"


Альтернативный вариант панели - изменение свойства Enabled для каждого из компонентов редактирования, которые нужно блокировать.

Визуальное программирование: блог и телеграм-канал.

Re: Блокировка страницы для изменения при выдаче заказа

На самом деле возможно всё. Кто в этом сомневается, рекомендую к просмотру:

https://vk.com/video367982615_456239030

Визуальное программирование: блог и телеграм-канал.

Re: Блокировка страницы для изменения при выдаче заказа

vovka3003 wrote:

[/quote=Patriot10200].. возможно сделать так,  при установки галочки на дате выдачи что-бы  дальнейшее редактирование заказа было не возможным для всех кроме админа?

k245 wrote:

Возможно, с помощью скриптов )))

Согласен... Это возможно...

Patriot10200 wrote:

.. как это реализовать?

Методом написания скрипта (примерная логика ниже):

1. Так как для TControl объектов в форме программой не объявлено свойство Enabled, обход в цикле становится проблематичным, посему рекомендую для компактности кода уложить требуемые для закрытия к редактированию компоненты внутри TPanel и управлять ее свойством Enabled.

2. В событии OnChange DateTimePicker-а по условию "if not Application.User.is_admin then" {пользователь "не админ"} переключайте свойство Enabled панели (Form1.Panel1.Enabled := not Form1.DateTimePicker1.Checked;) {"включена" = "не установлен флаг"}

3. Для срабатывания скрипта управления доступностью, при появлении формы добавьте дополнительный вызов его в событии OnShow:
Form1_DateTimePicker1_OnChange(Form1.DateTimePicker1);

Вроде ничего не упустил... k245, проверьте плз, все правильно описал по теме "как это реализовать"?

Огромное спасибо, подробно расписано, все отлично работает!!!

С уважением.

Re: Блокировка страницы для изменения при выдаче заказа

k245 wrote:

На самом деле возможно всё. Кто в этом сомневается, рекомендую к просмотру:

https://vk.com/video367982615_456239030

Семь перпендикулярных красных линий  прозрачного цвета и две из них зеленые  lol lol lol lol

Re: Блокировка страницы для изменения при выдаче заказа

k245 wrote:

На самом деле возможно всё. Кто в этом сомневается, рекомендую к просмотру:

https://vk.com/video367982615_456239030

И снова здравствуйте, может подскажете? а то лыжи не едут(((
значит после ввода ключа меняется только 1 верхний Label15

if (sKey='0') then
   frmAbout.Label15.Caption := 'Сергеев Сергей Сергеевич';
   frmAbout.Label8.Caption := 'ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

if (sKey='000') then
   frmAbout.Label15.Caption := 'Иванов Иван Иванович';
   frmAbout.Label8.Caption := 'НЕ ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

а Label8 Берется самый последний т.е. при авторизации ключа (0) получается так:

if (sKey='0') then
  frmAbout.Label15.Caption := 'Сергеев Сергей Сергеевич';
  frmAbout.Label8.Caption := 'НЕ ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

С уважением.

11 (edited by sibprogsistem 2021-02-16 15:56:48)

Re: Блокировка страницы для изменения при выдаче заказа

Patriot10200 wrote:

при установки галочки на дате выдачи что-бы  дальнейшее редактирование заказа было не возможным для всех кроме админа?

создайте  поле в БД  на пример с именем (enabled):
теперь в событиях ( OnChange ) поля даты создайте  такую запись

if (Form1.DateTimePicker1.Checked:=True) then SQLExecute('UPDATE базаДанных SET enabled="1" WHERE id='id_редактирумой записи) else SQLExecute('UPDATE базаДанных SET enabled="0" WHERE id='id_редактирумой записи);

естественно перед этой записью нужно еще проверить админ или нет
   
Далее создаете условие
при попытке открыть запись 
нужно проверить админ или нет, если нет, обратиться к БД и проверить закрыта данная запись или нет

Re: Блокировка страницы для изменения при выдаче заказа

sibprogsistem wrote:
Patriot10200 wrote:

при установки галочки на дате выдачи что-бы  дальнейшее редактирование заказа было не возможным для всех кроме админа?

создайте  поле в БД  на пример с именем (enabled):
теперь в событиях ( OnChange ) поля даты создайте  такую запись

if (Form1.DateTimePicker1.Checked:=True) then SQLExecute('UPDATE базаДанных SET enabled="1" WHERE id='id_редактирумой записи) else SQLExecute('UPDATE базаДанных SET enabled="0" WHERE id='id_редактирумой записи);

естественно перед этой записью нужно еще проверить админ или нет
   
Далее создаете условие
при попытке открыть запись 
нужно проверить админ или нет, если нет, обратиться к БД и проверить закрыта данная запись или нет

Спасибо, данный вопрос уже решен, появился следующий:

может подскажете? а то лыжи не едут(((
значит после ввода ключа меняется только 1 верхний Label15

if (sKey='0') then
   frmAbout.Label15.Caption := 'Сергеев Сергей Сергеевич';
   frmAbout.Label8.Caption := 'ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

if (sKey='000') then
   frmAbout.Label15.Caption := 'Иванов Иван Иванович';
   frmAbout.Label8.Caption := 'НЕ ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

а Label8 Берется самый последний т.е. при авторизации ключа (0) получается так:

if (sKey='0') then
  frmAbout.Label15.Caption := 'Сергеев Сергей Сергеевич';
  frmAbout.Label8.Caption := 'НЕ ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ';
Result := True;

С уважением.

Re: Блокировка страницы для изменения при выдаче заказа

Patriot10200 wrote:

значит после ввода ключа меняется только 1 верхний Label15

а что это вообще?
у Вас в двух вариантах  sKey='0'
 
что означает это sKey='0'?
 
возвращаете Result := True; то есть это функция, но почему во всех варианта True?

Re: Блокировка страницы для изменения при выдаче заказа

sibprogsistem wrote:
Patriot10200 wrote:

значит после ввода ключа меняется только 1 верхний Label15

а что это вообще?
у Вас в двух вариантах  sKey='0'
 
что означает это sKey='0'?
 
возвращаете Result := True; то есть это функция, но почему во всех варианта True?

if (sKey='0') then - ключ активации програмыы
   frmAbout.Label15.Caption := 'Сергеев Сергей Сергеевич'; - владелец ключа
   frmAbout.Label8.Caption := 'ЗАРЕГЕСТРИРОВАНАЯ ВЕРСИЯ ПРОГРАММЫ'; и таких ключей несколько,  при регистрации ключа получается что из всех ключей на странице информации о регистрации программы меняется владелец ключа,  допустим поле (label8) берется с самого последнего ключа пример


Ключ - 0
Фио - Сергеев Сергей Сергеевич (label15)
Статус регистрации ПО - демо режим(label8)

Ключ - 000
Фио - Иванов Иван Иванович(label15)
Статус регистрации ПО - зарегестрирован (label8)

В итоге при регистрации ключа - 0 получается так,

Ключ - 0
Фио - Сергеев Сергей Сергеевич (label15)
Статус регистрации ПО - зарегестрирован (label8)

С уважением.

Re: Блокировка страницы для изменения при выдаче заказа

ключ программы на предприятии, для каждого конкретного пользователя или вообще ключ активации ПО?

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

16 (edited by Patriot10200 2021-02-16 23:50:28)

Re: Блокировка страницы для изменения при выдаче заказа

sibprogsistem wrote:

ключ программы на предприятии, для каждого конкретного пользователя или вообще ключ активации ПО?

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


Ключ активации по
По сути, при активации ключа ПО
Мне нужно чтоб на форме frmAbout несколько label менялись на инфу взятую из скрипта,  а меняется только 1 label,

С уважением.

Re: Блокировка страницы для изменения при выдаче заказа

Уважаемый Patriot10200


У нас тут технический форум, а не конкурс "угадай ответ".  Вы уж потрудитесь формулировать ваши вопросы конкретно, если вопросы по  коду, приложите рабочий код, а не загадочные фрагменты.

Визуальное программирование: блог и телеграм-канал.

18 (edited by sibprogsistem 2021-02-17 07:18:53)

Re: Блокировка страницы для изменения при выдаче заказа

Patriot10200 wrote:
sibprogsistem wrote:

ключ программы на предприятии, для каждого конкретного пользователя или вообще ключ активации ПО?

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


Ключ активации по
По сути, при активации ключа ПО
Мне нужно чтоб на форме frmAbout несколько label менялись на инфу взятую из скрипта,  а меняется только 1 label,

Я так понимаю - Пользователь вводит код активации и  на форме отображается имя владельца лицензии
тогда Вам нужно использовать -
EncryptRC5('что зашифровываем', 'алгоритм шифрования - любое слово')                 
DecryptRC5('зашифрованный текст', 'используем тоже слово что и в алгоритме шифрования')
Естественно кодировать нужно данные пользователя...

Если программа для определённого круга то просто посмотрите проекты авторизации на форуме в разделе FAQ
в этом проекте есть как авторизация с ролями так и регистрация ПО http://myvisualdatabase.com/forum/viewtopic.php?id=6853

Re: Блокировка страницы для изменения при выдаче заказа

sibprogsistem wrote:
Patriot10200 wrote:
sibprogsistem wrote:

ключ программы на предприятии, для каждого конкретного пользователя или вообще ключ активации ПО?

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


Ключ активации по
По сути, при активации ключа ПО
Мне нужно чтоб на форме frmAbout несколько label менялись на инфу взятую из скрипта,  а меняется только 1 label,

Я так понимаю - Пользователь вводит код активации и  на форме отображается имя владельца лицензии
тогда Вам нужно использовать -
EncryptRC5('что зашифровываем', 'алгоритм шифрования - любое слово')                 
DecryptRC5('зашифрованный текст', 'используем тоже слово что и в алгоритме шифрования')
Естественно кодировать нужно данные пользователя...

Если программа для определённого круга то просто посмотрите проекты авторизации на форуме в разделе FAQ
в этом проекте есть как авторизация с ролями так и регистрация ПО http://myvisualdatabase.com/forum/viewtopic.php?id=6853

Спасибо полезная информация.

С уважением.