Example #1
0
 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);
 }
Example #2
0
 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 "";
     }
 }