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


Публикации weranda

4 публикаций создано weranda (учитываются публикации только с 30-Март 23)


#32000 Как не выводить подтаблицу в шаблоне печати, если она пуста?

Отправлено от weranda в 22 Сентябрь 2016 - 10:20 in Как это сделать

Просмотр сообщенияCbCoder (22 Сентябрь 2016 - 09:49) писал:

Да, извиняюсь, немного ввел в заблуждение, не все так просто. Но тем не менее способ есть. Вместо {if {$Услуги}} необходимо писать {if $subtable111}, где вместо 111 необходимо прописать id подтаблицы, причем именно подтаблицы как элемента, а не таблицы, на основе которой она создана. Его можно посмотреть в адресной строке, если зайти в свойства этой самой подтаблицы (см. скриншот)

Прикрепленный файл screen.png

Спасибо за помощь. Все работает. Успехов!



#31994 Как не выводить подтаблицу в шаблоне печати, если она пуста?

Отправлено от weranda в 21 Сентябрь 2016 - 21:19 in Как это сделать

Просмотр сообщенияCbCoder (21 Сентябрь 2016 - 15:53) писал:

Хотя, сейчас только заметил, что у вас условие обернуто в цикл foreach. Это конечно явно избыточный вариант, хотя формально и рабочий. Если вас это беспокоит, то лучше размещать в условие {$Услуги}:

{if {$Услуги}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}

Т.е. в переводе на человеческий это "Если подтаблица Услуги не пуста, то...". Оборачивать в цикл естественно не нужно.




Этот вариант пробовал самым первым, но он не срабатывает. Чтобы не быть голословным, проведем эксперимент на демонстрационной конфигурации сайта.

В базе есть таблица Заявки. Открываем первую попавшуюся запись в этой таблице. Видим внутри вложенную таблицу Работа по заявке. Идем в настройки шаблонов печати таблицы Заявок и создаем новый шаблон. Результат работы созданного шаблона с различными вариантами кода.


Первый вариант.
{if {$Работа по заявке}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: Syntax Error in template "string:" on line 1 "{if {$Работа по заявке}}" - Unexpected "�", expected one of: "{" , "identifier"


Первый вариант в одну строку:
{if {$Работа по заявке}}<div>Здесь вывод шапки подтаблицы Услуги</div>{/if}
Результат: Syntax Error in template "string:" on line 1 "{if {$Работа по заявке}}<div>Здесь вывод шапки подтаблицы Услуги</div>{/if}" - Unexpected "�", expected one of: "{" , "identifier"


Второй вариант:
{if {$Работа по заявке.Действие}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: результат отсутствует, сообщение в блоке DIV не выводится.


Третий вариант:
{foreach from="{$Работа по заявке}" name="Работа по заявке" item=subtable}{/foreach}
{if {$Работа по заявке}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: Syntax Error in template "string:" on line 2 "{if {$Работа по заявке}}" - Unexpected "�", expected one of: "{" , "identifier"


Четвертый вариант:
{foreach from="{$Работа по заявке}" name="Работа по заявке" item=subtable}{/foreach}
{if {$Работа по заявке.Действие}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}
Результат: все работает

Код не копировал, писал вручную. Ошибки из-за скрытых символов нет. Писал в том числе и в одну строку.
Если быть точным, то ваш вариант срабатывает, но только для данных, размещенных в родительской таблице, а для подчиненных таблиц не срабатывает.

Есть идеи?



#31987 Как не выводить подтаблицу в шаблоне печати, если она пуста?

Отправлено от weranda в 21 Сентябрь 2016 - 13:00 in Как это сделать

Просмотр сообщенияCbCoder (21 Сентябрь 2016 - 10:09) писал:

Используйте условие для вывода подтаблицы.

Я не силен в программировании, но кое что получилось и я не уверен, что это правильно.

Приведу пример.

Главня таблица – это Главная таблица.
Услуги – это подчиненная таблица (не заполнена данными).
Работы – это подчиненная таблица. (заполнена данными).

В подтаблице Услуги есть два поля: Наименование и Стоимость.

Я сформировал код вывода шаблона для таблицы услуг следующим образом:

Шапка таблицы.
{foreach from="{$Услуги}" name="Услуги" item=subtable}{/foreach}
{if {$Услуги.Наименование}}
<div>Здесь вывод шапки подтаблицы Услуги</div>
{/if}

Строки таблицы.
{foreach from="{$Услуги}" name="Услуги" item=subtable}
{$Услуги.Наименование}
{$Услуги.Стоимость}
{/foreach}

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

Во втором блоке кода, вроде, все корректно.

Могли бы вы показать реальный пример в виде кода с проверкой наличия записей в таблице? Мне непонятно, как правильно написать код. Или именно так правильно?



#31979 Как не выводить подтаблицу в шаблоне печати, если она пуста?

Отправлено от weranda в 20 Сентябрь 2016 - 23:06 in Как это сделать

Приветствую

Не могу понять как правильно настроить шаблон печати, а именно: в одном шаблоне печати выводятся данные из двух подтаблиц (Товары и Услуги). Одна из этих подтаблиц может быть без записей, т.е. данные могут быть заполнены или в подтаблице Товары или в подтаблице Услуги. Иногда заполняются обе подтаблицы и когда они обе заполнены, то проблем с корректностью вывода данных из двух таблиц на печать нет. Но если одна из них не заполнена данными, к примеру, подтаблица Товары заполнена, а подтаблица Услуги не заполнена, тогда в шаблоне печати выводится только шапка подтаблицы Услуг без наименований и стоимости услуг - это некрасиво.
Подскажите пожалуйста, как осуществить проверку на отсутствие записей в подтаблице Услуг (Товаров) и если записи в ней отсутствуют, то не выводить и ее шапку.

Привожу условный пример на картинке:

				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		
		</div>
<script type=