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


Доступ к текущему значению вычисляемого поля внутри этого поля


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

#1 kok

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

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 09 Ноябрь 2010 - 16:34

Есть вычисляемое поле "Номер" таблицы "Документы".
Внутри вычисления пытаюсь обратиться к нему так:
$cur=data_table("Документы","id={ID}");
$doc_numb=$cur["Номер"];
if (isset($doc_numb)) return $doc_numb;
else...тут код логики

$cur["Номер"] - выдаёт всегда "пусто" :-(
Как быть?

Задача такая: Если Номер уже присвоен, то его не трогать при редактировании, а при создании записи Номер присваивать.
*Свободный программер.

#2 Timur

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

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

Отправлено 09 Ноябрь 2010 - 17:22

Вроде код правильный. проверьте выдает ли что-нибудь в строке с заполненным номером поле номер.
$cur=data_table("Документы","id={ID}");
return $cur["Номер"];

#3 kok

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

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 09 Ноябрь 2010 - 19:56

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

Вроде код правильный. проверьте выдает ли что-нибудь в строке с заполненным номером поле номер.
$cur=data_table("Документы","id={ID}");
return $cur["Номер"];
Да, выдаёт номер.
Проверил еще раз, конструкция
if (isset($doc_numb)) 
{return $doc_numb;}
else{ ...
всегда выполняет условие , что $doc_numb есть, даже если поле пустое и значения в нём нет.
*Свободный программер.

#4 kok

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

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 09 Ноябрь 2010 - 20:09

Изменил код на:
if ($doc_numb!="") 
{return $doc_numb;}
else{ ...
заработало, чудеса....
*Свободный программер.

#5 CbCoder

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

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Ноябрь 2010 - 14:11

Просмотр сообщенияkok (9.11.2010, 20:09) писал:

заработало, чудеса....
Никаких чудес тут собственно нет, просто

Просмотр сообщенияkok (9.11.2010, 19:56) писал:

конструкция
if (isset($doc_numb)) 
{return $doc_numb;}
else{ ...
всегда выполняет условие , что $doc_numb есть, даже если поле пустое и значения в нём нет.
что естественно, т.к. функция isset проверяет существует ли переменная вообще (т.е. была ли ранее инициализирована), а не на наличие в ней пустого значения.





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

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