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


Подтаблицы, вывод значений в шаблон печати

подтаблицы шаблон печати

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

#1 ManFree

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

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

Отправлено 05 Апрель 2014 - 11:20

Вопрос в следующем
Есть три таблицы
клиент , объект , договор

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

Теперь с шаблоном печати.
Если связь находится в теле записи например договор - > объект
То в шаблон можно подтянуть все данные из таблицы объекта

А если связь идет через связанную таблицу - клиенты
До доступно только поле связи

Я понимаю что у меня получается что я пытаюсь вывести двойную связь то есть
Договор - > Принципалы () - > Клиенты

Подскажите как можно по другому реализовать

#2 CbCoder

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

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

Отправлено 05 Апрель 2014 - 14:59

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

#3 ManFree

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

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

Отправлено 14 Апрель 2014 - 11:59

Просмотр сообщенияCbCoder (05 Апрель 2014 - 14:59) писал:

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

Ок. Вопрос в следующем
Когда подтягиваем данные из субтаблиц используем foreech в котором имена субтаблиц прописываются на английском языке. Где взять английские имена таблиц для верного использования?

#4 CbCoder

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

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

Отправлено 14 Апрель 2014 - 14:28

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

#5 ManFree

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

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

Отправлено 15 Апрель 2014 - 11:02

Просмотр сообщенияCbCoder (14 Апрель 2014 - 14:28) писал:

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

Не работает просто так
две таблицы клИенты и прописанные
{$subtable.Familiya} - поле фамилия из первой подтаблицы
{$subtable.Familiya} - поле фамилия из второй подтаблицы
это то что вставляется по выпадающему списку.

взято из печати счета
{foreach from=$Pozicii_scheta item=subtable name=Pozicii_scheta}{if $subtable.Skidka!=0}{assign var="status_sk" value="1"}{/if}{/foreach}

$Pozicii_scheta - где мне это взять эти значения для моих субтаблиц если тем более у меня их несколько и все используются в печатной форме

Сообщение отредактировал ManFree: 15 Апрель 2014 - 11:05


#6 CbCoder

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

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

Отправлено 15 Апрель 2014 - 14:56

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

#7 ManFree

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

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

Отправлено 15 Апрель 2014 - 16:31

Большое спасибо, теперь все получилось. не сразу понял

#8 Жанночка

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

  • Пользователи
  • PipPipPip
  • 48 сообщений
  • Пол:Женщина
  • Город:Усть-Илимск

Отправлено 13 Май 2014 - 11:09

у меня теперь вопрос о подтаблицах. мне нужно вывести в итогах таблицы сумму. а я туплю страшно. вот название значения в колонке {$subtable.Kol_vo}, как написать, чтобы суммировались значения в строках этой колонки?

Сообщение отредактировал Жанночка: 13 Май 2014 - 11:11

Короче я лох, надеюсь вы мне поможете!

#9 CbCoder

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

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

Отправлено 13 Май 2014 - 11:28

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

#10 Жанночка

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

  • Пользователи
  • PipPipPip
  • 48 сообщений
  • Пол:Женщина
  • Город:Усть-Илимск

Отправлено 15 Май 2014 - 05:25

поняла примерно, нужно создать вычисление и на него ссылать. правильно?
Короче я лох, надеюсь вы мне поможете!

#11 Жанночка

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

  • Пользователи
  • PipPipPip
  • 48 сообщений
  • Пол:Женщина
  • Город:Усть-Илимск

Отправлено 15 Май 2014 - 07:28

понять то поняла, а сделать то не получается, помогите пожалуйста, начальник просит, а я не в состоянии сама справиться.
Сейчас в стандартном варианте акта у меня выводится сумма строк:

Всего оказано услуг {$smarty.foreach.Pozicii_akta.total}

мне же нужно.как я и писала, чтобы считалась сумма в этой колонке. по вашему совету, я посмотрела как сделано вычисление у суммы:

$sqlQuery = "SELECT sum(`f883`) as summa FROM `".DATA_TABLE."82` WHERE `status`='0' AND `f878`='$ID'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$line['Сумма'] = $row['summa'];

я создала вычисление "Количество заказов" и попыталась переделать на количество заказов:

$sqlQuery = "SELECT sum(`f883`) as summa FROM `".DATA_TABLE."82` WHERE `status`='0' AND `f878`='$ID'";
$res = sql_query($sqlQuery);
$row = sql_fetch_array($res);
$line['Количество заказов'] = $row['Pozicii_akta'];

на что мне выводится глобальная ошибка, которую я не в состоянии расшифровать, не то чтобы исправить.
что я делаю не так? и что мне нужно написать в самом шаблоне вместо того количества строк, если нужно конечно?

Сообщение отредактировал Жанночка: 15 Май 2014 - 07:29

Короче я лох, надеюсь вы мне поможете!

#12 CbCoder

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

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

Отправлено 15 Май 2014 - 10:32

Ошибку то можете скопировать сюда?

У вас запрос полная копия примера, он будет считать тоже самое. В тоже время в последней строке наоборот ничего менять не надо было. Хотя это все вроде не должно фат. ошибку вызывать.

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





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

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