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


Шаблон печати


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

#1 Garret

    Новичок

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

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

Есть таблица "Проекты" в одной категории, и таблица в совершенно другой категории "товары"
при создании шаблона печати можно легко выбрать все нужные данные из "Проекта" но как еще туда подвязать данные из "товаров"?
Через вычисления не очень получается. :unsure:

#2 CbCoder

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

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

Отправлено 14 Сентябрь 2011 - 09:04

Проекты и Товары как-то взаимосвязанны между собой? Есть поле связи, указывающее на таблицу Товары? Если да - то можно получить данные из связанной таблицы. Если таблицы никак между собой не связаны - то разумеется данные получить не выйдет. Должно быть поле связи. В частности, оно может формироваться автоматически через вычисления.

#3 Garret

    Новичок

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

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

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

Сообщение отредактировал Garret: 14 Сентябрь 2011 - 12:23


#4 CbCoder

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

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

Отправлено 14 Сентябрь 2011 - 16:00

В вычислении вы можете что угодно задать. Главное заполнить поле связи каким-то значением. Или вам не из одной строки таблицы Товары нужны данные? Если шаблон имеет сложный вид - из таблицы вы его никак не сделаете, только через написание своего "представления".

#5 Garret

    Новичок

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

Отправлено 15 Сентябрь 2011 - 14:10

Возможно ли использовать запросы смарти которые есть в html, для запросов в шаблоне docx?

Сообщение отредактировал Garret: 15 Сентябрь 2011 - 15:46


#6 CbCoder

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

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

Отправлено 15 Сентябрь 2011 - 15:25

Сделайте таблицу "Товары в проектах" подчиненной по отношению к таблице Проекты (см. документацию). Тогда все товары по проекту можно будет легко вывести в шаблоне стандартными средствами.

#7 Garret

    Новичок

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

Отправлено 15 Сентябрь 2011 - 17:12

Просмотр сообщенияGarret (15.9.2011, 14:10) писал:

Возможно ли использовать запросы SMARTY которые есть в html, для вычислений в шаблоне docx?


#8 CbCoder

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

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

Отправлено 15 Сентябрь 2011 - 17:18

Нет, Smarty работает только в шаблонах формата "простой текст" и "html". В шаблонах-файлах (rtf, odt и docx) разрешено только вставлять переменные полей. Связано это с ограничениями самого Smarty - он не работает с данными форматами.

#9 Garret

    Новичок

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

Отправлено 15 Сентябрь 2011 - 17:57

Спасибо, но проблема решена была с помощью этой темы - Связь таблицы 1>2>3 как связать 1>3

Но есть новая проблема, что у нас не 1 товар а несколько. Вопрос как в Docx сформировать таблицу товаров автоматом

Так же при доступе к таблице проекты выдает ошибку:

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 f_data5 WHERE `Товары в проектах`= L' at line 1
SELECT * FROM f_data5 WHERE id='
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 'LIMIT 1' at line 1
SELECT * FROM f_data5 WHERE `Товары в проектах`= LIMIT 1
in C:\Program Files (x86)\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 (x86)\MSTL\ClientBase\www\include\functions2.php on line 35'
in C:\Program Files (x86)\MSTL\ClientBase\www\include\functions1.php on line 203

Вычисление таково:
$dog = data_table("Проекты", "id={ID}");
$rekv = data_table("Товары", "`Товары в проектах`=".$dog['Товары в проектах']);
return $rekv['ID'];

Сообщение отредактировал Garret: 16 Сентябрь 2011 - 10:28


#10 CbCoder

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

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

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

Просмотр сообщенияGarret (15.9.2011, 18:57) писал:

Но есть новая проблема, что у нас не 1 товар а несколько. Вопрос как в Docx сформировать таблицу товаров автоматом
Я же вам написал выше, что вывод нескольких товаров решается через подтаблицу. Но вывести подтаблицу можно только с помощью Smarty. В Docx вы никак не сможете вывести таблицу из нескольких товаров. Конвертируйте его в html.


Просмотр сообщенияGarret (15.9.2011, 18:57) писал:

Вычисление таково:
$dog = data_table("Проекты", "id={ID}");
$rekv = data_table("Товары", "`Товары в проектах`=".$dog['Товары в проектах']);
return $rekv['ID'];
Синтаксическая ошибка - забыли поставить кавычки вокруг текстового значения:
$rekv = data_table("Товары", "`Товары в проектах`='".$dog['Товары в проектах']."'");

#11 Garret

    Новичок

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

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

Просмотр сообщенияРазработчик (16.9.2011, 10:45) писал:

Я же вам написал выше, что вывод нескольких товаров решается через подтаблицу. Но вывести подтаблицу можно только с помощью Smarty. В Docx вы никак не сможете вывести таблицу из нескольких товаров. Конвертируйте его в html.
Синтаксическая ошибка - забыли поставить кавычки вокруг текстового значения:
$rekv = data_table("Товары", "`Товары в проектах`='".$dog['Товары в проектах']."'");

Ошибка осталась =(

Вот так построена база:
Проекты =>Клиенты. "Клиенты проекта" связаны к полю "ID" из клиентов.
Товары в проекте=>Проекты. "Проект" связаны к полю "ID" из Проектов
Товары в проекте=>Товары. "Артикул товара" связаны к полю "ID"из Товаров
Товары в проекте =>Подрядчики."Артикул подрядчика" связан к полю "ID" из Подрядчиков
То есть в проектах мы можем видеть какие использованы товары, добавив запись прямо в проектах.

Шаблон формировать нужно непосредственно с таблицы проекты.

Мои действия создал поле связь "Товары" -"ID" в таблице "Проекты"
и использовал вычисление подправленное вами:
$dog = data_table("Проекты", "id={ID}");
$rekv = data_table("Товары", "`Товары в проектах`='".$dog['Товары в проектах']."'");
return $rekv['ID'];


Проблема решена:
Причина в "`Товары в проектах`='" нужны такие кавычки '' а не ``
Но значение не подставляется =(

Сообщение отредактировал Garret: 16 Сентябрь 2011 - 11:14


#12 CbCoder

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

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

Отправлено 16 Сентябрь 2011 - 11:31

Это не решение, название поля должно быть именно в косых кавычках, а не в прямых, в прямые должно помещаться значение поля. У Вас просто нет поля "Товары в проектах" в таблице "Товары", поэтому ошибка и возникает. Используйте существующее поле. Насколько я понял из вашего описания, это должен быть "Артикул товара".





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

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