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


Выччисления


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

#1 AlanDess

    Участник

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

Отправлено 07 Октябрь 2011 - 12:09

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

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

#2 CbCoder

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

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

Отправлено 07 Октябрь 2011 - 13:22

Так Вы посмотрите как это реализовано в стандартной конфигурации, и сделайте по аналогии. Я Вам могу только то же самое повторить. Если же возникнут какие-то проблемы - то опишите здесь.

#3 AlanDess

    Участник

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

Отправлено 07 Октябрь 2011 - 14:01

в стандартной реализации код:

$contr = data_table("Контрагенты","`id`={ID}");
$sotr = data_table("Сотрудники","`Контрагент`={ID}");
$contr['Фильтр для конт.лица']=$sotr['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;

Я так понимаю, нужно заменить "Сотрудники" на "История работы", а на что заменить $sotr ? где можно посмотреть как называется таблица История работы?

#4 CbCoder

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

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

Отправлено 07 Октябрь 2011 - 17:16

$sotr - это всего лишь локальное имя переменной. Оно может быть каким угодно. Можете оставить старое, можете переименовать на $ist_rab к примеру.

#5 AlanDess

    Участник

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

Отправлено 10 Октябрь 2011 - 09:17

После добавления вот такого вычисления:

$contr = data_table("Контрагенты","`id`={ID}");
$ist_rab = data_table("История работы","`Контрагент`={ID}");
$contr['Фильтр для даты']=$ist_rab['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;

При попытке перейти на страницу какой-либо организации получаем:

Fatal error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Контрагент' in 'where clause'
SELECT * FROM f_data62 WHERE `Кон�' at line 1
SELECT * FROM f_data62 WHERE id='31
Fatal error:Unknown column 'Контрагент' in 'where clause'
SELECT * FROM f_data62 WHERE `Контрагент`=2191 LIMIT 1
in C:\Program Files\MSTL\ClientBase\www\include\functions2.php on line 34
Warning:mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\MSTL\ClientBase\www\include\functions2.php on line 35'
in C:\Program Files\MSTL\ClientBase\www\include\functions1.php on line 203

#6 CbCoder

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

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

Отправлено 10 Октябрь 2011 - 09:32

Очевидно, у вас отсутствует поле "Контрагент" в таблице "История работы", или оно переименовано. Проверьте.

#7 AlanDess

    Участник

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

Отправлено 10 Октябрь 2011 - 10:00

Заменил на:

$contr = data_table("Контрагенты","`id`={ID}");
$ist_rab = data_table("История работы","`Компания`={ID}");
$contr['Фильтр для даты']=$ist_rab['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;

Ошибка пропала, но "фильтр для даты" в выпадающем списке не появился.

#8 CbCoder

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

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

Отправлено 10 Октябрь 2011 - 11:11

А вы установили это поле в качестве фильтра на поле Дата обращения?

#9 AlanDess

    Участник

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

Отправлено 10 Октябрь 2011 - 12:02

В том-то и дело... В настройках поля "Дата обращения" таблицы "Контрагенты" после добавления приведённого выше вычисления в графе фильтр есть только 2 опции выбора: "по умолчанию" и "Все". Как сделать, чтобы там появился "Фильтр для даты"?

#10 CbCoder

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

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

Отправлено 10 Октябрь 2011 - 16:23

Поле "Фильтр для даты" должно быть полем связи к таблице "История работы". См. поле "Фильтр для конт.лица"





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

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