<field name="excel_format" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
<field name="csv_format" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool"/>
<field name="html_format" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="error_code" oils_obj:array_position="12" oils_persist:virtual="false" />
+ <field name="error_code" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="int"/>
<field name="error_text" oils_obj:array_position="13" oils_persist:virtual="false" />
<field name="report" oils_obj:array_position="14" oils_persist:virtual="false" />
<field name="folder" oils_obj:array_position="15" oils_persist:virtual="false" />
+ <field name="chart_pie" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
+ <field name="chart_bar" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
+ <field name="chart_line" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="bool"/>
</fields>
<links>
<link field="runner" reltype="has_a" key="id" map="" class="au"/>
->set_from( $report->{from} )
->set_where( $report->{where} )
->set_having( $report->{having} )
- ->set_order_by( $report->{order_by} );
+ ->set_order_by( $report->{order_by} )
+ ->set_pivot_data( $report->{pivot_data} )
+ ->set_pivot_label( $report->{pivot_label} )
+ ->set_pivot_default( $report->{pivot_default} );
return $rs;
}
return $self->{_is_subquery};
}
+sub pivot_data {
+ my $self = shift;
+ return $self->{_pivot_data};
+}
+
+sub pivot_label {
+ my $self = shift;
+ return $self->{_pivot_label};
+}
+
+sub pivot_default {
+ my $self = shift;
+ return $self->{_pivot_label};
+}
+
+sub set_pivot_default {
+ my $self = shift;
+ my $p = shift;
+ $self->{_pivot_default} = $p if (defined $p);
+ return $self;
+}
+
+sub set_pivot_data {
+ my $self = shift;
+ my $p = shift;
+ $self->{_pivot_data} = $p if (defined $p);
+ return $self;
+}
+
+sub set_pivot_label {
+ my $self = shift;
+ my $p = shift;
+ $self->{_pivot_label} = $p if (defined $p);
+ return $self;
+}
+
sub set_subquery_alias {
my $self = shift;
my $alias = shift;
return $self;
}
+sub column_label_list {
+ my $self = shift;
+
+ my @labels;
+ push @labels, $self->resolve_param( $_->{_alias} ) for ( @{ $self->{_select} } );
+ return @labels;
+}
+
+sub group_by_list {
+ my $self = shift;
+ my $base = shift;
+ $base = 1 unless (defined $base);
+
+ my $gcount = $base;
+ my @group_by;
+ for my $c ( @{ $self->{_select} } ) {
+ push @group_by, $gcount if (!$c->is_aggregate);
+ $gcount++;
+ }
+
+ return @group_by;
+}
+
sub toSQL {
my $self = shift;
$sql .= " FROM\t" . $self->{_from}->toSQL . "\n" if ($self->{_from});
$sql .= " WHERE\t" . join("\n\tAND ", map { $_->toSQL } @{ $self->{_where} }) . "\n" if (@{ $self->{_where} });
- my $gcount = 1;
- my @group_by;
- for my $c ( @{ $self->{_select} } ) {
- push @group_by, $gcount if (!$c->is_aggregate);
- $gcount++;
- }
+ my @group_by = $self->group_by_list;
$sql .= ' GROUP BY ' . join(', ', @group_by) . "\n" if (@group_by);
$sql .= " HAVING " . join("\n\tAND ", map { $_->toSQL } @{ $self->{_having} }) . "\n" if (@{ $self->{_having} });
excel_format BOOL NOT NULL DEFAULT TRUE,
html_format BOOL NOT NULL DEFAULT TRUE,
csv_format BOOL NOT NULL DEFAULT TRUE,
+ chart_pie BOOL NOT NULL DEFAULT FALSE,
+ chart_bar BOOL NOT NULL DEFAULT FALSE,
+ chart_line BOOL NOT NULL DEFAULT FALSE,
error_code INT,
error_text TEXT
);