function Page_Main() { global $ReportLanguage; $GLOBALS["Page"] =& $this; $post = ewr_StripSlashes($_POST); if (count($post) == 0) { die("Missing post data."); } //$sql = $qs->getValue("s"); $sql = @$post["s"]; $sql = ewr_Decrypt($sql); if ($sql == "") { die("Missing SQL."); } // Field delimiter $dlm = @$post["dlm"]; $dlm = ewr_Decrypt($dlm); // Language object $ReportLanguage = new crLanguage(); if (strpos($sql, "{filter}") > 0) { $filters = ""; for ($i = 0; $i < 5; $i++) { // Get the filter values (for "IN") $filter = ewr_Decrypt(@$post["f" . $i]); if ($filter != "") { $value = @$post["v" . $i]; if ($value == "") { if ($i > 0) { // Empty parent field //continue; // Allow ewr_AddFilter($filters, "1=0"); } // Disallow continue; } $arValue = explode(",", $value); $fldtype = intval(@$post["t" . $i]); $wrkfilter = ""; for ($j = 0, $cnt = count($arValue); $j < $cnt; $j++) { if ($wrkfilter != "") { $wrkfilter .= " OR "; } $val = $arValue[$j]; if ($val == EWR_NULL_VALUE) { $wrkfilter .= str_replace(" = {filter_value}", " IS NULL", $filter); } elseif ($val == EWR_NOT_NULL_VALUE) { $wrkfilter .= str_replace(" = {filter_value}", " IS NOT NULL", $filter); } elseif ($val == EWR_EMPTY_VALUE) { $wrkfilter .= str_replace(" = {filter_value}", " = ''", $filter); } else { $wrkfilter .= str_replace("{filter_value}", ewr_QuotedValue($val, ewr_FieldDataType($fldtype)), $filter); } } ewr_AddFilter($filters, $wrkfilter); } } $sql = str_replace("{filter}", $filters != "" ? $filters : "1=1", $sql); } // Get the query value (for "LIKE" or "=") $value = ewr_AdjustSql(@$_GET["q"]); // Get the query value from querystring if ($value == "") { $value = ewr_AdjustSql(@$post["q"]); } // Get the value from post if ($value != "") { $sql = preg_replace('/LIKE \'(%)?\\{query_value\\}%\'/', ewr_Like('\'$1{query_value}%\''), $sql); $sql = str_replace("{query_value}", $value, $sql); } // Replace {query_value_n} preg_match_all('/\\{query_value_(\\d+)\\}/', $sql, $out); $cnt = count($out[0]); for ($i = 0; $i < $cnt; $i++) { $j = $out[1][$i]; $v = ewr_AdjustSql(@$post["q" . $j]); $sql = str_replace("{query_value_" . $j . "}", $v, $sql); } $ds = @$post["ds"]; // Date search type $df = @$post["df"]; // Date format $this->GetLookupValues($sql, $ds, $df, $dlm); }
function GetChartLink($src, $row) { if ($src != "" && is_array($row)) { $cntrow = count($row); $lnk = $src; $sdt = $this->SeriesDateType; $xdt = $this->XAxisDateFormat; $ndt = $this->ChartType == 20 ? $this->NameDateFormat : ""; if ($sdt != "") { $xdt = $sdt; } if (preg_match("/&t=([^&]+)&/", $lnk, $m)) { $tblcaption = $GLOBALS["ReportLanguage"]->TablePhrase($m[1], 'TblCaption'); } else { $tblcaption = ""; } for ($i = 0; $i < $cntrow; $i++) { // Link format: %i:Parameter:FieldType% if (preg_match("/%" . $i . ":([^%:]*):([\\d]+)%/", $lnk, $m)) { $fldtype = ewr_FieldDataType($m[2]); if ($i == 0) { // Format X SQL $lnk = str_replace($m[0], ewr_Encrypt(ewr_ChartXSQL("@" . $m[1], $fldtype, $row[$i], $xdt)), $lnk); } elseif ($i == 1) { // Format Series SQL $lnk = str_replace($m[0], ewr_Encrypt(ewr_ChartSeriesSQL("@" . $m[1], $fldtype, $row[$i], $sdt)), $lnk); } else { $lnk = str_replace($m[0], ewr_Encrypt("@" . $m[1] . " = " . ewr_QuotedValue($row[$i], $fldtype)), $lnk); } } } return "javascript:" . ewr_DrillDownJs($lnk, $this->ID, $tblcaption, $this->UseDrillDownPanel, "div_" . $this->ID, FALSE); } else { return ""; } }