3
Вопрос по автозаполнению таблици
Автор Sergey, 04 окт. 2010 08:40
Сообщений в теме: 13
#1
Отправлено 04 Октябрь 2010 - 08:40
Помогите пожалуйста с написание вычисления для авто заполнения связанных таблиц
есть 2 таблицы 1 "новые автомобили" и 2 "Автомобиль клиента" связаны по полю "ком номер" необходимо чтобы при выборе в таблице "Автомобили клиента" нужного ком номера остальные данные подставлялись автоматически. (марка, модель, VIN, и т.д.)
Что конкретно не могу понять в какой таблице и в какой ячейке делать вычисления?
есть 2 таблицы 1 "новые автомобили" и 2 "Автомобиль клиента" связаны по полю "ком номер" необходимо чтобы при выборе в таблице "Автомобили клиента" нужного ком номера остальные данные подставлялись автоматически. (марка, модель, VIN, и т.д.)
Что конкретно не могу понять в какой таблице и в какой ячейке делать вычисления?
#2
Отправлено 04 Октябрь 2010 - 09:53
Поставил вычисляемое поле в таблице автомобиль клиента
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "`Марка`=".$com['марка']);
return $marka['ID'];
выдаёт ошибку
Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\include\functions1.php(64) : eval()'d code on line 2
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 '' at line 1
SELECT * FROM cb_data79 WHERE f856=
in C:\Program Files\MSTL\���������� ����\www\include\functions2.php on line 23
Warning:mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\MSTL\���������� ����\www\include\functions2.php on line 24
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "`Марка`=".$com['марка']);
return $marka['ID'];
выдаёт ошибку
Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\include\functions1.php(64) : eval()'d code on line 2
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 '' at line 1
SELECT * FROM cb_data79 WHERE f856=
in C:\Program Files\MSTL\���������� ����\www\include\functions2.php on line 23
Warning:mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\MSTL\���������� ����\www\include\functions2.php on line 24
#3
Отправлено 04 Октябрь 2010 - 11:52
Если у Вас в таблице "Автомобиль клиента" есть несколько полей, которые берутся из таблицы
Делается через вычисления в таблице(Вычисления срабатывают при сохранении)
Примерно так:
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
Делается через вычисления в таблице(Вычисления срабатывают при сохранении)
Примерно так:
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
#4
Отправлено 04 Октябрь 2010 - 12:54
Техподдержка (4.10.2010, 11:52) писал:
Если у Вас в таблице "Автомобиль клиента" есть несколько полей, которые берутся из таблицы
Делается через вычисления в таблице(Вычисления срабатывают при сохранении)
Примерно так:
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
Делается через вычисления в таблице(Вычисления срабатывают при сохранении)
Примерно так:
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
Не проходит выдаёт ошибку:
Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\view_line.php(342) : eval()'d code on line 2
#5
Отправлено 04 Октябрь 2010 - 13:08
Sergey (4.10.2010, 12:54) писал:
Не проходит выдаёт ошибку:
Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\view_line.php(342) : eval()'d code on line 2
Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\view_line.php(342) : eval()'d code on line 2
Может быть это потому что таблицы находятся в разных категориях "Автомобиль клиента" в "клиентах", а "новые автомобили" в "диспозиции"
#7
Отправлено 04 Октябрь 2010 - 14:02
Странно. Должно работать везде. Проверьте, всё ли правильно заполнено?
#9
Отправлено 04 Октябрь 2010 - 15:12
Об этом читайте в документации, и смотрите код из стандартных отчетов.
#10
Отправлено 22 Октябрь 2010 - 08:29
Есть ещё вопрос:
Как в вычислениях таблицы сделать подгрузку данных из 3-х разных таблиц?
т.е. надо объединить 3-и вычисления:
(примерно таких)
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
$kc = data_table("Автомобиль клиента", "id={ID}");
$cvet = data_table("Справочник по цвету кузова", "id='".$kc['марка']."'");
$kc['Цвет'] = $cvet['Цвет'];
update_query($kc, "Автомобиль клиента", "id={ID}");
Если я их просто ставлю один за другим то первый обновляется, а второй и т.д. нет.
Как в вычислениях таблицы сделать подгрузку данных из 3-х разных таблиц?
т.е. надо объединить 3-и вычисления:
(примерно таких)
$com = data_table("Автомобиль клиента", "id={ID}");
$marka = data_table("Новые автомобили", "id='".$com['марка']."'");
$com['Цвет'] = $marka['Цвет'];
$com['Пробег'] = $marka['Пробег'];
$com['Гарантия'] = $marka['Гарантия'];
update_query($com, "Автомобиль клиента", "id={ID}");
$kc = data_table("Автомобиль клиента", "id={ID}");
$cvet = data_table("Справочник по цвету кузова", "id='".$kc['марка']."'");
$kc['Цвет'] = $cvet['Цвет'];
update_query($kc, "Автомобиль клиента", "id={ID}");
Если я их просто ставлю один за другим то первый обновляется, а второй и т.д. нет.
#11
Отправлено 22 Октябрь 2010 - 10:38
По идее должно работать, хотя код не оптимизирован. Попробуйте так:
Хотя в вашем примере конечно нелогично что поле Цвет два раза заполняется.
$com = data_table("Автомобиль клиента", "id={ID}"); $marka = data_table("Новые автомобили", "id='".$com['марка']."'"); $com['Цвет'] = $marka['Цвет']; $com['Пробег'] = $marka['Пробег']; $com['Гарантия'] = $marka['Гарантия']; $cvet = data_table("Справочник по цвету кузова", "id='".$com['марка']."'"); $com['Цвет'] = $cvet['Цвет']; update_query($com, "Автомобиль клиента", "id={ID}");
Хотя в вашем примере конечно нелогично что поле Цвет два раза заполняется.
#12
Отправлено 29 Октябрь 2010 - 10:06
Спасибо заработало оптимизировать не получится с.м. код:
$cod = data_table("Новые автомобили", "id={ID}");
$newy = data_table("Справочник по моделям", "id='".$cod['Код комплектации']."'");
$cod['Марка'] = $newy['Марка'];
$cod['Модель'] = $newy['Модель'];
$cod['Тип кузова'] = $newy['Тип кузова'];
$cod['Объем ДВС'] = $newy['Объем ДВС'];
$cod['Тип КПП'] = $newy['Тип КПП'];
$cod['Тип привода'] = $newy['Тип привода'];
update_query($cod, "Новые автомобили", "id={ID}");
$kc = data_table("Новые автомобили", "id={ID}");
$cvet = data_table("Справочник по цвету кузова", "id='".$kc['Код цвета']."'");
$kc['Цвет'] = $cvet['Цвет'];
update_query($kc, "Новые автомобили", "id={ID}");
$ks = data_table("Новые автомобили", "id={ID}");
$salon = data_table("Справочник по цвету салона ", "id='".$ks['Код салона']."'");
$ks['Салон'] = $salon['Цвет сидений'];
update_query($ks, "Новые автомобили", "id={ID}");
$cod = data_table("Новые автомобили", "id={ID}");
$newy = data_table("Справочник по моделям", "id='".$cod['Код комплектации']."'");
$cod['Марка'] = $newy['Марка'];
$cod['Модель'] = $newy['Модель'];
$cod['Тип кузова'] = $newy['Тип кузова'];
$cod['Объем ДВС'] = $newy['Объем ДВС'];
$cod['Тип КПП'] = $newy['Тип КПП'];
$cod['Тип привода'] = $newy['Тип привода'];
update_query($cod, "Новые автомобили", "id={ID}");
$kc = data_table("Новые автомобили", "id={ID}");
$cvet = data_table("Справочник по цвету кузова", "id='".$kc['Код цвета']."'");
$kc['Цвет'] = $cvet['Цвет'];
update_query($kc, "Новые автомобили", "id={ID}");
$ks = data_table("Новые автомобили", "id={ID}");
$salon = data_table("Справочник по цвету салона ", "id='".$ks['Код салона']."'");
$ks['Салон'] = $salon['Цвет сидений'];
update_query($ks, "Новые автомобили", "id={ID}");
#13
Отправлено 29 Октябрь 2010 - 12:02
Я к тому что у вас 3 раза создается один и тот же массив текущей строки и она же 3 раза обновляется, хотя все это можно провести за одну операцию:
$cod = data_table("Новые автомобили", "id={ID}");
$newy = data_table("Справочник по моделям", "id='".$cod['Код комплектации']."'");
$cod['Марка'] = $newy['Марка'];
$cod['Модель'] = $newy['Модель'];
$cod['Тип кузова'] = $newy['Тип кузова'];
$cod['Объем ДВС'] = $newy['Объем ДВС'];
$cod['Тип КПП'] = $newy['Тип КПП'];
$cod['Тип привода'] = $newy['Тип привода'];
$cvet = data_table("Справочник по цвету кузова", "id='".$cod['Код цвета']."'");
$cod['Цвет'] = $cvet['Цвет'];
$salon = data_table("Справочник по цвету салона ", "id='".$cod['Код салона']."'");
$cod['Салон'] = $salon['Цвет сидений'];
update_query($cod, "Новые автомобили", "id={ID}");
$cod = data_table("Новые автомобили", "id={ID}");
$newy = data_table("Справочник по моделям", "id='".$cod['Код комплектации']."'");
$cod['Марка'] = $newy['Марка'];
$cod['Модель'] = $newy['Модель'];
$cod['Тип кузова'] = $newy['Тип кузова'];
$cod['Объем ДВС'] = $newy['Объем ДВС'];
$cod['Тип КПП'] = $newy['Тип КПП'];
$cod['Тип привода'] = $newy['Тип привода'];
$cvet = data_table("Справочник по цвету кузова", "id='".$cod['Код цвета']."'");
$cod['Цвет'] = $cvet['Цвет'];
$salon = data_table("Справочник по цвету салона ", "id='".$cod['Код салона']."'");
$cod['Салон'] = $salon['Цвет сидений'];
update_query($cod, "Новые автомобили", "id={ID}");
#14
Отправлено 29 Октябрь 2010 - 15:36
Спасибо за совет попробую переделать
может быть и по этому вопросу подскажете
версия 1.9.1
пытаюсь сделать шаблон печати
Подгрузил файл в программу далее судя по вашей инструкции необходимо его скачать в виде шаблона.
при нажатии на ссылку "скачать файл" выпадает ошибка :
Fatal error: Class 'lsu1d8d' not found in C:\Program Files\MSTL\���������� ����\www\edit_form.php on line 193
может быть и по этому вопросу подскажете
версия 1.9.1
пытаюсь сделать шаблон печати
Подгрузил файл в программу далее судя по вашей инструкции необходимо его скачать в виде шаблона.
при нажатии на ссылку "скачать файл" выпадает ошибка :
Fatal error: Class 'lsu1d8d' not found in C:\Program Files\MSTL\���������� ����\www\edit_form.php on line 193
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных