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


Вычисления: присвоение значения из двух таблиц


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

#1 nipk

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

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

Отправлено 21 Март 2016 - 09:51

Есть две таблицы. Третья таблица является подтаблицей для первых двух.
Присвоить наименование организации в зависимости от того заполнено ли это поле в таблице договоры или в заявке.
По следующему коду присвоение не идет...

if ($line['Номер договора']['Наименование организации']['Наименование организации']<>"")
$line['Организация'] = $line['Номер договора']['Наименование организации']['Наименование организации'];
else $line['Организация'] = $line['Номер заявки']['Наименование организации']['Наименование организации'];

#2 CbCoder

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

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

Отправлено 21 Март 2016 - 09:58

Распишите полностью все поля, использованные в коде: их типы и куда ссылаются (если это поля связи). Подозрение что просто запутались в типах и ссылках.

#3 nipk

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

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

Отправлено 21 Март 2016 - 10:33

['Организация'] - текстовое поле в таблице "Слушатели"
['Номер заявки'] - текстовое поле таблицы "Заявки"
['Наименование организации'] таблицы "Заявки" - текстовое поле. связано с таблицей "Юр. лица" из которой присваивается значение
['Номер договора'] - текстовое поле таблицы "Договоры"
['Наименование организации'] таблицы "Договоры" - текстовое поле. связано с таблицей "Юр. лица" из которой присваивается значение

#4 CbCoder

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

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

Отправлено 21 Март 2016 - 11:05

Цитата

['Номер заявки'] - текстовое поле таблицы "Заявки"

1. Если это поле из таблицы Заявки, то как оно оказалось в вычислении таблицы Слушатели? К полю из другой таблицы можно обратится только через поле связи, а не напямую.
2. Если это поле текстовое, то почему оно раскрывается затем в массив полей из других таблиц, как будто это поле связи?

Вы точно не перепутали ничего в местонахождении и типах полей Номер заявки и Номер договора ?

Да и другие поля как-то странно описаны. Например, "текстовое поле. связано с таблицей"

Совет: зайдите в настройки таблицы, в список полей, и посмотрите точный тип там.

#5 nipk

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

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

Отправлено 21 Март 2016 - 11:13

Да, совершенно верно, номер зявки - это связь. Извините, не досмотрели.

#6 CbCoder

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

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

Отправлено 21 Март 2016 - 11:25

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

В вашем случае это означает, что:

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

#7 nipk

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

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

Отправлено 21 Март 2016 - 11:48

вроде все совпадает.
точно можно использовать вычисления по нескольким таблицам?
код php верный в данном случае?

#8 CbCoder

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

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

Отправлено 21 Март 2016 - 12:10

Что значит "вычисления по нескольким таблицам"? Это разве не одно вычисление в одной таблице? Где оно лежит кстати, в таблице "Слушатели"? И на какое событие настроено?

К "верности кода" уже относились мои вопросы выше по полям. Если с ними все в порядке - то код в целом корректный.

#9 nipk

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

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

Отправлено 21 Март 2016 - 12:20

Вычисление в таблице Слушатели. Поле Организация. отображение поля Организация, Изменение поля Номер договора.
Почему-то если в режиме эксперта вставить код, поле перестает быть выделенным другим цветом при вводе данных.

#10 CbCoder

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

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

Отправлено 21 Март 2016 - 12:24

Возможно с именами полей могли ошибиться-опечататься.

#11 nipk

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

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

Отправлено 21 Март 2016 - 14:05

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

Сообщение отредактировал nipk: 21 Март 2016 - 14:06


#12 CbCoder

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

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

Отправлено 21 Март 2016 - 14:14

А так?

$line['Организация'] = $line['Номер договора']['Наименование организации']['Наименование организации'];
if ($line['Организация']=='') $line['Организация'] = $line['Номер заявки']['Наименование организации']['Наименование организации'];


#13 nipk

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

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

Отправлено 21 Март 2016 - 14:21

По договору присваивается по заявке нет

#14 CbCoder

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

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

Отправлено 21 Март 2016 - 14:23

Значит опять же, что-то не так с полями. Или опечатка, или типы неправильные, или сама цепочка некорректна.

#15 nipk

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

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

Отправлено 21 Март 2016 - 14:26

спасибо! буду искать.

#16 nipk

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

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

Отправлено 21 Март 2016 - 14:29

Мне очень стыдно... поле в таблице Заявки на звалось Наименование организацииИ ))) все работает. большое спасибо!

#17 nipk

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

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

Отправлено 21 Март 2016 - 14:54

Почему названия полей с вычислением перестали быть другого цвета?

#18 CbCoder

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

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

Отправлено 21 Март 2016 - 14:57

Не совсем понимаю о чем речь и почему это важно, если все и так работает.

#19 nipk

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

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

Отправлено 21 Март 2016 - 15:00

Важно для пользователей, чтоб не вводили в поле данные. Раньше вычисляемые поля были синего цвета, сейчас почему-то как и все.

#20 CbCoder

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

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

Отправлено 21 Март 2016 - 15:02

Цитата

Важно для пользователей, чтоб не вводили в поле данные

А для чего вы оставили его редактируемым? Почему просто не отключить права на изменение поля? И никто ничего не введет.

Насчет пропадания цвета ничего не могу сказать. Если считаете это багом - можете отправить заявку в техподдержку.





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

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