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


Проблемы с вычислением


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

#1 Alexander

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

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

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

В таблице есть поле "Руководитель"
Задание получить инициалы.
Создаю таблицу "инициалы руководителя".
В Вычислениях следующий код:

$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;

Код срабатывает почему-то не на все строчки. Смотрите скриншот.
В чем проблема?

Прикрепленные изображения

  • Прикрепленное изображение: screenshot.jpg


#2 Timur

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

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

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

Отладка php-кода выходит за рамки техподдержки. По вычислениям мы выдаем только информацию связанную со структурой бд и добавленными нами функциям.

#3 Alexander

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

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

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

Если вы посмотрите на скриншот то увидите, что проблема не в коде... Код тут не причем ..Вопрос был, если внимательно вчитаться, о том , что nе происходит считывание всех строк.. Даже при таком простом коде, который вы выложили в документации (надеюсь он не выходит за рамки техподдержки)
$docs = data_table("Договоры","id={ID}");
$record = $docs["Руководитель"];
return $record;

Получается такая штука (скриншот)

Прикрепленные изображения

  • Прикрепленное изображение: untitled6.jpg


#4 Timur

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

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

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

Пришлите бэкап на саппорт, проверим в чем дело.

#5 Alexander

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

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

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

Послал мейл на суппорт

#6 Timur

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

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

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

Проблема скорее всего в том что вы пытаетесь создать вычисляемое поле на основе другого вычисляемого поля - так делать не рекомендуется. Вычисления могут сработать не в том порядке или вообще не сработать, если к полю-источнику нет доступа. Если вы хотите использовать другое вычисляемое поле в качестве источника данных, то его вычисление должно войти в итоговое.

Пример:
1. Вычисляем Поле3 = Поле1 + Поле2, где оба поля - обычные поля без вычислений
2. Затем если вычислять на основе предыдущего поля скажем Поле5 = Поле3 (вычисляемое) + Поле 4 (обычное), то напрямую данный код употреблять не рекомендуется. Правильнее задать Поле5 = (Поле1 + Поле2) + Поле 4, где все поля - обычные. Результат будет тот же, но без обозначенных выше ошибок.

#7 Alexander

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

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

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

Большое спасибо.
Это действительно так.
Для будущих поколений добавьте это в документацию





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

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