Nos hemos mudado a github. Esta es documentación de una versión anterior. La última versión de la documentación se puede encontrar en https://tonib.github.io/lsigxextensions-docs/. El repositorio git con la última versión está en https://github.com/tonib/lsigxextensions/. Los binarios de todas las versiones se seguirán descargando de https://sourceforge.net/projects/lsigxextensions/files/

Extraer código a un nuevo procedimiento

Esta extensión permite extraer código de la parte de Eventos / Procedure de un objeto a un procedimiento. Intenta hacer lo mismo que la extensión Grefactor, y algunas cosas más.

Para ejecutarla hay que seleccionar el código a extraer en el editor y en el menu ir a Lsi.Extensions > Code > Extract selected code to new procedure. Esto creará un nuevo procedimiento, con el código seleccionado, y modificará el objeto original, reemplazando el código seleccionado con una llamada al nuevo procedimiento.

Algunos apuntes:

Un ejemplo:

///* El procedimiento original *///
FOR EACH
	DEFINED BY CliCod
	
	// Inicio del codigo a extraer
	&NObras = 0
	FOR EACH
		DEFINED BY ObrCod
		
		&NObras += 1
		DO 'Direcciones'
	ENDFOR
	CliObsIDo = CliNomFis + ': ' + &NObras + ' obras'
	// Fin del codigo a extraer
	
ENDFOR
SUB 'Direcciones'
	DO 'UnSubAnidado'
ENDSUB
SUB 'UnSubAnidado'
	// ...
ENDSUB

Tras ejecutar la extensión:

///* Reglas del nuevo procedimiento *///
parm(
		in:&CliNomFis, 
		// TODO: Following variables could be out:, check it out
		inout:&CliObsIDo
);
///* Procedure del nuevo procedimiento *///
// Inicio del codigo a extraer
	&NObras = 0
	FOR EACH
		DEFINED BY ObrCod
		
		&NObras += 1
		DO 'Direcciones'
	ENDFOR
	&CliObsIDo = &CliNomFis + ': ' + &NObras + ' obras'
	// Fin del codigo a extraer
SUB 'Direcciones'
	DO 'UnSubAnidado'
ENDSUB
SUB 'UnSubAnidado'
	// ...
ENDSUB
///* El procedure original *///
FOR EACH
	DEFINED BY CliCod
	
	&CliObsIDo = CliObsIDo
PProcedure(CliNomFis, &CliObsIDo)
CliObsIDo = &CliObsIDo
	
ENDFOR

Limitaciones

Extraer condiciones a un nuevo Data Selector

Esta extensión permite extraer condiciones de un Win/Webform/SD Panel, o clausulas WHERE de un FOR EACH a un nuevo Data Selector.

Para ejecutarla hay que seleccionar el código a extraer en el editor y en el menu ir a Lsi.Extensions > Code > Extract selected code to new Data Selector. Esto creará un nuevo Data Selector, con las condiciones del código seleccionado. El código original no se modifica, sólo se crea el nuevo Data Selector.

El código a seleccionar deben ser sentencias enteras. En caso de las conditions de un Web/Win Form , o de un SD Panel, hay que seleccionar las condiciones enteras, incluyendo los puntos y coma. En caso de seleccionar código de un FOR EACH, hay que incluir los WHERE completos (incluyendo la palabra clave WHERE). Se puede seleccionar más de una condición a la vez.

Limitaciones