Commit 828cd977d209090116c34d7cc83711290e71b294

Authored by Edmar Moretti
1 parent 8758ae42

--no commit message

Showing 1 changed file with 17 additions and 6 deletions   Show diff stats
ferramentas/saiku/esquemaxml.php
@@ -630,8 +630,14 @@ function dimensoesTabelas(){ @@ -630,8 +630,14 @@ function dimensoesTabelas(){
630 630
631 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; 631 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>";
632 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*"); 632 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*");
633 - if($c["colunavalor"] == ""){  
634 - $incluirChaves[] = "'1'::numeric as contagem"; 633 + //colunas quando o nome da coluna com os valores for vazia
  634 + foreach($tb as $mdd){
  635 + if($mdd["colunavalor"] == "" && $mdd["filtro"] == ""){
  636 + $incluirChaves[] = "'1'::numeric as contagem".$mdd["id_medida_variavel"];
  637 + }
  638 + if($mdd["colunavalor"] == "" && $mdd["filtro"] != ""){
  639 + $incluirChaves[] = "CASE WHEN {$mdd["filtro"]} THEN 1 ELSE 0 END as contagem".$mdd["id_medida_variavel"];
  640 + }
635 } 641 }
636 if(count($parComposto) > 0){ 642 if(count($parComposto) > 0){
637 //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; 643 //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}";
@@ -660,9 +666,14 @@ function dimensoesTabelas(){ @@ -660,9 +666,14 @@ function dimensoesTabelas(){
660 ON tabela{$r["codigo_tipo_regiao"]}.{$r["identificador"]}::text = tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text 666 ON tabela{$r["codigo_tipo_regiao"]}.{$r["identificador"]}::text = tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text
661 "; 667 ";
662 $sql .= $dimRegioes[$c["codigo_tipo_regiao"]]["juncoes"]; 668 $sql .= $dimRegioes[$c["codigo_tipo_regiao"]]["juncoes"];
663 -  
664 - if($c["filtro"] != ""){  
665 - $sql .= " WHERE ".str_replace('"',"'",$c["filtro"]); 669 + $f = array();
  670 + foreach($tb as $mdd){
  671 + if($medida["filtro"] != ""){
  672 + $f[] = str_replace('"',"'",$mdd["filtro"]);
  673 + }
  674 + }
  675 + if(count($f) > 0){
  676 + $sql .= " WHERE ".implode(" OR ",$f);
666 } 677 }
667 678
668 $xml .= " 679 $xml .= "
@@ -697,7 +708,7 @@ function dimensoesTabelas(){ @@ -697,7 +708,7 @@ function dimensoesTabelas(){
697 $agregador = "count"; 708 $agregador = "count";
698 } 709 }
699 if($medida["colunavalor"] == ""){ 710 if($medida["colunavalor"] == ""){
700 - $nomeColunaValor = "contagem"; 711 + $nomeColunaValor = "contagem".$medida["id_medida_variavel"];
701 } 712 }
702 else{ 713 else{
703 $nomeColunaValor = $medida["colunavalor"]; 714 $nomeColunaValor = $medida["colunavalor"];