Ejemplos JavaScrip


([N1] neocursar) #1

Este es un ejemplo de re-utilización de una búsqueda asignando el proyecto y el destino que genera.
Solo tendríamos que tener una búsqueda que se llame como la tabla, y con una acción lanzamos ese proceso que siempre llama al mismo javascript. Luego con copiar y pegar podemos hacer múltiples búsquedas sin apenas cambios.

tablaOrigen = theRegisterListOut.tableInfo();
proyecto = theApp.mainProjectInfo();

var busqueda = proyecto.name() +"/"+tablaOrigen.id()

importClass( “VQuery” );
// Se crea el objeto búsqueda
var bus = new VQuery( theRoot );
bus.setQuery( busqueda );
// Se alimentan los paŕametros de búsqueda
var nombre = prompt(“Nombre a buscar:”, “”,“Buscar”)
bus.setVar( “SEARCH”, nombre );
// Se ejecuta la búsqueda y los registros encontrados se añaden a la salida
if ( bus.exec() )
{
// Le pasamos los resultados a la lista de salida
theRegisterListOut.append( bus.result() );
}


([N1] neocursar) #2

Le pasamos el handle de la tabla y tenemos acceso a sus datos:
id, name, etc…

var theMainProject = theApp.mainProjectInfo();
if (theMainProject )
{
var tablaNum = theRoot.varToInt( “TABLA_NUM” );
if ( tablaNum > -1 )
var tabla = theMainProject.allTableInfo( tablaNum );
alert(tabla.id() ,“tabla”);
}


([N1] neocursar) #3

Modificando un poco los ejemplos de la app de scripts, podemos hacer un eliminar plurales genérico.
Faltaría añadir que actualice la rejilla, o el objeto donde se ha ejecutado.

////////////////////////////////////////////////////////////
// Eliminar todos los plurales de la tabla
ti = theRegisterIn.tableInfo();
var nombreTabla= ti.name();

// Pide confirmación para la eliminación de los plurales
if ( confirm( "¿Deseas eliminar todos los plurales de la tabla: " + nombreTabla + “?”, “Confirmación” ) )
{
// Se crea la transacción
theRoot.beginTrans( "Eliminando plurales de " + nombreTabla );

// Se analiza la tabla para recorrer sus plurales
numPlurales = ti.pluralCount();
numTotalReg = 0;

for ( x=0; x 0 )
	{
		
		// Si la lista de plurales tiene registros se eliminan			
		numTotalReg += numReg;
		for ( y=0; y<numReg; ++y )
		{
			// Cogemos el registro plural
			regPlural = listaPlurales.readLockingAt( y );
			//borramos el plural
			regPlural.deleteRegister();
		}
	}
}
// Borramos el registro
theRegisterIn.deleteRegister();
// Se finaliza la transacción
theRoot.commitTrans();

} [attachment=24823,1936] [attachment=24823,1937] [attachment=24823,1938]








([N1] neocursar) #4

Información:
http://velneo.es/listado-de-novedades-velneo-v7-7-10/
http://jarboleya.com/tag/javascript/
http://varquitecto.wordpress.com/?s=javascript


([N1] neocursar) #5

Cambio modo vista ventana:

theMainWindow.setBootMode(theRoot.varToInt(“VIEW_MODE”));
theApp.setGlobalVar( “nBaseDat/SYS_VIEW_MODE”, theRoot.varToInt(“VIEW_MODE”) );

[attachment=24933,1951]




([N1] noe.gonzalez) #6

Si se copia y pega el script para eliminar plurales:
1- hay que cambiar todas las comillas que pega (son abre y cierra comillas de imprenta) por comillas de la tecla 2 (")
2- El bucle
for ( x=0; x 0 )

supongo que será:
for ( x=0; x<numPlurales; ++x )

3- Sobra el } final

Con eso no da errores


([N1] Cuco) #7

Como dice Noé, así no da errores pero a mi no me funciona, por lo que, como aconsejan en otro hilo, he copiado a mano el js de eliminación de plurales, con los cambios que aconseja Noé para que no me diera error. Pues,bien, no funciona
Si bien no soy ni si quiera usuario principiante en js, para mí que el segundo for tampoco está bien, pero no sé en qué:

// Si la lista de plurales tiene registros se eliminan
numTotalReg += numReg;
for ( y=0; y<numReg; ++y )
{
// Cogemos el registro plural
regPlural = listaPlurales.readLockingAt( y );
//borramos el plural
regPlural.deleteRegister();
}

1- No se sabe qué valor toma numReg cómo límite superior del bucle .
2 - numTotalReg se incrementa con el valor (desconocido) de numReg en cada ciclo del primer bucle
y luego su valor no se usa para nada.

¿Alguien podría sugerir algo al respecto?

NOTA: el comentario debería ser “//tomamos el registro plural”. nuestros colegas de hispanoamerica podrían pensar otra cosa:
A los programadores se nos acusa de falta de líbido, natural, por lo visto la malgastamos cogiendo registros plurales