# vJavascript listas

**URL:** <https://foros.velneo.com/t/vjavascript-listas/7429>\
**Category:** Velneo\
**Created:** [8 Octubre, 2014 02:34 UTC](https://foros.velneo.com/t/vjavascript-listas/7429 "2014-10-08T02:34:06Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![humber](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@humber](https://foros.velneo.com/u/humber)\
**Post date:** [8 Octubre, 2014 02:34 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/1 "2014-10-08T02:34:06Z")

</div>

Buenas a todos, vengo con una pequeña duda de vJavascript, estaba buscando en la documentación, pero bueehh…

tengo una cadena de este estilo “1,3,6,19,21” (ID’s), la paso a un array y necesito cargar la lista de estos registros para eliminarlos, imagino que la única es cargarlos uno por uno no? como cualquier proceso… Esta parte ya la tengo lista con un while recorriendo el array. pero por si hay una manera, pues no está de mas preguntar.

Lo otro es como hacer un “recorrer lista eliminando fichas” en vJavascript, por los momentos lo hice con readAt() y eliminando, pero como hago para eliminar la lista que cargué?

Saludos.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [8 Octubre, 2014 18:07 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/2 "2014-10-08T18:07:59Z")

</div>

Hola Humber.

No entiendo tu pregunta ( … como hago para eliminar la lista que cargué?).

- Tienes un array de ID’s y quieres borrar físicamente los registros de la tabla.

Tienes 2 opciones, entre otras muchas:  
1 - Recorre el array y vas instanciando VRegister y usando deleteRegister()  
2 - Rellena una lista VRegisterList desde el array y haces lo mismo que en la opción 1, recorre la Lista

Yo creo que siempre tendrás que recorrer las Listas de forma secuencial para hacer operaciones en disco.  
No existen todavía operaciones globales como VRegisterList.deleteAll()

Para gestión de **Listas de ID’s** guardadas en Local tenemos nuevas funciones en la 7.16.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![humber](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@humber](https://foros.velneo.com/u/humber)\
**Post date:** [8 Octubre, 2014 19:27 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/3 "2014-10-08T19:27:53Z")

</div>

Buenas tardes Paco, haz contestado a mi pregunta, tal vez no tan clara como creia que estaba jeje

Esto es lo que estoy haciendo, alguna corrección, un paso que podría saltarme o un comentario?

```auto

seleccionados = seleccionados.split(",");
var nselected = seleccionados.length;
if(nselected){
	if (theRoot.beginTrans("eliminamos los registros")){
	while(nselected--){
		var registros = new VRegisterList(theRoot);
		registros.setTable("BeneficiosDat/ANTIGUEDADES");
		registros.load("ID", [seleccionados[nselected]]);
		var antiguedad = registros.readAt(0);
		antiguedad.deleteRegister();
	}
	theRoot.commitTrans();
	}

```

Saludos.

---

<div class="post-metadata">

**Author:** ![humber](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@humber](https://foros.velneo.com/u/humber)\
**Post date:** [8 Octubre, 2014 20:29 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/4 "2014-10-08T20:29:22Z")

</div>

PD: por ser nivel 1 no tengo acceso al vServer, vdataclient y vinstallbuilder. Así que por los momentos me toca quedarme todavía con la 7.15 que al menos tengo los componentes.

Saludos.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [8 Octubre, 2014 21:02 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/5 "2014-10-08T21:02:53Z")

</div>

Hola Humber.

Está bien aunque puedes hacerlo también usando la opción 1ª, sin necesidad de usar VRegisterList

seleccionados = seleccionados.split(",");  
var nselected = seleccionados.length;  
var antiguedad = new VRegister(theRoot);  
antiguedad.setTable(“BeneficiosDat/ANTIGUEDADES”);

if(nselected){  
if (theRoot.beginTrans(“eliminamos los registros”)){  
while(nselected–){  
if (antiguedad.readRegister(“ID”, [seleccionados[nselected]], VRegister.SearchThis)) {  
antiguedad.deleteRegister();  
};  
};  
theRoot.commitTrans();  
};  
};

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![humber](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@humber](https://foros.velneo.com/u/humber)\
**Post date:** [9 Octubre, 2014 02:18 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/6 "2014-10-09T02:18:50Z")

</div>

Gracias por tus comentarios Paco, funcionan las dos, alguna ventaja sobre alguna o en teoria usar una u otra da igual?

aunque me gusta que pueda hacer el set table una sola vez, a simple vista está mas optimizada la versión que me pasa, muchas gracias.

no había visto el leer registro de esa manera.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [9 Octubre, 2014 08:14 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/7 "2014-10-09T08:14:29Z")

</div>

Hola Humber.

Si vas a hacer consultas sobre el ID, es más lógico usar VRegister.readRegister() porque el resultado siempre va a ser uno o ninguno. Por lo demás los dos códigos son perfectamente válidos.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![humber](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@humber](https://foros.velneo.com/u/humber)\
**Post date:** [9 Octubre, 2014 08:18 UTC](https://foros.velneo.com/t/vjavascript-listas/7429/8 "2014-10-09T08:18:10Z")

</div>

Ok, gracias por la aclaratoria Paco, voy a cambiar un par de procesos entonces también.

Saludos.
