Commit ea5d9965b1588596746cc20aa86a1cfdd218ac54
1 parent
3a7f42e9
Exists in
master
and in
7 other branches
--no commit message
Showing
2 changed files
with
50 additions
and
9 deletions
Show diff stats
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(); | ... | ... |