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(); | ... | ... |