Commit ea5d9965b1588596746cc20aa86a1cfdd218ac54

Authored by Edmar Moretti
1 parent 3a7f42e9

--no commit message

admin/admin.db
No preview for this file type
ferramentas/saiku/esquemaxml.php
... ... @@ -155,6 +155,16 @@ $xml .= "
155 155 //dimensoes geograficas
156 156 //as dimensoes sao duplicadas
157 157 //uma delas contem o geocodigo que permite a geracao do mapa
  158 +
  159 +//guarda as regioes filhas de uma determinada regiao (chave)
  160 +$filhosDaRegiao = array();
  161 +$VirtualCubeDimensionDaRegiao = array();
  162 +$VirtualCubeMeasureDaRegiao = array();
  163 +foreach($regioes as $regiao){
  164 + $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array();
  165 + $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array();
  166 + $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array();
  167 +}
158 168 $xml1 = "";
159 169 $xml2 = "";
160 170 foreach($regioes as $regiao){
... ... @@ -177,8 +187,12 @@ foreach($regioes as $regiao){
177 187 $colunas[] = "regiao.{$regiao['colunanomeregiao']} AS nome";
178 188 //$colunas[] = "regiao".$regiao['identificador'];
179 189 $tabelaAnt = "regiao";
  190 +
180 191 for($i=0;$i<$n;$i++){
181 192 $r = $m->listaTipoRegiao($caminho[$i]);
  193 +
  194 + array_push($filhosDaRegiao[$caminho[$i]],$regiao["codigo_tipo_regiao"]);
  195 +
182 196 $colunas[] = "j$i.{$r['colunanomeregiao']} AS j$i{$r['colunanomeregiao']}";
183 197 $colunas[] = "j$i.{$r['identificador']} AS j$i{$r['identificador']}";
184 198 $sql .= "INNER JOIN {$r['esquemadb']}.{$r['tabela']}
... ... @@ -245,6 +259,7 @@ foreach($regioes as $regiao){
245 259 </Dimension>
246 260 ";
247 261 }
  262 +//echo "<pre>";var_dump($filhosDaRegiao);exit;
248 263 //outras dimensoes definidas nos parametros e que nao sejam do tipo tempo
249 264 $parametros = $m->listaTodosParametros();
250 265 $dimOutras = array();
... ... @@ -310,6 +325,14 @@ foreach($tbs as $tb){
310 325 $VirtualCubeDimension[] = "
311 326 <VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />
312 327 ";
  328 + array_push(
  329 + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
  330 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />"
  331 + );
  332 + array_push(
  333 + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
  334 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />"
  335 + );
313 336 //verifica as dimensoes do tipo tempo
314 337 $dimEnsoes = array();
315 338 //echo "<pre>";var_dump($tb)."<br>";
... ... @@ -326,11 +349,13 @@ foreach($tbs as $tb){
326 349 }
327 350 }
328 351 $VirtualCubeDimension[] = "
329   - <VirtualCubeDimension name='Tempo' />
330   - ";
331   - $dimEnsoes[] = "
332   - <DimensionUsage foreignKey='".implode("_",$parComposto)."_' name='Tempo' source='Tempo'/>
333   - ";
  352 + <VirtualCubeDimension name='Tempo' />
  353 + ";
  354 + $u = "
  355 + <DimensionUsage foreignKey='".implode("_",$parComposto)."_' name='Tempo' source='Tempo'/>
  356 + ";
  357 + $dimEnsoes[] = $u;
  358 + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='Tempo' />");
334 359 }
335 360 //outros parametros
336 361 $outrosParametros = array();
... ... @@ -341,13 +366,15 @@ foreach($tbs as $tb){
341 366 if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){
342 367 $outrosParametros[] = $k;
343 368 $VirtualCubeDimension[] = "<VirtualCubeDimension name='{$k}' />";
344   - $dimEnsoes[] = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>";
  369 + $u = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>";
  370 + $dimEnsoes[] = $u;
  371 + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='{$k}' />");
345 372 }
346 373 }
347 374 }
348 375 //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>';
349 376 $xml .= "
350   - <Cube cache='false' name='{$c["esquemadb"]}{$c["tabela"]}'>";
  377 + <Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>";
351 378 $incluirChaves = array("*");
352 379  
353 380 if(count($parComposto) > 0){
... ... @@ -382,9 +409,11 @@ foreach($tbs as $tb){
382 409 $xml .= "
383 410 <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' />
384 411 ";
385   - $VirtualCubeMeasure[] = "
386   - <VirtualCubeMeasure cubeName='{$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/>
  412 + $u = "
  413 + <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/>
387 414 ";
  415 + $VirtualCubeMeasure[] = $u;
  416 + array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u);
388 417 }
389 418 $xml .= "
390 419 </Cube>
... ... @@ -396,6 +425,18 @@ $VirtualCubeMeasure = array_unique($VirtualCubeMeasure);
396 425 $xml .= implode(" ",$VirtualCubeDimension);
397 426 $xml .= implode(" ",$VirtualCubeMeasure);
398 427 $xml .= '</VirtualCube>';
  428 +//
  429 +//cubos por regiao
  430 +//
  431 +//$filhosDaRegiao = array();
  432 +//$VirtualCubeDimensionDaRegiao = array();
  433 +//$VirtualCubeMeasureDaRegiao = array();
  434 +foreach($regioes as $regiao){
  435 + $xml .= '<VirtualCube name="'.converte($regiao["nome_tipo_regiao"]).'" >';
  436 + $xml .= implode(" ",array_unique($VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]]));
  437 + $xml .= implode(" ",array_unique($VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]]));
  438 + $xml .= '</VirtualCube>';
  439 +}
399 440 $xml .= "</Schema>";
400 441 error_reporting(0);
401 442 ob_end_clean();
... ...