Commit 181864dbcf81b7bd86c78bdfc48c09239f659e1c

Authored by Edmar Moretti
1 parent 369860d5

Correção na listagem de elementos selecionados na ferramenta tabela

classesphp/classe_atributos.php
@@ -438,7 +438,7 @@ class Atributos @@ -438,7 +438,7 @@ class Atributos
438 else{ 438 else{
439 $alias = $items; 439 $alias = $items;
440 } 440 }
441 - $shapes = retornaShapesSelecionados($this->layer,$this->arquivo,$this->mapa); 441 + $shapes = retornaShapesSelecionados($this->layer,$this->arquivo,$this->mapa,true);
442 $res_count = count($shapes); 442 $res_count = count($shapes);
443 $resultadoFinal[] = array("totalSelecionados"=>$res_count,"itens"=>$items,"alias"=>$alias); 443 $resultadoFinal[] = array("totalSelecionados"=>$res_count,"itens"=>$items,"alias"=>$alias);
444 $registros = array(); 444 $registros = array();
@@ -451,6 +451,11 @@ class Atributos @@ -451,6 +451,11 @@ class Atributos
451 } 451 }
452 if ($tipolista == "selecionados"){ 452 if ($tipolista == "selecionados"){
453 $chk = "CHECKED"; 453 $chk = "CHECKED";
  454 + //cria um novo array apenas para funcionar no contador
  455 + $s = array();
  456 + foreach($shapes as $shape){
  457 + $s[] = $shape;
  458 + }
454 if ($fim != ""){ 459 if ($fim != ""){
455 if (($res_count >= $fim) && ($fim < $res_count)){ 460 if (($res_count >= $fim) && ($fim < $res_count)){
456 $res_count = $fim; 461 $res_count = $fim;
@@ -458,7 +463,7 @@ class Atributos @@ -458,7 +463,7 @@ class Atributos
458 } 463 }
459 for ($i = $inicio; $i < $res_count; ++$i){ 464 for ($i = $inicio; $i < $res_count; ++$i){
460 $valitem = array(); 465 $valitem = array();
461 - $shape = $shapes[$i]; 466 + $shape = $s[$i];
462 $indx = $shape->index; 467 $indx = $shape->index;
463 foreach ($items as $item){ 468 foreach ($items as $item){
464 $valori = trim($shape->values[$item]); 469 $valori = trim($shape->values[$item]);
@@ -483,12 +488,8 @@ class Atributos @@ -483,12 +488,8 @@ class Atributos
483 } 488 }
484 if ($tipolista == "tudo"){ 489 if ($tipolista == "tudo"){
485 //ini_set('memory_limit', '500M'); 490 //ini_set('memory_limit', '500M');
486 - $shp_atual = array();  
487 - for ($i = 0; $i < $res_count;++$i){  
488 - $shp_atual[$i] = $shapes[$i];;  
489 - } 491 + $shp_atual = $shapes;
490 $chk = ""; 492 $chk = "";
491 -  
492 if (@$this->layer->queryByrect($this->mapa->extent) == MS_SUCCESS){ 493 if (@$this->layer->queryByrect($this->mapa->extent) == MS_SUCCESS){
493 $res_count = $this->layer->getNumresults(); 494 $res_count = $this->layer->getNumresults();
494 $totalGeral = $res_count; 495 $totalGeral = $res_count;
classesphp/funcoes_gerais.php
@@ -2465,7 +2465,7 @@ function retornaShapesMapext($objLayer,$objMapa){ @@ -2465,7 +2465,7 @@ function retornaShapesMapext($objLayer,$objMapa){
2465 $objLayer->close(); 2465 $objLayer->close();
2466 return $shapes; 2466 return $shapes;
2467 } 2467 }
2468 -function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ 2468 +function retornaShapesSelecionados($objLayer,$map_file,$objMapa,$indexado=false){
2469 $shapes = array(); 2469 $shapes = array();
2470 $qyfile = dirname($map_file)."/".$objLayer->name.".php"; 2470 $qyfile = dirname($map_file)."/".$objLayer->name.".php";
2471 2471
@@ -2497,14 +2497,21 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ @@ -2497,14 +2497,21 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){
2497 2497
2498 for ($i = 0; $i < $res_count; ++$i) 2498 for ($i = 0; $i < $res_count; ++$i)
2499 { 2499 {
2500 - if($versao == 6)  
2501 - {$shape = $objLayer->getShape($objLayer->getResult($i));} 2500 + if($versao == 6){
  2501 + $shape = $objLayer->getShape($objLayer->getResult($i));
  2502 + $shp_index = $shape->index;
  2503 + }
2502 else{ 2504 else{
2503 $result = $objLayer->getResult($i); 2505 $result = $objLayer->getResult($i);
2504 $shp_index = $result->shapeindex; 2506 $shp_index = $result->shapeindex;
2505 $shape = $objLayer->getfeature($shp_index,-1); 2507 $shape = $objLayer->getfeature($shp_index,-1);
2506 } 2508 }
2507 - $shapes[] = $shape; 2509 + if($indexado == true){
  2510 + $shapes[$shp_index] = $shape;
  2511 + }
  2512 + else{
  2513 + $shapes[] = $shape;
  2514 + }
2508 } 2515 }
2509 $fechou = $objLayer->close(); 2516 $fechou = $objLayer->close();
2510 } 2517 }
@@ -2520,7 +2527,12 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ @@ -2520,7 +2527,12 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){
2520 while ($shape = $objLayer->nextShape()) 2527 while ($shape = $objLayer->nextShape())
2521 { 2528 {
2522 if(in_array($shape->index,$listaDeIndices)){ 2529 if(in_array($shape->index,$listaDeIndices)){
2523 - $shapes[] = $shape; 2530 + if($indexado == true){
  2531 + $shapes[$shape->index] = $shape;
  2532 + }
  2533 + else{
  2534 + $shapes[] = $shape;
  2535 + }
2524 } 2536 }
2525 } 2537 }
2526 $objLayer->close(); 2538 $objLayer->close();