function each_line($val) { reportico_report::each_line($val); if (session_request_item("target_style", "TABLE") == "FORM") { if (!$this->page_started) { $formpagethrow = $this->query->get_attribute("formBetweenRows"); switch ($formpagethrow) { case "newpage": if ($this->page_line_count > 0) { $formpagethrow = "swRepPageFormLine swNewPage"; } else { $formpagethrow = "swRepPageFormLine"; } break; case "blankline": $formpagethrow = "swRepPageFormBlank"; break; case "solidline": $formpagethrow = "swRepPageFormLine"; break; } // PPP $this->jar[""] .= '<TABLE class="'.$this->query->getBootstrapStyle("page").'swRepPage '.$formpagethrow.'" '.$this->get_style_tags($this->query->output_page_styles).'>'; $this->page_started = true; } foreach ($this->query->groups as $val) { for ($i = 0; $i < count($val->headers); $i++) { $col =& $val->headers[$i]; $this->format_group_header($col); } } foreach ($this->query->display_order_set["column"] as $k => $w) { if ($w->attributes["column_display"] != "show") { continue; } $this->format_group_header($w); } $this->page_line_count++; $this->line_count++; //$this->jar[""] .= '</TABLE>'; $this->page_started = false; return; } if ($this->page_line_count == 1) { //$this->jar[""] .="<tr class='swPrpCritLine'>"; //foreach ( $this->columns as $col ) //$this->format_column_header($col); //$this->jar[""] .="</tr>"; } //foreach ( $this->columns as $col ) if ($this->body_display == "show" && get_reportico_session_param("target_show_detail")) { $this->begin_line(); if (!$this->page_started) { //$this->jar[""] .= '<TABLE class="'.$this->query->getBootstrapStyle("page").'swRepPage" '.$this->get_style_tags($this->query->output_page_styles).'>'; $this->page_started = true; } foreach ($this->query->display_order_set["column"] as $col) { $this->format_column($col); } $this->end_line(); } }
function begin_page() { reportico_report::begin_page(); $this->debug("HTML Begin Page\n"); // Page Headers reportico_report::page_headers(); $title = $this->query->derive_attribute("ReportTitle", "Unknown"); if ($this->query->output_template_parameters["show_hide_report_output_title"] != "hide") { $this->text .= '<H1 class="swRepTitle">' . sw_translate($title) . '</H1>'; } $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $forward .= "&"; } if (!get_request_item("printable_html")) { if (!$this->query->access_mode || $this->query->access_mode != "REPORTOUTPUT") { $this->text .= '<div class="swRepBackBox"><a class="swLinkMenu" href="' . $this->query->get_action_url() . '?' . $forward . 'execute_mode=PREPARE&reportico_session_name=' . reportico_session_name() . '" title="' . template_xlate("GO_BACK") . '"> </a></div>'; } if (get_reportico_session_param("show_refresh_button")) { $this->text .= '<div class="swRepRefreshBox"><a class="swLinkMenu" href="' . $this->query->get_action_url() . '?' . $forward . 'refreshReport=1&execute_mode=EXECUTE&reportico_session_name=' . reportico_session_name() . '" title="' . template_xlate("GO_REFRESH") . '"> </a></div>'; } } else { $this->text .= '<div class="swRepPrintBox"><a class="swLinkMenu" href="' . $this->query->get_action_url() . '?' . $forward . 'printReport=1&execute_mode=EXECUTE&reportico_session_name=' . reportico_session_name() . '" title="' . template_xlate("GO_PRINT") . '">' . ' ' . '</a></div>'; } }
function before_group_headers() { //if ( $this->inOverflow ) //return; if (session_request_item("target_style", "TABLE") == "FORM") { return; } // Work out which groups have triggered trailer by passing // through highest to lowest level .. group changes at level cause change at lower // also last line does too!! $uppergroupchanged = false; reset($this->query->groups); if ($this->query->groups) { do { $group = current($this->query->groups); $group->change_triggered = false; if ($uppergroupchanged || $this->query->changed($group->group_name) || $this->last_line) { $group->change_triggered = true; $uppergroupchanged = true; } } while (next($this->query->groups)); } $changect = 0; reset($this->query->groups); foreach ($this->query->groups as $name => $group) { if (count($group->headers) > 0 && ($group->group_name == "REPORT_BODY" && $this->line_count == 0 || $group->change_triggered)) { if ($changect == 0 && $this->page_line_count > 0) { $changect++; $this->apply_format($group, "before_header"); $this->format_group_header_start($group->get_format("before_header") == "newpage"); } else { if ($changect == 0 || 1) { $this->format_group_header_start($this->page_line_count > 0 && $group->get_format("before_header") == "newpage"); } } if (get_reportico_session_param("target_show_group_headers")) { for ($i = 0; $i < count($group->headers); $i++) { $col =& $group->headers[$i]["GroupHeaderColumn"]; $custom = $group->headers[$i]["GroupHeaderCustom"]; $this->format_group_header($col, $custom); } } if ($graphs =& $this->query->get_graph_by_name($group->group_name)) { foreach ($graphs as $graph) { $graph->clear_data(); } } $this->format_group_header_end(); $this->apply_format($group, "after_header"); } else { if ($group->group_name == "REPORT_BODY" && $this->line_count == 0 || $this->query->changed($group->group_name)) { if ($graphs =& $this->query->get_graph_by_name($group->group_name)) { foreach ($graphs as $graph) { $graph->clear_data(); } } } } } // Show column headers for HTML/CSV on group change, or on first line of report, or on new page if (!$this->page_started && ($this->query->target_format == "HTML" || $this->query->target_format == "HTMLPRINT") || $this->query->target_format != "CSV" && $changect > 0 || $this->page_line_count == 0) { $this->format_report_detail_start(); if ($this->query->target_format == "PDF") { $this->column_header_required = true; } else { $this->format_headers(); } $this->page_styles_started = true; } }
static function reportico_meta_sql_criteria(&$in_query, $in_string, $prev_col_value = false) { // Replace user parameters with values $external_param1 = get_reportico_session_param("external_param1"); $external_param2 = get_reportico_session_param("external_param2"); $external_param3 = get_reportico_session_param("external_param3"); $external_user = get_reportico_session_param("external_user"); if ( $external_param1 ) $in_string = preg_replace ("/{EXTERNAL_PARAM1}/", "'".$external_param1."'", $in_string); if ( $external_param2 ) $in_string = preg_replace ("/{EXTERNAL_PARAM2}/", "'".$external_param2."'", $in_string); if ( $external_param3 ) $in_string = preg_replace ("/{EXTERNAL_PARAM3}/", "'".$external_param3."'", $in_string); if ( $external_user ) $in_string = preg_replace ("/{FRAMEWORK_USER}/", "'".$external_user."'", $in_string); // Replace External parameters specified by {USER_PARAM,xxxxx} if ( preg_match_all ( "/{USER_PARAM,([^}]*)}/", $in_string, $matches ) ) { foreach ( $matches[0] as $k => $v ) { $param = $matches[1][$k]; if ( isset($in_query->user_parameters[$param] ) ) { $in_string = preg_replace("/{USER_PARAM,$param}/", $in_query->user_parameters[$param], $in_string); } else { trigger_error("User parameter $param, specified but not provided to reportico", E_USER_ERROR); } } } $looping = true; $out_string = $in_string; $ct = 0; while ( $looping ) { $ct++; if ( $ct > 100 ) { echo "Problem with SQL cannot resolve Criteria Items<br>"; break; } $regpat = "/{([^}]*)/"; if ( preg_match ( $regpat, $out_string, $matches ) ) { $crit = $matches[1]; $first = substr($crit, 0, 1); $critexp = $crit; if ( $first == "=" ) { $crit = substr ( $crit, 1 ); $critexp = $crit; if ( array_key_exists($crit, $in_query->lookup_queries) ) $clause = $in_query->lookup_queries[$crit]->get_criteria_clause(false, false, true); else if ( $cl = get_query_column($crit, $this->query->columns ) ) if ( $prev_col_value ) $clause = $cl->old_column_value; else $clause = $cl->column_value; else { handle_error( "Unknown Criteria Item $crit in Query $in_string"); return $in_string; } } else { $eltype = "VALUE"; $showquotes = true; if ( preg_match ( "/(.*),(.*),(.*)/", $crit, $critel ) ) { $crit = $critel[1]; $eltype = $critel[2]; if ( $critel[3] == "false" ) $showquotes = false; } if ( preg_match ( "/(.*),(.*)/", $crit, $critel ) ) { $crit = $critel[1]; if ( $critel[2] == "false" ) $showquotes = false; else $eltype = $critel[2]; } if ( array_key_exists($crit, $in_query->lookup_queries) ) { switch ( $eltype ) { case "FULL" : $clause = $in_query->lookup_queries[$crit]->get_criteria_clause(true, true, true, false, false, $showquotes); break; case "RANGE1" : $clause = $in_query->lookup_queries[$crit]->get_criteria_clause(false, false, false, true, false, $showquotes); break; case "RANGE2" : $clause = $in_query->lookup_queries[$crit]->get_criteria_clause(false, false, false, false, true, $showquotes); break; case "VALUE" : default : $clause = $in_query->lookup_queries[$crit]->get_criteria_clause(false, false, true, false, false, $showquotes); } } else if ( $cl = get_query_column($crit, $in_query->columns ) ) if ( $prev_col_value ) $clause = $cl->old_column_value; else $clause = $cl->column_value; else { //handle_error( "Unknown Criteria Item $crit in Query $in_string"); return $in_string; } } if (!$clause) { $out_string = preg_replace("/\[[^[]*\{$critexp\}[^[]*\]/", '', $out_string); } else { $out_string = preg_replace("/\{=*$critexp\}/", $clause, $out_string); $out_string = preg_replace("/\[\([^[]*\)\]/", "\1", $out_string); } } else $looping = false; } $out_string = preg_replace("/\[\[/", "<STARTBRACKET>", $out_string); $out_string = preg_replace("/\]\]/", "<ENDBRACKET>", $out_string); $out_string = preg_replace("/\[/", "", $out_string); $out_string = preg_replace("/\]/", "", $out_string); $out_string = preg_replace("/<STARTBRACKET>/", "[", $out_string); $out_string = preg_replace("/<ENDBRACKET>/", "]", $out_string); // echo "<br>Meta clause: $out_string<BR>"; //$out_string = addcslashes($out_string, "\""); //$cmd = trim('$out_string = "'.$out_string.'";'); //echo $out_string; //if ( $cmd ) //eval($cmd); return $out_string; }
$outtext = preg_replace("/<AMPERSAND>/", "&", $intext); return $outtext; } set_up_reportico_session(); global $g_session_namespace; global $g_session_namespace_key; if ($g_session_namespace) { $g_session_namespace_key = "reportico_" . $g_session_namespace; } else { $g_session_namespace_key = "reportico"; } $plotdata = array(); $plot = array(); $graphid = derive_request_item("graphid", ""); if ($graphid) { $params = get_reportico_session_param($graphid); $a = explode('&', $params); $i = 0; while ($i < count($a)) { $b = preg_split('/=/', $a[$i]); $_REQUEST[$b[0]] = $b[1]; $tx = $b[0] . "=" . $b[1]; $i++; } } $color = htmltorgb(derive_request_item("graphcolor", "white")); $width = derive_request_item("width", 400); $height = derive_request_item("height", 200); $xgriddisplay = derive_request_item("xgriddisplay", "none"); $ygriddisplay = derive_request_item("ygriddisplay", "none"); $gridpos = derive_request_item("gridposition", "back");
function each_line($val) { if (!$this->columns_calculated) { // Calulate position and width of column detail taking into account // Report Body and Page styles $this->calculateColumnMetrics(); $this->columns_calculated = true; } reportico_report::each_line($val); if (session_request_item("target_style", "TABLE") == "FORM") { $this->end_line(); // Throw new page if set to throw between rows $formpagethrow = $this->query->get_attribute("formBetweenRows"); if ($this->line_count > 1 && $formpagethrow == "newpage") { $this->finish_page(); $this->begin_page(); } // Throw new page if current position + number headers + line + headers > than bottom margin $ln = 0; $totheaderheight = 0; $prevheight = $this->calculated_line_height; $this->apply_style_tags("ROW", $this->query->output_before_form_row_styles); $y = $this->document->GetY(); $this->set_position($this->abs_left_margin, $y); $this->unapply_style_tags("ROW", $this->query->output_before_form_row_styles); foreach ($this->query->groups as $val) { for ($i = 0; $i < count($val->headers); $i++) { $col =& $val->headers[$i]["GroupHeaderColumn"]; $this->format_group_header($col, false); $totheaderheight += $this->calculated_line_height; } } foreach ($this->query->display_order_set["column"] as $k => $w) { if ($w->attributes["column_display"] != "show") { continue; } $ct++; $this->format_group_header($w, false); $totheaderheight += $this->calculated_line_height; } $this->calculated_line_height = $totheaderheight; $y = $this->document->GetY(); $this->check_page_overflow(); $this->calculated_line_height = $prevheight; // Between form solid line or blank line if ($formpagethrow == "blankline") { $this->end_line(); $this->end_line(); } else { $this->end_line(); $this->apply_style_tags("AFTERFORMROW", $this->query->output_after_form_row_styles); $y = $this->document->GetY(); $this->set_position($this->abs_left_margin, $y); $this->draw_cell($this->abs_right_margin - $this->abs_left_margin, $this->vsize, "RR"); // Blank cell to continue page breaking at this size $this->unapply_style_tags("AFTERFORMROW", $this->query->output_after_form_row_styles); $this->end_line(); } return; } $y = $this->document->GetY(); $this->check_graphic_fit(); $this->yjump = 0; if ($this->body_display == "show" && get_reportico_session_param("target_show_detail")) { $this->row_styles = array(); $this->apply_style_tags("EACHHEADMID", $this->mid_cell_reportbody_styles, false, false, "ROW"); $this->apply_style_tags("EACHLINEMID", $this->mid_row_page_styles, false, false, "ROW"); $this->apply_style_tags("ROW2", $this->mid_cell_row_styles, false, false, "ROW"); $this->draw_mode = "CALCULATE"; $this->no_columns_printed = 0; $this->no_columns_to_print = 0; $this->cell_row_top_addition = $this->all_page_row_styles["style_border_top"]; $this->cell_row_bottom_addition = $this->all_page_row_styles["style_border_bottom"]; foreach ($this->columns as $col) { $this->format_column($col); } $this->cell_row_top_addition = 0; $this->cell_row_bottom_addition = 0; $this->unapply_style_tags("ROW2", $this->mid_cell_row_styles); $this->unapply_style_tags("EACHLINEMID", $this->mid_row_page_styles); $this->unapply_style_tags("EACHHEADMID", $this->mid_cell_reportbody_styles); $this->draw_mode = "DRAW"; $this->check_page_overflow(); $prev_calculated_line_height = $this->calculated_line_height; $prev_current_line_height = $this->current_line_height; $prev_max_line_height = $this->max_line_height; if ($this->column_header_required) { $this->format_headers(); $this->column_header_required = false; } $this->current_line_height = $prev_current_line_height; $this->calculated_line_height = $prev_calculated_line_height; $this->max_line_height = $prev_max_line_height; // Line page wrapper $this->new_report_page_line_by_style("LINE5PAGE", $this->mid_page_reportbody_styles, false); $this->new_report_page_line_by_style("LINE2PAGE", $this->mid_page_page_styles, false); $this->new_report_page_line_by_style("LINE2PAGE", $this->all_page_row_styles, false); // Page Styles $this->apply_style_tags("EACHHEADMID", $this->mid_cell_reportbody_styles, false, false, "ROW"); $this->apply_style_tags("EACHLINEMID", $this->mid_row_page_styles, false, false, "ROW"); $this->apply_style_tags("ROW2", $this->mid_cell_row_styles, false, false, "ROW"); $this->cell_row_top_addition = $this->all_page_row_styles["style_border_top"]; $this->cell_row_bottom_addition = $this->all_page_row_styles["style_border_bottom"]; $this->no_columns_printed = 0; foreach ($this->columns as $col) { $this->format_column($col); } $this->cell_row_top_addition = 0; $this->cell_row_bottom_addition = 0; $this->page_line_count++; $this->unapply_style_tags("ROW2", $this->mid_cell_row_styles); $this->unapply_style_tags("EACHLINEMID", $this->mid_row_page_styles); $this->unapply_style_tags("EACHHEADMID", $this->mid_cell_reportbody_styles); $nextliney = $this->document->GetY() + $this->max_line_height; $this->end_line(); } }
function reportico_session_name() { global $g_session_namespace; //if ( $g_session_namespace ) if (get_reportico_session_param("framework_parent")) { return "NS_" . $g_session_namespace; } else { return session_id() . "_" . $g_session_namespace; } }
function each_line($val) { // PDF reportico_report::each_line($val); if (session_request_item("target_style", "TABLE") == "FORM") { $this->end_line(); // Throw new page if set to throw between rows $formpagethrow = $this->query->get_attribute("formBetweenRows"); if ($this->line_count > 1 && $formpagethrow == "newpage") { $this->finish_page(); $this->begin_page(); } // Throw new page if current position + number headers + line + headers > than bottom margin $ln = 0; $totheaderheight = 0; $prevheight = $this->calculated_line_height; $this->apply_style_tags($this->query->output_before_form_row_styles); $y = $this->document->GetY(); $this->set_position($this->abs_left_margin, $y); $this->draw_cell(400, $this->vsize, ""); // Blank cell to continue page breaking at this size $this->unapply_style_tags($this->query->output_before_form_row_styles); foreach ($this->query->groups as $val) { for ($i = 0; $i < count($val->headers); $i++) { $col =& $val->headers[$i]["GroupHeaderColumn"]; $this->format_group_header($col, false); $totheaderheight += $this->calculated_line_height; } } foreach ($this->query->display_order_set["column"] as $k => $w) { if ($w->attributes["column_display"] != "show") { continue; } $ct++; $this->format_group_header($w, false); $totheaderheight += $this->calculated_line_height; } $this->calculated_line_height = $totheaderheight; $y = $this->document->GetY(); $this->check_page_overflow(); $this->calculated_line_height = $prevheight; // Between form solid line or blank line if ($formpagethrow == "blankline") { $this->end_line(); $this->end_line(); } else { $this->end_line(); $this->apply_style_tags($this->query->output_after_form_row_styles); $y = $this->document->GetY(); $this->set_position($this->abs_left_margin, $y); $this->draw_cell($this->abs_right_margin - $this->abs_left_margin, $this->vsize, ""); // Blank cell to continue page breaking at this size $this->unapply_style_tags($this->query->output_after_form_row_styles); $this->end_line(); } return; } $y = $this->document->GetY(); $this->check_graphic_fit(); $this->yjump = 0; if ($this->body_display == "show" && get_reportico_session_param("target_show_detail")) { $this->row_styles = array(); $this->apply_style_tags($this->query->output_row_styles, false, false, "ROW"); $this->draw_mode = "CALCULATE"; $this->no_columns_printed = 0; $this->no_columns_to_print = 0; foreach ($this->columns as $col) { $this->format_column($col); } $this->unapply_style_tags($this->query->output_row_styles); $this->draw_mode = "DRAW"; $this->check_page_overflow(); //$this->set_position($this->abs_left_margin, false); //$this->draw_cell($this->abs_right_margin - $this->abs_left_margin, $this->calculated_line_height, "xx", 0, 0); //$this->disable_style_tag($this->query->output_header_styles, "border-width"); $this->apply_style_tags($this->query->output_row_styles, false, false, "ROW"); $this->no_columns_printed = 0; foreach ($this->columns as $col) { $this->format_column($col); } $this->page_line_count++; $this->unapply_style_tags($this->query->output_row_styles); $nextliney = $this->document->GetY() + $this->max_line_height; $this->end_line(); $this->set_position(false, $nextliney); } //if ( $this->yjump ) //$this->set_position(false, $y + $this->yjump); //if ( $y + $this->vsize > $this->abs_bottom_margin ) //{ //$this->finish_page(); //$this->begin_page(); //} }
function pre_draw_smarty() { $text = ""; switch ($this->panel_type) { case "LOGIN": $this->smarty->assign('SHOW_LOGIN', true); break; case "LOGOUT": if (!SW_DB_CONNECT_FROM_CONFIG) { $this->smarty->assign('SHOW_LOGOUT', true); } break; case "MAINTAIN": $text .= $this->query->xmlin->xml2html($this->query->xmlin->data); break; case "BODY": $this->smarty->assign('EMBEDDED_REPORT', $this->query->embedded_report); break; case "MAIN": break; case "TITLE": $reporttitle = sw_translate($this->query->derive_attribute("ReportTitle", "Set Report Title")); // For Admin options title should be translatable // Also for configureproject.xml global $g_project; if ($this->query->xmlinput == "configureproject.xml" || $g_project == "admin") { $this->smarty->assign('TITLE', template_xlate($reporttitle)); } else { $this->smarty->assign('TITLE', $reporttitle); } $submit_self = $this->query->get_action_url(); $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $submit_self .= "?" . $forward; } $this->smarty->assign('SCRIPT_SELF', $submit_self); break; case "CRITERIA": $this->smarty->assign('SHOW_CRITERIA', true); break; case "CRITERIA_FORM": $dispcrit = array(); $ct = 0; // Build Select Column List $this->query->expand_col = false; foreach ($this->query->lookup_queries as $k => $col) { if ($col->criteria_type) { if (array_key_exists("EXPAND_" . $col->query_name, $_REQUEST)) { $this->query->expand_col =& $this->query->lookup_queries[$col->query_name]; } if (array_key_exists("EXPANDCLEAR_" . $col->query_name, $_REQUEST)) { $this->query->expand_col =& $this->query->lookup_queries[$col->query_name]; } if (array_key_exists("EXPANDSELECTALL_" . $col->query_name, $_REQUEST)) { $this->query->expand_col =& $this->query->lookup_queries[$col->query_name]; } if (array_key_exists("EXPANDSEARCH_" . $col->query_name, $_REQUEST)) { $this->query->expand_col =& $this->query->lookup_queries[$col->query_name]; } $crititle = ""; if ($tooltip = $col->derive_attribute("tooltip", false)) { $title = $col->derive_attribute("column_title", $col->query_name); $crittitle = '<a HREF="" onMouseOver="return overlib(\'' . $tooltip . '\',STICKY,CAPTION,\'' . $title . '\',DELAY,400);" onMouseOut="nd();" onclick="return false;">' . $title . '</A>'; } else { $crittitle = $col->derive_attribute("column_title", $col->query_name); } $critsel = $col->format_form_column(); $critexp = false; if ($col->expand_display && $col->expand_display != "NOINPUT") { $critexp = true; } $dispcrit[] = array("name" => $col->query_name, "title" => sw_translate($crittitle), "entry" => $critsel, "expand" => $critexp); } $this->smarty->assign("CRITERIA_ITEMS", $dispcrit); } break; case "CRITERIA_EXPAND": // Expand Cell Table $this->smarty->assign("SHOW_EXPANDED", false); if ($this->query->expand_col) { $this->smarty->assign("SHOW_EXPANDED", true); $this->smarty->assign("EXPANDED_ITEM", $this->query->expand_col->query_name); $this->smarty->assign("EXPANDED_SEARCH_VALUE", false); $title = $this->query->expand_col->derive_attribute("column_title", $this->query->expand_col->query_name); $this->smarty->assign("EXPANDED_TITLE", sw_translate($title)); // Only use then expand value if Search was press $expval = ""; if ($this->query->expand_col->submitted('MANUAL_' . $this->query->expand_col->query_name)) { $tmpval = $_REQUEST['MANUAL_' . $this->query->expand_col->query_name]; if (strlen($tmpval) > 1 && substr($tmpval, 0, 1) == "?") { $expval = substr($tmpval, 1); } } if ($this->query->expand_col->submitted('EXPANDSEARCH_' . $this->query->expand_col->query_name)) { if (array_key_exists("expand_value", $_REQUEST)) { $expval = $_REQUEST["expand_value"]; } } $this->smarty->assign("EXPANDED_SEARCH_VALUE", $expval); $text .= $this->query->expand_col->expand_template(); } else { if (!($desc = sw_translate_report_desc($this->query->xmloutfile))) { $desc = $this->query->derive_attribute("ReportDescription", false); } $this->smarty->debug = true; $this->smarty->assign("REPORT_DESCRIPTION", $desc); } break; case "USERINFO": $this->smarty->assign('DB_LOGGEDON', true); if (!SW_DB_CONNECT_FROM_CONFIG) { $this->smarty->assign('DBUSER', $this->query->datasource->user_name); } else { $this->smarty->assign('DBUSER', false); } break; case "RUNMODE": if ($this->query->execute_mode == "MAINTAIN") { $this->smarty->assign('SHOW_MODE_MAINTAIN_BOX', true); } else { // In demo mode for reporitco web site allow design if ($this->query->allow_maintain == "DEMO") { $this->smarty->assign('SHOW_DESIGN_BUTTON', true); } // Dont allow design option when configuring project if ($this->query->xmlinput != "configureproject.xml" && $this->query->xmlinput != "deleteproject.xml") { $this->smarty->assign('SHOW_DESIGN_BUTTON', true); } if ($this->query->xmlinput == "deleteproject.xml") { $this->smarty->assign('SHOW_ADMIN_BUTTON', true); $this->smarty->assign('SHOW_PROJECT_MENU_BUTTON', false); } else { if ($this->query->xmlinput == "configureproject.xml") { $this->smarty->assign('SHOW_ADMIN_BUTTON', true); } } } $create_report_url = $this->query->create_report_url; $configure_project_url = $this->query->configure_project_url; $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $configure_project_url .= "&" . $forward; $create_report_url .= "&" . $forward; } $this->smarty->assign('CONFIGURE_PROJECT_URL', $configure_project_url); $this->smarty->assign('CREATE_REPORT_URL', $create_report_url); break; case "MENUBUTTON": $prepare_url = $this->query->prepare_url; $menu_url = $this->query->menu_url; $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $menu_url .= "&" . $forward; $prepare_url .= "&" . $forward; } $this->smarty->assign('MAIN_MENU_URL', $menu_url); $this->smarty->assign('RUN_REPORT_URL', $prepare_url); $admin_menu_url = $this->query->admin_menu_url; $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $admin_menu_url .= "&" . $forward; } $this->smarty->assign('ADMIN_MENU_URL', $admin_menu_url); break; case "MENU": break; case "PROJECTITEM": if ($this->text != ".." && $this->text != "admin") { $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $forward .= "&"; } $this->query->projectitems[] = array("label" => $this->text, "url" => $this->query->get_action_url() . "?" . $forward . "execute_mode=MENU&project=" . $this->program . "&reportico_session_name=" . reportico_session_name()); } break; case "MENUITEM": $forward = session_request_item('forward_url_get_parameters', ''); if ($forward) { $forward .= "&"; } $this->query->menuitems[] = array("label" => $this->text, "url" => $this->query->get_action_url() . "?" . $forward . "execute_mode=PREPARE&xmlin=" . $this->program . "&reportico_session_name=" . reportico_session_name()); break; case "TOPMENU": $this->smarty->assign('SHOW_TOPMENU', true); break; case "DESTINATION": $this->smarty->assign('SHOW_OUTPUT', true); if (defined("SW_ALLOW_OUTPUT") && !SW_ALLOW_OUTPUT) { $this->smarty->assign('SHOW_OUTPUT', false); } $op = session_request_item("target_format", "HTML"); $output_types = array("HTML" => "", "PDF" => "", "CSV" => "", "XML" => "", "JSON" => "", "GRID" => ""); $output_types[$op] = "checked"; $noutput_types = array(); foreach ($output_types as $val) { $noutput_types[] = $val; } $this->smarty->assign('OUTPUT_TYPES', $noutput_types); $op = session_request_item("target_style", "TABLE"); $output_styles = array("TABLE" => "", "FORM" => ""); $output_styles[$op] = "checked"; $noutput_styles = array(); foreach ($output_styles as $val) { $noutput_styles[] = $val; } $this->smarty->assign('OUTPUT_STYLES', $noutput_styles); $attach = get_request_item("target_attachment", "1", $this->query->first_criteria_selection); if ($attach) { $attach = "checked"; } $this->smarty->assign("OUTPUT_ATTACH", $attach); $this->smarty->assign("OUTPUT_SHOWGRAPH", get_reportico_session_param("target_show_graph") ? "checked" : ""); $this->smarty->assign("OUTPUT_SHOWCRITERIA", get_reportico_session_param("target_show_criteria") ? "checked" : ""); $this->smarty->assign("OUTPUT_SHOWDETAIL", get_reportico_session_param("target_show_detail") ? "checked" : ""); $this->smarty->assign("OUTPUT_SHOWGROUPHEADERS", get_reportico_session_param("target_show_group_headers") ? "checked" : ""); $this->smarty->assign("OUTPUT_SHOWGROUPTRAILERS", get_reportico_session_param("target_show_group_trailers") ? "checked" : ""); $this->smarty->assign("OUTPUT_SHOWCOLHEADERS", get_reportico_session_param("target_show_column_headers") ? "checked" : ""); if ($this->query->allow_debug && SW_ALLOW_DEBUG) { $this->smarty->assign("OUTPUT_SHOW_DEBUG", true); $debug_mode = get_request_item("debug_mode", "0", $this->query->first_criteria_selection); $this->smarty->assign("DEBUG_NONE", ""); $this->smarty->assign("DEBUG_LOW", ""); $this->smarty->assign("DEBUG_MEDIUM", ""); $this->smarty->assign("DEBUG_HIGH", ""); switch ($debug_mode) { case 1: $this->smarty->assign("DEBUG_LOW", "selected"); break; case 2: $this->smarty->assign("DEBUG_MEDIUM", "selected"); break; case 3: $this->smarty->assign("DEBUG_HIGH", "selected"); break; default: $this->smarty->assign("DEBUG_NONE", "selected"); } if ($debug_mode) { $debug_mode = "checked"; } $this->smarty->assign("OUTPUT_DEBUG", $debug_mode); } $checked = ""; $this->smarty->assign("OUTPUT_SHOW_SHOWGRAPH", false); if (count($this->query->graphs) > 0) { $checked = ""; if ($this->query->get_attribute("graphDisplay")) { $checked = "checked"; } if (!get_request_item("target_show_graph") && !$this->query->first_criteria_selection) { $checked = ""; } $this->smarty->assign("OUTPUT_SHOW_SHOWGRAPH", true); $this->smarty->assign("OUTPUT_SHOWDET", $checked); } break; case "STATUS": $msg = ""; if ($this->query->status_message) { $this->smarty->assign('STATUSMSG', $this->query->status_message); } global $g_system_debug; if (!$g_system_debug) { $g_system_debug = array(); } foreach ($g_system_debug as $val) { $msg .= "<hr>" . $val["dbgarea"] . " - " . $val["dbgstr"] . "\n"; } if ($msg) { $msg = "<BR><B>" . template_xlate("INFORMATION") . "</B>" . $msg; } $this->smarty->assign('STATUSMSG', $msg); break; case "ERROR": $msg = ""; global $g_system_errors; $lastval = false; $duptypect = 0; if (!$g_system_errors) { $g_system_errors = array(); } foreach ($g_system_errors as $val) { if ($val["errno"] == E_USER_ERROR || $val["errno"] == E_USER_WARNING) { $msg .= "<HR>"; if ($val["errarea"]) { $msg .= $val["errarea"] . " - "; } if ($val["errtype"]) { $msg .= $val["errtype"] . ": "; } $msg .= $val["errstr"]; $msg .= $val["errsource"]; $msg .= "\n"; } else { // Dont keep repeating Assignment errors $msg .= "<HR>"; //if ( $val["errct"] > 1 ) $msg .= $val["errct"]." occurrences of "; // PPP Change $msg .= $val["errarea"]." - ".$val["errtype"].": ".$val["errstr"]. //" at line ".$val["errline"]." in ".$val["errfile"].$val["errsource"]; //"\n"; if ($val["errarea"]) { $msg .= $val["errarea"] . " - "; } if ($val["errtype"]) { $msg .= $val["errtype"] . ": "; } $msg .= $val["errstr"]; //$msg .= " at line ".$val["errline"]." in ".$val["errfile"].$val["errsource"]; "\n"; $duptypect = 0; } $lastval = $val; } if ($duptypect > 0) { $msg .= "<BR>{$duptypect} more errors like this<BR>"; } if ($msg) { $msg = "<B>" . template_xlate("UNABLE_TO_CONTINUE") . ":</B>" . $msg; } $this->smarty->assign('ERRORMSG', $msg); set_reportico_session_param('latestRequest', ""); break; } return $text; }
function before_group_headers() { //if ( $this->inOverflow ) //return; if (session_request_item("target_style", "TABLE") == "FORM") { return; } $changect = 0; reset($this->query->groups); foreach ($this->query->groups as $name => $group) { if (count($group->headers) > 0 && ($group->group_name == "REPORT_BODY" && $this->line_count == 0 || $this->query->changed($group->group_name))) { if ($changect == 0 && $this->page_line_count > 0) { $changect++; $this->apply_format($group, "before_header"); $this->format_group_header_start($group->get_format("before_header") == "newpage"); } else { if ($changect == 0 || 1) { $this->format_group_header_start($this->page_line_count > 0 && $group->get_format("before_header") == "newpage"); } } if (get_reportico_session_param("target_show_group_headers")) { for ($i = 0; $i < count($group->headers); $i++) { $col =& $group->headers[$i]["GroupHeaderColumn"]; $custom = $group->headers[$i]["GroupHeaderCustom"]; $this->format_group_header($col, $custom); } } if ($graphs =& $this->query->get_graph_by_name($group->group_name)) { foreach ($graphs as $graph) { $graph->clear_data(); } } $this->format_group_header_end(); $this->apply_format($group, "after_header"); } else { if ($group->group_name == "REPORT_BODY" && $this->line_count == 0 || $this->query->changed($group->group_name)) { if ($graphs =& $this->query->get_graph_by_name($group->group_name)) { foreach ($graphs as $graph) { $graph->clear_data(); } } } } } // Show column headers for HTML/CSV on group change, or on first line of report, or on new page if (!$this->page_started && ($this->query->target_format == "HTML" || $this->query->target_format == "HTMLPRINT") || $this->query->target_format != "CSV" && $changect > 0 || $this->page_line_count == 0) { $this->format_report_detail_start(); $this->format_headers(); $this->page_styles_started = true; } }
function reportico_defaults($reportico) { // Set up styles // Use // $styles = array ( "styleproperty" => "value", .... ); // $reportico->apply_styleset("REPORTSECTION", $styles, "columnname", WHENTOAPPLY ); // Where REPORTSECTION is one of ALLCELLS ROW CELL PAGE BODY COLUMNHEADERS GROUPHEADER GROUPHEADERLABEL GROUPHEADERVALUE GROUPTRAILER // and WHENTOAPPLY can be PDF or HTML of leave unsepcified/false for both // Don't apply apply body styles to pdf docuement when using fpdf engine if ($reportico->pdf_engine != "fpdf") { // REPORT BODY STYLES $styles = array("border-width" => "0px 0px 0px 0px", "border-style" => "solid", "border-color" => "#000000", "font-family" => "freesans"); $reportico->apply_styleset("BODY", $styles, false, "PDF"); // CRITERIA BOX STYLES $styles = array("background-color" => "#ffffff", "border-style" => "solid", "border-width" => "1px 1px 1px 1px", "border-color" => "#888888"); $reportico->apply_styleset("CRITERIA", $styles, false, false); } // PAGE DETAIL BOX STYLES $styles = array("margin" => "0 5 0 5"); $reportico->apply_styleset("PAGE", $styles, false, "PDF"); // DETAIL ROW BOX STYLES $styles = array("background-color" => "#ffffff", "margin" => "0 10 0 10", "padding" => "0px 5px 0px 5px"); $reportico->apply_styleset("ROW", $styles, false, "PDF"); $styles = array("background-color" => "#ffffff"); $reportico->apply_styleset("ALLCELLS", $styles, false, "PDF", "lineno() % 2 == 0"); // GROUP HEADER VALUE STYLES /* $styles = array( "background-color" => "#000000", "color" => "#ffffff", "font-family" => "comic", "font-size" => "18px", "padding" => "0 10 0 10", "requires-before" => "8cm", "margin" => "0 10 0 0", ); $reportico->apply_styleset("GROUPHEADERVALUE", $styles, "PDF"); */ //GROUP HEADER LABEL STYLES /* $styles = array( "background-color" => "#000000", "color" => "#ffffff", "font-family" => "comic", "font-size" => "18px", "padding" => "0 10 0 10", "margin" => "0 0 0 0", "requires-before" => "8cm", ); $reportico->apply_styleset("GROUPHEADERLABEL", $styles, "PDF"); */ // ALL CELL STYLES /* $styles = array( "font-family" => "times", "border-width" => "1px 1px 1px 1px", "border-style" => "solid", "border-color" => "#888888", ); $reportico->apply_styleset("ALLCELLS", $styles, "PDF"); */ // Specific named cell styles /* $styles = array( "color" => "#880000", "font-weight" => "bold", "font-style" => "italic", ); $reportico->apply_styleset("CELL", $styles, "id", "PDF"); */ // Column header styles $styles = array("color" => "#000000", "background-color" => "#ffffff", "font-weight" => "bold"); $reportico->apply_styleset("COLUMNHEADERS", $styles, false, "PDF"); // Page Headers for TCPDF driver ( this is the default ) if ($reportico->pdf_engine == "tcpdf") { $param = get_reportico_session_param("user_parameters"); $user = isset($param['User']) ? $param['User'] . " en " : ''; // Create Report Title Page Header on every page of PDF //$reportico->create_page_header("H1", 1, "{REPORT_TITLE}{STYLE border-width: 1 0 1 0; margin: 15px 0px 0px 0px; border-color: #000000; font-size: 18; border-style: solid;padding:5px 0px 5px 0px; height:1cm; background-color: #000000; color: #ffffff; text-align: center}" ); $reportico->create_page_header("H1", 1, "{REPORT_TITLE}{STYLE font-size: 15; padding:5px 0px 5px 0px; color: #000000; text-align: center}"); $reportico->set_page_header_attribute("H1", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H1", "ShowInPDF", "yes"); $reportico->set_page_header_attribute("H1", "justify", "center"); // Create Image on every page of PDF $reportico->create_page_header("H2", 1, "{STYLE width: 60; height: 60; margin: 0 0 0 0; background-color: #003333; background-image:images/udNombre.png;}"); $reportico->set_page_header_attribute("H2", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H2", "ShowInPDF", "yes"); // Create Image on every page of PDF $reportico->create_page_header("H3", 1, "Fecha: date('Y-m-d H:i:s'){STYLE font-size: 8; text-align: right; font-style: italic;}"); $reportico->set_page_header_attribute("H3", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H3", "ShowInPDF", "yes"); $reportico->set_page_header_attribute("H3", "justify", "right"); // Create Page No on bottom of PDF page $reportico->create_page_footer("F1", 2, "Impreso por: " . $user . " Sistema de Gestión Financiera - TIKE {STYLE border-width: 1 0 0 0; margin: 40 0 0 0; font-size: 8; text-align: left; font-style: italic; }"); $reportico->create_page_footer("F2", 2, "Página: {PAGE}{STYLE border-width: 1 0 0 0; margin: 40 0 0 0; font-style: italic; }"); //$reportico->create_page_footer("F3", 2, "Fuente de datos: Sistema Sicapital {STYLE border-width: 1 0 0 0; margin: 40 0 0 0; font-size: 8; text-align: right; font-style: italic; }" ); } else { // Create Report Title Page Header on every page of PDF //$reportico->create_page_header("H1", 2, "{REPORT_TITLE}{STYLE border-width: 1 0 1 0; margin: 15px 0px 0px 0px; border-color: #000000; font-size: 18; border-style: solid;padding:5px 0px 5px 0px; height:1cm; background-color: #000000; color: #ffffff}" ); $reportico->create_page_header("H1", 1, "{REPORT_TITLE}{STYLE font-size: 15; padding:5px 0px 5px 0px; color: #000000; text-align: center}"); $reportico->set_page_header_attribute("H1", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H1", "ShowInPDF", "no"); $reportico->set_page_header_attribute("H1", "justify", "center"); // Create Image on every page of PDF $reportico->create_page_header("H2", 1, "{STYLE width: 60; height: 60; margin: 0 0 0 0; background-color: #003333; background-image:images/udNombre.png;}"); $reportico->set_page_header_attribute("H2", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H2", "ShowInPDF", "yes"); // Create Image on every page of PDF $reportico->create_page_header("H3", 1, "Fecha: date('Y-m-d H:i:s'){STYLE font-size: 10; text-align: right; font-style: italic; }"); $reportico->set_page_header_attribute("H3", "ShowInHTML", "no"); $reportico->set_page_header_attribute("H3", "ShowInPDF", "yes"); $reportico->set_page_header_attribute("H3", "justify", "right"); // Create Page No on bottom of PDF page $reportico->create_page_footer("F1", 1, "Impreso por: Sistema de Gestión Financiera - TIKE {STYLE font-size: 8; text-align: left; font-style: italic; }"); $reportico->create_page_footer("F2", 1, "Pag: {PAGE}{STYLE border-width: 1 0 0 0; margin: 40 0 0 0; font-style: italic; }"); $reportico->create_page_footer("F3", 1, "Fuente de datos: Sistema Sicapital {STYLE border-width: 1 0 0 0; margin: 40 0 0 0; font-size: 8; text-align: right; font-style: italic; }"); } }