From 5e4fa5fc7b83c019e94eb779efa6308410aeab1c Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 9 Jul 2014 14:59:19 +0000 Subject: [PATCH] --- ferramentas/saiku/esquemaxml.php | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/ferramentas/saiku/esquemaxml.php b/ferramentas/saiku/esquemaxml.php index 859b9e1..4fc39aa 100644 --- a/ferramentas/saiku/esquemaxml.php +++ b/ferramentas/saiku/esquemaxml.php @@ -4,7 +4,7 @@ // //utilize &xmlesquema= caso o XML ja exista // -//http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=&xmlesquema=http://localhost/testemondrian.xml +//http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=&xmlesquema=http://localhost/i3geo/ferramentas/saiku/testemondrian.xml // //quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas if(empty($_GET["g_sid"])){ @@ -169,6 +169,10 @@ if(empty($_GET["xmlesquema"])){ "; + //global + $medidas = $m->listaMedidaVariavel(); + + //echo "
";var_dump($regioesTabela);exit;
 	//dimensoes geograficas
 	//as dimensoes sao duplicadas
 	//uma delas contem o geocodigo que permite a geracao do mapa
@@ -184,7 +188,7 @@ if(empty($_GET["xmlesquema"])){
 	}
 	$xml1 = "";
 	$xml2 = "";
-	
+
 	foreach($regioes as $regiao){
 		$sqls = array();
 		$xml1 .= "
@@ -231,7 +235,7 @@ if(empty($_GET["xmlesquema"])){
 				//descobre a coluna de ligacao da regiao
 				$agr = $m->listaAgregaRegiaoFilho($regiaoAtual['codigo_tipo_regiao'],$r['codigo_tipo_regiao']);
 
-				$sql .= " JOIN {$r['esquemadb']}.{$r['tabela']} as b$i ON 
+				$sql .= " JOIN {$r['esquemadb']}.{$r['tabela']} as b$i ON
 					a$j.{$agr['colunaligacao_regiaopai']}::text = b$i.{$r['identificador']}::text
 				";
 			}
@@ -257,6 +261,7 @@ if(empty($_GET["xmlesquema"])){
 			uniqueMembers='".$unico."' />
 			";
 			$unico = "false";
+
 			$regiaoAtual = $m->listaTipoRegiao($caminho[$j]);
 		}
 		//echo "
";echo implode("UNION\n\n",$sqls);exit;
@@ -319,7 +324,7 @@ if(empty($_GET["xmlesquema"])){
 	}
 	$xml .= $xml1.$xml2.$xml3;
 	//junta as medidas conforme o nome da tabela utilizada
-	$medidas = $m->listaMedidaVariavel();
+
 	//var_dump($medidas);exit;
 	$tbs = array();
 	//echo $codigo_tipo_regiao;exit;
@@ -338,16 +343,18 @@ if(empty($_GET["xmlesquema"])){
 	//monta os cubos para cada esquema.tabela diferente
 	$VirtualCubeDimension = array();
 	$VirtualCubeMeasure = array();
-	//echo "
";var_dump($tbs)."
";exit; + foreach($tbs as $tb){ //cabecalho de cada cubo obtido da primeira medida $c = $tb[0]; + $VirtualCubeDimension[] = " "; $VirtualCubeDimension[] = " "; + array_push( $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], "" @@ -395,8 +402,8 @@ if(empty($_GET["xmlesquema"])){ } } //$dimEnsoes[] = ''; - $xml .= " - "; + + $xml .= ""; $incluirChaves = array("*"); if(count($parComposto) > 0){ @@ -410,11 +417,19 @@ if(empty($_GET["xmlesquema"])){ } $sql = "select ".implode(",",$incluirChaves).",{$c["colunaidgeo"]}::text as codigodim from {$c["esquemadb"]}.{$c["tabela"]}"; + //a tabela pode ter dimensoes em diferentes hierarquias $xml .= " $sql "; + //inclui as dimensoes filhas + foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){ + $xml .= " + + + "; + } $xml .= implode(" ",array_unique($dimEnsoes)); @@ -439,7 +454,9 @@ if(empty($_GET["xmlesquema"])){ $xml .= " "; + } + $xml .= ''; $VirtualCubeDimension = array_unique($VirtualCubeDimension); $VirtualCubeMeasure = array_unique($VirtualCubeMeasure); -- libgit2 0.21.2