From b5801e1d47ab0122b4e5517dbbd81700d54f7bde Mon Sep 17 00:00:00 2001 From: Andrew Hunt Date: Wed, 30 Oct 2013 13:08:30 -0400 Subject: [PATCH] option for page breaks before report section headers --- CRM/Report/Form.php | 2 ++ css/print.css | 4 ++++ templates/CRM/Report/Form/Criteria.tpl | 3 +++ templates/CRM/Report/Form/Layout/Table.tpl | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index 763b10bb2f..eae6c43e73 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -957,6 +957,7 @@ class CRM_Report_Form extends CRM_Core_Form { $this->addElement('select', "order_bys[{$i}][column]", ts('Order by Column'), $options); $this->addElement('select', "order_bys[{$i}][order]", ts('Order by Order'), array('ASC' => 'Ascending', 'DESC' => 'Descending')); $this->addElement('checkbox', "order_bys[{$i}][section]", ts('Order by Section'), FALSE, array('id' => "order_by_section_$i")); + $this->addElement('checkbox', "order_bys[{$i}][pageBreak]", ts('Page Break'), FALSE, array('id' => "order_by_section_$i")); } } } @@ -2152,6 +2153,7 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND // Record any section headers for assignment to the template if (CRM_Utils_Array::value('section', $orderBy)) { + $orderByField['pageBreak'] = CRM_Utils_Array::value('pageBreak', $orderBy); $this->_sections[$orderByField['tplField']] = $orderByField; } } diff --git a/css/print.css b/css/print.css index f1d4451f83..eeb01a4f34 100644 --- a/css/print.css +++ b/css/print.css @@ -74,6 +74,10 @@ table.form-layout td, table.form-layout th { border-top : 2px groove #DCDCDC; } +#crm-container table.report-layout tr.crm-report-sectionHeader.page-break { + page-break-before: always; +} + #crm-container .report-label { text-align : right; font-weight : bold; diff --git a/templates/CRM/Report/Form/Criteria.tpl b/templates/CRM/Report/Form/Criteria.tpl index fd85ecd62d..8f81493cce 100644 --- a/templates/CRM/Report/Form/Criteria.tpl +++ b/templates/CRM/Report/Form/Criteria.tpl @@ -99,6 +99,7 @@ Column Order Section Header / Group By + Page Break {section name=rowLoop start=1 loop=6} @@ -112,6 +113,7 @@ {$form.order_bys.$index.column.html} {$form.order_bys.$index.order.html} {$form.order_bys.$index.section.html} + {$form.order_bys.$index.pageBreak.html} {/section} @@ -139,6 +141,7 @@ cj('select#order_by_column_'+ i).val(''); cj('select#order_by_order_'+ i).val('ASC'); cj('input#order_by_section_'+ i).attr('checked', false); + cj('input#order_by_pageBreak_'+ i).attr('checked', false); } {/literal} diff --git a/templates/CRM/Report/Form/Layout/Table.tpl b/templates/CRM/Report/Form/Layout/Table.tpl index b141cb55bc..b2c59e4cfa 100644 --- a/templates/CRM/Report/Form/Layout/Table.tpl +++ b/templates/CRM/Report/Form/Layout/Table.tpl @@ -81,13 +81,13 @@ {$l}assign var=printValue value=$row.{$column}{$r} {$l}/if{$r} - + {$section.title}: {$l}$printValue|default:"none"{$r} ({$l}sectionTotal key=$row.{$column} depth={$smarty.foreach.sections.index}{$r}) {if $smarty.foreach.sections.last} - {$l}$tableHeader{$r} + {$l}$tableHeader{$r} {/if} {$l}/if{$r} {/foreach} -- 2.25.1