column => { transform => count => colname => 'id' },
alias => '::PARAM3',
},
- { relation=> 'circ-id-mb',
- column => { transform => sum => colname => 'amount' },
- alias => 'total bills',
- },
],
from => {
table => 'action.circulation',
column => 'barcode',
},
],
+ pivot_default => 0,
+ pivot_data => 4,
+ pivot_label => 2,
};
my $params = {
$r->register_params( $params );
my $rs = $r->parse_report( $report );
+$rs->relative_time('2006-10-01T00:00:00-4');
print "Column Labels: " . join(', ', $rs->column_label_list) . "\n";
print $rs->toSQL;
sub _flesh_conditions {
my $cond = shift;
+ my $builder = shift;
$cond = [$cond] unless (ref($cond) eq 'ARRAY');
my @out;
for my $c (@$cond) {
- push @out, OpenILS::Reporter::SQLBuilder::Input->new( $c );
+ push @out, OpenILS::Reporter::SQLBuilder::Input->new( $c )->set_builder( $builder );
}
return \@out;
my $sql = $self->SUPER::toSQL;
my ($op) = keys %{ $self->{_condition} };
- my $val = _flesh_conditions( $self->resolve_param( $self->{_condition}->{$op} ) );
+ my $val = _flesh_conditions( $self->resolve_param( $self->{_condition}->{$op} ), $self->builder );
if (lc($op) eq 'in') {
$sql .= " IN (". join(",", map { $_->toSQL } @$val).")";
my $max_y = 0;
for my $vcol (@values) {
next unless (defined $vcol);
-
+ $pic_data[$set] ||= [];
my $pos = 0;
for my $row (@$data) {
my @no_use;
my $set_index = 0;
for my $dataset (@pic_data) {
- splice(@$dataset,$_,1) for (sort { $b <=> $a } @trim_cols);
+ splice(@$dataset,$_,1) for (reverse sort @trim_cols);
if (grep { $_ } @$dataset) {
push @new_data, $dataset;
- push @use_me, $set_index;
+ push @use_me, $set_index if ($set_index > 0);
} else {
push @no_use, $set_index;
}
return [] unless ($new_data[0] && @{$new_data[0]});
for my $col (@use_me) {
- push @leg, $r->{column_labels}->[$col + @groups - 1] if (map { 1 } grep { $col == $_ } @values);
+ push @leg, $r->{column_labels}->[$values[$col - 1]];
}
my $w = 100 + 10 * scalar(@{$new_data[0]});
my $max_y = 0;
for my $vcol (@values) {
next unless (defined $vcol);
+ $pic_data[$set] ||= [];
for my $row (@$data) {
if (grep { $_ } @$dataset) {
push @new_data, $dataset;
- push @use_me, $set_index;
+ push @use_me, $set_index if ($set_index > 0);
} else {
push @no_use, $set_index;
}
}
for my $col (@use_me) {
- push @leg, $r->{column_labels}->[$col + @groups - 1] if (map { 1 } grep { $col == $_ } @values);
+ push @leg, $r->{column_labels}->[$values[$col - 1]];
}
my $w = 100 + 10 * scalar(@{$new_data[0]});