поле, вычислыемое один раз

  • Автор темы Wiky
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

Wiky

Здраствуйте!
Помогите, плиз! При изменении значения поля типа список необходимо в другое поле занести дату когда оно(это изменение) произошло и больше не менять значение этого поля.
 
K

K-Fire

скриптом на exit field списочного поля можно. Или на postopen запоминать старое значение списка, на postsave проверять, если изменилось - запоминать дату-время в другом поле.
 
E

Elena Nefedova

Или отслеживать - если дата во втором поле имеется, то скрывать первое поле, а на его месте выводить Computed for Display с нужными данными.

Другой хороший вариант - использовать свойство поля Input Enabled.
В семерке работает и для Notes Syle, и для OS Style.
 
F

Fossil Code

При изменении значения поля типа список необходимо в другое поле занести дату когда оно(это изменение) произошло и больше не менять значение этого поля.

Прошу прощения, постановка задачи представляется недостаточно логичной и полной. Как это понимать: поле списка может быть отредактировано однократно после первоначального заполнения? А первоначальное заполнение списка редактированием считается? Или можно редактировать список многократно, но запоминать дату только первого изменения? Думаю, что пока проблема скорее в постановке, чем в реализации.
 
I

IsAvailable

onChange, может, использовать?

Для: Fossil Code
Согласен. Фраза "и больше не менять значение этого поля." неоднозначна и поэтому не понять, что именно требуется (
 
W

Wiky

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

IsAvailable

Ну можно на форме скрытое поле завести. И по дефолту писать туда "0".
при редактировании, если это поле = "0", то произвести соответствующие изменения и значение поля изменить на "1". Если значение поля = "1", то никаких дополнительных записей не делать.
 
F

Fossil Code

Ну, тогда так:

1) делаем скрытое поле old_list (размещаем его _внизу_ формы)
2) при каждом открытии документа для редактирования (соотв. событие формы) в коде для события заносим туда значение исх. списка @Setfield("old_list";my_list)
3) полагаем, что поле даты изменения первоначально инициализировано в ничто, т.е. list_change_date = ""
4) в событие сохранения документа пишем код:

@Setfield("list_change_date";@If((my_list!=old_list)&(list_change_date="");@Now;list_change_date))

И наслаждаемся...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!