CoolFace
Apppublic

kenken999/php

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
dreport.php2607 linesDownload Raw Back to public
1<?php2ini_set("display_errors","1");3ini_set("display_startup_errors","1");4include("include/dbcommon.php");5 6add_nocache_headers();7 8include("include/reportfunctions.php");9 10if( postvalue( "rname" ) || $_SESSION["webreports"]["settings"]["name"] )11{12	$rname = postvalue( "rname" );13	if( !$rname && @$_SESSION["webreports"]["settings"]["name"] && @$_REQUEST["edit"] == "style" )14		$rname = @$_SESSION["webreports"]["settings"]["name"];15 16	$data = wrGetEntityRecord( $rname, WR_REPORT );17	if( !$data )18		header( "location: ".GetTableLink("webreport") );19	else20		Reload_Report( postvalue("rname") );21}22 23$includes="";24$includes.="<script language=\"JavaScript\" src=\"include/loadfirst.js?41974\"></script>\r\n";25$includes.="<script type=\"text/javascript\" src=\"include/lang/".getLangFileName(mlang_getcurrentlang()).".js\"></script>";26 27$cross_table="false";28 29$modePrint=false;30if(@$_REQUEST["mode"]=="print")31	$modePrint=true;32 33$render_mode=MODE_LIST;34 35if($modePrint)36{37	$render_mode=MODE_EXPORT;38//	print export headers39	if(@$_REQUEST["format"]=="excel")40	{41		header("Content-Type: application/vnd.ms-excel");42		header("Content-Disposition: attachment;Filename=".postvalue("rname").".xls");43		echo "<html>";44		echo "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">";45		echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$cCharset."\">";46	}47	else if(@$_REQUEST["format"]=="word")48	{49		header("Content-Type: application/vnd.ms-word");50		header("Content-Disposition: attachment;Filename=".postvalue("rname").".doc");51		echo "<html>";52		echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=".$cCharset."\">";53	}54	else55		$render_mode=MODE_PRINT;56}57 58// Style constants59$num_uniq = 0;60$num_uniq2 = 4;61define('FieldHeaders',40);62define('Group1Header',1);63define('Group1FooterCount',2);64define('Group1FooterMin',3);65define('Group1FooterMax',4);66define('Group1FooterSum',5);67define('Group1FooterAvg',6);68define('Group2Header',7);69define('Group2FooterCount',8);70define('Group2FooterMin',9);71define('Group2FooterMax',10);72define('Group2FooterSum',11);73define('Group2FooterAvg',12);74define('Group3Header',13);75define('Group3FooterCount',14);76define('Group3FooterMin',15);77define('Group3FooterMax',16);78define('Group3FooterSum',17);79define('Group3FooterAvg',18);80define('Group4Header',19);81define('Group4FooterCount',20);82define('Group4FooterMin',21);83define('Group4FooterMax',22);84define('Group4FooterSum',23);85define('Group4FooterAvg',24);86define('TableData',25);87define('PageSummary',26);88define('PageSummaryMin',27);89define('PageSummaryMax',28);90define('PageSummarySum',29);91define('PageSummaryAvg',30);92define('GlobalSumary',31);93define('GlobalSumaryMin',32);94define('GlobalSumaryMax',33);95define('GlobalSumarySum',34);96define('GlobalSumaryAvg',35);97define('Group1Summary',36);98define('Group2Summary',37);99define('Group3Summary',38);100define('Group4Summary',39);101 102 103include("classes/webreportpage.php");104include('include/xtempl.php');105$xt = new Xtempl();106 107$params = array("pageType" => "","id" => 0);108$params['xt'] = &$xt;109$params['tName'] = GLOBAL_PAGES;110$pageObject = new WebreportPage($params);111$pageObject->init();112$pageObject->addCommonJs();113 114$bparams = array();115$xt->assign_method("bodyend", $pageObject, "assignBodyEnd" );116 117// Settings for style editor118$editmode=(@$_REQUEST["edit"]=="style");119 120 121if(!$editmode)122{123// Load xml report data into array124	$rpt_array = wrGetEntityArray(postvalue("rname"), WR_REPORT );125}126else127	$rpt_array = $_SESSION["webreports"];128 129 130if( !$_SESSION["webobject"] )131	$_SESSION["webobject"] = array();132$_SESSION["webobject"]["table_type"] = $rpt_array["table_type"];133 134if(!postvalue("crosstable_refresh"))135{136	$reportFilename = GetTableLink("dreport");137}138 139$cross_table=$rpt_array["group_fields"][pre8count($rpt_array["group_fields"])-1]["cross_table"];140if($cross_table=="true")141{142	include("classes/crosstable_webreport.php");143	$includes.='<script type="text/javascript" src="'.GetRootPathForResources("include/crosstable.js").'"></script>';144	$includes.='<script type="text/javascript" src="'.GetRootPathForResources("include/json.js").'"></script>';145}146 147// if old148if (is_wr_project())149	include("include/" . GetTableURL( $rpt_array['tables'][0] ) . "_variables.php");150 151$gSettings = new ProjectSettings($rpt_array['tables'][0], PAGE_REPORT);152$tbl = $rpt_array['tables'][0];153$strTableName = $tbl;154 155$arrDBFieldsList = array();156$i=1;157foreach($rpt_array["totals"] as $ind=>$val)158{159	$arrDBFieldsList[GoodFieldName($val["table"].".".$val["name"])] = "f".$i;160	$i++;161}162 163include_once getabspath('classes/controls/ViewControlsContainer.php');164$viewControls = new ViewControlsContainer($gSettings, PAGE_REPORT);165 166$sessPrefix = "";167if (!is_wr_project())168	$sessPrefix = "webreport".postvalue("rname");169else170	$sessPrefix = $tbl;171 172// Check user permissions173	if( !Security::getUserName() ) {174		$_SESSION["MyURL"]=$_SERVER["SCRIPT_NAME"]."?".$_SERVER["QUERY_STRING"];175		header("Location: ".GetTableLink("login", "", "message=expired"));176		return;177	} elseif ( $rpt_array['settings']['status'] == "private" && $rpt_array['owner'] != Security::getUserName() ) {178		echo "<p>"."You don't have permissions to view this report"."</p>";179		exit();180	}181	if (pre8count(GetUserGroups()) > 1) {182		$arr_reports = array();183		$arr_reports = wrGetEntityList( WR_REPORT );184		foreach ( $arr_reports as $rpt ) {185			if (( $rpt["owner"] != Security::getUserName() || $rpt["owner"] == "") && $rpt["view"]==0 && $rpt_array['settings']['name']==$rpt["name"])186			{187				echo "<p>"."You don't have permissions to view this report"."</p>";188				exit();189			}190		}191	}192 193// Replace string values to boolean194$arr_xml_fields = array('group_fields','totals','sort_fields');195foreach ($arr_xml_fields as $xml_field) {196	if(!empty($rpt_array[$xml_field]))197	{198		$keyToModify = array();199 200		foreach ($rpt_array[$xml_field] as $screen => $data)201		{202			$keyToModify[$screen] = array();203			foreach ($data as $key => $val) {204				if ($data[$key] == "true") {205					$keyToModify[$screen][$key] = true;206				} elseif ($data[$key] == "false") {207					$keyToModify[$screen][$key] = false;208				}209			}210		}211 212		foreach ($keyToModify as $screen => $data) {213			foreach ($data as $key => $val) {214				$rpt_array[$xml_field][$screen][$key] = $val;215			}216		}217	}218}219 220$rpt_array['miscellaneous']['print_friendly'] = ($rpt_array['miscellaneous']['print_friendly'] == "true") ? true : false;221 222$reoportQResult = wrGetStyleRS( $rname );223$styleStr = '';224while( $data = $reoportQResult->fetchAssoc() ) {225 226	$type = $data[ "type" ];227	$style = $data[ "style_str" ];228	$field = $data[ "field" ];229	$group = $data[ "group" ];230	$uniq = $data[ "uniq" ];231	if ( $type == 'table') {232		$selector = "#legend td";233	} else if ( !$field && $group ) {234		$selector = "#legend td.class".$group."g";235	} else if ( $field && !$group ) {236		$selector = "#legend td.class" . $field . "f";237	} else if ( !$uniq && $field && $group ) {238		$selector = "#legend td.class".$group."g".$field."f0u";239	} else {240		$selector = "#legend td.class" . $group . "g" . $field . "f" . $uniq . "u";241	}242	$styleStr .= $selector . " { " . $style . " }\r\n";243}244 245$xt->assign("styleStr", $styleStr);246if ($editmode) {247	$xt->assign("b_is_report_name",($rpt_array['settings']['name'] != ""));248	$xt->assign("b_is_report_save",($_SESSION['webreports']['tmp_active'] != "x"));249}250 251 252 253 254// process reqest data, fill session variables255if(!$modePrint)256{257	if ( !count( $_POST ) && ( count( $_GET ) == 1 ) ) {258		if(array_key_exists("rname", $_GET))259		{260			$sess_unset = array();261			foreach($_SESSION as $key=>$value) {262				if(substr($key,0,strlen($sessPrefix)+1)==$sessPrefix."_" &&263					strpos(substr($key,strlen($sessPrefix)+1),"_")===false) {264					$sess_unset[] = $key;265				}266			}267			foreach($sess_unset as $key) {268				unset($_SESSION[$key]);269			}270		}271	}272 273	if(@$_REQUEST["a"]=="advsearch" || @$_REQUEST["a"]=="integrated")274	{275		$_SESSION[$sessPrefix."_asearchnot"]=array();276		$_SESSION[$sessPrefix."_asearchopt"]=array();277		$_SESSION[$sessPrefix."_asearchfor"]=array();278		$_SESSION[$sessPrefix."_asearchfor2"]=array();279		$_SESSION[$sessPrefix."_asearchtable"]=array();280		$_SESSION[$sessPrefix."_asearchfortype"]=array();281		unset($_SESSION[$sessPrefix."_asearchtype"]);282		$tosearch=0;283	}284 285	if(@$_REQUEST["a"]=="advsearch")286	{287		$asearchfield = postvalue("asearchfield");288		$asearchtable = postvalue("asearchtable");289		$_SESSION[$sessPrefix."_asearchtype"] = postvalue("type");290		if(!$_SESSION[$sessPrefix."_asearchtype"])291			$_SESSION[$sessPrefix."_asearchtype"]="and";292		foreach($asearchfield as $ind => $field)293		{294			if (!is_wr_project()) {295				$_SESSION[$sessPrefix."_asearchtable"][$field]=$asearchtable[$ind];296			}297			$gfield=GoodFieldName($field)."_1";298			$asopt=postvalue("asearchopt_".$gfield);299			$value1=postvalue("value_".$gfield);300			$type=postvalue("type_".$gfield);301			$value2=postvalue("value1_".$gfield);302			$not=postvalue("not_".$gfield);303			if(strlen($value1) || $asopt=='Empty')304			{305				$tosearch=1;306				$_SESSION[$sessPrefix."_asearchopt"][$field]=$asopt;307				if(!is_array($value1))308					$_SESSION[$sessPrefix."_asearchfor"][$field]=$value1;309				else310					$_SESSION[$sessPrefix."_asearchfor"][$field]=combinevalues($value1);311				$_SESSION[$sessPrefix."_asearchfortype"][$field]=$type;312				if($value2)313					$_SESSION[$sessPrefix."_asearchfor2"][$field]=$value2;314				$_SESSION[$sessPrefix."_asearchnot"][$field]=($not=="on");315			}316		}317	}318	elseif(@$_REQUEST["a"]=="integrated")319	{320		$_SESSION[$sessPrefix."_asearchtype"] = postvalue("criteria");321		if(!$_SESSION[$sessPrefix."_asearchtype"])322			$_SESSION[$sessPrefix."_asearchtype"]="and";323		// prepare vars324		$j=1;325 326		// scan all srch fields327		while ($field = postvalue('field'.$j))328		{329			$tosearch=1;330			$_SESSION[$sessPrefix."_asearchfortype"][$field] = trim(postvalue('type'.$j));331			$_SESSION[$sessPrefix."_asearchfor"][$field] = trim(postvalue('value'.$j.'1'));332			$_SESSION[$sessPrefix."_asearchopt"][$field] = (postvalue('option'.$j) ? postvalue('option'.$j) : 'Contains');333			$_SESSION[$sessPrefix."_asearchfor2"][$field] = trim(postvalue('value'.$j.'2'));334			$_SESSION[$sessPrefix."_asearchnot"][$field] = postvalue('not'.$j) == 'on';335			$j++;336		}337	}338 339	if(@$_REQUEST["a"]=="advsearch" || @$_REQUEST["a"]=="integrated")340	{341		if($tosearch)342			$_SESSION[$sessPrefix."_search"]=2;343		else344			$_SESSION[$sessPrefix."_search"]=0;345		$_SESSION[$sessPrefix."_pagenumber"]=1;346	}347}348 349if(@$_REQUEST["orderby"]){350	$_SESSION[$sessPrefix."_orderby"]=@$_REQUEST["orderby"];351}352 353if(@$_REQUEST["pagesize"]) {354	$_SESSION[$sessPrefix."_pagesize"]=@$_REQUEST["pagesize"];355	$_SESSION[$sessPrefix."_pagenumber"]=1;356}357 358if(@$_REQUEST["goto"]) {359	$_SESSION[$sessPrefix."_pagenumber"]=@$_REQUEST["goto"];360}361 362$includes .= '363 364	<link rel="stylesheet" href="'.GetRootPathForResources("include/css/jquery.ui.all.css").'" type="text/css" media="screen">365	<link rel="stylesheet" href="'.GetRootPathForResources("include/css/stylesheet.css").'" type="text/css" media="screen">366	<link rel="stylesheet" href="'.GetRootPathForResources("include/fancybox/jquery.fancybox.css?v=2.0.4").'" type="text/css" media="screen">367 368	<script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery-ui.custom.js").'"></script>369	<script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.fancybox.pack.js?v=2.0.4").'"></script>370	<script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.easing.js").'"></script>371	<script type="text/javascript" src="'.GetRootPathForResources("include/js/jquery.cookie.js").'"></script>372	';373 374if($editmode)375	$includes .= '<script type="text/javascript" src="'.GetRootPathForResources("include/js/actionscript.js").'"></script>';376 377$includes .= '378	<script type="text/javascript">379	var bSelected = false,380		TEXT_FIRST = "First",381		TEXT_PREVIOUS = "Previous",382		TEXT_NEXT = "Next",383		TEXT_LAST = "Last",384		defURL = "'.GetTableLink("menu").'";385 386	function GetGotoPageUrlString(nPageNumber,sUrlText){387		return \'<a href="JavaScript:GotoPage(\'+nPageNumber+\');" style="text-decoration: none;">\'+sUrlText+\'</a>\';388	}389 390	function WritePagination(mypage, maxpages, id){391		var paginationHTML = "";392 393		if (maxpages > 1 && mypage <= maxpages){394 395			var counterstart = mypage - 9;396			if (mypage % 10 != 0){397				counterstart = mypage - (mypage%10) + 1;398			}399			var counterend = counterstart + 9;400			if (counterend > maxpages){401				counterend = maxpages;402			}403			if (counterstart != 1){404				paginationHTML += GetGotoPageUrlString(1,"First")+"&nbsp;:&nbsp;"+GetGotoPageUrlString(counterstart - 1,"Prev")+"&nbsp;";405			}406			paginationHTML += "<b>[</b>";407 408			var pad = "";409			var counter	= counterstart;410			for(;counter<=counterend;counter++)411			{412				if (counter != mypage)413					paginationHTML += "&nbsp;" + GetGotoPageUrlString(counter,pad + counter);414				else415					paginationHTML += "&nbsp;<b>" + pad + counter + "</b>";416			}417			paginationHTML += "&nbsp;<b>]</b>";418 419			if (counterend != maxpages)420				paginationHTML += "&nbsp;" + GetGotoPageUrlString (counterend + 1,"Next") + "&nbsp;:&nbsp;" + GetGotoPageUrlString(maxpages,"Last");421 422			$("#pagination"+id).html(paginationHTML);423		}424	}425 426	$(document).ready(function(){427 428			$("a#preview").fancybox({429				fitToView: false,430				autoSize: false,431				width : 820,432				height : 660,433				overlayShow: true434			});435 436	';437 438if($_SESSION['webreports']['group_fields'][pre8count($_SESSION['webreports']['group_fields'])-1]["cross_table"]=="true")439	$includes .= '$("#row5,#row6").hide();'."\r\n";440 441// Settings for style editor. Check dynamic permissions442if (pre8count(GetUserGroups()) < 2 || isset( $_SESSION['webreports']['settings']['status'] )443	&& $_SESSION['webreports']['settings']['status'] == "private" ) {444	$includes .= '$("td[id=row9]").hide();';445}446if($wr_is_standalone)447	$includes .= '$("td[id=row11]").hide();'."\n";448 449if(!$modePrint)450{451	if (is_wr_project() || is_wr_custom()) {452		$includes .= '$("td[id=row1], td[id=row2]").hide();'."\r\n";453	}454 455	if ($_SESSION['webreports']['settings']['title'] == "") {456		$includes .= '457			for (var i=2; i<=9; i++){458				$("td[id=row" + i + "]").hide();459			};460		';461	}462}463else464{465	$includes.="setTimeout(function() {window.print();}, 1000);";466}467if(!is_wr_project())468	$advHref="dsearch";469else470	$advHref=runner_htmlspecialchars($rpt_array["short_table_name"])."_search";471 472$sClause="";473if(postvalue("q"))474	$sClause="&q=".postvalue("q");475 476$includes .= '477 478	$("#export_to_excel").click(function(){479			window.location.href = "'.GetTableLink("dreport").'?mode=print&all=1&format=excel&rname='.runner_htmlspecialchars(postvalue("rname")).$sClause.'&"+initCrossTableParams();480			return false;481		});482 483	$("#export_to_word").click(function(){484			window.location.href = "'.GetTableLink("dreport").'?mode=print&all=1&format=word&rname='.runner_htmlspecialchars(postvalue("rname")).$sClause.'&"+initCrossTableParams();485			return false;486		});487	$("#advButton").click(function(){488			window.location.href = "'.GetTableLink($advHref).'?rname='.runner_htmlspecialchars(postvalue("rname")).'&"+initCrossTableParams();489		});490 491	$("#printButton").click(function(){492			window.open("'.GetTableLink("dreport").'?mode=print&all=1&rname='.runner_htmlspecialchars(postvalue("rname")).$sClause.'&"+initCrossTableParams(),"wPrint");493			return false;494		});495	function initCrossTableParams(){496		var pos2, advAttr = "",497			shref = window.location.href,498			pos = shref.indexOf("&axis_x", 0);499 500		if (pos >= 0) {501			shref = shref.substr(0, pos);502			pos2 = shref.indexOf("a=", 0);503			if ( pos2 >= 0 ) {504				shref = shref.substr( pos2 );505			}506		}507		if ( $("#select_group_x").length ) {508			var axis_x = $("#select_group_x").val(),509				axis_y = $("#select_group_y").val(),510				field = $("#select_data").val(),511				grfunc_value = 0;512 513			$("input[name=group_func]:checked").each( function() {514				grfunc_value = this.value;515			});516			advAttr = "axis_x=" + axis_x + "&axis_y=" + axis_y + "&field=" + field + "&group_func=" + grfunc_value;517		}518		return advAttr;519	};520});521</script>';522 523$xt->assign("includes", $includes);524 525 526$_connection = $cman->getForWebReports();527if( is_wr_project() )528	$_connection = $cman->byTable( $rpt_array['tables'][0] );529 530$strSQL = "";531if( !is_wr_project() ) {532	// order by533	$gstrOrderBy = "";534	if(!empty($rpt_array['sort_fields']))535	{536		$gstrOrderBy = "ORDER BY ";537		foreach ( $rpt_array['sort_fields'] as $fld ) {538			$gstrOrderBy .= $_connection->addFieldWrappers( $fld['name'] );539			if ( $fld['desc'] ) {540				$gstrOrderBy .=	" DESC, ";541			} else {542				$gstrOrderBy .=	" ASC, ";543			}544		}545		$gstrOrderBy = substr( $gstrOrderBy, 0, -2);546	}	547	548	$strOrderBy = $gstrOrderBy;549 550	//	make sql "select" string551	$strWhereClause = "";552	$sWhere = "";553	if( !$editmode )554		$sWhere = CalcSearchParam( $sessPrefix );555 556 557	$strWhereClause = whereAdd( $strWhereClause, $sWhere);558	if ($sWhere) {559		$rpt_array['where'] .= ($rpt_array['where']) ?560			" AND (" . $sWhere . ")" :561			" WHERE (" . $sWhere . ")";562	}563 564	$strSQL = $rpt_array['sql'] . $rpt_array['where'] . $rpt_array['order_by'];565	566	$_SESSION[$sessPrefix."_sql"]   = $rpt_array['sql'];567	$_SESSION[$sessPrefix."_where"] = $rpt_array['where'];568	$_SESSION[$sessPrefix."_order"] = $rpt_array['order_by'];	569}570	$xt->assign("userid",runner_htmlspecialchars( Security::getUserName() ));571	$xt->assign("guest", Security::isGuest() );572 573 574/*if( is_wr_db() )575{576	$strSQL = $rpt_array['sql'] . $rpt_array['where'] . $rpt_array['order_by'];577}578else*/if( is_wr_custom() )579{580	if(GetDatabaseType() != nDATABASE_Oracle)581	{582		$sqlquery=$rpt_array['sql'];583		if(GetDatabaseType() == nDATABASE_MSSQLServer)584		{585			$pos=strrpos(strtoupper($sqlquery),"ORDER BY");586			if($pos)587				$sqlquery=substr($sqlquery,0,$pos);588		}589		$strSQL = "select * from (" .$sqlquery .") as ".$_connection->addFieldWrappers("t")." " . $rpt_array['where'] . $rpt_array['order_by'];590	}591	else592		$strSQL = "select * from (" .$rpt_array['sql'] .")" . $rpt_array['where'] . $rpt_array['order_by'];593}594 595$grid_row=array();596if($cross_table!="true")597{598	$groupno=0;599	if(!$_SESSION[$sessPrefix."_pagenumber"]) {600		$_SESSION[$sessPrefix."_pagenumber"]=1;601	}602 603	if(!$_SESSION[$sessPrefix."_pagesize"]) {604		if ( (pre8count($rpt_array['group_fields']) - 1 ) > 0 ) {605			$_SESSION[$sessPrefix."_pagesize"]=5;606		} else {607			$_SESSION[$sessPrefix."_pagesize"]=20;608		}609	}610 611 612 613	if($modePrint && @$_REQUEST["all"])614		$PageSize=-1;615	else616		$PageSize=$_SESSION[$sessPrefix."_pagesize"];617 618	$pagestart=($_SESSION[$sessPrefix."_pagenumber"]-1)*$_SESSION[$sessPrefix."_pagesize"]+1;619	$pageend=$pagestart+$_SESSION[$sessPrefix."_pagesize"]-1;620 621	// init totals622	for ( $i=0; $i < pre8count($rpt_array['group_fields'])-1; $i++ ) {623		$arr = $rpt_array['group_fields'][$i];624		if ( $i == 0 ) {625			// group totals626			$grouptotals_count = array();627			$grouptotals_min = array();628			$grouptotals_max = array();629			$grouptotals_dispmin = array();630			$grouptotals_dispmax = array();631			$grouptotals_sum = array();632			$grouptotalsavg_count = array();633		}634		$grouptotals_sum[$arr['name']]=array();635		$grouptotalsavg_count[$arr['name']]=array();636		$grouptotals_min[$arr['name']]=array();637		$grouptotals_max[$arr['name']]=array();638		$grouptotals_dispmin[$arr['name']]=array();639		$grouptotals_dispmax[$arr['name']]=array();640		$grouptotals_count[$arr['name']]=0;641		foreach ( $rpt_array['totals'] as $fld )642		{643			if ( $fld['show'] )644			{645				$grouptotals_sum[$arr['name']][fldname($fld)]=0;646				$grouptotalsavg_count[$arr['name']][fldname($fld)]=0;647			}648		}649	}650 651	$summary = array_slice( $rpt_array['group_fields'], -1 );652 653	if ($summary[0]["sps"]) {$xt->assign("page_summary_block",true);}654	if ($summary[0]["sgs"]) {$xt->assign("global_summary_block",true);}655	if ($summary[0]["sds"]) {$xt->assign("details_summary_block",true);}656	if ($summary[0]["sps"] && $summary[0]["sgs"]) {$xt->assign("summary_footer",true);}657 658	if ( $summary[0]["sps"] ) {659		// page totals660		$pagetotals_count = 0;661		$pagetotals_min = array();662		$pagetotals_max = array();663		$pagetotals_dispmin = array();664		$pagetotals_dispmax = array();665		$pagetotals_sum = array();666		$pagetotalsavg_count = array();667		foreach ( $rpt_array['totals'] as $fld )668		{669			if ( $fld['show'] ) {670				$pagetotals_sum[fldname($fld)]=0;671				$pagetotalsavg_count[fldname($fld)]=0;672			}673		}674	}675 676	if ( $summary[0]["sgs"] ) {677		// global totals678		$globaltotals_count = 0;679		$globaltotals_min = array();680		$globaltotals_max = array();681		$globaltotals_dispmin = array();682		$globaltotals_dispmax = array();683		$globaltotals_sum = array();684		$globaltotalsavg_count = array();685		foreach ( $rpt_array['totals'] as $fld )686		{687			if ( $fld['show'] ) {688				$globaltotals_sum[fldname($fld)]=0;689				$globaltotalsavg_count[fldname($fld)]=0;690			}691		}692	}693	694	if( is_wr_project() ) { 695		// use datasourse for project table696		$tName = $rpt_array['tables'][0];697		$dataSourse = getDataSource( $tName );698		699		$subsetDataCommand = getProjectWRSubsetDataCommand( $tName, $rpt_array['sort_fields'], $gSettings, $editmode );700		701		$sqlData = $dataSourse->prepareSQL( $subsetDataCommand );702		// where are these variables used ?703		$_SESSION[$sessPrefix."_sql"]   = $sqlData["sql"];704		$_SESSION[$sessPrefix."_where"] = $sqlData["where"];705		$_SESSION[$sessPrefix."_order"] = $sqlData["order"];706		707		708		$rs = $dataSourse->getList( $subsetDataCommand );709	} else {710		LogInfo($strSQL);711		$rs = $_connection->query( $strSQL );712	}713	714	$start=true;715	$align_skip=false;716 717	$groupstart=array();718	$groupvalue = array();719 720	for ( $i=0; $i < pre8count($rpt_array['group_fields'])-1; $i++ ) {721		$arr = $rpt_array['group_fields'][$i];722		$groupstart[$arr['name']] = 0;723		$groupvalue[$arr['name']] = "";724	}725 726	$rowinfo = array();727 728	$fields_type=array();729	if(is_wr_custom())730		$fields_type=WRGetAllCustomFieldType();731 732	include_once getabspath('classes/controls/ViewControlsContainer.php');733	$pSet = new ProjectSettings($_SESSION["webobject"]["table"], PAGE_REPORT);734	$viewControls = new ViewControlsContainer($pSet, PAGE_REPORT);735	while($data=$rs->fetchAssoc())736	{737		$firstnewgroup=true;738		$newgroup_ = array();739		$row=array();740		$arr_group=array();741		$arr_value=array();742 743		//	check if starting new group744		for ( $i=0; $i < pre8count($rpt_array['group_fields'])-1; $i++ ) {745			$arr = $rpt_array['group_fields'][$i];746			$newgroup_[$arr['name']] = false;747			$arr_group[$i] = array();748			$arr_group[$i]["newgroup"] = false;749			$arr_group[$i]["name"] = GoodFieldName( $arr['name'] );750			$arr_group[$i]["group_order"] = $arr['group_order'];751			$arr_group[$i]["groupId4"] = 1 + 6*($arr['group_order']-1);752			$arr_group[$i]["int_type"] = $arr['int_type'];753			$arr_group[$i]["ss"] = $arr['ss'];754			$arr_group[$i]["color1"] = $arr['color1'];755			$arr_group[$i]["color2"] = $arr['color2'];756		}757		$newgroup=false;758 759 760		if ( $start || $groupstart[$rpt_array['group_fields'][0]['name']] != GetGroupStart($rpt_array['group_fields'][0]['name'],db_fld_value($data,getDBFieldName($rpt_array['group_fields'][0]['name']))) )761		{762			$newgroup_[$rpt_array['group_fields'][0]['name']] = true;763			$newgroup=true;764		}765 766		for ( $i=1; $i < pre8count($rpt_array['group_fields']) - 1; $i++ ) {767			if ( $newgroup || $groupstart[$rpt_array['group_fields'][$i]['name'] ] != GetGroupStart($rpt_array['group_fields'][$i]['name'],db_fld_value($data,getDBFieldName($rpt_array['group_fields'][$i]['name']))) )768			{769				$newgroup_[$rpt_array['group_fields'][$i]['name']] = true;770				$newgroup=true;771			}772		}773 774		//close groups775		$rowclose=array();776		$arr_group_close=array();777		$arr_value_close=array();778		for ( $i=0; $i < pre8count($rpt_array['group_fields'])-1; $i++ ) {779			$arr = $rpt_array['group_fields'][$i];780 781			if( $editmode || !$start && $newgroup_[$arr['name']] )782			{783				$rowclose["endgroup_" . GoodFieldName( $arr['name'] )] = true;784				$rowclose["1" . GoodFieldName( $arr['name'] ) . "_grval"] = $groupvalue[$arr['name']];785				$rowclose["group" . GoodFieldName( $arr['name'] ) . "_total_cnt"] = $grouptotals_count[$arr['name']];786				$arr_group_close[$i]["name"] = GoodFieldName( $arr['name'] );787				$arr_group_close[$i]["group_order"] = $arr['group_order'];788				$arr_group_close[$i]["int_type"] = $arr['int_type'];789				$arr_group_close[$i]["ss"] = $arr['ss'];790				$arr_group_close[$i]["color1"] = $arr['color1'];791				$arr_group_close[$i]["color2"] = $arr['color2'];792				$arr_group_close[$i]["endgroup"] = true;793				$arr_group_close[$i]["grval"] = $groupvalue[$arr['name']];794				$arr_group_close[$i]["total_cnt"] = $grouptotals_count[$arr['name']];795 796				foreach ( $rpt_array['totals'] as $fld )797				{798					if ( $fld['show'] && $fld['sum'] ) {799						$sum = array(fldname($fld)=>$grouptotals_sum[$arr['name']][fldname($fld)]);800						$sval = $viewControls->getControl(fldname($fld), $fld['view_format'])->showDBValue($sum, "");801						$rowclose["group" . GoodFieldName( $arr['name'] ) . "_total" . GoodFieldName( fldname($fld) ) . "_sum"] = $sval;802						$arr_group_close[$i]["group_total_sum"]["data"][0][fldname($fld)] = $sval;803					}804				}805 806				if ( testAgr( $rpt_array['totals'], "avg", "min", "max", "" ) > 0 ) {807					if($grouptotals_count[$arr['name']])808					{809						foreach ( $rpt_array['totals'] as $fld )810						{811							if ( $fld['show'] ) {812								if ( $fld['avg'] ) {813									$aval = "";814									if($grouptotalsavg_count[$arr['name']][fldname($fld)])815									{816										$avg=array(fldname($fld)=>$grouptotals_sum[$arr['name']][fldname($fld)]/$grouptotalsavg_count[$arr['name']][fldname($fld)]);817										$aval = $viewControls->getControl(fldname($fld), $fld['view_format'])->showDBValue($avg, "");818									}819									$rowclose["group" . GoodFieldName( $arr['name'] )."_total".GoodFieldName( fldname($fld) )."_avg"] = $aval;820									$arr_group_close[$i]["group_total_avg"]["data"][0][fldname($fld)] = $aval;821								}822								if ( $fld['min'] ) {823									$rowclose["group" . GoodFieldName( $arr['name'] ) . "_total" . GoodFieldName( fldname($fld) ) . "_min"] =824										$grouptotals_dispmin[$arr['name']][fldname($fld)];825									$arr_group_close[$i]["group_total_min"]["data"][0][fldname($fld)] =826										$grouptotals_dispmin[$arr['name']][fldname($fld)];827								}828								if ( $fld['max'] ) {829									$rowclose["group" . GoodFieldName( $arr['name'] ) . "_total" . GoodFieldName( fldname($fld) ) . "_max"] =830										$grouptotals_dispmax[$arr['name']][fldname($fld)];831									$arr_group_close[$i]["group_total_max"]["data"][0][fldname($fld)] =832										$grouptotals_dispmax[$arr['name']][fldname($fld)];833								}834							}835						}836					}837				}838			}839		}840 841		if ( !((pre8count($rpt_array['group_fields']) - 1 ) > 0) ) {842			$groupno++;843		}844 845		if(($PageSize<0 || $groupno>=$pagestart && $groupno<=$pageend) && pre8count($rowclose))846		{847			$rowclose["group"]["data"]=$arr_group_close;848			$rowclose["group_desc"]["data"]=array_reverse($arr_group_close);849			$rowinfo[]=$rowclose;850		}851		$start=false;852		//open new group853		for ( $i=0; $i < pre8count($rpt_array['group_fields']) - 1; $i++ ) {854			$arr = $rpt_array['group_fields'][$i];855			if( $newgroup_[$arr['name']] )856			{857				if ( $i == 0 ) {858					$groupno++;859				}860				$row["newgroup_" . GoodFieldName( $arr['name'] )] = true;861				$arr_group[$i]["newgroup"] = true;862				$arr_group[$i]["firstnewgroup"] = $firstnewgroup;863				$firstnewgroup=false;864 865				$groupstart[$arr['name']] = GetGroupStart($arr['name'],db_fld_value($data,getDBFieldName($arr['name'])));866				$groupdisplay[$arr['name']] = GetGroupStart($arr['name'],db_fld_value($data,getDBFieldName($arr['name'])));867				$groupvalue[$arr['name']] = GetGroupDisplay($arr['name'],db_fld_value($data,getDBFieldName($arr['name'])));868 869				$row["1" . GoodFieldName( $arr['name'] ) . "_grval"] = $groupvalue[$arr['name']];870				$arr_group[$i]["grval"] = runner_htmlspecialchars( $groupvalue[$arr['name']] );871				$arr_group[$i]["groupId"] = 1 + 6*$i;872 873				$grouptotals_count[$arr['name']] = 0;874				foreach ( $rpt_array['totals'] as $fld )875				{876					if ( $fld['show'] ) {877						$grouptotals_sum[$arr['name']][fldname($fld)]=0;878						$grouptotalsavg_count[$arr['name']][fldname($fld)]=0;879 880					}881				}882			}883		}884 885		//display data886		if($PageSize<0 || $groupno>=$pagestart && $groupno<=$pageend)887		{888			$row["row_data"]=true;889			/////////////////////////////////890			$keylink="";891			$arrKeys = $gSettings->getTableKeys();892			if(!is_wr_project())893			{894				$arrKeysTbl=DBGetTableKeys( $rpt_array['tables'][0]);895				$arrKeys = array();896				foreach($arrKeysTbl as $i=>$k)897				{898					$arrKeys[$i]=$rpt_array['tables'][0].".".$k;899				}900			}901			for ( $j=0; $j < pre8count($arrKeys); $j++ ) {902				$keylink.="&key" . ($j+1) . "=".runner_htmlspecialchars(rawurlencode(db_fld_value($data,getDBFieldName($arrKeys[$j]))));903			}904			$arrFields=array();905			foreach ($rpt_array['totals'] as $f_key => $fld)906			{907				if ( $fld["show"] ) {908					$value="";909					if ( $fld["view_format"] == FORMAT_DATABASE_IMAGE && is_wr_project())910					{911						if($render_mode!=MODE_EXPORT)912						{913							if ( $fld["show_thumbnail"] ) {914								$value.="<a target=_blank href=\"".GetTableLink("imager")."?table=" . $rpt_array['short_table_name'] . "&field=" . runner_htmlspecialchars(rawurlencode(fldname($fld))) . "".$keylink."\">";915								$value.= "<img border=0";916		//								$value.=" src=\"" . $rpt_array['short_table_name'] . "_imager.php?field=" . runner_htmlspecialchars(rawurlencode($fld["strThumbnail"])) . $keylink . "&alt=" . runner_htmlspecialchars(rawurlencode(fldname($fld))) . "".$keylink."\">";917								$value.=" src=\"".GetTableLink("imager")."?table=" . $rpt_array['short_table_name'] . "&field=" . runner_htmlspecialchars(rawurlencode($fld["strThumbnail"])) . "".$keylink. "&alt=" . runner_htmlspecialchars(rawurlencode(fldname($fld)))."\">";918								$value.= "</a>";919							}920							else921							{922								$value = "<img";923								if ( $fld["listformatobj_imgwidth"] ) {924									$value.=" width=" . $fld["listformatobj_imgwidth"];925								}926								if ( $fld["listformatobj_imgheight"] ) {927									$value.=" height=" . $fld["listformatobj_imgheight"];928								}929								$value.=" border=0";930								$value.=" src=\"".GetTableLink("imager")."?table=" . $rpt_array['short_table_name'] . "&field=" . runner_htmlspecialchars(rawurlencode(fldname($fld))) . "".$keylink."\">";931							}932						}933					}934					elseif($fld["view_format"] == FORMAT_DATABASE_IMAGE && !is_wr_project())935					{936						if($render_mode!=MODE_EXPORT)937						{938							if(is_wr_custom())939							{940								$value = "LONG BINARY DATA - CANNOT BE DISPLAYED";941							}942							else943							{944								$value = "<img";945								$value.=" border=0";946								$value.=" src=\"".GetTableLink("dimager")."?rname=".runner_htmlspecialchars(rawurlencode(postvalue("rname")))."&field=" . runner_htmlspecialchars(rawurlencode(fldname($fld))) . "&alias=".runner_htmlspecialchars(rawurlencode($arrDBFieldsList[GoodFieldName(fldname($fld))])).$keylink."\">";947							}948						}949					}950					elseif ( $fld["view_format"] == FORMAT_FILE_IMAGE )951					{952						if($render_mode!=MODE_EXPORT)953						{954							if(CheckImageExtension(db_fld_value($data,getDBFieldName(fldname($fld)))))955							{956								if ( $fld["show_thumbnail"] ) {957									// show thumbnail958									$thumbname=$fld["thumbnail"].db_fld_value($data,getDBFieldName(fldname($fld)));959									if(substr($fld["hlprefix"],0,7)!="http://" && !file_exists(getabspath($fld["hlprefix"].$thumbname)))960									$thumbname=db_fld_value($data,getDBFieldName(fldname($fld)));961									$value="<a target=_blank href=\"".runner_htmlspecialchars(AddLinkPrefix($gSettings, fldname($fld),db_fld_value($data,getDBFieldName(fldname($fld)))))."\">";962									$value.="<img";963									if($thumbname==db_fld_value($data,getDBFieldName(fldname($fld))))964									{965										if ( $fld["listformatobj_imgwidth"] ) {966											$value.=" width=" . $fld["listformatobj_imgwidth"];967										}968										if ( $fld["listformatobj_imgheight"] ) {969											$value.=" height=" . $fld["listformatobj_imgheight"];970										}971									}972									$value.=" border=0";973									$value.=" src=\"".runner_htmlspecialchars(AddLinkPrefix($gSettings, fldname($fld),$thumbname))."\"></a>";974								} else {975									$value="<img";976									if ( $fld["listformatobj_imgwidth"] ) {977										$value.=" width=" . $fld["listformatobj_imgwidth"];978									}979									if ( $fld["listformatobj_imgheight"] ) {980										$value.=" height=" . $fld["listformatobj_imgheight"];981									}982									$value.=" border=0";983									$value.=" src=\"".runner_htmlspecialchars(AddLinkPrefix($gSettings, fldname($fld),db_fld_value($data,getDBFieldName(fldname($fld)))))."\">";984								}985							}986						}987					} elseif ( $fld["view_format"] == FORMAT_DATABASE_FILE ) {988						if($render_mode!=MODE_EXPORT)989						{990							if ( $fld["listformatobj_filename"] ) {991								$filename=db_fld_value($data,$fld["listformatobj_filename"]);992								if(!$filename) {993									$filename="file.bin";994								}995							} else {996								$filename="file.bin";997							}998							if(strlen(db_fld_value($data,getDBFieldName(fldname($fld)))))999							{1000								$value="<a href=\"".GetTableLink($rpt_array['short_table_name'], "getfile")."?filename=".rawurlencode($filename)."&field=" . runner_htmlspecialchars(rawurlencode(fldname($fld))) . $keylink."\">";1001								$value.=runner_htmlspecialchars($filename);1002								$value.="</a>";1003							}1004						}1005					}1006					elseif(!is_wr_project())1007					{1008						$value=WRProcessLargeText($viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, ""),1009							fldname($fld),pre8count($rowinfo),100,$render_mode,$fld['label']);1010					}1011					elseif ( ( $fld["edit_format"] == EDIT_FORMAT_LOOKUP_WIZARD || $fld["edit_format"] == EDIT_FORMAT_RADIO )1012						&& ($fld['lookupobj_lookuptype'] == LT_LOOKUPTABLE || $fld['lookupobj_lookuptype'] == LT_QUERY) )1013					{1014						//delete tjhis after the tests on feature #63561015						//$value = DisplayLookupWizard(fldname($fld), $data[fldname($fld)], $data, $keylink, $render_mode, PAGE_REPORT);1016						include_once getabspath('classes/controls/ViewLookupWizardField.php');1017						if(!$viewControls->viewControls[fldname($fld)])1018							$viewControls->viewControls[fldname($fld)] = new ViewLookupWizardField(getDBFieldName(fldname($fld)), $viewControls, null);1019						$value = $viewControls->showDBValue($viewControls, $data, $keylink);1020					}1021					elseif ( $fld["view_format"]!=FORMAT_CUSTOM && $fld["view_format"]!=FORMAT_FILE_IMAGE1022						&& $fld["view_format"] != FORMAT_FILE1023						&& $fld["view_format"]!=FORMAT_HYPERLINK && $fld["view_format"]!=FORMAT_EMAILHYPERLINK1024						&& $fld["view_format"] != FORMAT_CHECKBOX)1025					{1026						$value = WRProcessLargeText($viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "")1027							, fldname($fld)1028							, pre8count($rowinfo), $gSettings->getNumberOfChars(fldname($fld)), $render_mode,$fld['label']);1029					}1030					else1031					{1032						$value = $viewControls->getControl(getDBFieldName(fldname($fld)), $fld['view_format'])->showDBValue($data, "");1033					}1034					if ( $summary[0]["sds"] )1035					{1036						$row["1" . GoodFieldName( fldname($fld) ) . "_value"]=$value;1037						$arrFields["data"][0][fldname($fld)] = $value;1038					}1039					for ( $i=0; $i < pre8count($rpt_array['group_fields']) - 1; $i++ )1040					{1041						$arr = $rpt_array['group_fields'][$i];1042						if ( $summary[0]["sds"] || ( $arr["name"] == fldname($fld) && $arr["int_type"] == 0 ) )1043						{1044							if ( $summary[0]["sds"] )1045							{1046								$arr_group[$i]["value"]["data"][0][fldname($fld)] = $value;1047							}1048 1049							if ( $arr["name"] == fldname($fld) && $arr["int_type"] == 0 )1050							{1051								if(@$row["newgroup_" . GoodFieldName( fldname($fld) )])1052								{1053									$row["1" . GoodFieldName( fldname($fld) ) . "_grval"]=$value;1054									// ??? $arr_group[$i]["grval"]=$value;1055									$groupvalue[fldname($fld)] = $value;1056								}1057							}1058						}1059					}1060				}1061			}1062 1063			//////////////////////////////////////////////////////////////1064			//	update totals1065			for ( $i=0; $i < pre8count($rpt_array['group_fields']) - 1; $i++ ) {1066				$arr = $rpt_array['group_fields'][$i];1067 1068				foreach ( $rpt_array['totals'] as $fld )1069				{1070					if ( $fld['show'] && ( $fld['sum'] || $fld['avg'] ) ) {1071						$grouptotals_sum[$arr['name']][fldname($fld)] += db_fld_value($data,getDBFieldName(fldname($fld)));1072						if(!is_null(db_fld_value($data,fldname($fld))))1073							$grouptotalsavg_count[$arr['name']][fldname($fld)]++;1074 1075					}1076				}1077				if ( testAgr( $rpt_array['totals'], "", "min", "max", "" ) > 0 ) {1078					if(!$grouptotals_count[$arr['name']])1079					{1080						foreach ( $rpt_array['totals'] as $fld )1081						{1082							if ( $fld['show'] && $fld['min'] ) {1083								$grouptotals_min[$arr['name']][fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1084								$grouptotals_dispmin[$arr['name']][fldname($fld)] =1085									$viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1086							}1087							if ( $fld['show'] && $fld['max'] ) {1088								$grouptotals_max[$arr['name']][fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1089								$grouptotals_dispmax[$arr['name']][fldname($fld)] =1090									$viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1091							}1092						}1093					}1094					else1095					{1096						foreach ( $rpt_array['totals'] as $fld )1097						{ // order nReportPageOrder1098							if ( $fld['show'] && ( $fld['min'] || $fld['max'] ) ) {1099								if ( $fld['min'] ) {1100									if ( $grouptotals_min[$arr['name']][fldname($fld)] > db_fld_value($data,getDBFieldName(fldname($fld))) && db_fld_value($data,getDBFieldName(fldname($fld)))<>"" || $grouptotals_min[$arr['name']][fldname($fld)]=="")1101									{1102										$grouptotals_min[$arr['name']][fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1103										$grouptotals_dispmin[$arr['name']][fldname($fld)] =1104											$viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1105									}1106								}1107								if ( $fld['max'] ) {1108									if ( $grouptotals_max[$arr['name']][fldname($fld)] < db_fld_value($data,getDBFieldName(fldname($fld))) && db_fld_value($data,getDBFieldName(fldname($fld)))<>"" || $grouptotals_max[$arr['name']][fldname($fld)]=="")1109									{1110										$grouptotals_max[$arr['name']][fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1111										$grouptotals_dispmax[$arr['name']][fldname($fld)] =1112											$viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1113									}1114								}1115							}1116						}1117					}1118				}1119				$grouptotals_count[$arr['name']]++;1120			}1121 1122			if ( $summary[0]["sps"] ) {1123				foreach ( $rpt_array['totals'] as $fld )1124				{1125					if ( $fld['show'] && ( $fld['sum'] || $fld['avg'] ) ) {1126						$pagetotals_sum[fldname($fld)] += db_fld_value($data,getDBFieldName(fldname($fld)));1127						if(!is_null(db_fld_value($data,fldname($fld))))1128							$pagetotalsavg_count[fldname($fld)] ++;1129 1130					}1131				}1132				if ( testAgr( $rpt_array['totals'], "", "min", "max", "" ) > 0 ) {1133					if(!$pagetotals_count)1134					{1135						foreach ( $rpt_array['totals'] as $fld ) {1136							if ( $fld['show'] && $fld['min'] ) {1137								$pagetotals_min[fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1138								$pagetotals_dispmin[fldname($fld)] = $viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1139							}1140							if ( $fld['show'] && $fld['max'] ) {1141								$pagetotals_max[fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1142								$pagetotals_dispmax[fldname($fld)] = $viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1143							}1144						}1145					}1146					else1147					{1148						foreach ( $rpt_array['totals'] as $fld ) { // order nReportPageOrder1149							if ( $fld['show'] && ( $fld['min'] || $fld['max'] ) ) {1150								if ( $fld['min'] ) {1151									if($pagetotals_min[fldname($fld)] > db_fld_value($data,getDBFieldName(fldname($fld))) && db_fld_value($data,getDBFieldName(fldname($fld)))<>"" || $pagetotals_min[fldname($fld)]=="")1152									{1153										$pagetotals_min[fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1154										$pagetotals_dispmin[fldname($fld)] = $viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1155									}1156								}1157								if ( $fld['max'] ) {1158									if($pagetotals_max[fldname($fld)] < db_fld_value($data,getDBFieldName(fldname($fld))) && db_fld_value($data,getDBFieldName(fldname($fld)))<>"" || $pagetotals_max[fldname($fld)]=="")1159									{1160										$pagetotals_max[fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1161										$pagetotals_dispmax[fldname($fld)] = $viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1162									}1163								}1164							}1165						}1166					}1167				}1168				$pagetotals_count++;1169			}1170 1171			$row["group"]["data"] = $arr_group;1172			$row["group_desc"]["data"]=array_reverse($arr_group);1173			$row["totals"]=$arrFields;1174			$bNoNewGroup = true;1175			foreach ( $arr_group as $groupItem ) {1176				if ( $groupItem["newgroup"] ) {1177					$bNoNewGroup = false;1178					break;1179				}1180			}1181			$row["nonewgroup"]=$bNoNewGroup;1182			$rowinfo[]=$row;1183		}1184 1185		if ( $summary[0]["sgs"] ) {1186			foreach ( $rpt_array['totals'] as $fld ) {1187				if ( $fld['show'] && ( $fld['sum'] || $fld['avg'] ) ) {1188					$globaltotals_sum[fldname($fld)] += db_fld_value($data,getDBFieldName(fldname($fld)));1189					if(!is_null(db_fld_value($data,fldname($fld))))1190						$globaltotalsavg_count[fldname($fld)]++;1191				}1192			}1193			if ( testAgr( $rpt_array['totals'], "", "min", "max", "" ) > 0 ) {1194				if(!$globaltotals_count)1195				{1196					foreach ( $rpt_array['totals'] as $fld ) {1197						if ( $fld['show'] && $fld['min'] ) {1198							$globaltotals_min[fldname($fld)] = db_fld_value($data,getDBFieldName(fldname($fld)));1199							$globaltotals_dispmin[fldname($fld)] = $viewControls->getControl(getDBFieldName(gfldname($fld)), $fld['view_format'])->showDBValue($data, "");1200						}

Showing the first 1,200 of 2607 lines. Download the file for the rest.