- my %data = map {
- my $def = $column_defs->{$_};
- $_ => {
- raw_data => $def->{raw_data} ? $def->{raw_data}->($obj) : '',
- data => $def->{sub} ? $def->{sub}->($obj)
- : $obj->can($_) ? $obj->$_
- : $obj->{$_},
- link => $def->{obj_link} ? $def->{obj_link}->($obj) : '',
- },
- } @columns;
+ my %data;
+
+ if (blessed($obj) && $obj->isa('SL::Controller::Helper::ReportGenerator::ControlRow::Base')) {
+ $obj->set_data($params{report});
+ next;
+
+ } else {
+ %data = map {
+ my $def = $column_defs->{$_};
+ my $tmp;
+ $tmp->{raw_data} = $def->{raw_data} ? $def->{raw_data}->($obj) : '';
+ $tmp->{data} = $def->{sub} ? $def->{sub}->($obj)
+ : $obj->can($_) ? $obj->$_
+ : $obj->{$_};
+ $tmp->{link} = $def->{obj_link} ? $def->{obj_link}->($obj) : '';
+ $_ => $tmp;
+ } @columns;
+ }