Страница 1 из 2

Значение поля по умолчанию

Добавлено: 19 апр 2017, 11:25
HakimzyanovA
Есть сущность "Документы", в ней поле "Входящий номер", ВхНом. Возможно ли при добавлении нового документа в поле "Входящий номер" автоматически заносить некоторое значение, например следующий номер по порядку?
Т.е. для поля задать атрибут "по-молчанию", а в нем формулу вида "MAX(ВхНом)+1".

Re: Значение поля по умолчанию

Добавлено: 28 апр 2017, 22:57
nikorn
1) Если вы хотите запретить ручной ввод номера и генерировать его автоматически, то вам следует использовать для номера поле типа Формула.

2) Какую формулу вы придумаете, особой роли не играет. Можете, например, использовать текущую дату и время или просто использовать какую-то комбинацию с ID (или вообще сам ID). Только нужно убедиться, что генерируемый номер будет уникальным

Re: Значение поля по умолчанию

Добавлено: 29 апр 2017, 16:50
HakimzyanovA
Нет, я хочу иметь возможность задавать значение поля по умолчанию, формулой или нет - да, роли не играет. Пользователь должен иметь возможность либо оставить это значение, либо исправить.

Re: Значение поля по умолчанию

Добавлено: 29 апр 2017, 16:52
nikorn
Насколько я знаю, сейчас такой возможности нет.

Либо вы вычисляете поле автоматически (но тогда вы не можете его изменить), либо вводите его руками.

Re: Значение поля по умолчанию

Добавлено: 29 апр 2017, 17:14
HakimzyanovA
Понятно, что нет. Именно поэтому топик находится в разделе предложения. Ведь это вполне стандартная возможность для правильного софта. По-хорошему, не помешало бы иметь возможность прицепить к полю еще и пользовательскую функцию-валидатор на php, которая возвращает true/false в зависимости от допустимости введенного значения. Если false - сообщение пользователю, можно стандартное, и не давать сохранять. Далее - функция-валидатор формы, которая проверяет уже все поля, например должно быть соблюдено условие date1<=date2. Вроде как eval() позволяет это делать? Здесь конечно нужно подумать о безопасности, но зато гибкости и удобства добавит с лихвой :)

Re: Значение поля по умолчанию

Добавлено: 22 июн 2017, 11:16
HakimzyanovA
Сергей, хотелось бы услышать Ваше мнение :)

Re: Значение поля по умолчанию

Добавлено: 22 июн 2017, 11:29
nikorn
Я не Сергей, но могу дать комментарий :-)

В принципе, это сделать не сложно, если вы владеете PHP на начальном уровне. Нужно просто значение по умолчанию для поля ввода брать не из настроек, а вычислять по формуле. Это одна строчка кода. На псевдокоде это выглядит примерно так:

Код: Выделить всё

Если (Сущность = Договор) {
  Если (Поле ввода = Номер) {
    Значение по умолчанию = Сгенерированная строка
  }
}
Сюда же можете добавить все требуемые валидаторы

Re: Значение поля по умолчанию

Добавлено: 22 июн 2017, 11:39
HakimzyanovA
Не совсем понял. Код на php для задания начальных значений куда нужно добавить? И валидаторы тоже?

Re: Значение поля по умолчанию

Добавлено: 22 июн 2017, 13:59
nikorn
Это лучше уточнить у автора

Я предполагаю, что сюда:
includes\functions\html.php
function input_tag($name='',$value='',$attributes=array())

Re: Значение поля по умолчанию

Добавлено: 22 июн 2017, 14:12
HakimzyanovA
лезть в исходники и пилить каждому под себя не есть хорошо от слова совсем :)
я же предлагаю добавить возможность задания значения по-умолчанию и валидаторы через php-код в интерфейс приложения.