Autor Tema: método rs_ordenar_por_columna  (Leído 1327 veces)

0 Usuarios y 1 Visitante están viendo este tema.

alumno66

  • General
  • *
  • Mensajes: 223
    • Ver Perfil
    • Email
  • Institución: Municipalidad de Corrientes
  • Nombre y apellido: Claudio Ignacio Canzoneri
  • Sistema: toba pilaga
  • Teléfono laboral: 379154347672
método rs_ordenar_por_columna
« on: Abril 21, 2010, 09:05:24 am »
Estimados amigos.
Tuve la necesidad de que un rs cargado mediante una relación sea ordenado a pedido del usuario en forma ascendente o descendente.

Encontré el método "rs_ordenar_por_columna", pero este solo ordena en forma ascendente ya que uno de sus parámetros ($tipo), precisamente el que indica el sentido del orden se define como constante el la lista de los recibidos por la función.

Lo que hice, para no modificar los archivos de Toba, fue copiarla y haerle una pequeñisima modificación.

Se las mando, junto con el método que la usa, para que la consideren en futuras versiones ya que para mi al menos, es útil.

-----------------------------
   function ordenar_por_columna($rs, $columna, $tipo)
   {
      if ($tipo=='desc'):
         $tipo = SORT_DESC;
      else:
         $tipo = SORT_ASC;
      endif;   
      
      $rs_columna = array();
      foreach ($rs as $registro) {
         $rs_columna[] = $registro[$columna];
      }
      array_multisort($rs_columna, $tipo, $rs);
      return $rs;
   }

   #------
   function conf__cd_novedades($cuadro)
   {
      //rs_ordenar_por_columna ($this->get_relacion()->tabla('novedades')->get_filas(), 'p09corr');
        $cuadro->set_datos($this->ordenar_por_columna($this->get_relacion()->tabla('novedades')->get_filas(), 'p09corr','desc'));
   }

-----------------------------------

No es gran cosa, pero... :)
Un cordial saludo.
« Última Modificación: Mayo 12, 2010, 11:47:17 am por richard »
Canzoneri, Claudio Ignacio
Municipalidad de Corrientes

richard

  • Moderador Global
  • *****
  • Mensajes: 3005
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Ricardo Dalinger
  • Sistema: SIU-Toba
Re: método rs_ordenar_por_columna
« Respuesta #1 on: Abril 22, 2010, 11:20:00 am »
Hola  Claudio,

Encontré el método "rs_ordenar_por_columna", pero este solo ordena en forma ascendente ya que uno de sus parámetros ($tipo), precisamente el que indica el sentido del orden se define como constante el la lista de los recibidos por la función.

En realidad no es que $tipo este definido como constante... esa es la forma estandar de php para indicar un valor por defecto ante la ausencia del parametro actual, en este caso el valor predefinido es una constante.. pero bien podria haber sido 4, 9 , 'pepito salio a comer', array(), etc. En tu caso lo que deberias hacer para realizar ordenar en el sentido correspondiente es simplemente pasarle al metodo una de las dos constantes como tercer parametro, de esa forma se anula el valor por defecto y se toma el que llega por parametro.

De todas maneras me parece excelente que te hayas tomado la molestia de cambiar la funcion y compartirla con nosotros, de verdad Gracias.

Saludos
Richard
Twitter es al incontinente verbal,  lo que los dulces al diabetico.

alumno66

  • General
  • *
  • Mensajes: 223
    • Ver Perfil
    • Email
  • Institución: Municipalidad de Corrientes
  • Nombre y apellido: Claudio Ignacio Canzoneri
  • Sistema: toba pilaga
  • Teléfono laboral: 379154347672
Re: método rs_ordenar_por_columna
« Respuesta #2 on: Abril 23, 2010, 07:52:00 am »
Gracias por tu comentario Richard.

De verdad te digo que fui víctima de mi ignorancia; no sabía que pasándole un valor anulaba la constante que tiene en la cabecera de la función. Pensé que se anulaba lo que yo le enviara.

Pido disculpas por la molestia.

Un cordial saludo
Canzoneri, Claudio Ignacio
Municipalidad de Corrientes