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


Печать шаблона из кода


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

#1 nk

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

  • Пользователи
  • PipPipPip
  • 228 сообщений
  • Пол:Мужчина

Отправлено 27 Ноябрь 2012 - 08:28

Можно ли такое сделать?

Надо чтобы доп. действие по определенному алгоритму отбирало "связанные" записи из других таблиц (нескольких) и выполняло их печать (шаблон DOCX).

#2 CbCoder

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

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

Отправлено 27 Ноябрь 2012 - 09:15

Записи из нескольких разных таблиц вы не сможете отправить на печать через шаблон, т.к. шаблон всегда привязан к одной конкретной таблице. Из одной таблицы - можно так сделать.

#3 nk

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

  • Пользователи
  • PipPipPip
  • 228 сообщений
  • Пол:Мужчина

Отправлено 27 Ноябрь 2012 - 09:15

И как из одной?

#4 CbCoder

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

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

Отправлено 27 Ноябрь 2012 - 09:18

1. Загоняете id выбранных записей в массив $_SESSION[$ses_id]["sel111"], где $ses_id -системная переменная (менять не надо), а 111 - id таблицы, из которой выбираются записи
2. Переходите к шаблону по ссылке на него.

Например:

$_SESSION[$ses_id]["sel111"][] = 101; // запись с id = 101
$_SESSION[$ses_id]["sel111"][] = 102; // запись с id = 102
header("Location:forms.php?table=111&mode=print&form=222"); // 111 - id таблицы, 222 - id шаблона


#5 nk

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

  • Пользователи
  • PipPipPip
  • 228 сообщений
  • Пол:Мужчина

Отправлено 27 Ноябрь 2012 - 09:22

после этого надо будет ещё кликнуть по самому шаблону, чтобы вызвать download? или после клика по доп. действию сразу произойдет загрузка сформированного документа?

#6 CbCoder

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

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

Отправлено 27 Ноябрь 2012 - 09:35

Это прямая ссылка на шаблон. Если браузер не поддерживает открытие внутри него документа word, то сразу откроется запрос на скачивание.

#7 nk

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

  • Пользователи
  • PipPipPip
  • 228 сообщений
  • Пол:Мужчина

Отправлено 27 Ноябрь 2012 - 09:37

А нельзя после
 header("Location:forms.php?table=111&mode=print&form=222"); 
вставить такой же код для другой таблицы и т.д...?

#8 CbCoder

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

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

Отправлено 27 Ноябрь 2012 - 09:55

Нет, после перенаправления никакой другой код не выполняется. Да и как вы это себе представляете? Одновременно несколько шаблонов открыться не могут на загрузку.

Если вам нужно несколько шаблонов - выведите свой список ссылок на экран.

#9 arax

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
  • Пол:Мужчина
  • Город:Казань

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

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

#10 CbCoder

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

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

Отправлено 09 Апрель 2014 - 09:43

Насколько знаю, нет.

#11 arax

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
  • Пол:Мужчина
  • Город:Казань

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

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

Насколько знаю, нет.
Как я понимаю это ответ на второй вопрос, про открытие нескольких окон с шаблонами, да?
А по поводу кнопки "Закрыть" что-нибудь скажете? Или лучше в техподдержку написать?

#12 CbCoder

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

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

Отправлено 10 Апрель 2014 - 09:01

Техподдержка тут не по может. Это не баг.

Попробуйте заменить header("Location:forms.php?table=111&mode=print&form=222"); на echo "<script>window.open('forms.php?table=111&mode=print&form=222')</script>"; exit;

В этом случае и кнопка должна заработать, и страница будет открываться в новой вкладке, и можно открыть несколько таких окон, если продублировать window.open с разными путями.





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

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