# vReport - orden en los informes

**URL:** <https://foros.velneo.com/t/vreport-orden-en-los-informes/7497>\
**Category:** Velneo\
**Created:** [29 Octubre, 2014 06:52 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497 "2014-10-29T06:52:23Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [20 Diciembre, 2014 01:02 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/21 "2014-12-20T01:02:35Z")

</div>

Ahora mismo con esto

```auto
var list = theRegisterListIn;

var regex = /(?:groupExp=")(?:\w+\.)?(\#\w+(\.\w+)*)/gi
var myArray;
var sort = "";

while ((myArray = regex.exec(theRoot.varToString("INF_DEF" ))) !== null){
	(sort != "" )? sort+="," : sort;
	sort += myArray[1].replace("#", "");
}
alert( '"' + sort + '"' );
list.sort( '"' + sort + '"' );
theRegisterListOut.append( list );

```

Según la documentación, a ver si entre todos la descrifamos:  
void sort( String szIdCompuestoCampo, Boolean bDescendente, …. )

**Ordena la lista de registros por los campos indicados. Se puede ordenador por múltiples campos separados por comas.**

Parámetros:  
– szIdCompuestoCampo: String que contiene el identificador del campo de la tabla o de sus enlazadas.  
– bDescendente: Booleano para indicar orden descendente, por defecto es false (por defecto Ascendente).  
`list.sort( '"' + sort + '"' );` Le paso una string con los campos separados por coma…perooooooo nada.

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [20 Diciembre, 2014 01:39 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/22 "2014-12-20T01:39:11Z")

</div>

Este método ordena bien.

```auto
var list = theRegisterListIn;
var regex = /(?:groupExp=")(?:\w+\.)?(\#\w+(\.\w+)*)/gi
var myArray;
var sort = "";

while ((myArray = regex.exec(theRoot.varToString("INF_DEF" ))) !== null){
	(sort != "" )? sort+=";" : sort;
	sort += myArray[1].replace("#", "");
	alert(sort);
}
list.sort( sort ); // No funciona con varios campos y la documentación...
theRegisterListOut.append( list );

```

El problema está en como se comporta vReport.  
Por ejemplo, si queremos sacar un listado de facturas agrupada por cliente y ordenadas por fecha.  
Este método no nos sirve, ya que si en el vReport tenemos  
detalle: facturas  
agrupamiento 1: cliente.name  
agrupamiento 2: fecha

vReport  
devolverá una agrupamiento por cada cliente-fecha

Entonces para un listado así, facturas agrupada por cliente y ordenadas por fecha. Si ordenamos la rejilla por fecha ascendente o descendente el informe nos saldrá perfecto.  
Agrupadas por cliente ( las ordenamos con el script ) y el segundo orden ya viene por la lista entrante.

Si tuvieramos que añadir más ordenes…viene lo complicado, habría que mandar la lista en ese orden y el script lo ordena para agrupar.

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [20 Diciembre, 2014 16:37 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/23 "2014-12-20T16:37:36Z")

</div>

Muchas gracias Manuel,  
Lo he probado y funciona bien, en algunos casos tengo la primera agrupación por #ENT.NOMBRE y me lo ordena perfectamente, pero en otras las agrupaciones están bien pero el orden de la tabla #ENT.NOMBRE no es el correcto.  
Seguiré probando.  
Gracias

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [20 Diciembre, 2014 19:26 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/24 "2014-12-20T19:26:36Z")

</div>

@Palomo tienes dos agrupaciones en ese informe que no te funciona?

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [20 Diciembre, 2014 20:34 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/25 "2014-12-20T20:34:00Z")

</div>

#Manuel, No solo tengo una. Lo repaso y te comento

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [27 Abril, 2015 10:22 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/26 "2015-04-27T10:22:01Z")

</div>

Hola,  
De vuelta sobre los informes vReport.  
Alguien ha podido solucionar la ordenación de las agrupaciones en vReport?  
Es un tema preocupante. Los clientes hacen informes poniendo varias agrupaciones y nunca devuelve bien los resultados. Lo que no les puedo decir es que antes ordenen la rejilla según los criterios de ordenación de vReport (es de locos), mas cuando se trata de muchos registros,  
Alguien lo ha podido solucionar?  
Saludos.

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [29 Abril, 2015 07:23 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/27 "2015-04-29T07:23:18Z")

</div>

Hasta que funcione el método sort de la clase vRegisterList, yo no encuentro una solución “elegante”.

En mi caso para los informes con agrupaciones les paso un proceso previo que ordena la lista adecuadamente y se lo pasa al informe, tengo una personalización en la que guardo los campos de ordenación en el report y un js ordena la lista, pero claro, sólo funciona con un campo de ordenación… un año después sort sigue sin funcionar, eso sí la documentación no advierte de que no funciona.

[http://velneo.es/info\_v7\_717\_es/velneo\_vdevelop\_v7/scripts/clases/core/vregisterlist/#sort](http://velneo.es/info_v7_717_es/velneo_vdevelop_v7/scripts/clases/core/vregisterlist/#sort)

Por tanto, hice otra personalización en la que puedo ejecutar un preproceso a la lista de entrada del informe, en los informes de más de un campo de ordenación hago un proceso que ordena (por tanto me toca crear los procesos de ordenación para cada informe --\> el usuario final no puede crear informes a su gusto porque tengo que crearle las ordenaciones como procesos).

Cuando sort funcione, ya no hará falta ésto, y el proceso previo lo usaré sólo para lo que pensé usarlo, rellenar tablas temporales que usa el report, etc…

Si a alguien se le ocurre alguna forma de hacerlo más estándar se agradecería 😉

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/3/3dabb7e61dc27592913c0b692fd97056747a07de.png)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/9/9b2fc181b777be7daf645ac2299604c89e06b1a9.png)

---

<div class="post-metadata">

**Author:** ![naturalsoft](https://avatars.discourse-cdn.com/v4/letter/n/5fc32e/32.png) [@naturalsoft](https://foros.velneo.com/u/naturalsoft)\
**Post date:** [30 Abril, 2015 08:38 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/28 "2015-04-30T08:38:16Z")

</div>

Hola a todos,

volvemos al clásico ejemplo de problemática que tendría que dar resuelta Velneo, porque si no de que tipo de plataforma integral de desarrollo de aplicaciones estamos hablando? ¿De una que necesita superusuarios para hacer cosas del día a día como un informe ordenado o agrupado?

¿Cuanto tiempo llevamos sufriendo y observando en el foro estos mismos problemas con VReport?

¿Es mas facíl que nuestros usuarios aprendan javascript para ordenarse un informe o que velneo de una solución integral a los informes de una vez por todas?

Saludos,  
Santiago.

---

<div class="post-metadata">

**Author:** ![antonioosorio](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/antonioosorio/32/5154_2.png) [@antonioosorio](https://foros.velneo.com/u/antonioosorio)\
**Post date:** [19 Agosto, 2015 15:37 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/29 "2015-08-19T15:37:44Z")

</div>

Buenas Tardes.

He estado mirando y en la documentacion de vRegisterList, dice:

La función sort está sobrecargada pudiendo llevar varios pares de parámetros campo y bDescendente.

Lo he probado funciona de la siguiente forma:

list.sort(“NAME”, false, “ID”, false);

Un saludo,

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [20 Agosto, 2015 16:00 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/30 "2015-08-20T16:00:59Z")

</div>

Ya funciona con más de un campo?

La verdad que no lo he probado con la última versión, con la anterior te aseguro que no funcionaba, ordenaba sólo por el primero, y el descendente no funcionaba en ningún caso.

a ver si lo puedo probar, porque haría que me sean las cosas más fáciles…

---

<div class="post-metadata">

**Author:** ![andrei](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@andrei](https://foros.velneo.com/u/andrei)\
**Post date:** [2 Septiembre, 2015 15:43 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/31 "2015-09-02T15:43:17Z")

</div>

No soy capaz de ordenar por más de un campo en la 7.16, se puede en la 7.17?

---

<div class="post-metadata">

**Author:** ![naturalsoft](https://avatars.discourse-cdn.com/v4/letter/n/5fc32e/32.png) [@naturalsoft](https://foros.velneo.com/u/naturalsoft)\
**Post date:** [4 Septiembre, 2015 08:26 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/32 "2015-09-04T08:26:56Z")

</div>

La pregunta es, ¿a que versión de Velneo hay que esperar para tener un editor de informes decente, documentado he integrado en la plataforma?

Quizá en 2019 con la V7.36??

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [27 Enero, 2016 16:20 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/33 "2016-01-27T16:20:06Z")

</div>

Luis, precisamente hoy he estado retocando ese mismo script. Pero no he podido de terminar de hacer las pruebas.

```auto
var list = theRegisterListIn;
var regex = /(?:groupExp=")(?:\w+\.)?(\#\w+(\.\w+)*)/gi
var myArray [];
var sort = "";

while ((myArray = regex.exec(theRoot.varToString("INF_DEF" ))) !== null){
	sort = myArray[1].replace("#", "");
	myArray.push(sort);
        myArray.push(true);
}
if(myArray.length){
    list.sort.apply(this,myArray);
}
theRegisterListOut.append( list );

```

Te lo escribo de memoria por que ahora no lo tengo delante, disculpa si tiene algún error.  
Prueba de esta manera y me comentas.

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [28 Enero, 2016 07:37 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/34 "2016-01-28T07:37:35Z")

</div>

Gracias Wikan, lo pruebo esta mañana y te digo algo

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [28 Enero, 2016 08:51 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/35 "2016-01-28T08:51:08Z")

</div>

Hola Wikan, el código me devuelve un error (adjunto imagen)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/0/09140a84b574f71a352c60ad49f08a571cf95ac0.png)

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [28 Enero, 2016 09:23 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/36 "2016-01-28T09:23:41Z")

</div>

upps perdón  
`var myArray = [];`

Lo escribi de memoria, disculpa.

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [28 Enero, 2016 09:31 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/37 "2016-01-28T09:31:50Z")

</div>

Hola Wikan,  
No funciona, NO devuelve ningún registro  
A tí te funciona?

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [28 Enero, 2016 09:37 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/38 "2016-01-28T09:37:43Z")

</div>

En principio si, tienes que tenerlo en un proceso que reciba la lista del informe y devuelve la lista del informe.

El único que cambio que tiene con respecto al anterior es sobre todo la llamada a la función del Velneo.

Si quieres hazle un debug y en expresiones pon myArray para que veas que toma los valores correctos. Debe coger los campos definidos en los agrupamientos del vReport

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [28 Enero, 2016 10:03 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/39 "2016-01-28T10:03:42Z")

</div>

Hola Wika,  
Te paso el error que me presenta (adjunto imagen)  
Gracias

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/7/7bf7bc22756cca37a49cd11a42ce79c84773f626.png)

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [28 Enero, 2016 10:10 UTC](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497/40 "2016-01-28T10:10:13Z")

</div>

Prueba con este, de toda formas si no te funciona ya no complico más y cuando tenga el código delante te lo pongo. Ahora no lo tengo y te lo estoy poniendo de cabeza.

Disculpa de nueva

```auto
var list = theRegisterListIn;
var regex = /(?:groupExp=")(?:\w+\.)?(\#\w+(\.\w+)*)/gi
var myArray = [];
var sort = "";
var sortArray = [];

while ((myArray = regex.exec(theRoot.varToString("INF_DEF" ))) !== null){
	sort = myArray[1].replace("#", "");
	sortArray .push(sort);
        sortArray .push(true);
}
if(sortArray .length){
    list.sort.apply(this,sortArray );
}
theRegisterListOut.append( list );

```

[Página anterior](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497.md?page=1)

[Página siguiente](https://foros.velneo.com/t/vreport-orden-en-los-informes/7497.md?page=3)
