В таблице есть поле "Руководитель"
Задание получить инициалы.
Создаю таблицу "инициалы руководителя".
В Вычислениях следующий код:
$docs = data_table("Договоры","id={ID}");
$record = $docs["Руководитель"];
$family = strtok($record,' ');
$name=strtok(' ');
$otchestvo=strtok(' ');
$result = substr($name,0,1) . "." .substr($otchestvo,0,1).". ". $family;
return $result;
Код срабатывает почему-то не на все строчки. Смотрите скриншот.
В чем проблема?


Проблемы с вычислением
Автор Alexander, 10 июня 2010 17:03
Сообщений в теме: 6
#1
Отправлено 10 Июнь 2010 - 17:03
#2
Отправлено 10 Июнь 2010 - 17:19
Отладка php-кода выходит за рамки техподдержки. По вычислениям мы выдаем только информацию связанную со структурой бд и добавленными нами функциям.
#3
Отправлено 10 Июнь 2010 - 17:36
Если вы посмотрите на скриншот то увидите, что проблема не в коде... Код тут не причем ..Вопрос был, если внимательно вчитаться, о том , что nе происходит считывание всех строк.. Даже при таком простом коде, который вы выложили в документации (надеюсь он не выходит за рамки техподдержки)
$docs = data_table("Договоры","id={ID}");
$record = $docs["Руководитель"];
return $record;
Получается такая штука (скриншот)
$docs = data_table("Договоры","id={ID}");
$record = $docs["Руководитель"];
return $record;
Получается такая штука (скриншот)
#4
Отправлено 10 Июнь 2010 - 18:42
Пришлите бэкап на саппорт, проверим в чем дело.
#5
Отправлено 10 Июнь 2010 - 20:40
Послал мейл на суппорт
#6
Отправлено 11 Июнь 2010 - 09:02
Проблема скорее всего в том что вы пытаетесь создать вычисляемое поле на основе другого вычисляемого поля - так делать не рекомендуется. Вычисления могут сработать не в том порядке или вообще не сработать, если к полю-источнику нет доступа. Если вы хотите использовать другое вычисляемое поле в качестве источника данных, то его вычисление должно войти в итоговое.
Пример:
1. Вычисляем Поле3 = Поле1 + Поле2, где оба поля - обычные поля без вычислений
2. Затем если вычислять на основе предыдущего поля скажем Поле5 = Поле3 (вычисляемое) + Поле 4 (обычное), то напрямую данный код употреблять не рекомендуется. Правильнее задать Поле5 = (Поле1 + Поле2) + Поле 4, где все поля - обычные. Результат будет тот же, но без обозначенных выше ошибок.
Пример:
1. Вычисляем Поле3 = Поле1 + Поле2, где оба поля - обычные поля без вычислений
2. Затем если вычислять на основе предыдущего поля скажем Поле5 = Поле3 (вычисляемое) + Поле 4 (обычное), то напрямую данный код употреблять не рекомендуется. Правильнее задать Поле5 = (Поле1 + Поле2) + Поле 4, где все поля - обычные. Результат будет тот же, но без обозначенных выше ошибок.
#7
Отправлено 11 Июнь 2010 - 10:18
Большое спасибо.
Это действительно так.
Для будущих поколений добавьте это в документацию
Это действительно так.
Для будущих поколений добавьте это в документацию
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных