Список форумов КЛУБ FileMaker.RU КЛУБ FileMaker.RU

 
new forum: www.fmforum.ru
FileMaker DevCon Rus 2017.IV коенференция российских разработчиков на платформе FileMaker.
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как запретить править сохранённые записи?

 
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM
Предыдущая тема :: Следующая тема  
Автор Сообщение
SVarvar



Зарегистрирован: 06.11.2006
Сообщения: 194
Откуда: Николаев Украина

СообщениеДобавлено: Вт Дек 27, 2016 10:17 am    Заголовок сообщения: Как запретить править сохранённые записи? Ответить с цитатой

Делаю базу регистрации въезда\выезда транспорта на предприятии.
Там простая таблица с вводом данных по дате, времени, номеру авто, водителя, номеров накладных и описания груза. Отображение табличное.

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

Благодарю!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Ср Дек 28, 2016 10:10 pm    Заголовок сообщения: Ответить с цитатой

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


может, так?
User can edit if: get(recordnumber) = Get(TotalRecordCount)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Николай К



Зарегистрирован: 04.09.2015
Сообщения: 120
Откуда: Кишинев

СообщениеДобавлено: Пн Янв 02, 2017 6:08 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
get(recordnumber) = Get(TotalRecordCount)


Не плохая идея, но есть две небольшие проблемы:

Пользователь может модифицировать последнюю строку до того как он создаст новую чистую запись.

Если поменять сортировку, другая запись будет доступна для правки.

Я думал о флаге который выставляется триггером на commit и привилегии ограничивающей правку по этому флагу.

Но если честно, сам бы я использовал форму с набором глобальных полей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrey Volkov



Зарегистрирован: 26.10.2009
Сообщения: 1609
Откуда: Ярославль

СообщениеДобавлено: Пн Янв 02, 2017 6:30 pm    Заголовок сообщения: Ответить с цитатой

Код:
Если поменять сортировку, другая запись будет доступна для правки


id = Last(AllRelatedRecords::id)
или можно настроить реляцию к self_join_table:

OriginalTable::id < SameTable::id
тогда отсутствие записи в связанной таблице означает, что редактируется последняя запись. разрешено редактировать, если:

not SameTable::id
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Alex_Z



Зарегистрирован: 17.11.2003
Сообщения: 871

СообщениеДобавлено: Вт Янв 03, 2017 8:06 am    Заголовок сообщения: Re: Как запретить править сохранённые записи? Ответить с цитатой

SVarvar писал(а):
Кто-нить как-то такое реализовывал?
Просто правами запретить правку юзверю не получается... оно вообще не даёт ввести текст в поля.


Пару лет назад я делал довольно сложную 20-табличную систему, очень критичную по безопастности. Там – редактирование или удаление записей запрещено вообще, во всех таблицах и всем, даже админу. ФМ позволил решить задачу без заморочек просто описав в привилегиях возможность создавать записи но не редактировать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
SVarvar



Зарегистрирован: 06.11.2006
Сообщения: 194
Откуда: Николаев Украина

СообщениеДобавлено: Ср Янв 04, 2017 1:53 pm    Заголовок сообщения: Ответить с цитатой

Всё получилось!
Edit разрешен, если: User = Current User and Дата записи = Get ( CurrentDate ).
Т.е. правка данных разрешена только при условии, что имя пользователя создавшего запись равна имени текущего пользователя и дата создания записи равна текущей дате. Таким образом пользователь может корректировать только данные, введённые им за текущую дату.
Это нужно для того, чтобы в случае ошибки он всё-таки мог оперативно отредактировать запись, но только за текущую смену. На следующий день он уже не сможет это сделать.
Всем спасиб!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов КЛУБ FileMaker.RU -> Практика FM Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB