Перейти к содержимому


Создание нередактируемых поля в таблице


Сообщений в теме: 5

#1 Andrey

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 10 Июнь 2010 - 11:12

1. Нужно создать в таблице нередактируемое поле.
Вариант с вычисляемым полем с кодом
$result = 'мой текст';
return $result;
плох тем, что про создании новой записи, вижу пустое поле. Можно ли его скрыть, при заведении новой записи?

2. При заполнении таблицы необходимо в поле пользователь вводить данные пользователя, который заполняет таблицу, да еще и так чтобы не мог это изменить. Каким образом заполнить поле понятно. Как запретить изменения его пользователем? Или вообще скрыть, при заведении новой записи в таблицу?

#2 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 10 Июнь 2010 - 11:59

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

2. Можно просто поставить запрет на редактирование поля создателем записи.

#3 Andrey

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 18 Июнь 2010 - 19:24

Просмотр сообщенияТехподдержка (10.6.2010, 11:59) писал:

2. Можно просто поставить запрет на редактирование поля создателем записи.

Сделал так, что при создании записи в этом поле стоит текущий пользователь. Проблема в том, что создатель записи может его изменить. Как запретить его редактирование при самом создании записи?

3. Нужно создать поле с использованием ID текущей записи + какой-то текст.
Такой скрипт в Вычислениях в таблице выдает значение "1"
$cur_rec = data_table("ДР", "id={ID}");
$cur_rec['Identificator'] = "др "||{ID};
update_query($cur_rec, "ДР", "id={ID}");

подозреваю неверный синтаксис этого: $cur_rec['Identificator'] = "др "||{ID};
где собака зарыта, подскажите, плз?

#4 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 19 Июнь 2010 - 01:15

Просмотр сообщенияAndrey (18.6.2010, 19:24) писал:

Сделал так, что при создании записи в этом поле стоит текущий пользователь. Проблема в том, что создатель записи может его изменить. Как запретить его редактирование при самом создании записи?
Зайти в конфигурация\доступ нужный юзер, далее в необходимой таблице, поле убрать галочку "редакт.своих"

Просмотр сообщенияAndrey (18.6.2010, 19:24) писал:

3. Нужно создать поле с использованием ID текущей записи + какой-то текст.
Такой скрипт в Вычислениях в таблице выдает значение "1"
$cur_rec = data_table("ДР", "id={ID}");
$cur_rec['Identificator'] = "др "||{ID};
update_query($cur_rec, "ДР", "id={ID}");

подозреваю неверный синтаксис этого: $cur_rec['Identificator'] = "др "||{ID};
где собака зарыта, подскажите, плз?
Вы используете логический оператор или(||), а нужно использовать символ конкатенации.
$cur_rec['Identificator'] = "др ".ID;
return $cur_rec['Identificator'];  // это просто для проверки возвращаемого значения
или так
$cur_rec['Identificator'] = "др {ID}";
return $cur_rec['Identificator'];  // это просто для проверки возвращаемого значения


#5 Timur

    Активный участник

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 21 Июнь 2010 - 09:15

Да, верно, нужно использовать объединение строк.

#6 Andrey

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 21 Июнь 2010 - 17:02

большое спасибо! всё получилось. :)





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных