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


Вопрос по автозаполнению таблици


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

#1 Sergey

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

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

Отправлено 04 Октябрь 2010 - 08:40

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

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

#2 Sergey

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

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

Отправлено 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

#3 Timur

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

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

Отправлено 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}");

#4 Sergey

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

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

Отправлено 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}");

Не проходит выдаёт ошибку:

Notice:Undefined index: марка in C:\Program Files\MSTL\���������� ����\www\view_line.php(342) : eval()'d code on line 2

#5 Sergey

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

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

Отправлено 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

Может быть это потому что таблицы находятся в разных категориях "Автомобиль клиента" в "клиентах", а "новые автомобили" в "диспозиции"

#6 Sergey

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

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

Отправлено 04 Октябрь 2010 - 13:27

Просмотр сообщенияSergey (4.10.2010, 13:08) писал:

Может быть это потому что таблицы находятся в разных категориях "Автомобиль клиента" в "клиентах", а "новые автомобили" в "диспозиции"

Внутри 1-й категории работает а вот между никак ?

#7 Timur

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

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

Отправлено 04 Октябрь 2010 - 14:02

Странно. Должно работать везде. Проверьте, всё ли правильно заполнено?

#8 Sergey

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

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

Отправлено 04 Октябрь 2010 - 14:37

Просмотр сообщенияТехподдержка (4.10.2010, 14:02) писал:

Странно. Должно работать везде. Проверьте, всё ли правильно заполнено?
Все заработало спасибо.

Есть ещё вопрос как сделать отчет о кол-ве входящих звонков и входящих визитов, в банальной форме:

дата Менеджер визиты звонки

#9 Timur

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

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

Отправлено 04 Октябрь 2010 - 15:12

Об этом читайте в документации, и смотрите код из стандартных отчетов.

#10 Sergey

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

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

Отправлено 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}");


Если я их просто ставлю один за другим то первый обновляется, а второй и т.д. нет.

#11 CbCoder

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

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

Отправлено 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 Sergey

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

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

Отправлено 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}");

#13 CbCoder

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

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

Отправлено 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}");

#14 Sergey

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

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

Отправлено 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





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

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