/**
  * @ignore
  */
 function do_group_footer(tabular_report_defn_group $grp)
 {
     // this method does not call the parent method
     $lines = $grp->get_footer_lines();
     if (count($lines)) {
         foreach ($lines as $line) {
             $rec = array();
             foreach ($this->report()->get_columns() as $key => $col) {
                 $val = $line->get_column_value($key);
                 $rec[$key] = $this->get_group_column_display_value($key, $grp->get_column(), $val);
             }
             $this->_rec['footers'][] = $rec;
         }
     }
     // this group has changed, go through all columns and reset this group
     foreach ($this->report()->get_columns() as $key => $col) {
         $col->reset_group($grp->get_column());
     }
 }
 /**
  * Test if the value for a specified group has changed.
  *
  * @param tabular_report_defn_group $grp The group that references the watched column.
  * @param array $row The data row.
  * @return bool
  */
 protected function changed(tabular_report_defn_group $grp, $row)
 {
     $col_key = $grp->get_column();
     if (array_key_exists($col_key, $row)) {
         $val = $row[$col_key];
         $col = $this->report()->get_column($col_key);
         return $col->changed($val);
     }
     return FALSE;
 }