kenken999/php
0
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")+" : "+GetGotoPageUrlString(counterstart - 1,"Prev")+" ";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 += " " + GetGotoPageUrlString(counter,pad + counter);414 else415 paginationHTML += " <b>" + pad + counter + "</b>";416 }417 paginationHTML += " <b>]</b>";418 419 if (counterend != maxpages)420 paginationHTML += " " + GetGotoPageUrlString (counterend + 1,"Next") + " : " + 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 }