Есть связь таблицы контрагентов и истории работы с ними. В таблице контрагенты выводится дата обращения, взятая из истории работы. Что нужно написать в поле вычислений, чтобы при заполнении этого поля в таблицы контрагентов выпадал список дат, относящихся только к этой компании
В общем, сделать то же самое, что реализовано в стандартной конфигурации для подтаблицы сотрудники и поля контактное лицо
1
Выччисления
Автор AlanDess, 07 окт. 2011 12:09
Сообщений в теме: 9
#1
Отправлено 07 Октябрь 2011 - 12:09
#2
Отправлено 07 Октябрь 2011 - 13:22
Так Вы посмотрите как это реализовано в стандартной конфигурации, и сделайте по аналогии. Я Вам могу только то же самое повторить. Если же возникнут какие-то проблемы - то опишите здесь.
#3
Отправлено 07 Октябрь 2011 - 14:01
в стандартной реализации код:
$contr = data_table("Контрагенты","`id`={ID}");
$sotr = data_table("Сотрудники","`Контрагент`={ID}");
$contr['Фильтр для конт.лица']=$sotr['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;
Я так понимаю, нужно заменить "Сотрудники" на "История работы", а на что заменить $sotr ? где можно посмотреть как называется таблица История работы?
$contr = data_table("Контрагенты","`id`={ID}");
$sotr = data_table("Сотрудники","`Контрагент`={ID}");
$contr['Фильтр для конт.лица']=$sotr['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;
Я так понимаю, нужно заменить "Сотрудники" на "История работы", а на что заменить $sotr ? где можно посмотреть как называется таблица История работы?
#4
Отправлено 07 Октябрь 2011 - 17:16
$sotr - это всего лишь локальное имя переменной. Оно может быть каким угодно. Можете оставить старое, можете переименовать на $ist_rab к примеру.
#5
Отправлено 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
$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
Отправлено 10 Октябрь 2011 - 09:32
Очевидно, у вас отсутствует поле "Контрагент" в таблице "История работы", или оно переименовано. Проверьте.
#7
Отправлено 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;
Ошибка пропала, но "фильтр для даты" в выпадающем списке не появился.
$contr = data_table("Контрагенты","`id`={ID}");
$ist_rab = data_table("История работы","`Компания`={ID}");
$contr['Фильтр для даты']=$ist_rab['ID'];
update_query($contr,"Контрагенты","`id`={ID}");
return $value;
Ошибка пропала, но "фильтр для даты" в выпадающем списке не появился.
#8
Отправлено 10 Октябрь 2011 - 11:11
А вы установили это поле в качестве фильтра на поле Дата обращения?
#9
Отправлено 10 Октябрь 2011 - 12:02
В том-то и дело... В настройках поля "Дата обращения" таблицы "Контрагенты" после добавления приведённого выше вычисления в графе фильтр есть только 2 опции выбора: "по умолчанию" и "Все". Как сделать, чтобы там появился "Фильтр для даты"?
#10
Отправлено 10 Октябрь 2011 - 16:23
Поле "Фильтр для даты" должно быть полем связи к таблице "История работы". См. поле "Фильтр для конт.лица"
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных