Ejemplo n.º 1
0
 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") . '">&nbsp;</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") . '">&nbsp;</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") . '">' . '&nbsp;' . '</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;
     }
 }
Ejemplo n.º 4
0
	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");
Ejemplo n.º 6
0
 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();
     }
 }
Ejemplo n.º 7
0
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();
     //}
 }
Ejemplo n.º 9
0
 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 . "&amp;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 . "&amp;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;
 }
Ejemplo n.º 10
0
 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; }");
    }
}