desarrollo-libra-v6.0.5

118
 Edisa Sistemas de Información DESARROLLO LIBRA Creado por Archivo Versión Fecha Página Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &'&&)

Upload: marbimon

Post on 01-Mar-2016

220 views

Category:

Documents


0 download

DESCRIPTION

Desarrollo en Oracle Forms 6

TRANSCRIPT

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 1/118

Edisa Sistemas de Información

DESARROLLOLIBRA

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 2/118

Edisa Sistemas de Información

 DESARROLLO LIBRA...................................................................................................1

Introducción.................................................................................................................4

Grupo de Objetos.........................................................................................................4

Nombre de los bloques................................................................................................

Lien!o b"se...................................................................................................................

List"dos.........................................................................................................................

#ens"jes.......................................................................................................................$

Atributos %isu"les........................................................................................................&

'l"ses de propied"d.....................................................................................................(Campos de tipo elemento de lista............................................................................11

'"mpos de )isu"li!"ción de descripciones..............................................................**

List"s de %"lores........................................................................................................*4Limitaciones............................................................................................................15Pasos para crear una lista de valores.......................................................................15Segunda Cláusula Where para una lista de valores.................................................19Código PL/SQL de Pre!alidación.........................................................................""Colorear determinados registros en listas de valores..............................................."#$e%oras de &'s(uedas conte)tuales........................................................................."*+nv,o del contenido de una lista de valores a +)cel................................................"5Posicionado de una lista de valores en Pantalla......................................................"5Listas de valores por grupos...................................................................................."5

-unciones para gestión de la lista de valores..........................................................."ndicar el &otón de llamada a la lista de valores......................................................"0Listas de !alores de $ultiselección........................................................................"

+ro,r"m" p"r" m"ntener pro,r"m"s -------.........................................................../Código PL/SQL.......................................................................................................*5$odi2icar por código las propiedades cargadas del mantenimiento de programas.55Pesta3as...................................................................................................................1n2ormes..................................................................................................................."!entanas..................................................................................................................#

+lu,0in.........................................................................................................................$4

4evolver valor desde el plugin al programa llamado............................................0Permisos...................................................................................................................06utori7ar / 4esautori7ar plugin..............................................................................01Crear plugins glo&ales a un programa....................................................................01Crear plugins glo&ales a todos los programas de Li&ra.........................................01

+erson"li!"r pro,r"m"s............................................................................................1/

Document"ción de modi2ic"ciones en pro,r"m"s...................................................1

B3squed" contetu"l..................................................................................................14

5"bilit"r 6 Des7"bilit"r opciones de men3 8+"quete 9#EN:;............................1

Not"s Import"ntes sobre el #en3 6 l" Botoner"....................................................11

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 3/118

Edisa Sistemas de Información

Gener"r lo,s de tr"!"................................................................................................1(

Lo,s de incidenci"s ocurrid"s en l" b"se de d"tos..................................................&<

Disp"r"dores est=nd"r..............................................................................................&*Particularidades del 4SPS84.+W:;+C<;4:S86C+ =

4SPS84.W>+:+W:?L<C@:S86C+....................................................1Personali7ación ?orrado = gra&ación......................................................................"

Impresión....................................................................................................................&/mpresión por -6A.................................................................................................."mpresión multidestino............................................................................................#

're"r un 2ormul"rio desde cero...............................................................................&4Colocar campos en la pantalla.................................................................................04isparadores personali7ados...................................................................................0$odi2icación de propiedades de campos B-8+$.................................................

'"mpos de prim"r6 >e6 de un bloque.....................................................................&&

'"mpos Desde ? 5"st"...............................................................................................&(

#=sc"r"s.....................................................................................................................(<

9unciones %"ri"s........................................................................................................(*

Nomencl"tur" de Sqls................................................................................................(/

Gener"ción de 7oj"s de c=lculo desde 9orms..........................................................(4!enta%as = desventa%as so&re usar +)cel con macros..............................................9*;e(uisitos................................................................................................................9*Pasos para la generación de una ho%a de cálculo.....................................................95

Propiedades..............................................................................................................9!aria&les disponi&les en 2órmulas.........................................................................1*6signar valores sin ser o&tenidos de una s(l a determinadas celdas.....................1*

Gestión de correos electrónicos..............................................................................*<ntroducción...........................................................................................................15+nv,o......................................................................................................................154escarga................................................................................................................1

Gestión de Arc7i)os.................................................................................................**<

%"ri"bles ,lob"les....................................................................................................***

%"ri"bles ,lob"les "ccesibles medi"nte p>p"nt"ll"s.............................................**/6ccesi&les sólo desde programas de nueva estDtica..............................................11"4e2ini&les dinámicamente.....................................................................................11#

%"ri"bles de inicio de LIBRA$.INI........................................................................**4

Des"rrollo de "plic"ciones p"r" poc>et p"r" ejecución medi"nte @ermin"lSer)er o 'itri..........................................................................................................**1

Con2iguración del entorno.....................................................................................1104esarrollo o adaptación de un programa a pantalla pe(ue3a................................110

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 4/118

Edisa Sistemas de Información

Introducción

Los nuevos programas los orientaremos hacia el uso de pesta3asE incluso enmantenimientos sencillos usaremos al menos una pesta3a con el nom&re delmantenimiento. 4e esta 2orma el a3adir una pesta3a nueva es una tarea mu= simple.

Grupo de Objetos

La principal venta%a de los grupos de o&%etos radica en (ue permite manipular con más2acilidad varios componentes de un 2ormulario como si se trataran de uno solo. 8am&iDn

 permite de 2orma 2ácil reutili7ar componentes en varios 2ormulariosE pero la principalventa%a es (ue si se a3ade un componente al grupo de o&%etos todos los 2ormularios (ueha=an derivado una su&clase Bno copiado de ese grupo de o&%etosE incluiránautomáticamente dicho o&%eto componente cuando se vuelvan a compilar o a a&rir en-orms.

8odos los componentes pre2i%ados para ser usados en li&ra van a estar almacenados enuna li&rer,a de o&%etos llamada <?F+8<SP68.<L?. 6l usar esta nueva caracter,sticade -orms nos da más venta%as (ue las re2erencias (ue está&amos usando hasta ahoraE =a(ue si a un grupo de o&%etos se a3ade un nuevo elementoE por e%emplo un nuevo pageE-orms =a lo incorpora automáticamente al a&rir el 2uente o compilarlo.

8odos los componentes originales de la li&rer,a de o&%etos <?F+8<SP68.<L? estáncontenidos en el 2ormulario <?F+8<SP68.-$?. +s mu= importante (ue una ve7modi2icado del 2m& se traspasen los grupos de o&%etos de nuevo a la li&rer,a ol&.

Los componentes (ue incorpora la li&rer,a de o&%etos sonG

• -<;$HL6;<:?6S+G ncorpora todos los elementos &ásicos para desarrollarun programa.• +4CI:P686LL6G ncorpora los elementos necesarios para permitir hacer

dinámico el 2ormulario.• LS86:!6L<;+SG +lementos para mostrar listas de valores.• LS86:!6L<;+S:J;HP<G +lementos para mostrar listas de valores por

grupos.• LS864<G ncorpora lo necesario para reali7ar la llamada a un in2orme.• J;6-C<. ncorpora lo necesario para reali7ar la llamada a un grá2ico.• C6L+46;<G +lementos para construir el calendario.•

C6LCHL64<;6G +lementos para construir la calculadora.• S+;86;:$6J+G +s necesario incluirlo en todos los programas (uetengan campos de tipo imagen.

• -<;$HL6;<:LJ>8G <&soleto K < HS6;.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 5/118

Edisa Sistemas de Información

Para incorporarlos en el programa (ue se está desarrollando simplemente a&rimos lali&rer,a de o&%etos = arrastramos el componente a nuestro 2ormulario = seleccionamos(ue deseamos incorporarlo como una Su&claseE esto es mu= importante para (ue 2uturoscam&ios de 2uncionalidad o estDtica no re(uieran modi2icar el programa = (ue seincorporen simplemente recompilando el programa.

Nombre de los bloques

6l arrancar el programa irá siempre al primer &lo(ue navega&leE por tanto se puede usarcual(uier nom&re para los &lo(uesE por e%emplo los nom&res de las ta&las oa&reviaturas.

Lienzo base

+l lien7o &ase pasa de ser P6J+1 a ser 'AN%AS@ABE el 2ormulario &ase le a3adeuna pesta3a (ue se llama 86?E a3adir una nueva pesta3a es tan simple como situarseso&re 86? = pulsar a3adir.

Listados

Para poder usar listados desde un programa de&eremos de cargar el componenteLS864<S de la li&rer,a de o&%etos <?F+8<SP68.<L?

Not"G o hace 2alta ha&ilitar el &otón de imprimirE =a (ue al iniciali7arse el programa sedetecta si tiene un &lo(ue ?;+P<;8 = en ese caso lo activa automáticamente.

+s recomenda&leE en la medida (ue sea posi&leE indicar el in2orme a e%ecutar en elmantenimiento de programas en la pesta3a n2ormesME en ve7 de ponerlo de 2orma 2i%aen el 2uente del programa.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 6/118

Edisa Sistemas de Información

Mensajes

8odos los mensa%es tienen (ue ser traduci&lesE para elloE para mostrar un mensa%e alusuario siempre usaremos el pa(uete $SJ de P@L?P8.PLL (ue contiene lassiguientes 2unciones = procedimientosG

• #ENSAEG $uestra el mensa%e = para la e%ecución del código.• ALER@AG $uestra el mensa%e pero no para la e%ecución del código. +sta

2unción devuelve el código del &otón (ue pulsó el usuario.• #ENSAE+ERSONAL. gual (ue $+S6F+E pero le podemos a3adir un

te)to personali7ado. 8rataremos de evitar su usoE =a (ue el te)to personali7adono se puede traducir.

• ALER@A+ERSONALG gual (ue 6L+;86E pero le podemos a3adir un te)to personali7ado. 6l igual (ue $+S6F+:P+;S<6LE trataremos de evitar suusoE =a (ue el te)to personali7ado no se puede traducir.

RE+LA'E@EC@O B4isponi&le a partir de *."."G Se pasan como parámetrosdos cadenas. +l cometido de esta 2unción es hacer (ue en el pró)imo mensa%e oalerta (ue salte sustituir la cadena1 por la cadena"E de esta 2orma si creamos elmensa%e Se han generado NO 2acturasM = hacemos la llamada$SJ.;+PL6C+:8+A8<BNOE 1E al llamar a $SJ.6L+;86 el mensa%e (uese muestra al usuario esG Se han generado 1 2acturasM.

Cuando usamos la 2unción 6L+;86 o 6L+;86:P+;S<6L para compro&ar cual delos &otones ha pulsado el usuario se comparará con las siguientes constantesE6L+;8:?H88<1E 6L+;8:?H88<"E 6L+;8:?H88<# para controlar si elusuario ha pulsado el &otón 1E " ó # respectivamente.

+%emploG

DECLARE  v_boton_pulsado NUMBER;BEGIN  v_boton_pulsado = MSG.ALERTA(ALERT! SALIR";

  I# v_boton_pulsado = ALERT_BUTT$N% T&EN  '' &a pulsado l bot)n %  ELSI# v_boton_pulsado = ALERT_BUTT$N* T&EN

  '' &a pulsado l bot)n *  ELSI# v_boton_pulsado = ALERT_BUTT$N+ T&EN  '' &a pulsado l bot)n +  END I#;END;

I#+OR@AN@EG Las llamadas a $SJ.6L+;86 = $SJ.6L+;86:P+;S<6Le%ecutan un ;6S+ -orm:8rigger:-ailure por lo (ue si son llamados en un &lo(uePL/SQL (ue captura una e)cepción W>+ <8>+;S hará (ue salte al código (uemane%a esa e)cepción.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 7/118

Edisa Sistemas de Información

Para crear los mensa%es se hará desde el programa $+S6F.

● Gr"b"r Lo,2ileG Si se activa cada ve7 (ue se muestre el mensa%e de%ará un

registro en la ta&la L<J-L+ con (ue usuario = 2echa se ha mostrado.● Botón O> G $uestra un &otón con la eti(ueta 6ceptarM.● Botón '"ncel"rG $uestra un &otón con la eti(ueta CancelarM.● 9or!"r 'on2irm"ciónG Si se activa al usuario se le pedirá (ue teclee el

contenido de 8e)to Con2irmación <@M para aceptar el mensa%e o 8e)toCon2irmación CancelarM para cancelar el mensa%eE de esta 2orma se evita (ue elusuario pase sin leer el mensa%e pulsando intros.

● Etiquet" * / G Con esos campos se puede alterar el te)to (ue aparece elcual(uiera de los # &otones (ue puede mostrar un mensa%e.

#ens"jes con botonesE si no se activa la checR ?otón <RM ni la checR ?otónCancelarM se mostrará un mensa%e con # &otonesE el primer &otón con la eti(ueta SiME elsegundo con la eti(ueta oM = el tercero con la eti(ueta CancelarM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 8/118

Edisa Sistemas de Información

 Atributos Visuales

+s mu= importante su uso para poder modi2icar la apariencia mediante parametri7ación. ormalmente las clases de propiedad =a llevan asociado el atri&uto visualcorrespondiente. 8enemos de2inidos los siguientes atri&utos visualesG

• %*G 6tri&uto visual para el registro actual.• %/G 6tri&uto visual de campos edita&les numDricos o al2anumDricos.• %DIS+LAG 6tri&uto visual de campos no edita&lesE normalmente

descripciones.• %F:ERG 6tri&uto visual para modo entrada de consulta.• %F:ERDIS+LAG 6tri&uto visual para modo entrada de consulta.• %'5E'BOCG 6tri&uto visual para campos de tipo checR.• %BO@HNG 6tri&uto visual para &otones• 'A#+OOBLIGA@ORIO+RO#+@G 6tri&uto visual para la eti(ueta de

campos o&ligatorios.• 'A#+OO+'IONAL+RO#+@G 6tri&uto visual para la eti(ueta de campos

opcionales.• %LIENOG 6tri&uto visual para lien7os.• %EN@ANAG 6tri&uto visual de la ventana.• %LOGOG Para los logos• %ALER@AG Para las alertas• %*G Se especi2icará a nivel de &lo(ue en la propiedad Grupo de Atributos

Visuales del Registro Actual .

%/ %'5E'BOC BO@HNG Se especi2icarán a nivel de ,tem en la propiedadGrupo de Atributos Visuales.'A#+OOBLIGA@ORIO+RO#+@ 'A#+OO+'ION+RO#+@G Seespeci2icarán a nivel de ,tem en la propiedad Grupo de Atributos Visuales del prompt .%LIENOG Se aplicará a los lien7os en la propiedad Grupo de Atributos Visuales.

Cada usuario va a tener un per2il de con2iguración de coloresE 2uentesE ...E para ello esmu= importante usar las clases de propiedades = atri&utos visuales de2inidas en elcomponente -<;$HL6;<:?6S+.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 9/118

Edisa Sistemas de Información

Clases de propiedad 

Las clases de propiedad son agrupaciones de propiedades con un valor pre2i%ado paralos componentes del 2ormulario BcamposE lien7osE ventanasE . +ste valor se asignaráautomáticamente al componente (ue se le asigne la clase.

Para indicar a (ue clase de propiedad pertenece un ,tem se asignará en la propiedad Información de Subclase.

Seleccionamos en el &otón de radio Clase de Propiedad  = le damos el Nombre de Clase

de propiedad .

Hna propiedad de un ,tem (ue tenga asociada una clase de propiedad puede estar enalguno de los siguientes estadosG

• >eredado de la clase de propiedad.• ;ota la herencia con la clase de propiedadE es decir se ha modi2icado la

 propiedad para este ,tem en concreto. E para volver a reali7ar la herenciasimplemente pulsamos = el valor de la propiedad vuelve al estado originalesta&lecido en la clase.

•  o heredadoE pero no se ha modi2icado el valor de la propiedadE por tanto elvalor (ue tiene es el estándar para el Campo de -orms. . Si se a3adiese esa

 propiedad a la clase de propiedad asignada al ,tem la heredar,a de 2ormaautomática.•  o heredadoE pero se ha modi2icado el valor estándar de la propiedadE E para

volver al valor original por de2ecto de -orms pulsaremos .

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 10/118

Edisa Sistemas de Información

+s mu= importante el uso de clases de propiedad = (ue rompamos la herencia solo enlos casos (ue sea estrictamente necesariosE de esta 2orma cual(uier cam&io masivo sealguna propiedad se limitará a modi2icar la clase en la li&rer,a de o&%etos = recompilartodos los programas.

Las clases de propiedad se dividen en las siguientesG

• Clases de propiedad para campos (ue se encuentren en un &lo(ue multiregistroGo CL6S+:4SPL6T:8+$:J;4G Campos de visuali7ación.o CL6S+:8+$:H$?+;:J;4G Campos numDricos.o CL6S+:8+A8:8+$:J;4G Campos al2anumDricos.o CL6S+:6;C>!<:J;4G Campo (ue va almacenar un archivoE ver

sección Jestión de 6rchivosM.• Clases de propiedad para campos (ue no  se encuentren en un &lo(ue

multiregistroG

o CL6S+:4SPL6T:8+$G Campos de visuali7ación.o CL6S+:8+A8:8+$G Campos al2anumDricos.o CL6S+:8+A86;+6:8+$G Campos (ue muestran varias l,neas =

 permiten retornos de carro en el te)to introducido en Dl.o CL6S+:8+A8:8+$:H$?+;G Campos numDricos.o CL6S+:LS8:8+$. Campos de lista desplega&le.o CL6S+:6;C>!<G Campo (ue va almacenar un archivoE ver sección

Jestión de 6rchivosM.• Clases de propiedad válidas tanto para multiregistros como para items (ue no

estDn en un multiregistroGo CL6S+:?H88<. ?otones.o CL6S+:C>+C@:?<A. Campos de tipo checR.o CL6S+:;64<:J;<HP. Campos de selección de tipo radio.

• Clases de para logos e imágenesGo CL6S+:$6J+. 6l asignar esta clase =a se incorpora el men'

conte)tual para cargar la imagen.• Clases de propiedad para o&%etos (ue no sean items.

o CL6S+:$6;C<G $arcos de agrupación de o&%etos.o CL6S+:-<;$G Clase de 2ormulario.o CL6S+:?L<QH+G Clase para &lo(ues (ue no sean multiregistro.o CL6S+:?L<QH+:;+J:HC<G Clase para &lo(ues (ue solo puedan

tener un solo registroE por e%emploE pantallas de 2iltros para consultas.o CL6S+:?L<QH+:SC;<LLG Clase para &lo(ues multiregistro.o CL6S+:P6J+. Clases para Lien7os.o CL6S+:!+866. Clase para ventanas.o CL6S+:L<J<G Clase para los logos

Not"G Los marcos tienen propiedad de t,tuloE pero trataremos de no ponerles nunca unt,tulo =a (ue no se puede modi2icar por código = por tanto no se puede traducir.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 11/118

Edisa Sistemas de Información

Campos de tipo elemento de lista

+n la versión de -orms no e)iste la propiedad de &isel de un campo de tipo listadesplega&leE por tanto siempre va a tener apariencia de hundidoE = no (ueda &ien dentrode un grid de datosE por tanto trataremos de ponerlo como registro 'nico o evitar su uso.

Campos de visualización de descripciones

Para los campos (ue visualicen la descripción almacenada en otra ta&laE usaremos comonomenclatura el nom&re del campo código con el pre2i%o 4:.

Por e%emploE si tenemos el código del cliente = tenemos (ue visuali7ar su nom&reE = elcódigo del cliente se encuentra en un campo llamado C<4J<:CL+8+E el nom&redel cliente se mostrará en un campo llamado 4:C<4J<:CL+8+.

>asta ahora cuando ten,amos un programa en el (ue se solicita&a el código de algo (uehac,a re2erencia a otra ta&la BPor e%emplo código de cliente = e%ecutá&amos consultausá&amos el disparador P<S8QH+;T para traernos por cada registro (ue se consultala descripción correspondiente = se carga&a en el registro.

+ste disparador P<S8QH+;T tiene los siguientes inconvenientesG

• Jenera mucho trá2ico de red.• +l usuario no puede 2iltrar con -0/- por esos campos.•  o se puede esta&lecer una ordenación por ese campo.

La solución para evitar el uso del P<S8QH+;TE dentro del 2uenteE en la propiedad

UNombre de 'olumn"U de la sección UB"se de D"tosU meter la SQL para o&tener ladescripción.

Por e%emplo en un programa en el (ue se tenga (ue o&tener el nom&re del clienteE secrea una columna asociada a &ase de datos con el nom&re U4:C<4J<:CL+8+U =en la propiedad UNombre de 'olumn"U del grupo UB"se de D"tosU ponemos (SELEC

nombre !R"# clientes c $%ERE c&codigo'rapido clientes'prueba&cliente AN)

c&codigo'empresa clientes'prueba&empresa*&

Se puede o&servar (ue se usa CL+8+S:P;H+?6 en la W>+;+ en ve7 de un aliasEno se puede usar la propiedad de alias del &lo(ueE =a (ue nos construir,a una consulta

del tipo SELEC alias&campo+ alias&campo+ alias&(SELEC&&& con lo (ue 2allar,a. Si el &lo(ue lo vamos a usar solo para consulta o actuali7ación de datos podemos poner elalias a continuación de la ta&laE por e%emplo CL+8+S:P;H+?6 PE pero estasolución 2allar,a al insertar registrosE =a (ue no se puede hacer  INSER

CLIENES'PR,E-A P (&&&

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 12/118

Edisa Sistemas de Información

6l campo en donde (ueremos ver la descripción le aplicamos la clase de propiedadCL6S+:4SPL6T:8+$. Las di2erencias con un elemento de visuali7ación noasociado a ta&laG

• Pero para poder luego 2iltrar por Dl con -0 = - necesitamos (ue sea UElemento

de @etoUE con lo cual nos da la venta%a (ue podemos acceder a Dl usando elratón = copiar el contenido con C<8;<LVC.• Solo consult" 8B"se de D"tos;  Si BPara (ue solo tenga en cuenta este campo a

la hora de hacer la carga del &lo(ue con la S+L+C8.• Actu"li!"ción permitid" 8B"se de D"tos;  o BPara (ue el usuario si se sit'a

en Dl con el ratón no lo pueda modi2icar.• Inserción permitid" 8B"se de D"tos; o Bgual al anteriorE pero cuando se

está introduciendo el registro.• @ecl"do de N")e,"ción 8N")e,"ción;  o BPara (ue no nos entre en el campo

al estar navegando con el teclado.

8odo esto se &asa en la posi&ilidad (ue o2rece <racle de (ue en la propia lista decampos de una S+L+C8 meter otra S+L+C8 para o&tener otro campo.

I#+OR@AN@EG >a= una limitación de tama3o para la sentencia SQLE almacenada enla propiedad Nombre de columna de "* caracteres. Si se supera ese tama3o al generarel 2ichero 2m) nos producirá un errorG  !R#./01/23 A4iso3 Nombre de columna

duplicado (SELEC&&& = no se generará el 2ichero 2m).

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 13/118

Edisa Sistemas de Información

A p"rtir de 4./.* 7"6 otr" opciónJ

+n el mantenimiento de programas = programas personali7ados en la pesta3a6van7adas de CampoM ha= un campo om&re de Columna ConsultaM en donde

 podemos poner e)actamente lo mismo (ue se pon,a en la propiedad del campo dentro

del 2uente. B+sta es la 2orma de hacerlo en -orms1gE la 2orma anterior produce un errorde protección general al compilar.

I#+OR@AN@EJ • Para (ue 2uncionen correctamente las insercionesE updates = deletesE si usamos

este campo ha= (ue indicar en el 2uente en la propiedad om&re de 4estino de4atos 4$LM del &lo(ue el nom&re de la ta&la a la (ue está asociado el &lo(ue.

• Si se usaE 2unciona en versiones *.".1 o superiores o en versiones (ue terminenen VE pero el programa no va a 2uncionar en una *." o anterior.

• Si el pro,r"m" es un" consult" con los dos puntos "nteriores lle,"rK" enc"so de que se permit"n insert"r modi2ic"r o borr"r re,istros 7"6 que"cti)"r l" propied"d de cl")e prim"ri" " los c"mpos que se"n cl")eprim"ri". Si l" t"bl" no tiene cl")e prim"ri" no se puede us"r est" opción 67"br= que us"r el disp"r"dor +OS@0F:ER.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 14/118

Edisa Sistemas de Información

Listas de Valores

Como principal venta%a de este sistema de listas de valores es (ue se pueden personali7ar de 2orma mu= sencilla para una determinada instalación.

Para usar las listas de valores solo se necesita incorporar un grupo de o&%etosBLS86:!6L<;+S a los programas.

+ste sistema de listas de )"lores t"mbin d"n soporte de )"lid"ción del c"mpoincluso si no se 7" introducido el d"to por l" list" de )"loresE de esta 2orma lavalidación de los programas (ue usan una misma lista de valores siempre va a sere)actamente igualE con lo (ue se optimi7a el uso de la memoria S>6;+4:P<<L de la

 &ase de datos.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 15/118

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 16/118

Edisa Sistemas de Información

Cual(uier columna puede contener el código (ue (ueremos devolver al campo desdedonde (ue se llama a la lista de valoresE esto lo especi2icaremos en el campo Columna

CódigoE por tanto de&erá de contener un valor entre 1 = 1 dependiendo de los campos(ue se visualicen&  +ste campo tam&iDn se usará para la validación del campo cuando seintroduce de 2orma manual por teclado. nternamente para hacer la validación le a3adirá

a la W>+;+ de la lista de valores la condición de (ue el campo especi2icado comocódigo sea igual al valor introducido por el usuario.

Podemos de2inir en el campo Columna )escripción de (ue columna se ha de o&tener ladescripción a devolver al programaE por tanto de&erá de contener un valor entre 1 = 1dependiendo de los campos (ue se visualicenE la lista de valores devolverá estadescripción al campo con el mismo nombre del c"mpo desde el que se ll"m" " l"list" pero con el pre2ijo D . +sto nos o&liga a ser mu= estrictos en la nomenclatura(ue utili7aremos en los campos (ue muestran descripciones.

Hna 2uncionalidad de las listas de valores es la posi&ilidad de llamar a otro programaE

esto es mu= 'til cuando el usuario saca la lista de valores = se da cuenta (ue el registro(ue necesita no e)isteE por tanto se da la posi&ilidad de navegar al programa (ue seespeci2ica para poder crear ese registro. Para indicar el programa asociado a la lista devalores indicaremos el nom&re del programa en el campo  Programa. +l &otón denavegación 'nicamente se ha&ilitará si este campo está cu&ierto = el usuario tiene

 permisos de altas en ese programa. 6parte de navegar al programa asociado desde lalista de valores cuando el usuario entra en el campo (ue tiene la lista de valores puedehacer do&le clicR so&re el campo o pulsar so&re el &otón de hiperv,culo del men' = lollevar,a tam&iDn al programa sin necesidad de a&rir la lista de valoresE cuando se navegaal programa de este 2orma se puede pasar el valor (ue contiene el campo a un parámetrodel programa llamadoE para eso se puede especi2icar en la lista de valores el campoParámetro LlamadaM = ah, se meterá el parámetro (ue puede reci&ir el programaasociado en el campo ProgramaM para (ue haga una determinada acción.

La &ase para mostrar la lista de valores es una consulta SQL de tipo SELEC &&& con lassiguientes particularidadesG

• Los campos (ue (ueremos (ue se visualicen de&erán de contener un alias deltipoG

o Columnas con valor al2anumDricoG c1E c"E E c".o Columnas con valor numDricoG n1E n"E E n".

Not"G Si hemos especi2icado una columna de un tipo no podemos especi2icar la mismade otro tipoE es decirE si hemos especi2icado el alias c1 no podremos tener otra columnacon el alias n1. Si se (uiere sacar una 2echa la meteremos como un campo al2anumDrico= para (ue ordene correctamente no se le aplicará ninguna conversión de tipoE es decirEsi se pone como 8<:C>6;Bcampo:2echaE 44/$$/TTTT c*E cuando el usuariohaga una ordenación la hará al2anumDrica en ve7 de 2echaE por lo (ue lo correcto ser,asimplemente poner campo:2echa c*.

#: I#+OR@AN@EG Las columnas a visuali7ar han de tener el alias c) ó n) donde )es un n'mero entre 1 = " = a continuación sin ning'n espacio una coma = un espacio.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 17/118

Edisa Sistemas de Información

EjemplosGCasos incorrectosG

S+L+C8 nom&re c1 E codigo c"EG ncorrecto =a (ue ha= unespacio despuDs del alias c1.

S+L+C8 nom&re c1Ecodigo c"G ncorrecto =a (ue no ha= espacio(ue separa la coma del alias c1 = de la columna siguienteGLo correcto para los dos casos anteriores ser,aG

S+L+C8 nom&re c1E codigo c".

• 6parte de los campos (ue se visuali7arán en la lista de valores tam&iDnde&eremos sacar siempre el roXid de la ta&la principal de la select con el aliasroMidlo) = este campo de&e de ser el 'ltimo de los campos (ue selecciona lasentencia SQL.

EjemploGSELECT ,od-o ,%! no/b0 ,*! 0o1-d 0o1-d_lov #R$M ants

Ejemplo m=s complejoGSELECT ,od-o_a0t-,ulo C%!(SELECT DEC$DE(TI2$_DESC_ART!3!a0t-,ulos.ds,0-p_,o/0,-al!C!a0t-,ulos.ds,0-p_,o/p0a!T!a0t-,ulos.ds,0-p_t,n-,a!a0t-,ulos.ds,0-p_,o/0,-al"#R$M usua0-os 4&ERE usua0-os.usua0-o =5GL$BAL.USUARI$" C*! 0o1-d0o1-d_lov#R$M ARTICUL$S

Para cada programa podremos especi2icar una cláusula W>+;+ espec,2ica para la lista

de valoresE pero en la misma lista de valores =a podemos especi2icar una por de2ecto. +nla cláusula W>+;+ se pueden usar re2erencias a camposE varia&les glo&alesE ... de-ormsE un e%emplo t,pico ser,a empresa 3global&codigo'empresa

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 18/118

Edisa Sistemas de Información

Para cada columna (ue se va a visuali7ar en la lista de valores hemos de introducir lossiguientes camposG

• N3meroG 'mero correlativo entre 1 = 1 (ue identi2ica la columnaE de&e decorresponder con el n'mero especi2icado en el alias en la S+L+C8.

• @ipoG Puede contener dos valoresGo CG Columna al2anumDrica.o  G Columna numDrica.

• OrdenG Cuando se lan7a la lista de valores =a se puede 2or7ar un ordenamientoinicialE en este campo se de&e especi2icar el n'mero de orden (ue va a ocupareste campo dentro del <;4+; ?T de la sentencia SQL. Si se introduce seindica (ue no se (uiere (ue ese campo 2orme parte de la ordenación inicial.

• @ipo Orden 8ipo de ordenación inicial del campoE puede contener dos valoresGo AJ 6scendente.o DJ 4escendente.

DescripciónG 8,tulo (ue va a tener la columna.• Anc7oG 6ncho en pulgadas de la columna.• Anc7o +oc>etG 6ncho en pulgadas de la columna cuando la lista se muestra en

un puesto (ue es de tipo PocRetM.• #=sc"r"J Sólo se puede aplicar a columnas numDricas = se pondrá la máscara

de 2ormato con la (ue se de&e de mostrar el n'mero. +n caso de (ue seancantidades se puede poner C84 = aplica la máscara de 2ormato correspondientea los decimales esta&lecidos en la empresa para las cantidades.

• Independiente de #"63scul"s ? #in3scul"sG Si se activaE cuando se haga una &'s(ueda en ese campoE se hará independientemente de (ue en la ta&la estDalmacenado en ma='sculas / min'sculas e independientemente de (ue el patrón

de &'s(ueda estD en ma='sculas o min'sculas• Des"cti)"r tot"li!"ción en List"s de %"lores de #ultiselección @ot"li!"d"sG

>a= un tipo de lista de valores en donde el usuario puede seleccionar losregistros = las columnas numDricas son totali7adasE si se activa esta checR paraun campo numDrico la columna no será totali7ada.

8anto el t,tulo de la ventana como el t,tulo de la columna se pueden cam&iar por idiomaE para ello se de&erá cu&rir las dos secciones de idiomas.

Como listas de valores se almacenan en ta&las e)iste una opción en la &otonera vertical

 para generar la s(l.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 19/118

Edisa Sistemas de Información

Segunda Cláusula Where para una lista de valores.

6 una lista de valores podemos especi2icar una segunda cláusula XhereE = cuando seespeci2ica al llamar a la lista de valores aparecerá un &otón para poder conmutar la

consulta entre la cláusula Xhere normal = la segunda. Para el &otón (ue aparece leindicaremos (ue eti(ueta de&e de tener seg'n la cláusula Xhere (ue está aplicandoE paraeso son los campos +ti(ueta ?otón Where 4e2ectoM será la eti(ueta (ue muestrecuando se está 2iltrando por la Xhere por de2ecto = +ti(ueta ?otón Where 4e2ecto "Mserá la eti(ueta (ue muestre cuando está 2iltrando por la segunda lista de valores.

Si se valida desde lista de valores la validación siempre se reali7ará con la Xhere porde2ectoE nunca contra la segunda Xhere.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 20/118

Edisa Sistemas de Información

Por e%emplo podemos hacer (ue la lista de valores CL+8+S:J+S8< ha&ilite un &otón donde ponga ?lo(ueadosM = al pulsar so&re Dl consultar los clientes (ue están &lo(ueadosE para ello metemos en el campo Clausula Where por 4e2ecto " la siguienteXhereG WHERE codigo_empresa = :GLOBAL.codigo_empresa AND EXISTS SELE!T " #RO$ %&o'(eo_c&ie)*es

WHERE empresa = :GLOBAL.codigo_empresaAND codigo_c&ie)*e = codigo_rapido

AND (s(ario = :GLOBAL.(s(ario OR (s(ario IS N+LL,AND TR+N!S-SDATE, = desde_/ec0a, AND TR+N!S-SDATE, 1=

0as*a_/ec0a,, AND234ALIDAR_ENTIDADES.!LIENTE!ODIGO_RA2IDO5:GLOBAL.!ODIGO_E$2RESA5:GLOB

AL.+S+ARIO5S-SDATE,=6O36

T en el campo +ti(ueta ?otón Where 4e2ectoM metemos el te)toG ?lo(ueados = en+ti(ueta ?otón Where 4e2ecto "M mete mos el te)to 4es&lo(ueadosM.

6l pulsar so&re la lista de valores saldrá de la siguiente 2ormaG

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 21/118

Edisa Sistemas de Información

T al pulsar so&re el &otón ?lo(ueadosM saldráG

NO@AJ Cuando se asigna una lista de valores a un programa se puede esta&lecer paraese campo en concreto este 2uncionamiento sin alterar la lista de valores.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 22/118

Edisa Sistemas de Información

Código PL/SQL de Pre-Validación

Se puede utili7ar el código de prevalidación para ser e%ecutado antes de (ue se realicela validación con la s(l de la lista de valores. +sto se ve mu= claro con el e%emplo de lata&la 6;8CHL<S de li&raE =a (ue el usuario puede teclear el código Bes lo (ue validala lista de valoresE el código sinónimoE código de &arrasE etc. Por tanto este código

 puede cam&iar la introducción del usuario haciendo una llamada a un pa(uete de &asede datos.

Para ver con más detalle como se constru=e este código pl/s(l ver el apartado CódigoPL/SQL.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& **'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 23/118

Edisa Sistemas de Información

Colorear determinados registros en listas de valores

Se puede especi2icar un determinado color para un registros de una lista de valoresE pore%emplo para marcar art,culos sin stocRE clientes &lo(ueadosE ....

EjemploG Lista de valores (ue pone en ro%o los art,culos (ue el código comien7a por ".

Para parametri7ar este 2uncionamiento ha= (ue a3adir una nueva columna a la SQL de

la select como si 2uese una columna más de la lista de valores (ue devuelva el atri&utovisual a aplicar al registro = ponerle un alias cAE siendo A un n'mero de columna detipo carácter no usado en la lista de valores. +l campo no hace 2alta introducirlo en lalista de campos de la lista de valoresE con lo cual no lo muestra en la lista de valores.

+n el e%emplo ha&r,a (ue a3adir lo siguiente 'nicamente en la select de la lista devaloresG 4+C<4+BSH?S8;Barticulos.codigo:articuloE 1E 1E "E ;<F<E HLL c#

8am&iDn ha= (ue indicarle (ue la columna n'mero # es la (ue va a tener la in2ormacióndel atri&uto visual a aplicar en el campo Y Columna de atri&uto visual de registroM dela pesta3a <pciones avan7adasM.

Si el atri&uto visual (ue se devuelve no e)iste en el programa no se le asignará ning'ncolor. +n la li&rer,a de o&%etos <?F+8<SP68.<L? se inclu=en en el 2ormulario &aselos siguientes atri&utos visualesG $6;;<E $6;;<:<SCH;<E $6;;<:8+;$+4<E$<;64<E CT6E 6ZHL:CL6;<E 6ZHL:8+;$+4<E !+;4+:CL6;<E 6;6F6E ?L6C<E$6;;<:CL6;<E -HA6E 6ZHL:!+;4<S<E $68+E +J;<E 6ZHL:$<;64<E!+;4+:<SCH;<E 6$6;LL<:6;6F6E 6ZHL:<SCH;<E ;<S6C+<E ;<F<E !+;4+E

6$6;LL<E 6ZHL.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 24/118

Edisa Sistemas de Información

+n ve7 de cam&iar el color de todo el registro se puede indicar (ue 'nicamente secam&ie el color de uno de los camposE para ello se puede indicar en Y Columna aaplicarle el colorM el n'mero de la columna (ue se ha de colorear. +sto es 'til cuandovan a ser muchos los registros coloreados para (ue el usuario no pierda la re2erencia delregistro en el (ue se encuentra el cursor.

Meoras de !"s#uedas conte$tuales

Se puede me%orar la &'s(ueda conte)tualE haciendo (ue &us(ue por el sonido de la pronunciación de una pala&ra. Por e%emplo &'s(uedas independientes de si una pala&rase escri&e con ? o con !E etc.

Para activar este tipo de &'s(uedas conte)tuales en una lista de valores ha= (ue cu&riren la pesta3a de <pciones avan7adasM los campos 6tri&uto 1 para 8;6SL68+ de

 &'s(ueda conte)tualM = 6tri&uto " para 8;6SL68+ de &'s(ueda conte)tualM. Lo(ue especi2i(uemos en el atri&uto1 lo sustituirá letra a letra por el del atri&uto"E pore%emplo si en el atri&uto1 ponemos !TS = en atri&uto " ponemos ?AE la ! la sustituiráen la &'s(ueda por ?E la T la sustituirá por = la S por la A.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 25/118

Edisa Sistemas de Información

%nv&o del contenido de una lista de valores a %$cel.

+n la pesta3a <pciones 6van7adasM e)iste la checR 6ctivar +nviar a +)celM (ue siestá activada permite al usuario (ue env,e el contenido (ue está viendo en la lista de

valores a +)cel. +sta 2uncionalidad está a partir de la versión *.#.*.".# = solo para programas (ue han sido compilados con la li&rer,a o&%etospant.ol& de esa versión osuperior.

Para (ue se active la +)cel el usuario tiene (ue tener activado (ue puede enviar datos de pantalla a +)cel en el programa de personali7ar estDtica.

Posicionado de una lista de valores en Pantalla.

Por norma general una lista de valores se centrará en la pantalla del programa (ue lallama. Si el puesto (ue está e%ecutando el programa está marcado como de tipo PocRetMla lista de valores se posicionará en la posición E. +n el caso de (ue una determinadalista de valores se (uiera posicionar en un área espec,2ica de la pantalla se puedenindicar las coordenadas mediante los campos Posición AM = Posición TM.

Listas de valores por grupos

Son un tipo de listas de valores (ue muestran los registros en grupos de 9 en 9 ó de 5 encinco = se puede seleccionar el registro (ue se (uiere pulsando un n'mero entre 1 = 9 ó

1 = 5 dependiendo del tipo. +%emploG

Para activarlas ha= (ue meter en el 2uente el componenteLS86:!6L<;+S:J;HP<M de la li&rer,a de o&%etos = en el mantenimiento de

 programas o programas personali7ados indicar el tipo de lista de valores por grupo en eldesplega&le 8ipo Lista !aloresM en la pesta3a CampoM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 26/118

Edisa Sistemas de Información

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 27/118

Edisa Sistemas de Información

'unciones para gestión de la lista de valores

8odas estas 2unciones están implementadas en el pa(uete L! de la li&rer,aP@L?P8.PLL

• L!.6C8!6BNlista de valoresOE Ne%ecutar consultaO [Ecláusula Xhere\E[consulta s(l\.

o Nlista de valoresOG Código de la lista de valores.o Ne%ecutar consultaOG >a= dos opciones posi&lesG

SG Cuando se lan7a la lista de valores se e%ecuta consultaautomáticamente.

 G o se e%ecuta la consulta = se (ueda en modo de entradaconsulta.

o [cláusula W>+;+\G +ste parámetro es opcionalE si no se especi2ica seasume (ue de%amos (ue la lista de valores use la cláusula W>+;+ porde2ecto.

o [Consulta s(l\G +ste parámetro tam&iDn es opcionalE si no se especi2icaasume (ue de%amos la s(l (ue tiene la lista de valores.

Se llama cada ve7 (ue se llega a un campo con lista de valoresE para ha&ilitar el &otón = el men' correspondiente. +n este paso =a se indica la lista de valoresasociada al campoE si se e%ecuta automáticamente consulta al e%ecutarla o si tieneuna cláusula W>+;+ espec,2ica.

• L!.4+S6C8!6G 4esha&ilita opción de men'E iconosE ...• L!.LL6$646G +%ecuta la lista de valoresE con2igura la ventana con los campos

necesariosE constru=e la sentencia SQLE se la asigna al &lo(ueE ...Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 28/118

Edisa Sistemas de Información

• L!.;<W:4G Si el usuario seleccionó una 2ila esta 2unción nos devuelve elroXid de la 2ila seleccionadaE si el usuario canceló la lista de valores devolverá

 HLL.• !++:4+:LS86G 4evolverá un dato de tipo ?<L+6E con el valor 8;H+ si

desde (ue entramos en el campo se ha e%ecutado la lista de valoresE en caso

contrario devolverá -6LS+.• +S86?L+C+;:?<8<:LS86G La llamada a este procedimiento es opcional.

!er ndicar el &otón de llamada a la lista de valoresM.

(ndicar el !otón de llamada a la lista de valores

>a= casosE como por e%emplo en ventanas 2lotantesE en los (ue el &otón (ue tiene (ue pulsar el usuario para e%ecutar la lista de valores no es el de la &otonera principalE sinoun &otón (ue se encuentra en la ventana 2lotante.

Para indicar el &otón (ue e%ecutará la lista de valores se usaráL!.+S86?L+C+;:?<8<:LS86BN&lo(ueO.N&otónO antes de la llamada a4SPS84.W>+:+W:8+$:S86C+E por lo (ue en los &lo(ues en (ue sucedaeste caso ha&rá (ue personali7ar el disparador W>++W8+$S86C+.

EjemploJ Si tenemos un &otón (ue lan7a la lista de valores en el &lo(ue ? = el nom&redel &otón es LS86:!6L<;+SE personali7aremos en el &lo(ue ? el disparadorW>++W8+$S86C+ con el siguiente códigoG

4SPS84.L!:+S86?L+C+;:?<8<:LS86B?.LS86:!6L<;+S

4SPS84.W>+:+W:8+$:S86C+

Disp"r"doresSolo se de&erán de usar la llamada 2i%a a la lista de valores en el programa en casos mu=e)cepcionalesE donde por cual(uier motivo no sea e2ectiva la de2inición para el campode la lista de valores en el mantenimiento de programas.

8rataremos de de2inir todos los disp"r"dores " ni)el de bloque en ve7 de a nivel de,temE = usaremos la varia&le Gs=stem.trigger:item para sa&er a (ue ,tem nos estamosre2iriendo. +sto nos da muchas más posi&ilidades para poder a3adir código genDrico =2acilita enormemente la depuración.

5ENNEI@E#INS@AN'EPara indicar de 2orma 2i%a la lista de valores (ue va a usar un ,tem usaremos el

 procedimiento L!.6C8!6 BSe puede ver la de2inición en la sección  !unciones para

 gestión de la lista de 4alores. Siempre (ue sea posi&le de2inir la lista de valores en elmantenimiento de programas se indicará ah, la lista de valores a usar.

DIS2STD.4&EN_NE4_ITEM_INSTANCE7IF  :s8s*em.*rigger_i*em = 6!A$2OS.ESTADO6 THEN   L4.A!TI4A6ESTADOS65 6S6,7ELSIF  :s8s*em.*rigger_i*em = 6!A$2OS.2RO4IN!IA THEN   L4.A!TI4A92RO4IN!IAS5 9S5 9es*ado = campos.es*ado,7

END IF;

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 29/118

Edisa Sistemas de Información

A@EN'IHNG unca de&er,amos de cerrar la posi&ilidad de (ue para campos (ueno tengan actualmente lista de valores se le pueda asignar una desde elmantenimiento de programasE para eso es imprescindi&le e%ecutar el procedimientoestándar 4SPS84.W>+:+W:8+$:S86C+. 4e&eremos e%ecutarlo antes(ue los L!.6C8!6 para (ue el disparador estándar no cam&ie la activación de la

lista de valores.

5EN0%ALIDA@E0I@E#

DIS2STD.WHEN_4ALIDATE_ITE$7IF  :s8s*em.*rigger_i*em = 6!A$2OS.ESTADO6 THEN   IF  :campos.es*ado IS NOT NULL THEN   BEGIN

SELECT  )om%re

 INTO  :campos.d_es*ado  FROM  es*ados

  WHERE  codigo = :campos.es*ado7

  EXCEPTION   WHEN NO_DATA_FOUND THEN   :campos.d_es*ado := N+LL7

  $SG.$ENSA;E6!A$2O65 6NO_4ALID6,7  END;

ELSE   :campos.d_es*ado := N+LL7

  END IF;END IF;

6l igual (ue en W>+:+W:8+$:S86C+ no se de&er,a de anular la posi&ilidad de usar el mantenimiento de programas para reali7ar la validación de otros

campos. Podr,amos desde el mantenimiento de programas asignar la lista de valoresE pero desactivar la opción de validar desde lista = de%ar 2i%o el código de validación en el2uente del programa. 8am&iDn se podr,a usar la validación de la lista de valores = luegoen el código 2uente del programa a3adir una restricción a ma=oresE etc.

Listas de Valores de Multiselección

Las listas de valores de multiselección se di2erencian de las listas de valores normalesen (ue el usuario puede seleccionar varios registros de la lista. +n este tipo de lista devalores aparece un campo de tipo checR para (ue el usuario mar(ue las 2ilas (ue (uiereseleccionar.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& *-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 30/118

Edisa Sistemas de Información

Para activar la multiselección ha= (ue indicar en la pesta3a Campo en el campo 8ipoLista !aloresM una de estas opcionesG

• #ultiselecciónG• #ultiselección @ot"li!"d"G Se di2erencia de la anterior de (ue las columnas

numDricas se les a3ade un total en donde se suman los registros (ue haseleccionado el usuario.

Cuando se indica en el campo (ue es una lista de valores de multiselección aparecen "campos nuevosG

• Sep"r"dorG Carácter (ue se utili7a para separar los valoresE si no se indica nadase asume EM Bcoma.

• De)ol)er %"loresG Si se activaE cuando el usuario valida la lista de valores loscódigos de los registros seleccionados se devuelven concatenados = separados

 por el carácter indicado en SeparadorM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 31/118

Edisa Sistemas de Información

<&servaciones para el caso de activar la lista de valores en el mantenimiento de programasG

• Si el campo (ue llama a la lista de valores de mutiselección valida desde lista de

valoresE los valores introducidos manualmente tam&iDn serán validados ='nicamente si todos los valores son válidos se de%a salir del campo.

• Si se valida desde lista de valores = el campo tiene asociado un campodescripción 4:AAAM en ese campo se meterán las descripciones de los valores= se utili7ará el mismo separador.

• Si se valida desde lista de valores al llamar a la lista de valores desde un campo(ue =a tiene alg'n valor se marcarán las checRs de los registroscorrespondientes.

•  o se va a permitir seleccionar más valores de los (ue pueden entrar en elcampo (ue llama a la lista de valores.

Las listas de valores tam&iDn se pueden gestionar por código dentro del programa paraello se dispone de las siguientes 2unciones = procedimientosG

+rocedimiento p"r" "cti)"r un" list" de multiselección.• L%.A'@I%AR#:L@ISELE''IONG Si llamamos a este procedimiento

estamos modi2icando el 2uncionamiento de la pró)ima lista de valores (ue seactive para (ue esta sea de multiselección. +sta llamada se pondrá antes de4SPS84.W>+:+W:8+$:S86C+.

9unciones p"r" proces"r los re,istros seleccion"dos por el usu"rio.• L%.+RI#ERREG#:L@ISELE''IHNG +sta 2unción nos devuelve el

roXid del primer registro seleccionado por el usuarioE si no ha seleccionadoninguno devolverá HLL.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 32/118

Edisa Sistemas de Información

• L%.SIG:IEN@EREG#:L@ISELE''IHNG +sta 2unción nos devuelve elroXid del siguiente registro seleccionado por el usuario al anterior (ue nos hadevuelto esta 2unción o la 2unción P;$+;:;+J:$HL8S+L+CCI. Si =ano (uedan más registros devolverá HLL.

• L%.BORRAR#:L@ISELE''IHNG +ste procedimiento &orra toda la

selección reali7ada por el usuario.• L%.'A#+OLO%G +sta 2unción devuelve el campo desde el (ue se ha llamado

la lista de valores.

Ejemplo de list" de )"lores de multiselección.• W>++W8+$S86C+G >a= dos 2ormas de esta&lecer para indicar

(ue un campo tiene lista de valores de multiseleccióno 6ctivamos la lista de valores en el código del programaE por e%emplo.

DIS2STD.4&EN_NE4_ITEM_INSTANCE.IF 5s6st/.t0-0_-t/ = 2RUEBA.C$DIG$ THEN  L3.ACTI3AR_MULTISELECCI$N;  L3.ACTI3A(ESTAD$S! S";END IF;

o La lista de valores se esta&lece en el mantenimiento de programasBsiempre que se pued" tr"t"remos de us"r este mtodoE en el códigosolo indicamos (ue es de multiselecciónE por e%emploG

DIS2STD.4&EN_NE4_ITEM_INSTANCE.IF 5s6st/.t0-0_-t/ = 2RUEBA.C$DIG$ THEN  L3.ACTI3AR_MULTISELECCI$N;END IF;

• W>++W;+C<;4S86C+G Procesamos la selección del usuarioE solocuando se viene de la lista de valores del campo sin ser cancelada.

DECLARE  v_0o1-d 3ARC&AR*(+7";BEGIN  DIS2STD.4&EN_NE4_REC$RD_INSTANCE;  I# lv.v-n_d_l-sta AND lv.0o1_-d IS N$T NULL

AND lv.,a/po_lov = 2RUEBA.C$DIG$ T&EN  v_0o1-d 5= LV.PRIMER_REG_MULTISELECCION;

  4&ILE v_rowid IS NOT NULL L$$2 SELECT ,od-o  INT$ 5p0uba.,od-o  #R$M stados  4&ERE 0o1-d = v_0o1-d;

 NE8T_REC$RD;

  v_0o1-d 5= LV.SIGUIENTE_REG_MULTISELECCION ;  END L$$2;

  LV.BORRAR_MULTISELECCION;  END I#;END;

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 33/118

Edisa Sistemas de Información

Prorama para mantener proramas !!!!!!! 

6un(ue pare7ca un %uego de pala&ras es la me%or descripción para el $antenimiento deProgramas del +.;.P.

4esde este programa se pueden reali7ar operaciones (ue pueden modi2icar elcomportamiento de los programas sin necesidad de modi2icar ni compilarE simplementesaliendo = volviendo a entrar en el programa modi2icado =a se asumen los nuevoscam&ios.

 <86G Solo es necesario introducir a(uellos campos (ue sean visi&les para el usuarioE por e%emplo el campo +$P;+S6 o C<4J<:+$P;+S6 no har,a 2alta introducirlo.

+l valor de la checR  )in5mico  a nivel de programaE Campo Código  = el apartado Espec6ficos Programas )in5micos de cada campoE son para uso e)clusivo de programas(ue sean dinámicos.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ++'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 34/118

Edisa Sistemas de Información

<peraciones (ue se pueden reali7ar a nivel de programaG

• Arc7i)o EcelG +stá relacionado con los in2ormesE ha= # opcionesG• Si desde el report G +l in2orme (ue se e%ecute tiene (ue tener

implementado mediante comandos <L+" el env,o a +)cel.• Si K usando ;ep"+)cel G +l in2orme no tiene (ue tener código espec,2icoEse genera un html = se llama a la herramienta rep"e)cel (ue lo convierte

en e)cel.•  o dar opción G o aparece el tipo de archivo +)cel en la pantalla de

selección de parámetros del report.• @ipo Impresor"G 8iene # opcionesG

• !erticales G Solo se mostrarán impresoras (ue no tengan marcado el parámetro de carro ancho en impresoras lógicas.

• >ori7ontales G Solo se mostrarán impresoras (ue tengan marcado el parámetro de carro ancho en impresoras lógicas.

• 6m&as G 6parecerán todas las impresoras independientemente del

 parámetro de impresoras lógicas.• DestinoG 8am&iDn está relacionado con los in2ormes. Se indica el destino por

de2ecto (ue va a proponer el programa. >a= 0 opcionesG• Pantalla.• mpresora.• 6rchivo.• +mail.• -a)• Jestión 4ocumental• HsuarioG ?uscará en la parametri7ación de la con2iguración del usuarioE

(ue puede ser cual(uiera de las * anteriores.• 'ódi,o +L?SFL de Inici"li!"ciónJ Sólo se e%ecuta al entrar en el programaE es

interesante para esta&lecer propiedades (ue no se pueden cam&iar de otra 2orma.• 'ódi,o +L?SFL de 9in"li!"ciónG Sólo se e%ecuta al salir del programa.• +ermitir In2ormes por...G $ediante estas checRs se puede con2igurar el destino

(ue puede tomar un in2ormeE si se desha&ilitan todas al entrar en el programatam&iDn se desha&ilita el &otón de impresión.

• IconoG Cuando el programa se utili7a como plugin de otro se propone esteicono para usarlo como icono del plugin

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 35/118

Edisa Sistemas de Información

• 'ódi,o +L?SFL de ,r"b"ciónG +ste código se e%ecuta cuando el usuario gra&ao sale del programa gra&ando las modi2icaciones. o se e%ecuta por cadaregistroE se e%ecuta por cada gra&aciónE por tanto si (ueremos (ue el usuariogra&e por registro para (ue se e%ecute este código ha= (ue usarlo en con%untocon el &lo(ueo de salida hasta gra&ar a nivel de &lo(ue.

• 'ódi,o +L?SFL Botón ImpresiónJ Se e%ecuta cuando el usuario pulsa so&re el &otón de imprimirE = se puede indicar en (ue punto e)acto se e%ecuta en la lista+unto ejecución +l?Sql Botón ImpresiónMG

● Antes de n")e,"r " l" p"nt"ll" de ImpresiónG +s lo primero (uee%ecutaE antes de ir a la pantalla de 2iltros de in2ormeE de esta 2orma se

 podr,a anular esa pantalla = llamar a un plugin con otro 2rontal dein2ormes distinto.

● Despus de N")e,"r " l" p"nt"ll" de ImpresiónG Se e%ecuta despuDs demostrar la pantalla de 2iltros de in2ormesE despuDs de poner los valores

 por de2ecto de destinoE impresoraE ...E por lo (ue desde el código pls(l se

 pueden alterar.● Antes 6 Despus de N")e,"r " l" p"nt"ll" de ImpresiónG Se e%ecuta

dos vecesE una antes de navegar = otra despuDsE si se (uiere (ue hagacosas distintas se puede usar la varia&le Gs=stem.cursor:&locRE despuDs denavegar contendrá el valor ?;+P<;8.

Si el programa no tiene in2orme = se activa mediante la checR de -or7ar ?otónde mpresión el especi2icar (ue se e%ecute 6ntes o 4espuDs de avegar va a darel mismo resultado =a (ue en ning'n momento va a hacer esa navegación. Si seespeci2ica (ue se e%ecute 6ntes = 4espuDs se va a e%ecutar dos veces.

• 'ódi,o +L?SFL p"r" "ntes de ejecución del in2ormeJ Se e%ecuta cuando elusuario pulsa el &otón de imprimir en la pantalla de 2iltros del in2ormeE una ve7seleccionado el destinoE impresoraE ... = se e%ecuta %usto antes de hacer la llamadaal reportE por lo (ue se podr,a usar para hacer una carga de una ta&la temporalEmodi2icar la impresora por la (ue se va imprimir o alterar el in2orme (ue se va aimprimir por e%emplo.

Si se especi2ica prevalecerá so&re el código pl/s(l (ue tenga el usuario o laempresa

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 36/118

Edisa Sistemas de Información

• Se puede esta&lecer (ue se e%ecute cuando el usuario selecciona un determinadodestinoE mediante los listitem (ue tiene de&a%o B6l ir a PantallaE mpresoraE6rchivoE e$ailE -a) = Jestión 4ocumental = tienen los siguientes valoresG

● :su"rioG Se e%ecuta dependiendo de la parametri7ación del usuario en

Personali7ación de +stDticaM = si no tiene registro ah, seg'n la parametri7ación de Personali7ación de +stDtica por +mpresaME en casode no ha&er tampoco registro se asume (ue Si se e%ecuta.

● SiG Se e%ecuta independientemente de si el usuario/empresa tiene (ue nose e%ecuta.

● NoG o se e%ecuta independientemente de si el usuario/empresa tiene (ueno se e%ecuta.

Como particularidades de este código pl/s(l es (ue se pueden leer las siguientesvaria&lesG

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:-<; $+G 4evuelve el nom&re del in2orme (ue se va e%ecutar.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:4+S6$+G 4evuelve a donde se enviará el in2ormeE en caso de (ue el destinosea impresora devolverá el nom&re de la impresora a la (ue se env,aE encaso de ser alg'n tipo de archivo devolverá el nom&re del archivo (ue seva a generar con la ruta completa.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:4+S8 <:+AC+LG Si se env,a a +)cel indica el nom&re de archivo con laruta completa (ue se va a generar.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:;+P<; 8S:8$PG !alor de la varia&le ;+P<;8S:8$P del li&ra.ini.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:4SP<S8!<G 4ispositivo de salida del in2ormeE posi&les valores SC;++EP;8+;E -L+E $6LE -6AE J+S8<4<C.

<tras particularidades de este código pl/s(l es (ue se puede esta&lecer laimpresora o el nom&re del archivo a generar Bdependiendo del destino delin2orme esta&leciendo [email protected]+8:!6;6?L+:+!B$P:4+S6$+E

valor. 8am&iDn se puede cam&iar el in2orme a e%ecutar esta&[email protected]+8:!6;6?L+:+!B$P:-<;$+E valor

• 'ódi,o +L?SFL p"r" despus de ejecución del in2ormeJ Se e%ecuta una ve7se ha 2inali7ado la e%ecución del in2ormeE = al igual (ue en el en Código Pl/S(l

 para antes de +%ecutar n2ormeM se puede indicar (ue se e%ecute cuando eldestino sea uno en concreto. +n este código es especialmente importante =a (uesi se va a e%ecutar invalida la impresión en segundo plano en caso de estaractivada.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 37/118

Edisa Sistemas de Información

Como particularidades de este código pl/s(l es (ue se pueden leer las siguientesvaria&lesG

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:-<; $+G 4evuelve el nom&re del in2orme e%ecutado.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:4+S6

$+G 4evuelve a donde se mandó el in2ormeE en caso de (ue el destinosea impresora devolverá el nom&re de la impresora a la (ue se env,oE encaso de ser alg'n tipo de archivo devolverá el nom&re del archivogenerado con la ruta completa.

[email protected]+8:!6;6?L+:+!:!6;C>6;"B$P:4+S8 <:+AC+LG Si se env,a a +)cel indica el nom&re de archivo con laruta completa (ue se generó.

<peraciones (ue se pueden reali7ar a nivel de &lo(ueG

• '"mbi"r el ori,en de d"tos del bloque p"r" consult" c"mpo 'onsult"PJ +n

este campo se puede indicar de donde tiene (ue o&tener <racle los datos paramostrar en el &lo(ue. Puede ser una ta&la o una consulta. +n caso de ser unaconsulta se de&e de poner entre parDntesis.

• '"mbi"r l" condición de )isu"li!"ción de re,istros de un bloqueG 6 los &lo(ues se les puede a3adir una condición a ma=ores de la (ue tiene el programaE para ello se cu&rirá el campo Where nicial de la sección de &lo(ues.La 2orma en (ue se introduce la condición al &lo(ue depende del listitem<peración con Where nicialMG

• 63adirG Se a3ade la condición a la (ue tenga el programa en el 2uente.• SustituirG Se ignora la condición (ue tenga el programa en el 2uente = se

utili7a 'nicamente la del mantenimiento de programas.• '"mbi"r l" orden"ción de un bloqueG 6 los &lo(ues se les puede modi2icar eltipo de ordenación (ue reali7aE para ello se cu&rirá el campo <rdenación nicial.

 <86G +sta ordenación sustitu=e a la (ue tenga el programa. Si dentro del programa se vuelve a asignar la propiedad <;4+;:?T del &lo(ue se perderáesta asignación.

• En)i"r " Ecel el contenido del bloqueG Si se activa en el &lo(ue la ChecR+)cel cuando el cursor entre en ese &lo(ue se activa en el men' una opción paraenviar el contenido directamente a +)cel. Solo se activará esta posi&ilidad si enla personali7ación del usuario tiene activado el env,o a +)cel.

• 'ódi,o pl?sql de )"lid"ciónG Código pls(l (ue se e.ec/ta c/ando se valida /n

registro completo#• 'ódi,o pl?sql de +ost InserciónJ Se e%ecuta despuDs de ha&erse insertado el

registro en la &ase de datos.• 'ódi,o pl?sql de +ost Actu"li!"ciónG Se e%ecuta despues de ha&erse modi2icado

el registro en la &ase de datos.• 'ódi,o pl?sql de +re borr"do0 Se e%ecuta cuando se intenta &orrar un registro.

Si el resultado de la e%ecución termina con Gp:parar:e%ecucion con el valor S seevita el &orrado del registro.

• 'ódi,o pl?sql de +ost Borr"doG Se e%ecuta una ve7 se ha &orrado el registro.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 38/118

Edisa Sistemas de Información

• 'ódi,o pl?sql de inici"li!"ciónG Se e%ecuta cada ve7 (ue se crea un registroE deesta 2orma se puede asignar valores por de2ecto en &ase a determinadascondiciones. Se de&er,a utili7ar siempre = cuando el valor por de2ecto no se

 pueda asignar usando el campo !alor por de2ectoME =a (ue el uso del campo!alor por de2ectoM no hace intervenir a la &ase de datos.

• 'ódi,o pl?sql de Entr"d" en Re,istroJ Se e%ecuta cada ve7 (ue se entra en unregistro nuevo o se cam&ia de registro en el &lo(ue.

• 'ódi,o pl?sql de 'onsult" de Re,istroJ  Código (ue se e%ecuta por cadaregistro (ue se consulta de la &ase de datos. I#+OR@AN@EG 6l e%ecutarse porcada registro (ue se trae de la &ase de datos = al e%ecutarse el código pl/s(l en la

 &ase de datos se va a incrementar el trá2ico de red ralenti7ando la consultaE en lama=or,a de los casos va a ser inaprecia&leE pero en programas (ue hagan unacarga intensiva de registros se va a notar.

• Bloque"r s"lid" 7"st" ,r"b"rG Si se activa la checR = el usuario modi2ica algoEeste &lo(ue va a &lo(uear la salida del registro en (ue se encuentra el usuariohasta (ue no gra&e o no lo &orre o &orre el registro de un &lo(ue padre.

Por e%emploE si lo activamos en la entrada de pedidos en el &lo(ue ?1Bca&eceraE en cuanto el usuario modi2i(ue algo no se le va a de%ar salir del

 pedido mientras no lo gra&e o no lo &orre.

Si lo activamos para un &lo(ue (ue tiene padresE por e%emplo l,neas de pedidoEha&r,a (ue activarlo tam&iDn para sus padres =a (ue si no lo hacemos evitamos(ue salga de las l,neas pero puede ir a la ca&ecera = cam&iarla lo (ue produce uncam&io en las l,neas.

Si se activa en un multil,nea = el usuario intenta salir con el ratón a otro registrose navega de nuevo al registro en (ue esta&a.

• +riorid"d mismo bloque en c"mbio de pest"Q"G +l 2uncionamiento normal decuando el usuario pulsa en una pesta3a es &uscar el primer campo navega&le dela pesta3a de destinoE ese campo podr,a ser de otro &lo(ue. Si se activa estachecR primero mira si en la pesta3a de destino ha= un campo navega&le del

 &lo(ue en (ue se encuentra el cursorE si lo ha= va a ese campo = si no ha= &uscael primer campo navega&le de la pesta3a de destino sea del &lo(ue (ue sea.

• #"ntener c"mpo "l c"mbi"r de re,istroG Si se navega al registro anterior o al

registro siguiente se intentará mantener el cursor en el mismo campo. Si elregisto al (ue se navega es nuevo se irá al primer campo navega&le.

• 'on2irm"r borr"do de re,istroG Si está activado antes de &orrar un registro se pide con2irmación al usuarioE si no no está activado se &orra directamente.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 39/118

Edisa Sistemas de Información

• 9iltrosG Permite con2igurar el &lo(ue para (ue gestione dos tipos de 2iltrosG• Si Bloque de 9iltroJ Se utili7a para indicar (ue el &lo(ue es donde se

introducen los 2iltros para luego e%ecutar una consultaE al indicar esto elusuario puede gra&ar los 2iltros utili7ados para ser recuperados luego de2orma 2ácil.

• Si Bloque de D"tosG Se mostrará una pesta3a anidada donde se puedende2inir 2iltros (ue luego podrá seleccionar el usuario durante la e%ecucióndel programa.

Se pueden de2inir tantos 2iltros como se (uieraE el usuario cuando e%ecute el programa = entre en el &lo(ue va a tener un &otón para (ue se a&ra una ventanaen donde indi(ue el 2iltro (ue (uiera aplicarE = si tiene =a aplicado alg'n 2iltrouna de las opciones será Limpiar -iltrosM para volver al estado original.

'ódi,oG denti2icador 'nico del 2iltroE no será visi&le por el usuario.● DescripciónG Será lo (ue vea el usuario para identi2icar el 2iltro.● OrdenG <rden en (ue se mostrará al usuario para seleccionar el 2iltro a

aplicar.● Acti)oG +l usuario solo podrá seleccionar a(uellos 2iltros (ue tengan la

checR 6ctivoM marcada.● 9iltroG Será la condición (ue se a3ada al &lo(ueE esa condición se a3ade e

la siguiente 2ormaG AN) (7condición8*

Se puede hacer (ue seg'n se entre en el no programa arran(ue el &lo(ue con un2iltro aplicadoE para ello situamos el cursor en el registro (ue se (uiera (ue sea

inicial = se pulsa en el &otón Seleccionar como 2iltro inicialME para desactivar el2iltro inicial se pulsará en el &otón ?orrar 2iltro inicialM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& +-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 40/118

Edisa Sistemas de Información

<peraciones (ue se pueden reali7ar a nivel de campoG

• '"mbi"r etiquet"s de c"mposG +n los programasE sean dinámicos o noE se puede modi2icar el te)to de las eti(uetas de los campos para posi&ilitar latraducción del +.;.P a otros idiomas = permitir en una instalación (ue estDn

usuarios con las pantallas en un idioma = otros usuarios con otro idioma. Los pasos (ue reali7an los programas para o&tener la eti(ueta de un campo son lossiguienteG

o Programas dinámicosG ?usca la eti(ueta en la personali7ación por idioma de los campos

 para la plantilla. Si la eti(ueta no está personali7ada para la plantilla en el idioma

del usuario se &usca igual (ue en los programas no dinámicos.o Programas no dinámicosG

?uscar la eti(ueta para el campo en el idioma del usuario.Sección +ti(uetas por dioma.

Si no tiene eti(ueta en el idioma del usuario usa la eti(ueta+stándar.

Si no tiene ninguna de las anteriores se mostrará la introducida enel código 2uente del programa.

• 5"bilit"r 7iper)Knculos " otros pro,r"m"sG Si en el campo Llamar programa

introducimos el nom&re del 2ichero de un programaE cuando un usuario (uetenga permisos para entrar en ese programa = se posicione en el campo se

ha&ilitará el &otón de llamada directa = podrá navegar al programaespeci2icado. Si se especi2ica en este campo el programa a llamar prevaleceráso&re el programa (ue tenga asociado la lista de valores.

• Acti)"r ? Des"cti)"r '"lcul"dor"G 6ctivando o desactivando la checR delcampo Calculadora  haremos (ue cuando el usuario se encuentre en ese campo= pulsa so&re la lista de valores a&ra una calculadora. Solo se deberK" de "cti)"ren c"mpos que sep"mos que son numricos. Solo se activará en a(uellos

 programas (ue tengan incorporado el componente C6LCHL64<;6 de lali&rer,a de o&%etos <?F+8<SP68.<L?.

• Acti)"r ? Des"cti)"r '"lend"rioG 6ctivando o desactivando la checR delcampo Calendario  haremos (ue cuando el usuario se encuentre en ese campo =

 pulsa so&re la lista de valores a&ra un calendario. Solo se deberK" de "cti)"r enc"mpos que sep"mos que son de tipo 2ec7". Solo se activará en a(uellos

 programas (ue tengan incorporado el componente C6L+46;< de la li&rer,ade o&%etos <?F+8<SP68.<L?.

+l indicar (ue un campo tiene calendario desde el mantenimiento de programaslleva asociado (ue la validación se reali7ará como una 2echaE es decirE si seintroduce manualmente la 2echa se llamará mediante el disparador estándarW>+:!6L468+:8+$ a la 2unción -+C>6:".

8am&iDn lleva asociado (ue si el campo es o&ligatorio = se pulsa intro de%andoen &lanco ese campo copie la 2echa de tra&a%o BGglo&al.2echa:tra&a%o a esecampo.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ($'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 41/118

Edisa Sistemas de Información

• '"mbi"r ? Asi,n"r list" de )"lores "soci"d" " un c"mpoJ Si en el campo Lista de Valores introducimos el código de una lista de valoresE se activará la posi&ilidad de usar la lista de valores especi2icada en ese campo. +l uso de listade valores lleva asociados los siguientes tres camposG

o Ejecut"r 'onsult" "l L"n!"r l" L.%.J  Si está activada la checRE

indicamos (ue cada ve7 (ue se lance la lista de valores se e%ecutaráautomáticamente consulta de la mismaE en caso contrario se lan7ará lalista de valores = se (uedará a la espera de (ue el usuario introdu7ca un2iltro = pulse -.

o 'l=usul" 5ERE List" de %"loresG La lista de valores puede tenerasociada una cláusula W>+;+ para todos los programasE pero esaW>+;+ (uedará anulada si en este campo introducimos una espec,2ica

 para el campo. Si se cu&re este campoE esta Xhere prevalecerá so&re laXhere especi2icada en la lista de valores. Si dentro de la Xhere ponemosel identi2icador JM7erelo)E este será sustituido por la cláusula Xhereoriginal de la lista de valoresE con lo (ue se logra una especie deherencia.

+%emploG• 7ere list" de )"loresG empresa Gglo&al.codigo:empresa• 7ere pro,r"m"G numero:ta&la 1 64 GXhere:lov• 7ere result"nteG numero:ta&la 1 64 empresa

Gglo&al.codigo:empresa

NO@AG Se de&er,a usar siempre (ue sea posi&le la herencia de la Xhere

de la lista de valores al programaE para (ue un arreglo en la lista devalores original arregle la Xhere de todos los programas en donde se usa.

o %"lid"r desde List" de %"loresJ Si se activa esta checR se 2uer7a a (uecuando se introdu7ca un dato manualmente en el campoE es decirE no seuse la lista de valoresE se valide (ue ese código e)iste en la ta&la asociadaa la lista de valores = con la condición esta&lecida en la cláusulaW>+;+ espec,2ica para el campoE en su omisión la de la lista de valoressi es (ue tiene.

o Des"cti)"r b3squed" contetu"l B+n opciones avan7adasG >a= camposdonde la &'s(ueda conte)tual puede ser incompati&le con ellosE =a (ue

 puede ha&er varios registros válidos = al hacer la validación va a estarsaltando la lista de valores en &ucle mientras no se salga del campo conel ratón. !er apartado b9s:ueda conte;tual  para más in2ormación.

o Bloque"r s"lto de c"mpo en L.%.G Si se activa la checR cuando seselecciona un registro de la lista de valores el cursor se mantendrá en elcampo (ue ha llamado a la lista de valoresE si está desmarcado saltará alsiguiente campo navega&le.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 42/118

Edisa Sistemas de Información

• Obli,"rG Pone como o&ligatorio el campo = pone en negrita la descripción delcampo.

• Ocult"rG >ace invisi&le el campo.• Des"cti)"r #odi2ic"ciónG o permite la modi2icación del campo a los usuarios.• Des"cti)"r N")e,"ciónG >ace (ue en la navegación normal por teclado no se

 pase por ese campoE se podr,a ir con el ratón.• %"lid"ción 9iltroG Si el dato introducido por el usuario e)iste en la ta&la

correspondiente pone la descripción de 2orma normalE si no e)iste no carga ladescripción pero de%a continuarE esto es 'til cuando tenemos campos4+S4+/>6S86 = (ueremos poner desde 666666 a ZZZZZZ.

• Des"cti)"r B3squed" 'ontetu"lG Si el usuario tiene marcado (ue se utilice la &'s(ueda conte)tual = la lista de valores para un mismo código puede tener dosregistros válidos entrará en un &ucle en donde el usuario no puede salir de lalista de valores =a (ue se la vuelve a&rirE en ese caso es necesario desactivar lalista de valores conte)tual para evitar (ue suceda esto.

Independiente de m"63scul"s ? min3scul"sG Si se activa para un campoEcuando se haga una &'s(ueda en ese campo con entrada / e%ecución consultahará la &'s(ueda independientemente de (ue en la ta&la estD almacenado enma='sculas / min'sculas e independientemente de (ue el patrón de &'s(uedaestD en ma='sculas o min'sculas.

• #"63scul"s ? #in3scul"sG● Si está en &lanco no hace nadaE lo (ue tenga el programa es lo (ue vale.● -or7ar $a='sculasG <&liga a (ue ese campo todo lo (ue se introdu7ca estD

en ma='sculas.● -or7ar $in'sculasG <&liga a (ue ese campo todo lo (ue se introdu7ca estD

en min'sculas.● -or7ar primera letra $a='sculaG Lo (ue introdu7ca el usuario serácam&iado a min'sculas = la primera letra de cada pala&ra se pondrá en

ma='sculas.● -or7ar $a='sculas = $in'sculasG <&liga a (ue ese campo se puedan meter

tanto ma='sculas o min'sculasE se di2erencia de la primera opción en (ueen el programa puede estar puesto (ue se 2uer7an ma='sculas = de esta2orma se permiten tanto ma='sculas como min'sculas]

• Nombre 'olumn" 'onsult"G om&re de la consulta (ue se enviará a la &ase dedatos en ve7 del nom&re de campo. Para más in2ormación ver el puntoG Campos

de 4isuali<ación de descripciones.• Nombre 'olumn" OrdenG Si especi2icamos algo en esta columna cuando el

usuario pulse con el &otón derecho so&re el campo e indi(ue (ue desea ordenascendente o descendente va ordenar por lo (ue estD especi2icado en este campo.+sto nos permite por e%emplo cuando tenemos una columna al2anumDricaE peroen la instalación han metido valores como estosE 1E "E 9E 1E 15E el orden lo va ahacer de 2orma al2anumDricaE va a poner el 15 antes del 9E esto se soluciona

 poniendo en este campoG LP64BcampoE 15E .• '"mpo AnteriorG Cam&ia el campo al (ue salta el cursor cuando pulsamos

$6TSV86?E es decirE retrocedemos de campo.• '"mpo Si,uienteG Cam&ia el campo al (ue salta el cursor cuando pulsamos

8;< o +8+;.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 43/118

Edisa Sistemas de Información

• #=sc"r"G Permite cam&iar la máscara de 2ormato del campoE por e%emploE si2uese 2echa se podr,a poner 44/$$/TT. 8am&iDn admite una constante paraindicar (ue se le apli(ue la máscara de cantidades con los decimales (ue setengan parametri7ados en li&ra para cantidades poniendo C84 = 4- para el2ormato de 2echa (ue está parametri7ado en el li&ra.ini.

• @"m"Qo #=imoG 8ama3o má)imo en caracteres (ue va aceptar el campo.^nicamente se puede reducir el tama3o so&re el (ue tenga el 2uenteE nuncaaumentarlo. +l 2uncionamiento es el siguienteG se de%a introducir al usuario hastalo (ue admita el 2uenteE pero si se pasa del tama3o a(u, indicado se le mostraráun mensa%e para indicarle el tama3o má)imo = (ue lo (ue ha introducido serátruncado.

• +osición CG $ovemos el campo a la posición ) (ue indi(uemos de la pantalla.• +osición G $ovemos el campo a la posición = (ue indi(uemos de la pantalla.• Anc7oG Cam&ia el tama3o de ancho del campo.• AltoG Cam&ia el tama3o de alto del campo.•

Borde del +romptG Cam&ia la u&icación del te)to de la descripción del campo.• Despl"!"miento sobre borde. Posición relativa a la situación del campo delte)to de la descripción del campo.

• Despl"!"miento sobre "line"mientoG Parecido a 4espla7amiento so&re &ordeM pero en la otra coordenada.

• %"lor por De2ectoJ Lo (ue se introdu7ca lo meterá en el campo de 2orma inicialcada ve7 (ue se cree un registro nuevo.

• Ejecut"r códi,o de +re0%"lid"ciónJ ndica si se e%ecutará código pls(l antesde reali7arse la validación desde la lista de valoresE este código puede estarde2inido en el mantenimiento de programas en el campo Código pl=S:l de

4alidación o en la lista de valoresE prevaleciendo el primero so&re el de la lista

de valores.• 'ódi,o +l?Sql de +re0%"lid"ciónJ Código (ue se e%ecutará antes de reali7ar la

validación con la SQL de la lista de valores. Solo se e%ecutará si está marcada lachecR E>ecutar .

• 'ódi,o +l?Sql puls"ción IN@RO ? @AB:LA'IHNG Se e%ecuta cuando elusuario pulsa intro en el campo. Si está activa la checR Sólo en camposinválidosM 'nicamente se e%ecutará si el campo está pendiente de validar = se

 pulsa 8;< o 86?HL6CIE si no está activada la checR se e%ecuta siempre.• Bloque"r )"lid"ción sin puls"r IN@RO ? @AB:LA'IHN. Si está activada =

el usuario intenta validar el campo sin pulsar 8;< / 86?HL6CIE pore%emploE saliendo del campo con el ratónE se le mostrará un mensa%e de (ue de&ede pulsar 8;<.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 44/118

Edisa Sistemas de Información

• 'ódi,o +l?Sql de )"lid"ciónJ +l programa =a tiene (ue incorporar en el 2uentelas validaciones de integridad necesarias (ue nunca podrán ser alteradas sinmodi2icar el 2uenteE como por e%emploE (ue un art,culo no pueda tener más dedos unidades de almacDn. Pero mediante la introducción de código pl/s(l devalidación asociado al campo se pueden a3adir restricciones espec,2icas en una

determinada instalación o (uD su cam&io no suponga una alteración del dise3ode la aplicación.

+ste código pl/s(l se e%ecutará despuDs de ha&erse reali7ado la validación desdelista de valores. +n caso de (ue se tenga marcada la checR Validar desde Lista

de Valores Bsi esta checR no está marcada este código se e%ecutará igual. PortantoE si se ha activado la validación desde lista de valores se supone (ue en elmomento de e%ecutarse este código el campo =a tiene un valor válido.

• 'ódi,o +l?Sql de pre0ejecución de list" de )"loresJ  +ste código se e%ecuta enel momento en (ue el usuario solicita una lista de valoresE = tiene como principalcaracter,stica (ue dependiendo del resultado de su e%ecución podemos hacer (ue

salte una lista de valores u otra.• 'ódi,o +l?Sql de Doble clic> G Se e%ecuta cuando el usuario hace do&le clicR

con el ratón so&re el campo.• 'ódi,o +l?Sql de entr"d" en c"mpoJ Se e%ecuta cada ve7 (ue entra el cursor en

el campoE siempre = cuando no se venga de una lista de valores.• 'l"usul" 7ere por De2ecto /J Si se especi2ica ha&ilita un &otón en la lista de

valores para poder conmutar entre condiciones. !er listas de valores para másin2ormación.

• Etiquet" Botón 7ere De2ecto 6 Etiquet" Botón 7ere De2ecto / G Se usacuando se especi2ica una Clausula Where por 4e2ecto " e indican el te)to (ue va

a contener el &otón (ue se ha&ilita para conmutar entre condiciones. !er listasde valores para más in2ormación.• Selección de "rc7i)oG +n casos de campos en (ue el usuario de&a de introducir

una ruta a un archivo se activará la checR Selección archivoME una ve7 marcadaaparecerá la siguiente ventanaG

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 45/118

Edisa Sistemas de Información

• SelecciónG Se indica cual es el o&%etivo de la &'s(uedaG• Selección de "rc7i)o p"r" "brirG Solo se pueden seleccionar archivos

e)istentes.• Selección de "rc7i)o p"r" ,u"rd"rG Se pueden seleccionar archivos

e)istentes = no e)istentesE si se selecciona uno e)istente se mostrará el

mensa%e de (ue se va a so&reescri&ir = se pedirá aceptación al usuario.• Selección de directorioG 6&re la ventana de selección de directorios.

• '"mpo Arc7i)oG Campo al (ue se le va a asignar el nom&re del archivo. Paraindicar el campo se introducirá ?L<QH+.C6$P<. Si no se indica se asignaráal campo en (ue se encuentre el cursor.

• '"mpo DirectorioG Campo al (ue se le va a asignar el directorio del archivoseleccionado. Para indicar el campo se introducirá ?L<QH+.C6$P<.

• @KtuloG 8e)to (ue aparecerá en la ventana de selección de archivo.• 9iltroG Se usará para 2iltrar los tipos de archivos (ue se visuali7arán en la

selecciónE como separador de los tipos de archivos se usará el carácter _M.

+%emplo para seleccionar archivos de tipo te)to = todos los archivosG  Arc?i4osde e;to (@&t;t*@&t;todos los arc?i4os (@&@*@&@M

NO@ASJ ● Si a un campo se le asocia más de un elemento Blista de valoresE calendarioE

calculadora solo 2uncionará uno = este será en el (ue indica el siguiente ordenG primero lista de valoresE segundo calendario = tercero calculadora.

● Para más in2ormación so&re Código PL/SQL = su estructura ver la secciónCódigo Pl=S:l .

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 46/118

Edisa Sistemas de Información

Código PL/SQL

+l código pl/s(l tiene las siguientes caracter,sticasG

• Se e%ecuta en la &ase de datosE por tanto no se puede hacer re2erencia a 2unciones= procedimientos almacenados en li&rer,as o en el 2uente del programa.

• 6l e%ecutarse en la &ase de datosE se pueden crear 2uncionesE procedimientos = pacRages en la propia &ase de datos e introducir el código en cual(uier lengua%ereconocido por la &ase de datosE =a sea PL/SQLE FavaE A$LE ...

• Permite usar dentro del código hasta un má)imo de " varia&les del propio programa de la misma 2orma (ue si se e%ecutase en un &lo(ue PL/SQL dentro de-ormsE es decirE se pueden hacer re2erencia a campos de un &lo(ue conG&lo(ue.campoE a parámetros con Gparameter.parametroE ... +stas re2erencias sonde entrada / salidaE es decirE si en el código PL/SQL de validación hacemos unaasignación a un campo del programa esta asignación se verá re2le%ada en el

 programaE por e%emplo si introducimos G&lo(ue.campo G `1E despuDs de lae%ecución el campo `campo del &lo(ue `&lo(ue contendrá el valor 1.

•  o se puede parar la e%ecución a mitad del códigoE es decirE el código see%ecutará ,ntegramente.

Se han a3adido los siguientes parámetros 2i%os (ue solo son de salida de resultadosG

• Jpp"r"rejecucionG Se le puede asignar `S E `E `<E `!E 8E P durante lae%ecución del códigoE esto no implica (ue si asignamos el valor `S no se e%ecuteel código (ue ha= a continuaciónE implica (ue si asignamos el valor `S despuDs

de ha&erse e%ecutado la validación PL/SQL se va a reali7ar un ;6S+-orm:8rigger:-ailure = por tantoE si es un código de validaciónE el campo va acontinuar con el estado !bL4<.

Si asignamos el valor `< solo se parará la e%ecución si el usuario pulsa el &otónde cancelar en el mensa%e (ue se le muestre.

Si asignamos el `! = el usuario pulsa cancelar en el mensa%e se resta&lecerá elvalor (ue introdu%o originalmente el usuario en el campo Bpuede ser (ue elcódigo pl/s(l lo modi2icase = el campo (ueda inválidoE es decirE se e%ecuta un;6S+ -orm:8rigger:-ailure. +n caso de (ue acepte el mensa%e continuará con

el valor devuelto por el código pl/s(l = se valida el campo.

Con el valor 8 2unciona e)actamente igual (ue !E pero si el usuario pulsacancelar en el mensa%e se resta&lece el valor introducido por el usuariooriginalmente en el campoE pero con la di2erencia de (ue el campo (uedavalidado.

Si se asigna el valor PE el campo o registro se valida independientemente si elusuario pulsa el &otón de aceptar o el de cancelarE pero si ha= algo en

 p:codigo:pl:s(l 'nicamente se e%ecuta si el usuario pulsa aceptar.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ("'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 47/118

Edisa Sistemas de Información

• Jptipomens"je = Jpcodi,omens"jeG Hna ve7 2inali7ada la e%ecución de lavalidación si tienen valor se mostrará el mensa%e correspondiente de la ta&la$+S6F+S. Se puede personali7ar el mensa%e asignando el te)to del mismo enla varia&le de salida Jptetomens"je.

• Jp)"lorc"mpoo> G Se usa en com&inación con Gp:tipo:mensa%e =

Gp:codigo:mensa%e. +n esta varia&le se puede introducir el valor (ue de&erá deasignarse al campo (ue está lan7ando el mensa%e en caso de (ue el usuario pulseel &otón 6ceptarM.

• Jp)"lorc"mpoc"ncelG Se usa en com&inación con Gp:tipo:mensa%e =Gp:codigo:mensa%e. +n esta varia&le se puede introducir el valor (ue de&erá deasignarse al campo (ue está lan7ando el mensa%e en caso de (ue el usuario pulseel &otón CancelarM.

• Jpl)list")"loresG Hna ve7 2inali7ada la e%ecución del códigoE si este campotermina con valorE se e%ecutará la lista de valores (ue indi(ue el valorEindependientemente de la lista de valores (ue tenga asociado el campo en elmantenimiento de programas. Si se usa en un código de validación Bprevalidación o validación 2allará si el usuario sale del campo usando el ratónE paraevitar este pro&lema de&emos compro&ar antes de asignarle valor si se estáe%ecutado desde un disparador @+T+A88+$ con el parámetroJpejecut"dodesde>ni  (ue contendrá el valor `S si se puede lan7arcorrectamente la lista de valores. +n caso de (uerer evitar (ue se valide el camposin lan7ar la lista de valores de&eremos usar Jpejecut"dodesde>ni  encom&inación con Jptipomens"jeE Jpcodi,omens"je = Jpp"r"rejecucióncomo se muestra en el siguiente e%emploG

I# 5p_9,utado_dsd_:n- = N< T&EN  5p_pa0a0_9,u,-on 5= S<;  5p_t-po_/nsa9 5= CAM2$<;  5p_,od-o_/nsa9 5= ENTER<;

ELSE  5p_lv_l-sta_valo0s 5= CLIENTES<;  5p_lv_9,uta0_,onsulta 5= S<;END I#;

• Jpl)ejecut"rconsult"G Se usa en el caso de (ue 3p'l4'lista'4alores devuelvavalorE si se indica el valor `S la lista de valores se e%ecutará mostrando registrosEmientras (ue si tiene el valor ` la lista de valores se e%ecutará en modo+8+;QH+;TE es decirE en modo de entrada de 2iltro.

• Jpl)M7ereG Se usa en el caso de (ue 3p'l4'lista'4alores  devuelva valorEindicará la condición con la (ue se de&e e%ecutar la lista de valores. Si se de%a en

 &lanco usará la Xhere (ue tenga por de2ecto la lista de valores.• Jpl)consult"bdG Se usa en el caso de (ue 3p'l4'lista'4alores devuelva valorE

 permite modi2icar la S+L+C8 (ue va a enviar la lista de valores a la &ase dedatosE si este parámetro no se especi2ica se usará la S+L+C8 (ue tenga porde2ecto la lista de valores.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 48/118

Edisa Sistemas de Información

• Jpcodi,oplsqlJ Permite (ue la e%ecución de un código pls(l devuelva otro pls(l a e%ecutar en caso de (ue el parámetro Gp:parar:e%ecucion sea E < u P =el usuario pulse aceptar el mensa%e. 4e esta manera podemos lan7ar una

 pregunta = en &ase a la respuesta del usuario e%ecutar un proceso o no. +l uso esilimitadoE es decir un Gp:codigo:pl:s(l podr,a devolver otro código = as, ir

encadenando preguntas al usuario. EjemploJ5p_pa0a0_9,u,-on 5= $;5p_t-po_/nsa9 5= C$M2R;5p_,od-o_/nsa9 5= TE8T$LIB;5p_tto_/nsa9 5= >Dsa bo00a0 l 0-st0o?;5p_,od-o_pl_s@l 5= DELETE #R$M tabla 4&ERE ,ond-,-on;

Con este pls(l se pregunta al usuario si (uiere &orrar el registroE si pulsa en6ceptarM se e%ecutará lo (ue tenga Gp:codigo:pl:s(lE si pulsa CancelarM no sehará nada.

Jpejecut"rpro,r"m"G Hna ve7 2inali7ada la e%ecución del códigoE si estecampo termina con valorE se e%ecutará el programa (ue indi(ue el valor. Para pasar parámetros al programa se usaremos las siguientes instruccionesG

[email protected];:P6;6$+8;<S:PLHJ:G See%ecuta sin ning'n parámetro = solo lo e%ecutaremos una ve7 antes de

 pasar ning'n parámetro.• [email protected];6$+8;<:PLHJ:BNparámetroOE NtipoOE

NvalorOG Se llamará una ve7 por cada parámetro a pasar.o p"r=metroTG om&re del parámetro (ue reci&e el programa

llamadoE este dato depende del programa al (ue llamemos.o tipoTG Le indicamos si el parámetro es una constante o es una

re2erencia a un campo del programa. U'VJ ConstanteE URVJ;e2erencia.

• )"lorTJ 4e donde va a o&tener el valor del programa principal para ser pasado al parámetro del programa plugin. +ste valor depende del tipoG

o Por re2erenciaE se puede o&tener deG CampoE especi2icaremos ?L<QH+.C6$P< del (ue

(ueremos o&tener el valor. +ste será la opción máscom'n.

!aria&le glo&alE especi2icaremos JL<?6L.!6;6?L+. 4e un parámetro local del programa principalE

especi2icaremosP6;6$+8+;.<$?;+:P6;6$+8;<

o ConstanteG Será un valor 2i%oE por e%emplo `1".

Se puede hacer (ue al llamar a un programa con Jpejecut"rpro,r"m"  see%ecute con una determinada personali7ación asignando la personali7ación a lavaria&le J,lob"l.idperson"li!"cion.

EjemploGGglo&al.id:personali7acion G 1Gp:e%ecutar:programa G C<SJ+

Gp:modo:menu:prog:llamado G 4<:;+PL6C+Gp:modo:consulta:prog:llamadoG <:QH+;T:<LT

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ()'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 49/118

Edisa Sistemas de Información

Se puede hacer (ue al llamar a un programa dinámico se e%ecute con unadeterminada plantilla haciendo (ue se ignoren los permisos del usuario so&re esa

 plantilla asignado el código de la plantilla a J,lob"l.2or!"rpl"ntill".

EjemploG

Gglo&al.2or7ar:plantilla G 6C<6L+SGp:e%ecutar:programa G CL+8+SGp:modo:menu:prog:llamado G 4<:;+PL6C+Gp:modo:consulta:prog:llamadoG <:QH+;T:<LT

8am&iDn se puede hacer (ue al e%ecutar el programa e%ecute algo de códigoE porlo (ue se podr,a hacer una llamada por plugin a un programa (ue no está

 preparado para ser llamado como pluginE el código (ue se (uiere e%ecutar en el programa destino ha= (ue pasarselo al procedimientoG pRpantallas.set:codigo:pl:s(l:inicioBNcodigoO

EjemploG 4esde la macroconsultaE en la pantalla código (ue ha&r,a (ue poneren un plugin para llamar al programa C<P+41 Bconsulta de pedidos (ue noestá preparado para ser llamado como plugin para (ue al entrar haga la consultadel cliente (ue tenemos en pantallaE = además le (uite la pesta3a de 2iltros para(ue no se pueda cam&iar la consulta.

Gp:e%ecutar:programa G conped1Gp:modo:menu:prog:llamado G 4<:;+PL6C+Gp:modo:consulta:prog:llamadoG <:QH+;T:<[email protected]+8:C<4J<:PL:SQL:C<[email protected];:C<4J<:PLHJ:[email protected]<$64<:PLHJ:BC<PTE __ G&cliente.v:codigo:rapido __ E ?1.4+S4+:[email protected]<$64<:PLHJ:BC<PTE __ G&cliente.v:codigo:rapido __ E ?1.>6S86:[email protected]<$64<:PLHJ:B!6L468+E ;+C<;4:SC<[email protected]<$64<:PLHJ:BSTC>;<Z+

[email protected]<$64<:PLHJ:B+A+CH8+:8;JJ+;E C<SHL86;[email protected]<$64<:PLHJ:BS8PPE C6!6S:?6S+.86?E !S?L+E P;<P+;8T:-6LS+

8am&iDn se puede utili7ar para llamar a un ;eportE para ello ha= (ue indicar lae)tensión .;+PE por e%emploG Jpejecut"rpro,r"m" JW Xin2orme.repXY

$ediante [email protected];:P6;6$+8;<S:PLHJ: [email protected];6$+8;<:PLHJ: se le pueden pasar parámetros alin2orme.

Para indicar por donde imprimir el in2orme se puede utili7ar Bver para más

detalle el apartado mpresión [email protected]:$HL84+S8<:;+P<;8 [email protected]:$HL84+S8<:;+P<;8. +n el caso de no indicarel destino se a&rirá la pantalla t,pica de selección de destino de impresión.

Si no se indica un destino se a&rirá una pantalla donde el usuario de&erá indicarsi (uiere el in2orme por pantallaE impresoraE etc. 6l seleccionar por impresorasaldrán tanto las impresoras marcadas como hori7ontales como las marcadasverticalesE este comportamiento se puede modi2icarG

● Para 2or7ar (ue 'nicamente salgan las verticales ha= (ue e%[email protected]+8:!6;6?L+:+!B$P:8P<:$P;+S<;6E !

Para 2or7ar (ue 'nicamente salgan las hori7ontales ha= (ue e%[email protected]+8:!6;6?L+:+!B$P:8P<:$P;+S<;6E >

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& (-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 50/118

Edisa Sistemas de Información

• Jpmodomenupro,ll"m"doG Se usa en el caso de (ue Gp:e%ecutar:programadevuelva valor. ndica si al llamarse el programa se de&e de mantener el men'del programa llamador en el programa llamado o (ue este inicialice su propiomen'. !alores posi&lesG

o NORE+LA'EJ  B!alor por de2ectoE si no se especi2ica esta varia&leasumirá este valor. Se mantiene el men' del programa llamador en el programa llamado.

o DORE+LA'EJ Se iniciali7a el men' del programa llamado.• Jpmodoconsult"pro,ll"m"doG Se usa en el caso de (ue

Gp:e%ecutar:programa devuelva valor. ndica si al llamarse al otro programa seva a hacer en modo de solo consulta o no.

o F:ERONLG B!alor por de2ectoE si no se especi2ica esta varia&leasumirá este valor. +n el programa llamado solo se podrán e%ecutarconsultasE nunca modi2icación de datos.

o NOF:ERONLG +n el programa llamado se pueden modi2icar

datos.• Jpesper"r2inpro,r"m"ll"m"doJ  Se le asignará el valor

B3p'esperar'fin'programa'llamado 3 BNB. Se utili7a para indicar (ue el programa llamador no de&e de (uedar a la espera de (ue termine el programallamado. +n caso de activar esa opción el programa llamado 2unciona igual (uesi el usuario 2uese por ventanas = lo a&riese desde el men'E es decirE el programallamador contin'a su e%ecuciónE la cone)ión a la &ase de datos es distinta paracada programa. +l inconveniente principal es (ue el programa llamado no puededevolver valores al programa llamador = tampoco puede compartir varia&les desesión de la &ase de datosE = como venta%a se evita el mensa%e o se puedeiniciar otra llamada a pantallaM cuando el usuario tiene varios programasllamados de 2orma concurrente.

>a= parámetros 2i%os (ue sólo son de entrada. +stos parámetros son los siguientesG• Jptipopro,r"m"  tendrá el valor del campo ipo de Programa  del

mantenimiento de programas.• Jp)"lid"rdesdelist"  tendrá el valor del campo Validar desde Lista de

Valores.• Jpejecut"dodesde>niJ Contendrá el valor `S si el código se está e%ecutando

 por la acción de usuario de pulsar +8+; o 86? so&re el campoE en otro casotendrá el valor `.

Se puede usar NA#EIN8USS@E#.@RIGGERI@E#V; para ser sustituido por elcontenido de la varia&le de sistema Gs=stem.trigger:item. <86G 8iene (ue estar escritotodo en ma='sculasE es decirE name:inB̀ STS8+$.8;JJ+;:8+$ no serásustituido.

Se pueden pasar varia&les entre códigos pl/s(lE mediante 2uncionesS+8:!6;6?L+:+! = J+8:!6;6?L+:+! de2inidas en el pa(ueteP@P686LL6SE para más in2ormación ver cap,tulo !aria&les glo&ales accesi&lesmediante pRpantallasME apartado 4e2ini&les dinámicamenteM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 51/118

Edisa Sistemas de Información

EjemploJ

I# 5,a/pos.d-v-sa_t-@uta IS N$T NULL AND 5,a/pos.dobl_t-@uta9 IS N$T NULL T&EN  I# 5,a/pos.d-v-sa_t-@uta = EUR AND 5,a/pos.dobl_t-@uta9 = % T&EN  5,a/pos.dobl_t-@uta9 5= *;  5p_pa0a0_9,u,-on 5= S;  5p_t-po_/nsa9 5= CAM2$;

  5p_,od-o_/nsa9 5= TE8T$LIB;  5p_tto_/nsa9 5= S- la d-v-sa s EUR no s p0/-t l p0-/0 valo0;  ELSI# 5,a/pos.d-v-sa_t-@uta EUR AND 5,a/pos.dobl_t-@uta9 % T&EN  5,a/pos.dobl_t-@uta9 5= %;  5p_pa0a0_9,u,-on 5= S;  5p_t-po_/nsa9 5= CAM2$;  5p_,od-o_/nsa9 5= TE8T$LIB;  5p_tto_/nsa9 5= S- la d-v-sa no s EUR l n-,o valo0 p0/-t-do s l p0-/0o;  END I#;END I#;

• +%emplo con 6$+:B`STS8+$.8;JJ+;:8+$G

 6$+:BSTS8+$.8;JJ+;:8+$ G P@!6L46C<+S.C<$P;H+?6:6;8CHL<BGglo&al.codigo:empresaE

 6$+:BSTS8+$.8;JJ+;:8+$E 8<:468+BGglo&al.2echa:tra&a%oE 44/$$/TTTTE Gp:tipo:programaEGglo&al.usuarioE Gglo&al.superusuarioE Gp:parar:e%ecucionE Gp:tipo:mensa%eE Gp:codigo:mensa%eE Gp:te)to:mensa%e

Lo (ue realmente e%ecutará este código si el contenido de Gs=stem trigger:item esG&#.codigo:articuloE = el tipo de programa es C<SHL86G

G&#.codigo:articulo G P@!6L46C<+S.C<$P;H+?6:6;8CHL<BGglo&al.codigo:empresaE G&#.codigo:articuloE8<:468+BGglo&al.2echa:tra&a%oE 44/$$/TTTTE `C<SHL86E Gglo&al.usuarioE Gglo&al.superusuarioEGp:parar:e%ecucionE Gp:tipo:mensa%eE Gp:codigo:mensa%eE Gp:te)to:mensa%e

• +%emplo de lan7amiento de lista valores.

I# 5b%.t-po_nt-dad = 2R< T&EN  5p_lv_l-sta_valo0s 5= 2R$3EED$RES<;  5p_lv_9,uta0_,onsulta 5= S<;  5p_lv_10 5= ,od-o_/p0sa = 5lobal.,od-o_/p0sa AND n-vl_lal = <S<<<;ELSE  5p_lv_l-sta_valo0s 5= CLIENTES<;  5p_lv_9,uta0_,onsulta 5= S<;  5p_lv_10 5= ,od-o_/p0sa = 5lobal.,od-o_/p0sa AND n-vl_lal = <S<<<;END I#;

+n los &lo(ues pl/s(l se puede controlar el resultado de la e%ecución de las listas devalores con las siguientes 2uncionesG

• p>p"nt"ll"s.,et)"lorultim"ejecucionlo)8X'A#+OX;G 4evuelve elnom&re del 'ltimo campo (ue ha e%ecutado una lista de valores en 2ormato?L<QH+.C6$P<.

• p>p"nt"ll"s.,et)"lorultim"ejecucionlo)8XROIDX;G 4evuelve el roXiddel 'ltimo registro seleccionado por lista de valoresE si la 'ltima e%ecución de lalista de valores se canceló devolverá HLL.

• p>p"nt"ll"s.,et)"lorultim"ejecucionlo)8X%ALORRE@ORNADOX;G4evuelve el 'ltimo código del 'ltimo registro seleccionado por lista de valoresEsi la 'ltima e%ecución de la lista de valores se canceló devolverá HLL.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 52/118

Edisa Sistemas de Información

Ejecut"r oper"ciones de 9orms.

>asta ahoraE todo lo (ue se e%ecuta&a en los códigos pls(l era en la &ase de datos = sóloa2ecta&a al programa en (ue pod,a cam&iar valores de los campos. 6hora puededevolver ciertas operaciones (ue se e%ecutarán en el programaE como por e%emplo

cam&iar propiedades de camposE mover el cursor de campoE e%ecutar triggersE ...Las operaciones (ue se e%ecutarán en 2orms serán e%ecutadas secuencialmenteE no ha=opción a tomar decisiones Bsalvo alguna pe(ue3a e)cepción por el medio de ellasE nireali7ar &ucles.Para ello en el pls(l ha= (ue e%ecutar las siguientes instruccionesG

[email protected];:C<4J<:PLHJ:G Sólo se e%ecutará unave7E e indicamos donde comen7amos a introducir las instrucciones a e%ecutar enel programa.

[email protected]<$64<:PLHJ:BNoperaciónOE [parametro1\E[parametro"\E [parametro#\

● NoperaciónOG !er ta&la de operaciones.

● [parametro1E " = #\G <pcionalE = es o&ligatorio especi2icarlo si en la ta&lade operaciones lo usa la instrucción (ue se e%ecuta.

+stas llamadas tam&iDn se pueden hacer en un plugin = se e%ecutarán en el programallamador cuando se cierre el programa llamado.Pude ha&er operaciones (ue den pro&lemas si se usan en un código de validación Bprevalidación o validación si el usuario sale del campo usando el ratónE para evitar este

 pro&lema Bcuando se use una de esas operaciones se puede compro&ar si se estáe%ecutado desde un disparador @+T+A88+$ con el parámetroJpejecut"dodesde>ni (ue contendrá el valor `S. +n caso de (uerer evitar (ue sevalide el campo sin e%ecutar nada de&eremos usar Jpejecut"dodesde>ni  encom&inación con Jptipomens"jeE Jpcodi,omens"je = Jpp"r"rejecución.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 53/118

Edisa Sistemas de Información

Oper"ciones soport"d"sJOperación Ejecuta

C<PT C<PTBparametro1E parametro"

J<:8+$ J<:8+$Bparametro1

J<:?L<C@ J<:?L<C@Bparametro1J<:;+C<;4 J<:;+C<;4Bparametro1

4<:@+T 4<:@+TBparametro1

+A+CH8+:8;JJ+; +A+CH8+:8;JJ+;Bparametro1

6L+;86 $SJ.6L+;86:P+;S<6LBparametro1E parametro"E parametro#

!6L468+ !6L468+Bparametro1. !er en la a=uda de -ormsE los valores (ue reci&eel &uiltin !6L468+.

+;6S+ +;6S+Bparametro1

-:--:;-8- - -orm:-ailure 8>+  ;6S+ -orm:8rigger:-ailure+4 -

-- ;6S+ -orm:8rigger:-ailure

><S8 ><S8Bparametro1 ó ><S8Bparametro1E parametro"

;+-;+SC6;:?L<QH+ !uelve a e%ecutar consulta en el &lo(ue en (ue se encuentra el cursorErespetando los 2iltros aplicados por el usuario = vuelve a posicionarse en elmismo registro = campo en el (ue se encontra&a el cursor.

SP Set:tem:Propert=Bparametro1E parametro"E parametro#.!er en la a=uda de-ormsE los valores (ue reci&e el &uiltin Set:tem:Propert=.

S?P Set:?locR:Propert=Bparametro1E parametro"E parametro#.!er en la a=udade -ormsE los valores (ue reci&e el &uiltin Set:?locR:Propert=.

S-P Set:-orm:Propert=Bparametro1E parametro"E parametro#.!er en la a=udade -ormsE los valores (ue reci&e el &uiltin Set:-orm:Propert=.

SP Set:tem:nstance:Propert=Bparametro1E parametro"E parametro#.!er en laa=uda de -ormsE los valores (ue reci&e el &uiltinSet:tem:nstance:Propert=.

S8PP Set:8a&:Page:Propert=Bparametro1E parametro"E parametro#.!er en laa=uda de -ormsE los valores (ue reci&e el &uiltin Set:8a&:Page:Propert=.

SWP Set:WindoX:Propert=Bparametro1E parametro"E parametro#.!er en laa=uda de -ormsE los valores (ue reci&e el &uiltin Set:WindoX:Propert=.

S$P Set:$enu:tem:Propert=Bparametro1E parametro"E parametro#.!er en laa=uda de -ormsE los valores (ue reci&e el &uiltin Set:$enu:tem:Propert=.

SCP Set:Canvas:Propert=Bparametro1E parametro"E parametro#.!er en la a=udade -ormsE los valores (ue reci&e el &uiltin Set:Canvas:Propert=.

S!6P Set:!a:Propert=Bparametro1E parametro"E parametro#. !er en la a=uda de-ormsE los valores (ue reci&e el &uiltin Set:!a:Propert=.

P<S8+6; P<S8+6;

C+8;6:!+866 C+8;6:!+866Bparametro1

P@L?P8:SP 4SPS84.S+8:P;<P+464Bparametro1E parametro"E parametro#. !erapartado $odi2icar por código las propiedades cargadas del mantenimientode programasM.

P@L?P8:S?P 4SPS84.S+8:P;<P+464Bparametro1E parametro"E parametro#E XBX.!er apartado $odi2icar por código las propiedades cargadas delmantenimiento de programasM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 54/118

Edisa Sistemas de Información

Operación Ejecuta

P@L?P8:SPP 4SPS84.S+8:P;<P+464Bparametro1E parametro"E parametro#E X+X.!er apartado $odi2icar por código las propiedades cargadas delmantenimiento de programasM.

P@L?P8:$P $P.S+8:P;<P+464Bparametro1E parametro". !er apartado $odi2icar

 por código las propiedades cargadas del mantenimiento de programasM.

P@L?P8:L! L!.S+8:P;<P+464Bparametro1E parametro". !er apartado $odi2icar por código las propiedades cargadas del mantenimiento de programasM.

STC>;<Z+ STC>;<Z+

J+8:A$L Jenera en el ordenador cliente un archivo )ml con ruta = nom&re indicadaen parametro1 con el )ml iniciali7ado anteriormente conp>ml.initline"ml o con p>ml.initline"mlsql.

J+8:-L+:8A8 Jenera en el ordenador cliente los archivos de te)to con sus l,neascorrespondiente (ue se han ido almacenando [email protected]:L+6S:-C>+;<. !er apartado Jenerararchivos de te)to en ordenador cliente desde código pl/s(l.M

6C8!6:PLHJ: Se usa para activar o desactivar un plugin de un &lo(ueE en parametro1 seindicará ?L<QH+.C<4J<:PLHJ = en parámetro" se indicará S paraactivarlo = para desactivarlo.

4+L+8+:;+C<;4 +%ecuta el comando 4+L+8+:;+C<;4.

CL+6;:;+C<;4 +%ecuta el comando CL+6;:;+C<;4.

CL+6;:?L<C@ +%ecuta CL+6;:?L<C@Bparametro1

CL+6;:LS8 CL+6;:LS8G +%ecuta CL+6;:LS8Bparametro1. Permite &orrar elcontenido de un LS88+$. Parametro1 identi2ica el campo a &orrar con?L<QH+.C6$P<

4L+ 4L+G +%ecuta 4elete:Lst:+lementBparametro1E parametro".Permite &orrar 'nicamente un elemento del listitem.Parametro1 identi2ica el campo a &orrar con?L<QH+.C6$P< = parametro" es el n'mero de elemento a

 &orrar.

6L+ +%ecuta 6dd:List:+lementBparametro1E !LB8<:H$?+;BJet:List:+lementCountBparametro1E V 1E parametro"E parametro#. 63ade al 2inal de la lista un nuevo elemento.Parametro1 identi2ica el con ?L<QH+.C6$P< = parametro" es el te)to(ue se le mostrará al usuario cuando seleccione la opción = parametro# es elvalor interno (ue contendrá el campo cuando el usuario seleccione laopción.&orrar.

PL +%ecutaG P<PHL68+:LS8. Parametro1 identi2ica el campo a &orrar con?L<QH+.C6$P< = parametro" es la s(l (ue de&e de usarse para rellenarla lista de valores. La s(l de&e de sacar 'nicamente " camposE el primeroserá el te)to (ue verá el usuario al seleccionar el elemento = el segundocampo el código interno (ue tendrá el campo cuando el usuario seleccione elelemento.

PLSQL +%ecuta el código pl/s(l pasado en Parametro 1.

SCHSP +%ecuta Set:Custom:Propert=Bparametro1E 1E parametro"E parametro#

WWW 6&re la Xe& pasada por parámetro en v:parametro1 en el navegador  

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 55/118

Edisa Sistemas de Información

Ejemplo de "cti)"ción?des"cti)"ción de plu,0in desde pl0sql.

[email protected];:C<4J<:PLHJ:- G&1.cli:codigo 5 8>+  [email protected]<$64<:PLHJ:B6C8!6:PLHJ:E ?CL+8+.CLE +LS+

  [email protected]<$64<:PLHJ:B6C8!6:PLHJ:E ?CL+8+.CLE S+4 -

Gener"r "rc7i)os de teto en orden"dor cliente desde códi,o pl?sql.

Para generar un archivo de te)to desde código pl/s(l en el ordenador cliente desdecódigo pl/s(l primero ha= (ue almacenar los datos de cada archivo (ue se (uiere generaren la &ase de datos mediante las siguientes 2unciones de pRpantallasG

●  pRpantallas.inciali7a:lineas:2icheroG Se e%ecuta una sola ve7 e iniciali7a lasestructuras internas del pa(uete pRpantallas para almacenar los datos para

generar los 2icheros.●  pRpantallas.add:lineas:2icheroBNtipoOE Narchivo:o:lineaOG Se usa tanto para

indicar el nom&re del archivo = la ruta como las l,neas de te)to (ue va acontener. ;eci&e dos parámetros en el primer parámetro NtipoO indica si en elsegundo parámetro Narchivo:o:lineaO se está pasando el nom&re del archivo ode la l,nea de te)to (ue va a contener el archivo. <&ligatoriamente la primerave7 (ue llama se tiene (ue pasar un nom&re del archivo = las siguientes l,neas(ue se a3adirán a ese archivoE una ve7 se cam&ie el archivo se cierra el anterior =las nuevas l,neas se a3aden al nuevo.

Para generar 2inalmente el archivo ha= (ue llamar a J+8:-L+:8A8E ver apartado+%ecutar operaciones de -ormsM.

+%emploG

 pRpantallas.iniciali7a:lineas:2ichero pRpantallas.add:lineas:2icheroB-E cGtemp2ichero1.t)t pRpantallas.add:lineas:2icheroBLE L+61 pRpantallas.add:lineas:2icheroBLE L+6" pRpantallas.add:lineas:2icheroB-E cGtemp2ichero".t)t pRpantallas.add:lineas:2icheroBLE L+61

 pRpantallas.add:lineas:2icheroBLE L+6"[email protected];:C<4J<:PLHJ:[email protected]<$64<:PLHJ:BJ+8:-L+:8A8

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 56/118

Edisa Sistemas de Información

Leer propied"des de objetos del pro,r"m" desde códi,o pl?sql.

4esde el código pl/s(l se puede leer las propiedades de temE ?locRE WindoXE -ormECanvasE 8a&E $en'E tem nstance. Para ello se usará lo siguienteG

GAAAGNo&%etoOGNpropiedadO

• AAAG ndica el tipo de o&%eto del (ue se (uiere o&tener la propiedadG• J?PG ?lo(ue BJet:?locR:Propert=.• JPG tem BJet:tem:Propert=.• JWPG WindoX BJet:WindoX:Propert=.• J-PG -orm BJet:-orm:Propert=.• JCPG Canvas BJet:Canvas:Propert=.• J8PG 8a& BJet:8a&:Page:Propert=.• J$PG $en' BJet:$enu:tem:Propert=.• JG tem nstance BJet:tem:nstance:Propert=.• JCHG Jet:Custom:Propert=.

 <86G Los valores de las propiedades son las (ue ten,a en o&%eto %usto antes dee%ecutarse el código pl/s(l.

EjemploJ Se lee la propiedad 4+-6HL8:W>+;+ del &lo(ue C6$P<S = luego se leasigna al mismo &lo(ue pero a3adiDndole la condición 64 estado +SP6

DECLARE  v_,1 3ARC&AR*(777";BEGIN  v_,1 5= 5GB25CAM2$S5DE#AULT_4&ERE;

  2F2ANTALLAS.INICIALIAR_C$DIG$_2LUG_IN;  2F2ANTALLAS.C$MAND$_2LUG_IN(SB2! CAM2$S! v_,1 HH AND stado = ES2A";END;

Modi)icar por código las propiedades cargadas del mantenimientode programas

[email protected]@+RO+IEDAD6 partir de la versión *.#.#..5 una ve7 se han cargado las propiedades de los camposdel mantenimiento de programas pueden ser alteradas durante la e%ecución desde el

código 2uente del programa.Para modi2icar una propiedad se llamará aG4SPS84.S+8:P;<P+464BNcódigoOE Ncódigo:propiedadOE Nvalor:propiedadOE NtipoO

● NcódigoOG 4ependerá de NtipoOE si se (uiere modi2icar la propiedad e un campo será?L<QH+.C6$P<E en caso de un &lo(ue será el nom&re del &lo(ue = en caso de un plugin es?L<QH+.C<4J<:PLHJ.

● Ncódigo:propiedadOG Código de la propiedad a modi2icar Bver ta&la de propiedades.● Nvalor:propiedadOG !alor (ue se va a asignar a la propiedad.● NtipoOG Puede contener los siguientes valoresG

● CG Propiedad de campoE es el valor por de2ecto (ue se asume si no se pasa este parámetro.

● ?G Propiedad de &lo(ue.● PG Propiedad de Plugin

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 57/118

Edisa Sistemas de Información

[email protected]@+RO+IEDAD6l igual (ue se puede esta&lecer una propiedad para un campo se puede leer con la 2unciónG4SPS84.J+8:P;<P+464BNcódigoOE Ncódigo:propiedadOE NtipoO ;+8H; Nvalor:propiedadO

A ni)el de c"mpo PROPIEDAD Descripción Valores posibles

6C8!6;:C6LCHL64<;6 ndica si el campo tiene calculadora. SE

6C8!6;:C6L+46;< ndica si el campo tiene calendarioE si se asociacalendario implica (ue va a validar el campocomo si 2uese una 2echa.

SE

C<4J<:LS86 Código de la lista de valores (ue tiene asociadoel campo.

Código de una lista de valores(ue e)ista enLS86S:!6L<;+S:C6? o enLS86S:!6L<;+S:P+;S:C6?.

L!:C<4J<:LS86 gual (ue en C<4J<:LS86E pero aparte deesta&lecer esta propiedad tam&iDn carga de lalista de valores las propiedadesG

● L!:C<LH$6:4+SC;PC<● L!:C<LH$6:C<4J<● L!:W>+;+:4+-+C8<● LL6$6;:P;<J;6$6● P6;6$+8;<:LL6$6;:P;<J;6$6● C<4J<:PL:SQL:P;+!6L46C<● 8;6SL68+:?C:6;J1● 8;6SL68+:?C:6;J"● C6S+:S+S8!+:QH+;T:4+SC

gual (ue en C<4J<:LS86.

I#+OR@AN@EG Se de&e de

tener cuidado en (ue parte delcódigo se pone la asignación deesta propiedad =a (ue implicaacceso a la &ase de datos paracargar los datos de la lista devalores.

L!:+F+CH86;:C<SHL86 ndica si al llamar a l a lista de valores va ae%ecutar consulta o va a entrar directamente enmodo de entrada de consulta.

SE

L!:!6L46;:4+S4+:LS86 ndica si se va a reali7ar la validación del campousando la select = la Xhere de la lista de valores.

SE

L!:C<LH$6:4+SC;PC< 'mero de columna de la l ista de valores (uecontiene la descripción para trasladar al campo4:AAAAA si el usuario selecciona algo de lalista de valores.

1 .. 1

L!:C<LH$6:C<4J< 'mero de la columna de la lista de valores (uecontiene el código (ue va a trasladar al campodesde el (ue se llama a la lista de valores si elusuario selecciona algo de la lista de valores.

1 .. 1

L!:C<SHL86:?4 SQL (ue de&e de cumplir la normativa de2ormato para una lista de valores. !er apartadode valores.

EjemploG S+L+C8codigo:rapido c1E nom&re c"EroXid roXid:lov -;<$ clientes

L!:W>+;+:4+-+C8< Cláusula Where a aplicar a la lista de valores. EjemploG codigo:empresa Gglo&al.codigo:empresa

L!:C<4J<:PL:SQL:P;+:+F+CHC< Código PLSQL (ue se e%ecutará cuando elusuario llama a la lista de valoresE ver sección demantenimiento de programas = de código pl/s(l.

Código PL/SQL

C<4J<:PL:SQL:!6L46C< Código PLSQL (ue se e%ecutará despuDs de lavalidación por lista de valoresE ver sección demantenimiento de programas = de código pl/s(l.

Código PL/SQL

C<4J<:PL:SQL:P;+!6L46C< Código PLSQL (ue se e%ecutará antes de lavalidación por lista de valoresE ver sección demantenimiento de programas = de código pl/s(l.

Código PL/SQL

C<4J<:PL:SQL:+8;646 Código PLSQL (ue se e%ecutará cuando e lcursor entra en el campoE ver sección demantenimiento de programas = de código pl/s(l.

Código PL/SQL

LL6$6;:P;<J;6$6 Programa al (ue se llama cuando el usuario hacedo&le clicR en el campo o cuando pulsa en el &otón de hiperv,nculo de la &otonera.

EjemploG CL+8+S

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 58/118

Edisa Sistemas de Información

 PROPIEDAD Descripción Valores posibles

P6;6$+8;<:LL6$6;:P;<J;6$6 Parámetro (ue se pasa al programa EjemploG C<4J<:CL+8+

4+S6C8!6:?HSQH+46:C<8+A8H6L

Si se desactiva = el usuario tiene activada &'s(ueda conte)tual en el campo (ue sedesactiva no 2unciona.

SE

!6L46C<:-L8;< ndica si se va a validar como si 2uese un 2iltroE

es decirE si lo (ue introduce el usuario no e)isteen la validación desde lista de valores se permitecontinuar = si e)iste se carga la descripción.

SE

!6L<;:P<;:4+-+C8< !alor por de2ecto (ue se va a asignar al programa en los registros nuevos.

LS86:!6L<;+S:J;HP< ndica si la lista de valores va a ser normal o seva a ir mostrando por grupos.

SG Si con 9 registros.5G Si con 5 registros. G o.$G $ultiselección.8G $ultiselección 8otali7ada.

8;6SL68+:?C:6;J1 8e)to reempla7ado en la &'s(ueda conte)tual.!er más in2ormación en apartado de listas devalores.

8;6SL68+:?C:6;J" 8e)to a reempla7ar en la &'s(ueda conte)tual.!er más in2ormación en apartado de listas devalores.

C6S+:S+S8!+:QH+;T:4+SC ndica si al hacer la &'s(ueda conte)tual por ladescripción se va a ignorar la di2erencia entrema='sculas = min'sculas.

SE

C<LH$6:<;4+; Campo o SQL por la (ue se va a ordenar cuandose indica con el &otón derecho so&re el campo(ue se (uiere ordenación ascendente odescendente.

EjemploG LP64Bcodigo:rapidoEE

L!:W>+;+:4+-+C8<" Segunda cláusula Xhere de al lista de valoresE sise especi2ica se ha&ilita un &otón en la lista devalores para conmutarlas.

+8QH+86:?<8<:W>+;+ +n caso de especi2icar una segunda cláusula

Xhere a la lista de &otón será la eti(ueta (uetendrá el &otón para conmutar a la segunda.

+8QH+86:?<8<:W>+;+" +n caso de especi2icar una segunda cláusulaXhere a la lista de &otón será la eti(ueta (uetendrá el &otón para conmutar a la primera.

86$6<:$6A$< 'mero má)imo de caracteres admitidos.

S+L+CC<:6;C>!< ndica si se ha&ilita lista de valores paraselección de archivos para el campo.

 G Sin selección de archivo.4G Selección de directorio.JG Selección de archivo paragra&ar.6G Selección de archivo paraa&rir.

S+L:6;C>!<:C6$P<:4;+C8<;< +n caso de estar activada la selección dearchivos en (uD ?L<QH+.C6$P< devuelve el

directorio seleccionado.S+L:6;C>!<:C6$P<:6;C>!< +n caso de estar activada la selección de

archivos en (uD ?L<QH+.C6$P< devuelve elarchivo sin ruta seleccionado.

S+L:6;C>!<:88HL< 8itulo (ue aparecerá en la ventana de selecciónde archivo.

S+L:6;C>!<:-L8;< -iltro de los archivos a mostrar.

?L<QH+6:!6L46:S:8;< ?lo(uear (ue no se pueda validar el campo sin pulsar 8;< o 86?HL6CI

SG &lo(ueado. G Sin &lo(uear.

C<4J<:PL:SQL:!6L46:+8+; Código pR/s(l (ue se e%cutará cuando el usario pulse 8;< en el campo.

L!:?L<QH+6;:S6L8<:C6$P< ?lo(uear (ue salte de campo cuando seselecciona un valor de una lista de valores.

SG ?lo(ueado el salto de campo. G Salta de campo.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 59/118

Edisa Sistemas de Información

 PROPIEDAD Descripción Valores posibles

PL:SQL:!6L46:+8+;:!6L4 ndica si el código deC<4J<:PL:SQL:!6L46:+8+; see%ecuta sólo cuando el campo estD inválido.

SG Se e%ecuta sólo cuando elcampo está inválido. G Se e%ecuta siempre (ue elusuario pulse 8;< o86?HL6CI

4+S6C8!6;:L!:6H8<$68C6 Si el usuario / empresa tiene marcado (ue encampos o&ligatorios con lista de valores si seintentan de%ar en &lanco se lanceautomáticamente la lista de valoresE se puededesactivar mediante esta opción.

SG Se desactiva la lista devalores automática. G o se desactiva.

4+!<L!+;:!6L<;+S:S+L+CC<64<S

+n caso de (ue el campo tenga enLS86:!6L<;+S:J;HP< el valor $B$ultiselección o 8 B$ultiselección totali7adase puede indicar (ue los valores (ue se hanseleccionado automáticamente se devuelvan alcampo (ue llama a la lista de valores.

SG Se devuelven los valoresseleccionados separados porS+P6;64<;:$HL8S+L+CC<64<S. G o se devuelveE en el código2uente del programa se tiene (uecontemplar.

S+P6;64<;:$HL8S+L+CC<64<S Carácter (ue separará los distintos valores (ue sedevuelven de la selección en una lista de valoresde multiselección.

-L8;<:<?LJ68<;<:+F+:C<S ndica si para hacer - o pulsar en &otón elcampo tiene (ue tener valorE es decirE seo&ligar,a a entrar en modo entrada de consultaB-0 meter un valor en ese campo = luegoe%ecutar la consulta.

SG <&ligatorio. G <pcional.

C<4J<:PL:SQL:4<?L+:CLC@ Código PL/SQL (ue se e%ecutará al hacer do&leclicR en el campo.

EjemploG 6signar al campo ?1. C<4J< la lista de valores CL+8+S a3adiendo la condición de (ueel estado del cliente sea el especi2icado en el campo ?1.+S864<E ha&ilitando la validación por lista devalores.

I# N3L(DIS2STD.GET_2R$2IEDAD(B%.C$DIG$! L3_C$DIG$_LISTA"! ." =

CLIENTES  DIS2STD.SET_2R$2IEDAD(B%.C$DIG$! L3_C$DIG$_LISTA! CLIENTES";  DIS2STD.SET_2R$2IEDAD(B%.C$DIG$! L3_3ALIDAR_DESDE_LISTA! S";  DIS2STD.SET_2R$2IEDAD(B%.C$DIG$! L3_4&ERE_DE#ECT$! 510_lovAND stado = 5b%.stado";END I#;

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& %-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 60/118

Edisa Sistemas de Información

A ni)el de bloque PROPIEDAD Descripción Valores posibles

+!6;:+AC+L 6ctiva la posi&ilidad e env,o a +)cel cuando elcursor está en el &lo(ue

SE

?L<QH+6;:S6L46:>6S86:J;6?6; Si tiene SE si se modi2ica un registros el usuario nova a poder salir de Dl mientras no gra&e

SE

C<4J<:PL:SQL:C6LZ6C< Código pl/s(l (ue se e%ecuta cada ve7 (ue se crea unregistro nuevo.

C<4J<:PL:SQL:!6L46C< Código pl/s(l (ue se e%ecuta cada ve7 (ue se validael registro.

C<4J<:PL:SQL:?<;;64< Código pl/s(l (ue se e%ecuta cada ve7 (ue se &orraun registro.

C<4J<:PL:SQL:+8;646 Código pl/s(l (ue se e%ecuta cada ve7 (ue el cursorentra en un registro.

CODIGO_PL_SQL_POST_INSERT Código pl/s(l (ue se e%ecuta despuDs de cadainserción de registro.

CODIGO_PL_SQL_POST_UPDATE Código pl/s(l (ue se e%ecuta despuDs de cadamodi2icación de registro.

CODIGO_PL_SQL_POST_DELETE Código pl/s(l (ue se e%ecuta despuDs de cada &orradode registro.

CONFIRMAR_BORRADO_REGISTRO Se usa para indicar si se de&e pedir con2irmación alusuario para &orrar el registro.

SG Se pide con2irmación G o se pide con2irmación.

SELECCIONAR_CAMPOS_EXCEL ndica si se va a pedir al usuario cuando env,e losdatos del &lo(ue a e)cel los campos a ser e)portados.

SG Se pide al usuario loscampos a e)portar. G o se le piden loscampos al usuario.

A ni)el de pro,r"m" PROPIEDAD Descripción Valores posibles

C<4J<:PL:SQL:J;6?6C< Código PL/SQL (ue se e%ecuta antes de gra&ar.

?L<QH+6;:S6L46:>6S86:J;6?6; Si tiene SE si se modi2ica un registros el usuariono va a poder salir de Dl mientras no gra&e

SE

A ni)el de plu,0in PROPIEDAD Descripción Valores posibles

6C8!6:PLHJ: 6ctiva o desactiva un plugin SG 6ctiva plugin G 4esactiva plugin

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 61/118

Edisa Sistemas de Información

A ni)el de In2orme medi"nte I#+.SE@+RO+IEDAD PROPIEDAD Descripción Valores

 posibles

PL:SQL:P;+:+F+CHC<:;+P Código pls(l para e%ecutar antes del in2orme.

PL:SQL:P<S8:+F+CHC<:;+P Código pls(l para e%ecutar despuDs del in2orme.

+F+:PL:SQL:P;+:;+P:SC;++ ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es pantalla. SE

+F+:PL:SQL:P;+:;+P:P;8+; ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es mpresora.

SE

+F+:PL:SQL:P;+:;+P:-L+ ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es 6rchivo.

SE

+F+:PL:SQL:P;+:;+P:$6L ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es Correo electrónico.

SE

+F+:PL:SQL:P;+:;+P:-6A ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es -a).

SE

+F+:PL:SQL:P;+:;+P:J+S84<C ndica si se e%ecuta el código de pree%ecución del in2orme cuando eldestino es Jestión 4ocumental.

SE

+F+:PL:SQL:P;+:P<S8:SC;++ ndica si se e%ecuta el código de poste%ecución del in2orme cuando el

destino es pantalla.

SE

+F+:PL:SQL:P;+:P<S8:P;8+; ndica si se e%ecuta el código de poste%ecución del in2orme cuando eldestino es mpresora.

SE

+F+:PL:SQL:P;+:P<S8:-L+ ndica si se e%ecuta el código de poste%ecución del in2orme cuando eldestino es 6rchivo.

SE

+F+:PL:SQL:P;+:P<S8:$6L ndica si se e%ecuta el código de poste%ecución del in2orme cuando eldestino es Correo electrónico.

SE

+F+:PL:SQL:P;+:P<S8:-6A ndica si se e%ecuta el código de poste%ecución del in2orme cuando eldestino es -a).

SE

+F+:PL:SQL:P;+:P<S8:J+S84<C ndica si se e%ecuta el código de poste%ecución del in2orme cuando eldestino es Jestión 4ocumental.

SE

-C>+;<:;+P<;8 n2orme a e%ecutar  

C<4J<:$P;+S<;6 Código de la impresora (ue se usará como destino del in2orme.

A ni)el de List" de %"lores medi"nte L%.SE@+RO+IEDAD PROPIEDAD Descripción Valores

 posibles

C+8;6;:L<! Se indica si al a&rir la lista de valores se va a centrar en la pantalla ose va a (uedar en la posición E de la pantalla.

SE

W>+;+:L<! Cláusula Where (ue se va aplicar a la lista de valores

W>+;+:L<!" Segunda Cláusula Where de la lista de valoresE al especi2icarla se vaha&ilitar un &otón para poder conmutar.

+8QH+86:?<8<:W>+;+ Cuando se especi2ica W>+;+:L<!"E será la eti(ueta (ue tenga el &otón de conmutación cuando se está aplicando la Xhere normal de

la lista de valores

+8QH+86:?<8<:W>+;+" Cuando se especi2ica W>+;+:L<!"E será la eti(ueta (ue tenga el &otón de conmutación cuando se está aplicando la segunda Xhere dela lista de valores

$HL8S+L+CC< Permite activar o desactivar la multiselección• SG 6ctiva la multiselección.

• 8. 6ctiva la multiselección con totali7ación de lascolumnas numDricas.

•  G 4esactiva la multiselección.

SE E 8

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 62/118

Edisa Sistemas de Información

Pesta*as

 os permite indicar (ue pesta3as tiene el programa Bsiempre (ue no sea dinámicoE parala traducción de su eti(ueta por idioma = la autori7ación por per2iles de usuario.

+n el código de pesta3a introduciremos L+Z<.P+S866E es decirE para la pesta3a86?1 del lien7o C6!6S:?6S+ introduciremos C6!6S:?6S+.86?1.

Etiquet" Est=nd"rG ntroducimos la eti(ueta (ue se usará por de2ecto en caso de (ue enel idioma del usuario no e)ista eti(ueta personali7ada. Si no se introduce nada en estecampo se mostrará la eti(ueta (ue contenga el 2uente del programa.

Sistem" de Autori!"ciónG ndicamos si per2iles introducidos en el &lo(ue de Per2iles6utori7ados / 4esautori7ados pueden visuali7ar o no la pesta3aE es decirE si este campocontiene el valor 6utori7ación solo los usuarios con los per2iles especi2icados podránvisuali7ar la pesta3a = si este campo contiene el valor 4esautori7ación todos losusuarios podrán visuali7ar la pesta3a e)cepto los de los per2iles indicados.

Bloque Etiquet"s por Idiom"G ntroducimos por idioma la eti(ueta correspondiente para la pesta3a.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 63/118

Edisa Sistemas de Información

(n)ormes

Se pueden con2igurar otros in2ormes (ue se e%ecutarán en sustitución del (ue tenga el2uente del programa en caso de (ue el usuario lo seleccioneE a esos in2ormes se les

 pasarán los mismos parámetros (ue reci&ir,a el listado (ue tenga el 2uente.

+n la pantalla de selección se ver,a de esta 2ormaG

Se puede esta&lecer (ue apare7ca un in2orme seleccionado por de2ectoE para ello ha=(ue posicionarse en el in2orme = pulsar Seleccionar como in2orme inicialM. Para (uitarel in2orme inicial ha= (ue pulsar ?orrar in2orme inicialM.

Si se activa la checR <&ligatorio seleccionar in2ormeM no se permitirá de%ar en &lancoel desplega&le de n2ormesE de esta 2orma se anula el in2orme (ue es llamado dentro del

 programa.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 64/118

Edisa Sistemas de Información

Por código se puede interactuar con este campo con las siguientes 2uncionesG• $P.J+8:P;<P+464B`?;+P<;8:-<;$+:C<4J<:-<;$+G

4evuelve el código del in2orme seleccionado.• $P.J+8:P;<P+464B`?;+P<;8:-<;$+:<$?;+:-<;$+G

4evuelve el nom&re del archivo del in2orme seleccionado.• $P.J+8:P;<P+464B`?;+P<;8:-<;$+:88HL<:-<;$+G4evuelve la eti(ueta del in2orme seleccionado.

+l report tam&iDn reci&irá los datos del in2orme seleccionado en los siguientes parámetrosG

• P:-<;$+:<$?;+:-<;$+• P:-<;$+:C<4J<:-<;$+• P:-<;$+:88HL<:-<;$+

Ventanas

 os permite indicar (ue ventanas tiene el programaE para la traducción de su eti(ueta por idioma.

Etiquet"G ntroducimos la eti(ueta (ue se usará por de2ecto en caso de (ue en el idiomadel usuario no e)ista eti(ueta personali7ada. Si no se introduce nada en este campo semostrará la eti(ueta (ue contenga el 2uente del programa.

Bloque Etiquet"s por Idiom"G ntroducimos por idioma la eti(ueta correspondiente para la ventana.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 65/118

Edisa Sistemas de Información

Plu"in

Hn plugin consiste en parametri7ar llamadas a otros programas desde la &otoneravertical.

Lo vamos a ver con un e%emploG maginemos (ue un cliente nos pide (ue desde lasl,neas de los al&aranes de compra (uiere consultar las tari2as de compra del art,culo.6ctualmente la entrada de al&aranes de compra tiene los siguientes &otones verticalesG

Para con2igurar la llamada iremos al $antenimiento de programasE locali7aremos el programa en cuestión con -0 V -. +n la sección de &lo(ues &uscamos el &lo(ue desdeel (ue (ueremos e%ecutar el plugin.

+n el e%emplo (ue estamos viendo el &lo(ue en el (ue (ueremos a3adir el plugin es el?#E en la descripción normalmente =a indica a (ue se corresponde L,neas de +ntradas6l&aranes ComprasME = vamos a la pesta3a  Plug.inM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 66/118

Edisa Sistemas de Información

+sta pantalla consta de dos &lo(uesE el primer es en el (ue especi2icaremos los plugins(ue se (uieren activar en el &lo(ue anteriormente seleccionadoE para ello indicaremoslos siguientes camposG

• 'ódi,oG Será un código (ue le daremos seg'n el criterio (ue se (uiera.

• DescripciónG Será el te)to (ue aparecerá al pasar el ratón por encima del iconodel plugin = en el men' en el apartado <pcionesM..

• +ro,r"m" Ll"m"doG om&re del .2m) (ue se llamará cuando el usuario pulseel &otón correspondiente al plugin. Si se especi2ica código PL/SQL se pude

 poner a(u, cual(uier cosa =a (ue lo va a ignorarE si se llama a un programa ha=(ue ver como hacerlo el cap,tulo de Código PL/SQL.

• Esper"r " que termine el +ro,r"m" Ll"m"doJ +n caso de activar esa opciónel programa llamado 2unciona igual (ue si el usuario 2uese por ventanas = loa&riese desde el men'E es decirE el programa llamador contin'a su e%ecuciónE lacone)ión a la &ase de datos es distinta para cada programa. +l inconveniente

 principal es (ue el programa llamado no puede devolver valores al programallamador = tampoco puede compartir varia&les de sesión de la &ase de datosE =como venta%a se evita el mensa%e o se puede iniciar otra llamada a pantallaMcuando el usuario tiene varios programas llamados de 2orma concurrente.

• Botoner"G Se puede indicar si el &otón se (uiere (ue apare7ca en la &otoneravertical o en la hori7ontal. La &otonera vertical tiene capacidad para más

 &otones.• IconoG om&re del 2ichero .ico (ue se encontrará en la carpeta conos de li&ra

(ue se mostrará en la &otonera vertical.• +l"ntill"G +n caso de ser un programa dinámico el (ue se indica en Programa

llamadoM se puede 2or7ar a (ue se e%ecute con una determinada plantilla.

• IDG +n caso de (ue el programa indicado en Programa llamadoM tenga varias personali7aciones se puede 2or7ar a (ue se e%ecute con una en concreto.• OrdenJ Si el &lo(ue tiene varios plugin indicará en (ue orden se muestran en la

 &otonera vertical. Lo normal será indicar el orden de 1 a "E siendo el menorn'mero el (ue primero saldráE %usto despuDs de los &otones (ue =a tenga el

 programa de2inidos de 2orma 2i%a.• @ecl" r=pid"G Se puede asignar a un plugin una tecla de 2unción de manera (ue

al ser pulsada se e%ecute dicho plugin. La paridad entre el n'mero de teclarápida = la tecla real del teclado dependerá del 2ichero de recursos de <racle-orms (ue tenga el pc instalado. Por de2ecto son las siguientesG

• 1G C<8;<LVS>-8V-1• "G C<8;<LVS>-8V-"• #G C<8;<LVS>-8V-#• *G -11• 5G -5• G -1"• 0G C<8;<LVS>-8V-0• G C<8;<LVS>-8V-• 9G C<8;<LVS>-8V-9

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ""'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 67/118

Edisa Sistemas de Información

• 'ontrol de "cti)"ción 6 des"cti)"ción del plu,0inG +l plugin se puede activaro desactivar en &ase a un valor de un campo del programaG

• '"mpo 'ontrol Acti)"ciónG Campo en el (ue se va a compro&ar elvalor (ue tiene a la hora de decidir si se activa o desactiva el plugin. Seindicará ?L<QH+.C6$P<.

• Oper"ciónG Lista de operaciones soportadas para hacer la comparación.• %"lorJ !alor so&re el (ue se evaluará la <peraciónE si el resultado de la

operación es 8;H+ se activa el campo = si es -6LS+ se desactiva.• #odo #en3J ndica si al llamarse el programa se de&e de mantener el men' del

 programa llamador en el programa llamado o (ue este inicialice su propio men'.!alores posi&lesG

o No reempl"!"rJ  Se mantiene el men' del programa llamador en el programa llamado.

o Reempl"!"rJ Se iniciali7a el men' del programa llamado.• #odo 'onsult"G ndica si al llamarse al otro programa se va a hacer en modo de

solo consulta o no.o Solo 'onsult"G B!alor por de2ectoE si no se especi2ica esta varia&leasumirá este valor. +n el programa llamado solo se podrán e%ecutarconsultasE nunca modi2icación de datos.

o No solo consult"G +n el programa llamado se pueden modi2icar datos.• 'ódi,o +L?SFLG Si tiene contenido e%ecuta este código = dependerá de lo (ue

tenga 8ipo de e%ecución de código Pl/S(lM tiene o no en cuenta los campos Programa llamado+ #odo men9+ #odo consulta D del contenido del blo:ue de

 par5metros& !er sección de Código PL=SL para más detalles.• Ejecut"r p"r" todos los re,istrosJ Solo tiene sentido cuando se especi2ica un

Código PL/SQLE al activarlo se va e%ecutar ese código para todos los registros

(ue e)istan en ese momento en el &lo(ue.• @ipo de ejecución del códi,o +l?SqlG

• Ejecut"r en )e! del pro,r"m"G o se llama al programa indicado enPrograma llamadoME solo se e%ecuta el código pl/s(l.

• Ejecut"r "ntes del pro,r"m"G Primero se e%ecuta el código PL/SQL =luego se e%ecuta el programa indicado en Programa LlamadoM.

• Ejecut"r despus del pro,r"m"G Primero se e%ecuta el programaindicado en Programa LlamadoM = una ve7 se sale de ese programa see%ecuta el código pl/s(l.

• Ejecut"r "ntes 6 despus del del pro,r"m"G Se e%ecuta antes de

e%ecutarse el programa indicado en Programa LlamadoM = otra ve7despuDs de salir de ese programa.

Con solo especi2icar estos datos =a tiene (ue aparecer en la &otonera del programa alentrar en el &lo(ue el &otón del pluginE pero lo 'nico (ue hará al pulsarlo es llamar al

 programaE pero sin ning'n parámetroE en el e%emplo (ue estamos siguiendo el programallamado no sa&e el art,culo (ue tiene el usuario en la l,nea del al&arán de comprasE portanto no podrá mostrar el precioE para pasar los parámetros dependerá del caso = del

 programa (ue se llame.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ",'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 68/118

Edisa Sistemas de Información

Los campos (ue tenemos (ue indicar para pasar parámetros son los siguientesG• +"r=metroG om&re del parámetro (ue reci&e el programa llamadoE este dato

depende del programa al (ue llamemosE posi&lemente el consultor tenga (ueconsultar a un tDcnico para (ue le diga los parámetros (ue tiene (ue pasar.

• %"lor +"r=metroG Sitio de donde va a o&tener el valor del programa principal

 para ser pasado al parámetro del programa plugin. +ste valor se puede ser detres tiposG

o !aria&le E se puede o&tener deG CampoE especi2icaremos ?L<QH+.C6$P< del (ue (ueremos

o&tener el valor. +ste será la opción más com'n. !aria&le glo&alE especi2icaremos JL<?6L.!6;6?L+. 4e un parámetro local del programa principalE especi2icaremos

P6;6$+8+;.<$?;+:P6;6$+8;<o Constante G Será un valor 2i%o = lo indicaremos entre comillas simplesE

 por e%emplo `1".o Propiedad G Se pasará AAAGNo&%etoOGNpropiedadOE donde AAAE ndica el

tipo de o&%eto del (ue se (uiere o&tener la propiedadGG J?PG ?lo(ue BJet:?locR:Propert=. JPG tem BJet:tem:Propert=. JWPG WindoX BJet:WindoX:Propert=. J-PG -orm BJet:-orm:Propert=. JCPG Canvas BJet:Canvas:Propert=. J8PG 8a& BJet:8a&:Page:Propert=. J$PG $en' BJet:$enu:tem:Propert=. JG tem nstance BJet:tem:nstance:Propert=.

Por e%emplo J?PGC6$P<SG4+-6HL8:W>+;+ se corresponde con la propiedad 4+-6HL8:W>+;+ del &lo(ue C6$P<S.

+n el e%emplo llamaremos a una consulta ligera llamada tarprolt E (ue reci&e lossiguientes parámetrosG

• C<4J<:6;8CHL<G Código del art,culo (ue (ueremos consultar.• <;J6Z6C<:C<$P;6SG Código de la organi7ación de compras en la

(ue (ueremos consultar los precios.• -+C>6:!6L4+ZG -echa a la (ue (ueremos (ue estDn vigentes los precios.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ")'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 69/118

Edisa Sistemas de Información

+l resultado de la parametri7ación del e%emplo ser,a el siguienteG

6l e%ecutar el programaE al entrar en las l,neas la &otonera aparece de la siguiente 2ormaG

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& "-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 70/118

Edisa Sistemas de Información

!emos (ue aparece un cuarto &otónE (ue al pulsarlo despuDs de ha&er introducido elcódigo del art,culo aparece la ventana del programa llamadoE (ue al ser una ventanamodal parece (ue está totalmente integrada en el programa.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 71/118

Edisa Sistemas de Información

+evolver valor desde el plug-in al programa llamado

Para devolver valores a campos del programa llamador desde el programa llamadousaremos la siguiente instrucciónG

!6L46C<+S.;+8<;<:PLHJ:BNvalor a devolverOE NdestinoO

• )"lor " de)ol)erTG !alor (ue env,a el programa llamado al programallamador.

• destinoTG Campo o parámetro del programa llamado en donde se va asignar elvalor.

EjemploJ3ALIDACI$NES.RET$RN$_2LUG_IN(5bsust-tu-dos.,od-o_a0t-,ulo_sus!BJ.RE#ERENCIA";

+ste código asigna en &.re2erencia del programa llamador el valor contenido en &sustituidos.codigo:articulo del programa llamado.

Permisos

Cuando se desarrolla un programa para (ue 2uncione como plugin = solo como plugin para evitar tener (ue ponerlo en los men's por per2il se puede hacer (ue evite esecontrol poniendo 4SPS84.<:C6LZ6;:P+;$S<S en los disparadoresW>+C;+68+;+C<;4E W>++W-<;$S86C+ e C< antes de lallamada a su procedimiento estándar. Por e%emplo en disparador inicioG

4SPS84.<:C6LZ6;:P+;$S<S4SPS84.C<

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 72/118

Edisa Sistemas de Información

,utoriar / +esautoriar plug-in

+n el mantenimiento de programas personali7ados se puede especi2icar (ue per2ilestienen acceso a un determinado plugin o (ue per2iles lo tienen desautori7ado.

Si en el campo Sistema de 6utori7aciónM se indica 4esautori7aciónM los per2ilesindicados en Per2iles 6utori7ados / 4esautori7adosM no podrán e%ecutar el pluginE sino se especi2ica ninguno todos los usuarios pueden usar el plugin.

Si en Sistema de 6utori7aciónM se indica 6utori7aciónM solo los per2iles indicados enPer2iles 6utori7ados / 4esautori7adosM podrán e%ecutar el pluginE si no se especi2icaninguno ning'n usuario podrá e%ecutar el plugin.

Crear plug-ins glo!ales a un programa

Se pueden crear plugins glo&ales a todos los &lo(ues de un programaE el2uncionamiento es similar a cuando se crean para un determinado &lo(ueE lo 'nico (ueha= (ue hacer es asociarlos al &lo(ue .JL<?6LPLHJS BimportanteE tiene un punto

al principio del te)to JL<?6LPLHJS.

Crear plug-ins glo!ales a todos los programas de Li!ra.

8am&iDn se pueden crear plugins glo&ales a todos los programas = sus &lo(uesE paraello ha= (ue dar de alta el programa con código .JL<?6LPLHJS B importanteE tieneun punto al principio del te)to JL<?6LPLHJS con un 'nico &lo(ue.JL<?6LPLHJS Btam&iDn con un punto al principio del te)to.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 73/118

Edisa Sistemas de Información

Personalizar proramas

Cual(uier modi2icación (ue se realice en el cliente en el mantenimiento de programasserá so&rescrita = por tanto perdida en el pró)imo cam&io de versiónE para solucionar

este pro&lema se ha ideado un mantenimiento de programas personali7ado. +ste programa es similar al mantenimiento de programas anterior pero con variasdi2erencias.

• Las modi2icaciones (ue se realicen en este mantenimiento so&re un programa prevalecerán so&re la in2ormación (ue e)ista para el mismo o&%eto B&lo(ueEcampoE pesta3aE ventana del mantenimiento de programas estándar. +stasmodi2icaciones no serán nunca so&rescritas al reali7ar un cam&io de versión.

• +n las pesta3as ?otoneraM = Pesta3asM tiene un &lo(ue de +er2ilesAutori!"dos ? Des"utori!"dosE en donde se introducirán los per2iles de usuario(ue podrán visuali7ar o no visuali7ar la pesta3aE dependiendo del parámetro deSistema de 6utori7ación.

• >a= una pesta3a para poder a3adir plugins personali7ados a un programaE los plugin se descri&en en un apartado espec,2ico.

>asta la versión *." cuando se (uer,a personali7ar un campo o&ligatoriamente ten,a (ueestar creado en el mantenimiento de programas del estándarE a partir de la versión *." se

 puede crear cual(uier personali7ación sin (ue tenga (ue e)istir en el estándarE incluso se podr,a crear un programa directamente en programas personali7ados sin (ue tenga (ueha&er nada en las ta&las del estándar.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 74/118

Edisa Sistemas de Información

#ocumentación de modi$icaciones en proramas

Cuando alguien haga una modi2icación de&erá de indicar (uien la hi7oE la 2echa = uncomentarioE para (ue estD disponi&le esa in2ormación a consultores.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 75/118

Edisa Sistemas de Información

%&squeda conte'tual 

+n el programa de personali7ar estDtica por usuario Bu:mcon2ig ha= dos checRsG• List" de )"lores "utom=tic" donde se" posibleG Si se activa esta checR cuando

el usuario pulsa +8+; en un campo o&ligatorio (ue está vac,o = (ue tiene lista

de valores en el mantenimiento de programas la lan7a de 2orma automática.• List" de )"lores contetu"l donde se" posibleG Si activamos esta checR = el

campo tiene lista de valores = validar desde lista de valores en el mantenimientode programas se intentará validar Bsolo cuando el usuario sale del campo

 pulsando +8+;E si lo hace con el ratón se sigue haciendo como hasta ahora elcampo de la siguiente 2ormaG

o Primero haciendo una &'s(ueda e)acta por códigoE es decirE si es unaorgani7ación comercialE &uscando a(uella (ue el código coincidae)actamente con lo (ue ha tecleado el usuario.

o ?'s(ueda con L@+ por código sustitu=endo espacios por Btam&iDn se

 pueden poner = a3adiendo siempre un al 2inalE en el e%emplo de laorgani7ación comercialE si el usuario teclea 1 = no ha= ningunaorgani7ación comercial con código 1 B=a se validar,a por el puntoanterior &uscar,a con L@+ codigo `1E si solo ha= una (ue cumpla lacondición =a la validar,a = si ha= varias lan7ará la lista de valores con loscoincidentes.

o ?'s(ueda con L@+ por descripciónE si el resultado de la &'s(ueda conL@+ por código no devuelve nadaE hará lo mismo pero &uscando pordescripción.

Para (ue esto 2uncione &ien cuando se personalice el disparador @+T+A88+$ en

ve7 de usar !6L468+B8+$:SC<P+ usaremos 4SPS84.!6L468+:8+$E pore%emploE si (ueremos (ue al validar un campo con el teclado el cursor nos salte a otro

 &lo(ue haremos lo siguienteG4SPS84.!6L468+:8+$J<:?L<C@B`?L<QH+

6ntes har,amos lo siguienteG!6L468+B8+$:SC<P+- -orm:-ailure 8>+ ;6S+ -orm:8rigger:-ailure

+4 -J<:?L<C@B`?L<QH+

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 76/118

Edisa Sistemas de Información

(abilitar ) #es*abilitar opciones de men& +Paquete ,M-N./

$ediante el código genDrico del 2ormulario &ase =a se reali7an las siguientesoperaciones con el men'G

• Si el programa tiene &lo(ue ?;+P<;8E es decir (ue tiene listado se activa el &otón de imprimirE en caso contrario se desha&ilita.

• Si nos situamos un registro cu=o &lo(ue (ue tenga la propiedad  -orrado

 permitido  a <E desha&ilita el &otón de &orrar registroE en caso contrario loha&ilita.

• Si nos situamos en un &lo(ue (ue tenga en la propiedad Inserción Permitida a < se desha&ilitan los &otones de crear registro = duplicar registro.

• Si nos situamos en un &lo(ue (ue tenga en la propiedad Consulta Permitida a < se desha&ilitan los &otones de entrada consulta = e%ecución consultaE en casocontrario se ha&ilitan.

Si nos situamos en un &lo(ue (ue tenga &lo(ues detalle se ha&ilita el &otón de &lo(ue siguiente.• Si nos situamos en un &lo(ue (ue tenga un &lo(ue padre se ha&ilita el &otón de

 &lo(ue anterior.• Si el campo tiene asociado programa para llamada directa se ha&ilita el &otón de

llamada directaE en caso contrario se desha&ilita.• Si el campo tiene lista de valoresE calendario o calculadora se ha&ilita el &otón

de lista de valoresE en caso contrario se desha&ilita.• Si nos situamos en un &lo(ue (ue tenga asociada la clase

?L<QH+:?L<QH+:;+J:HC< = por tanto tenga como atri&uto visual deregistro actual el ?L<QH+:;+JS8;<:HC< se desha&ilitan los &otones de

 primer = 'ltimo registro = de siguiente = anterior registro. 8am&iDn llevaasociado (ue se desha&ilitan los disparadores @+T:HP = @+T:4<W.

Con estos casos se cu&re la práctica totalidad de los casos en donde ha= (ue ha&ilitar =desha&ilitar opciones de men' = &otones de la &otoneraE pero en caso de ser necesarioactuar so&re alguno de ellos para ha&ilitar o desha&ilitar se usará el pa(uete -$+H dela li&rer,a P@L?P8.

NO@AG Para cam&iar la propiedad de &orrado permitidoE modi2icación permitida seg'nuna condiciónE es me%or usar el disparador P;+;+C<;4 (ue el

W>+:+W:;+C<;4:S86C+ =a (ue si el usuario navega a otro registro con elratón = pulsa en un campo de tipo checR o &otón de radio cam&ia su valor antes de saltarel disparador W>+:+W:;+C<;4:S86C+.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 77/118

Edisa Sistemas de Información

8oda activación = desactivación de men's se de&e de reali7ar mediante el pa(uete-$+H (ue tiene los siguientes procedimientosG

● -$+H.$P;$+BNparámetroOG ?otón de imprimir.● -$+H.C<SHL86;BNparámetroOG ?otón de consultar Bmonitor.● -$+H.J;6-C<BNparámetroOG ?otón de grá2icos.● -$+H.L<!BNparámetroOG ?otón de listas de valores.● -$+H.?L<QH+:SJH+8+BNparámetroOG ?otón de &lo(ue siguiente.● -$+H.?L<QH+:68+;<;BNparámetroOG ?otón de &lo(ue anterior.● -$+H.J;6?6;BNparámetroOG ?otón de gra&ar.● -$+H.4HPLC6;BNparámetroOG ?otón de duplicar registro.● -$+H.+486;BNparámetroOG ?otón de editar campo.● -$+H.?<;;6;BNparámetroOG ?otón de &orrar registro.● -$+H.P;$+;:;+JS8;<BNparámetroOG ?otón para navegar al primer

registro del &lo(ue.● -+H.HL8$<:;+JS8;<BNparámetroOG ?otón para navegar al 'ltimo

registro del &lo(ue.● -$+H.SJH+8+:;+JS8;<BNparámetroOG ?otón para avan7ar al

siguiente registro.● -$+H.68+;<;:;+JS8;<BNparámetroOG ?otón para retroceder al

registro anterior.● -$+H.LL6$646BNparámetroOG ?otón de hiperv,nculo a otro programa.● -$+H.+8+;:QH+;TBNparámetroOG ?otón de entrada de consulta.● -$+H.+A+CH8+:QH+;TBNparámetroOG ?otón de e%ecutar consulta.● -$+H.S6L;BNparámetroOG ?otón de salir del programa.● -$+H.C;+6;:;+JS8;<BNparámetroOG ?otón para crear registro nuevo.● -$+H.+AC+LBNparámetroOG ?otón de env,o de contenido del &lo(ue a

+)cel.

NparámetroOG +spera un valor &ooleanoE es decir 8;H+ activa = -6LS+ desactiva.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 78/118

Edisa Sistemas de Información

Notas Importantes sobre el Men& ) la %otonera

Salvo raras e)cepciones el men' (ue tiene el programa se de&e de%ar con el menuestándar.

Para los &otones particulares de cada programa como por e%emplo lan7ar proceso se haha&ilitado una &arra de &otones vertical con " &otones ocultos (ue se pueden ha&ilitar= usar con los siguientes procedimientosG

Procedimiento para hacer visi&le = activar a la ve7 el &otónG● -$+H.?<8<:!+;8C6L:!S?L+BN&otonOENeti(uetaOENiconoOG >ace

visi&le un &otón.● N&otonOG Los &otones van desde el ?1 a ?".● Neti(uetaOG +ti(ueta (ue aparecerá cuando el usuario pasa el ratón por

encima del &otón.● NiconoOG +l icono será un 2ichero .ico (ue estará en el path de H:C<.

NO@AG ?<8<:!+;8C6L:!S?L+ de&e de utili7arse siempre en eldisparador C<.

● -$+H.?<8<:!+;8C6L:6C8!6;BN&otonOENcomoOG Procedimiento para desactivar o activar el &otón despuDs de (ue =a sea visi&leG

● NcomoOG +s un valor &ooleanoE 8;H+ activa = -6LS+ desactiva.

Para gestionar el pulsado de cada uno de los &otones se usará el disparador

<PC<:$+HE se identi2icará el &otón pulsado por el valor del parámetro<PC<:$+H.

OPCME!.OPCIO"ME!#$%lobal.co&i%o"e'presa( $para'eter.opcion"'enu)*

 I+ $para'eter.opcion"'enu , -B1/ 0E 

22CODI3O PAR0IC!LAR PARA ESE BO0O 

 ED I+*

$P<;868+G 6l nom&re del 2ichero no se le pasará la e)tensiónE =a (ue la asumeautomáticamenteE =a (ue en la versión -orms1g. los &otones no pueden ser .icoE =a (uesolo tra&a%a con .gi2.

 #: I#+OR@AN@EJ

• Los &otones se de&en declarar de 2orma correlativa comen7ando en el ?1 = sinde%ar huecosE es decirE no se puede usar el ?5 sin previamente ha&er hechovisi&les con -$+H.?<8<:!+;8C6L:!S?L+ los ?1E ?"E ?# =?*. Si no se cumple esto al a3adir plugins al &lo(ue se producirán2uncionamientos totalmente inesperados.

• Solo se pueden usar los &otones verticales ?1 .. ?" dentro del 2uente 'nica =e)clusivamente si han sido creados dentro del 2uenteE es decirE si no se e%ecutaen el disparador C< un -$+H.?<8<:!+;8C6L:!S?L+B?1E ...dentro del 2uente nunca se puede hacer re2erencia a ?1.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 79/118

Edisa Sistemas de Información

4esde la versión ..5 del entorno se de&er,an de a3adir los &otones (ue se crean dentrodel 2uente con -$+H.?<8<:!+;8C6L:!S?L+ en la pesta3a ?otoneraM delmantenimiento de programas.

4e esta 2orma es posi&le personali7ar el programa para autori7ar o desautori7ar por

 per2iles el uso de esos &otones.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ,-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 80/118

Edisa Sistemas de Información

Generar los de traza0

Si se (uiere (ue un programa va=a generando una tra7a para su posterior compro&aciónse usará el pa(uete P68L<J contenido en la li&rer,a P@L?P8. La tra7a consistiráen l,neas de te)to (ue se gra&arán en un 2ichero plano.

Para (ue un programa genere log se a3adirá en el disparador C< la iniciali7aciónEcon P68L<J.C6LZ6;BNnom&re:de:2icheroO. Con esta instrucción segenerará un 2ichero en &lanco en el directorio con2igurado para los logE este directorioserá esta&lecido en la varia&le de entorno de Li&ra 4;+C8<;<:L<JE si esta varia&leno contiene ninguna ruta se generarán en CG.

Para gra&ar una l,nea al 2inal del archivo de log se usará la instrucciónP68L<J.+SC;?+BNlineaO. +n el parámetro l,nea será el te)to (ue se (uiere (ue segra&e.

+l 2ichero solo se generará si está activada la tra7aE es decirE la varia&le glo&alGglo&al.tra7a contiene el valor S. 4esde el men' de Li&ra la puede activar elsuperusuario en +special O 6ctiva 8ra7a = se desactiva en +special O 4esactiva 8ra7a.

Si se activa la tra7a a todos los mensa%es (ue se muestren se les a3adirá el campo seg'nel siguiente criterio B'nicamente se concatenará unoE el primero de los # (ue tengavalorG

Campo (ue produce el error.• Campo (ue está lan7ando el evento.• Campo en (ue se encuentra el cursor.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 81/118

Edisa Sistemas de Información

Los de incidencias ocurridas en la base de datos

6 partir de la versión *." en el pa(uete P@P686LL6S ha= un procedimiento llamadoL<J destinado a registrar incidencias ocurridas en la &ase de datosE ese procedimiento

se e%ecuta mediante una transacción autónomaE por tanto incluso si la transacción (ue lollama hace un roll&acR (ueda registrada la incidencia. +l registro (ueda en una ta&lallamada L?;6:L<J. +ste procedimiento reci&e # parámetrosG

• 8e)to a registrar.• Pa(uete desde el (ue lo estamos llamando.• Punto dentro del pa(uete desde donde lo estamos llamando.

6parte de todo esto tam&iDn registra de 2orma automáticaG

• -echa V hora del sistema.• Hsuario de Li&ra (ue esta&a validado.• Hsuario del sistema operativo (ue esta&a validado.• Puesto a nivel de sistema operativo donde esta&a validado el usuario.• Programa. Programa (ue esta&a e%ecutando Li&ra B+sto a partir de la *.".1E en

*." mete HLL.

+sto es tremendamente 'til en pa(uetes de &ase de datos en donde capturamos elW>+ <8>+;S Bo se hace un ;6S+ Salir = devolvemos un error genDricoEnormalmente cuando pasa esto encontrar el pro&lema es cosa de locosE cuando lasolución Bpor e%emplo puede ser tan sencilla como ampliar un ta&lespace.

+%emplo de llamadaG

Si se llama desde el pa(uete S! en un W>+ <8>+;S la 2orma de llamarlo ser,aG

+n el primer W>+ <8>+;SG [email protected]<J BSQL+;;$E S!E 1

+n el segundo W>+ <8>+;SG [email protected]<J BSQL+;;$E S!E "

I#+OR@AN@EG Solo se de&e usar donde realmente la incidencia es importanteE no sede&e usar para ir de%ando tra7as de por donde pasa un programa =a (ue so&recargar,a

 &astante.

Para guardar tra7as se puede usar [email protected];6Z6 con los mismos parámetros. Se de&e de usar 'nicamente dentro de procedimientos almacenados en la &ase de datos = se guarda tam&iDn en la ta&la L?;6:L<JE pero 'nicamente cuando enel men' de Li&ra está activada la tra7a.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 82/118

Edisa Sistemas de Información

#isparadores est1ndar 

Los disparadores estándar son a(uellos (ue e%ecutan el mismo código en todos los programasE este código está en la li&rer,a P@L?P8 en el pa(uete 4SPS84.

+s recomenda&le (ue todos los disparadores e%ecuten ese códigoE =a (ue si se hace unamodi2icación en la P@L?P8 para a3adir una nueva 2uncionalidad esta =a estaráincluida en todos los programas (ue la usen solo recompilando la li&rer,a.

Por e%emplo si tenemos en un &lo(ue el disparador W>++W?L<C@S86C+Ea medidaE es recomenda&le poner en el disparadorE aparte del código personali7adoE unallamada al código estándar 4SPS84.W>+:+W:?L<C@:S86C+.

Los disparadores estándar tienen el mismo nom&re (ue los disparadores de -orms perocon guiones &a%os en ve7 de guiones altos.

Particularidades del +(SPS+.%W01%C21+0(S,C% 3+(SPS+.W4%0%W05L2C60(S,C%.

+stos disparadores llevan impl,cito una llamada al procedimiento P<S8+6;E entoncessi alg'n dato ha sido modi2icado Bvaria&le Gs=stem.2orm:status `C>6J+4 see%ecutará un P<S8 2or7ando la validación de todos los campos = registros pendientes devalidar.

>a= casos en el (ue no nos interesa (ue estos disparadores hagan un P<S8E pero si (uee%ecuten el resto del código estándarE para ello podemos desactivar el P<S8 deldisparador poniendo antes de la llamada al 4SPS84 una llamada al procedimiento4SPS84.4+S6C8!6;:P<S8+64<. +l desactivado solo tendrá e2ecto en el

 pró)imo disparador 4SPS84.W>+:+W:;+C<;4/?L<C@:S86C+.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 83/118

Edisa Sistemas de Información

Personaliación 5orrado 3 gra!ación.

>a= casos en los (ue ha= (ue anular totalmente el disparador estándarE =a (ue la acción(ue hacen dependerán de una pregunta al usuarioE en estos casos es recomenda&le ver el

código (ue e%ecuta el disparador estándar para no perder ninguna 2uncionalidad. Pore%emplo si personali7amos el disparador @+T+A8 ha= (ue poner en el código paracancelar la lista de valoresE calculadoraE ...Para minimi7ar el caso en los (ue ha= (ue anular el disparador estándar desde el entornode desarrollo de la versión *.1 de Li&ra se han a3adido a los programas de nuevaestDtica dos disparadores nuevos a nivel de 2ormularioE para meter el código

 personali7ado = no tener (ue cam&iar nada de los disparadores estándar.

• 68+S:?<;;6;G Se e%ecuta antes de (ue el disparador estándar &orre elregistro = despuDs de (ue el usuario con2irmase la pregunta de &orrado.

• 68+S:J;6?6;G Se e%ecuta antes de (ue el disparador estándar e%ecute elC<$8:-<;$ = despuDs de (ue el usuario (ue (uiere gra&ar lasmodi2icacionesE tanto al pulsar el &otón de gra&ar como al pulsar el &otón desalir = ha&,a modi2icaciones pendientes de gra&ar.

+stos dos casos eran los más ha&ituales por los (ue ha&,a (ue de%ar de lado losdisparadores estándar @+T:+A8E @+T:C<$$8 = @+T4+L;+C.

Impresión0

(mpresión por ',7.

Si en un programa se (uiere dar la opción de (ue el usuario seleccione impresión por2a) se e%ecutará 4SPS84.6C8!6:$P;+S<:-6A en el disparador C<. 4eesta 2orma en la lista de dispositivos de salida se a3ade la opción -a) a las opcionesPantallaE mpresoraE ...

La llamada a esa 2unción 'nicamente a3ade la opción en la lista de dispositivos desalidaE la lógica del env,o a 2a) tiene (ue estar en el programa en el &otón?;+P<;8.$P;$;.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 84/118

Edisa Sistemas de Información

(mpresión multidestino.

+n los programas siempre se va a lan7ar en primer lugar la impresión (ue selecciona elusuarioE pero por personali7ación en código pl/s(l de antes de imprimir o dentro del

2uente se puede 2or7ar a (ue la impresión se haga en otros destinos de 2orma simultánea.

Para ha&ilitar el multidestino ha= (ue e%ecutar pRpantallas.iniciali7a:multidestino:report = luego por cada destino al (ue se (uieraenviar el report ha= (ue e%ecutarG

 pRpantallas.add:multidestino:reportBp:in2ormeE p:dispositivoE p:tipo:2icheroE p:imp:asincronaE p:imprimir:porE p:impresoraE p:destinoE p:emailG

●  p:in2ormeG Se puede indicar otro in2orme a imprimirE si se pasa a HLL seimprimirá el in2orme seleccionado por el usuario.

●  p:dispositivoG Puede reci&ir los siguientes valoresG● SC;++G Pantalla.● P;8+;G mpresora.● -L+G 6rchivo.● $6LG Correo electrónico.● -6AG -a).● J+S84<CG Jestión documental.

●  p:tipo:2icheroG Se usa para cuando el dispositivo genera un archivo B-L+E$6LE -6A = J+S84<C e indica el tipo de archivo a generarE reci&e lossiguientes valoresG

P4-● ALS● >8$L● ;8-● A$L

●  p:imp:asincronaG ndica al servidor si la impresión se ha de e%ecutar en modos,ncrono o as,ncrono.

● SG S,ncrona.●  G 6s,ncrona.

●  p:imprimir:porG Se usa 'nicamente para indicar si se imprime por la impresorade W4<WSE en ese caso ha= (ue pesarle el valor W4<WS.

●  p:impresoraG +n caso de (ue el destino sea P;8+; en este parámetro se pasael código de la impresora lógica por la (ue se ha de imprimir. Si p:imprimir:porreci&e el valor W4<WS en este parámetro se pasará W4<WS:! paraindicar (ue imprima por la impresora asociada de WindoXs en vertical TW4<WS:> para hori7ontal.

●  p:destinoG Se usa para indicar la ruta = nom&re de archivo a generar cuando eldispositivo está asociado a archivo B-L+E $6LE -6AE J+S84<C.

●  p:emailG 4irección de correo electrónico (ue se usarán cuando el dispositivo sea$6L.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 85/118

Edisa Sistemas de Información

Crear un $ormulario desde cero

 os &asaremos inicialmente en el 2ormulario &ase manbaseF&fmbME este 2ormulario =aincorpora el componente -<;$HL6;<:?6S+ de la li&rer,a de o&%etos

o&%etospant.ol&.

6ntes de nadaE para no so&rescri&ir el 2ormulario &ase =a lo gra&amos con el nom&rede2initivo (ue va=a a tener el programa.

63adir un nuevo &lo(ue de mantenimiento de una ta&laG• ncorporar un nuevo &lo(ue usando el asistente.• Seleccionamos ta&la o vista.• ndicamos la ta&la = los campos (ue vamos a usar.• +n el asistente de dise3oE a3adimos los campos en el lien7o C6!6S:?6S+ =

en el ta& 86?.• ndicamos los campos (ue van a estar visi&les en el mantenimiento.• Poner la propiedad Cla4e PrimariaM a S de todos los campos (ue 2ormen la

clave primaria de la ta&la asociada al &lo(ue. Bf• 6ctivar la propiedad del &lo(ue -or7ar Clave PrimariaM si la ta&la asociada

tiene clave primaria. Bf

Bf Solo si el programa no tiene numeración automáticaE como por e%emplo una entradade al&aranesE donde el n'mero Bparte de la clave primaria se o&tiene de un contador de2orma automática.

+l punto de asignar la clave primaria de mu= importanteE =a (ue la validación estándarsi se encuentra con un campo (ue es clave primaria &usca el resto de los campos (ue2orman la clave primaria = si todos tiene valor comprue&a si el registro =a e)isteE antesde (ue al usuario se le pidan más datos.

Para el punto de la validación de la clave primaria es importante (ue cuando se asignaalg'n valor por de2ecto de la clave primariaE por e%emplo el valor para el código de laempresa no se realice en el disparador P;+S+;8 =a (ue si se hace en ese momentonunca todos los campos correspondientes a la clave primaria van tener valor al servalidado alguno de ellosE por tanto es recomenda&le asignarlos en el disparador W>+C;+68+;+C<;4E pero sin anular la 2uncionalidad estándar del mismo.

+%emploG  4SPS84.W>+:C;+68+:;+C<;4

G&lo(ue.codigo:empresa G Gglo&al.codigo:empresa

Poner el t,tulo del programa en la eti(ueta de la pesta3a 86? de C6!6S:?6S+.

Ta no hace 2alta especi2icar el t,tulo de la ventana `!+866 =a (ue se poneautomáticamente la descripción del programa (ue ten,a el usuario en su per2il.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 86/118

Edisa Sistemas de Información

Poner a cada campo la eti(ueta en castellano correspondiente en la propiedad Prompt. unca usar eti(uetas de te)to normales =a (ue no se pueden modi2icar de 2ormadinámica = por tanto no se pueden traducir.

8ampoco de&er,amos usar marcos con eti(uetaE =a (ue al no poder cam&iarse de 2orma

dinámica tampoco se pueden traducir.

?orramos el marco (ue le pone el asistente de dise3o al &lo(ue.

63adir al &lo(ue la clase de propiedad correspondiente.• CL6S+:?L<QH+G Si solo se visuali7a un solo registro.• CL6S+:?L<QH+:SC;<LLG Si el &lo(ue visuali7a varios registros.

63adir la clase correspondiente a los elementos visuali7adosG

+lementos de te)to = 2echa.o CL6S+:8+A8:8+$G +l campo solo se visuali7a un registro.o CL6S+:8+A8:8+$:J;4G +l campo está en un multiregistro.

• +lementos numDricoso CL6S+:8+A8:8+$:H$?+; G +l campo está en un &lo(ue de 1 registro.o CL6S+:8+A8:8+$:H$?+;:J;4G Si el campo es multiregistro.

• +lemento de tipo casilla de veri2icación.o CL6S+:C>+C@:?<A.

• ?otones de ;adioo CL6S+:;64<:J;<HP

• +lementos de lista de selección.o CL6S+:LS8:8+$

• ?otones.o CL6S+:?H88<

• Lien7oso CL6S+:P6J+.

• !entanaso CL6S+:!+866

$odi2icar la propiedad Grupo de "tributos )isu"les del +romptM dependiendo de lasdos posi&ilidades siguientesG

Campo <&ligatorioG 6tri&uto visual C6$P<:<?LJ68<;<:P;<$P8.• Campo <pcionalG 6tri&uto visual C6$P<:<PC<6L:P;<$P8.

Si el campo se ha creado desde el asistente seguramente tenemos (ue volver a heredarlas propiedades  Alineamiento del prompt   = +stilo de Visuali<ación del Prompt E

 pulsando so&re la propiedad. +ste paso se puede hacer con varios itemsseleccionados.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 87/118

Edisa Sistemas de Información

Para el alineamiento del prompt en campos (ue no están en un grid de datosE es decirEno son multiregistroE el &orde del ane)o del prompt es 2inE por tanto inicialmente van aaparecer a la derecha del campoE lo (ue ha= (ue hacer es poner el prompt a la i7(uierda= (ue se modi2i(ue la propiedad de despla7amiento del ane)o del prompt = dej"ndo l"propied"d borde del "neo del prompt con el )"lor 2inP. +sto es necesario para (ue

las eti(uetas sigan per2ectamente alineadas despuDs de ser modi2icadas en otro idioma.

#: I#+OR@AN@EG Los campos (ue sean de descripción = (ue no pertene7can a lata&la &ase del &lo(ue les pondremos el mismo nom&re (ue el campo pero anteponiendoel pre2i%o `4:.

8am&iDn ha= (ue acordarse en las descripciones de poner el tama3o correcto para elcampo descripciónE acorde con el campo en la ta&la en donde se almacena dichadescripción. Siempre es me%or pasarse de tama3o (ue (uedarse corto.

6 los campos de visuali7ación les a3adimos la clase correspondiente.• +lementos de te)to = 2echa.

o CL6S+:4SPL6T:8+$G Si en el campo solo se visuali7a un registro.o CL6S+:4SPL6T:8+$:J;4G Si el campo es multiregistro.

+n ve7 de usar el disparador P<S8QH+;T para cargar el valorE meteremos en la propiedad  Nombre de columnaM la s(l necesaria de la 2orma (SELEC 7campo8

 !R"# 7tabla8 $%ERE 7condición8*E de esta 2orma se puede ordenar = 2iltrar poreste campo.

Si el campo puede ser HLLE podemos asignar a esta propiedad la siguiente sentenciaSQLG )EC")E(7campo8+ N,LL+ N,LL+ (SELEC 7campo8 !R"# tabla $%ERE

7condicion8**. 4e esta 2orma si el campo es HLL directamente no hace nadaE = sitiene valor va a &uscar la descripción a la ta&la correspondiente.

+sta 2orma de o&tener la descripción da como principal venta%a (ue el usuario puedehacer 2iltros pulsando -0 = - = tam&iDn se puede hacer una ordenación del &lo(ue dedatos por este campo.

Para más detalle ver el apartado Campos de 4isuali<ación de descripciones.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ),'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 88/118

Edisa Sistemas de Información

EjemploG

4+C<4+Bunidad:codigo1EHLLEHLLEBS+L+C8 descripcion -;<$unidades:almacen W>+;+ codigo articulos.unidad:codigo1

Colocar campos en la pantalla.

Para alinear los campos multiregistro los alinearemos al 2inal = apilandohori7ontalmente. Hna ve7 apilados hori7ontalmente los separaremos con el teclado un

 punto

+isparadores personaliados

8rataremos de poner todos los disparadores a nivel de &lo(ueE controlando de (ue ,temviene el evento mediante la varia&le de sistema Gs=stem.trigger:item.

+l orden de navegación de los &lo(ues será el mismo (ue especi2icamos en el navegadorde o&%etos del 2ormularioE por tanto el primer &lo(ue navega&le va a ser el primero (ueapare7ca en el navegador de o&%etos.

I#+OR@AN@EG Siempre (ue usemos un disparador (ue tenga una 2uncionalidadestándarE de&eremos de%ar la lógica necesaria para (ue no se pierda esa 2uncionalidadE

 por e%emploE si en el disparador W>++W;+C<;4S86C+E necesitamosdesactivar un campoE de&eremos de%ar una llamada al procedimiento4SPS84.W>+:+W:;+C<;4:S86C+.

+%emploG W>++W;+C<;4S86C+.

?+J  4SPS84.W>+:+W:;+C<;4:S86C+

  - G&lo(ue.campo 1 8>+  Set:tem:Propert=B`?L<QH+.C6$P<"E +6?L+4E P;<P+;8T:-6LS+ +4 -+4

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& ))'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 89/118

Edisa Sistemas de Información

Modi)icación de propiedades de campos 8'(%M9

 ormalmente las propiedades de los items se reali7arán con la instrucciónSet:tem:Propert=E e)cepto las siguientes B(ue a ser posi&le se usará el pa(uete-8+$.

● -8+$.!S?L+BNcampoOE NparámetroOG >ace visi&le o oculta un tem.Cuando se hace visi&le además lo hace modi2ica&le = consulta&leE si no se deseaeste 2uncionamiento se usará Set:tem:Propert=BNcampoOE +6?L+4EP;<P+;8T:8;H+.

● -8+$.6C8!64<BNcampoOE NparámetroOG 6ctiva o desactiva un tem.Cuando se activa además lo hace modi2ica&leE si no se desea este2uncionamiento se usará Set:tem:Propert=BNcampoOE +6?L+4EP;<P+;8T:8;H+.

● -8+$.$<4-C6?L+BNcampoOE NparámetroG 6ctiva o desactiva lamodi2icación de un campoE tanto en registros e)istentes como en los nuevos.

● -8+$.<?LJ68<;<BNcampoOE NparámetroOG 6ctiva o desactiva lao&ligatoriedad de (ue el usuario introdu7ca un valor para el campoE tam&iDncam&ia el atri&uto visual del promptE por e%emplo si se pone como o&ligatorio

 pone el Prompt en negrita.

NcampoOG +s una cadena (ue contiene N?L<QH+O.NC6$P<OE por e%emploG?.6L$6C+.NparámetroOG +spera un &ooleanoE es decir 8;H+ activa = -6LS+ desactiva.

Campos de primar) 2e) de un bloque0

Si en un &lo(ue a los campos (ue pertenecen a la clave primaria les activamos la propiedad de primar= Re= a los campos (ue 2orman la clave primaria Ben el &lo(ue esrecomenda&le activar la propiedad -or7ar Clave PrimariaME pero no es o&ligatorio paraesto al estar introduciendo el registro cuando el usuario le da valor al 'ltimo campo (ue2orma la clave primaria se comprue&a si ese registro =a e)iste en la &ase de datosE si =ae)iste se muestra un mensa%e = no se espera a (ue termine de meter el registro completo

 para avisarle.

Para (ue 2uncione correctamente ha= (ue tener mu= en cuenta lo (ue se e)plicó en elapartado Crear 2ormulario desde ceroM so&re los valores iniciales de los campos de laclave primaria asignarlos en el W>+C;+68+;+C<;4 = no en el P;+S+;8.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& )-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 90/118

Edisa Sistemas de Información

Campos #esde 3 (asta

 ormalmente en pantallas de 2iltro ha= campos en los (ue se pide un valor desde = unvalor hasta. Si es un campo (ue de 2orma normal el usuario va a especi2icar un mismo

valor en el desde (ue en el hasta =a le proponemos el valor hasta igual (ue el desde enel momento de validar el campo desde.

+vitaremos mostrar mensa%es de (ue el campo desde es ma=or (ue el campo hastaE lo(ue haremos al validar el campo desde es compro&ar si el hasta está vac,o o es in2erior(ue el desdeE en ese caso asignamos al campo hasta el mismo valor (ue el desde. Siestamos validando el campo hasta = tiene el valor desde valor = este valor es ma=or (ueel hasta le asignaremos al campo desde el valor del hasta.

+%emplo de validación de un campo desdeG

I# 5b%.asta_,l-nt IS NULL $R 5b%.asta_,l-nt 5b%.dsd_,l-nt T&EN  5b%.asta_,l-nt 5= 5b%.dsd_,l-nt;  5b%.d_asta_,l-nt 5= 5b%.d_dsd_,l-nt;END I#;

+%emplo de validación de un campo hastaG

I# 5b%.dsd_,l-nt IS N$T NULL AND 5b%.dsd_,l-nt 5b%.asta_,l-nt T&EN  5b%.dsd_,l-nt 5= 5b%.asta_,l-nt;  5b%.d_dsd_,l-nt 5= 5b%.d_asta_,l-nt;

END I#; 

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 91/118

Edisa Sistemas de Información

M1scaras

Hna máscara será del tipo -$999J999J994999E en donde las J indican en dondeirá el separador de millarE la 4 en donde irá el separador de decimalesE el -$ indica (ue

si el importe es negativo (ue ponga el signo `` pegado al primer n'mero comen7ando por la i7(uierda.

Las máscaras para asignar a campos numDricos (ue contengan in2ormación de unimporte de una determinada divisa o un importe de una cantidad de almacDn de&en deusar el pa(uete P@$6SC6;6S.

+l pa(uete P@$6SC6;6S tiene las siguientes 2unciones (ue devuelven la máscaraadecuada para cada casoG

• P;+C<SBp:parte:enteraE p:parte:decimalE p:divisaG 4evuelve la máscara conlos decimales adecuados al valor de 4+C$6L+S:P;+C<S de la ta&la4!S6S para la divisa identi2icada por p'di4isa.

• $P<;8+SBBp:parte:enteraE p:parte:decimalE p:divisaG 4evuelve la máscaracon los decimales adecuados al valor de 4+C$6L+S:SJ-C68!<S dela ta&la 4!S6S para la divisa identi2icada por p'di4isa.

• C68464+SBp:parte:enteraE p:parte:decimalE p:empresaG 4evuelve lamáscara con los decimales adecuados al valor de 4+C:C68464 de la ta&la6L:P6;6$1 para la empresa identi2icada por  p'empresa. <86G Si no

e)iste registro en 6L:P6;6$1 devolverá una máscara con los decimalesindicados en p'parte'decimal .

Para las cantidades lo más recomenda&le es poner en el mantenimiento de programas en la propiedad $áscara del campo el valor C84

NO@AG 6l estar la 2unción de cálculo de máscaras en ?ase de 4atos se puede usar tantoen -ormsE ;eportsE !glE ...

+n ;eports se puede sacar directamente como una columna más de la sentenciaE en unacolumna de 2órmulaE etc.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 92/118

Edisa Sistemas de Información

Ejemplos de m=sc"r"s

9ormsJ

4+CL6;+

  v:mascara !6;C>6;"B5?+J  v:mascara G P@$6SC6;6S.P;+C<SB15E *E Gparameter.divisa:empresa  Set:tem:Propert=B`?L<QH+.C6$P<E -<;$68:$6S@E v:mascara+4

ReportsJ

-HC8< N2unciónO S  v:mascara !6;C>6;"B5?+J  v:mascara G P@$6SC6;6S.P;+C<SB15E *E Gp:divisa  srX.attr.masR G srX.2ormatmasR:attr  srX.attr.2ormatmasR G v:mascara  srX.set:attrBEsrX.attr

;+8H; B8;H++4

,unciones Varias

• BORDEN.#EN:ES@ABLE'ERORDEN8XRE9RES'OX;G !uelve ae%ecutar consulta en el &lo(ue en (ue se encuentra el cursorE respetando los2iltros aplicados por el usuario = vuelve a posicionarse en el mismo registro =campo en el (ue se encontra&a el cursor.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 93/118

Edisa Sistemas de Información

Nomenclatura de 4qls

• Siempre (ue se haga un S+;8 en una ta&la se indicarán todos los campos (uese están insertandoE incluso si estamos metiendo valor a todos los camposE =a

(ue en el momento de hacer la s(l vemos unos campos en la ta&laE pero nadienos asegura (ue más adelante Bantes de sacar la versión se a3adan nuevoscampos a esa ta&laG

o +%emplo ncorrectoG S+;8 8< ta&la !6LH+S Bv1E v"E ...E vno +%emplo CorrectoG S+;8 8< ta&la Bcampo1E campo"E ... campon

!6LH+S Bv1E v"E ...E vn• Compro&aremos (ue todas las l,neas del s(l están 2inali7adas con punto = coma

Btam&iDn vale no poner punto = coma pero en la l,nea siguiente una &arra /E particularmente pre2iero el punto = coma. Se está poniendo de moda hacerlas enel 8<64 = olvidarse de 2inali7arlas =a (ue el toad las e%ecuta igual al pulsar

$a=s V -9 so&re cada una.

• 8oda secuencia de S+;8E HP468+E 4+L+8+ llevará un C<$$8. 6 lassentencias 44L Bes decir a(uellas (ue cam&ian una estructura de la &ase dedatos C;+68+E 4;<PE 6L8+;E ;+PL6C+ no hace 2alta hacer C<$$8 =allevan uno impl,cito.

• Los nom&res de las s(ls de&en ser de la siguiente 2ormaG

o +l nom&re del o&%eto cuando la s(l sea de B+n la versión solo saldrá laversión más reciente del o&%etoE no hace 2alta mandar toda la historia de

modi2icacionesG Procedimiento. -unción. Pa(uete !ista 8rigger 

o  om&re del o&%eto más un su2i%o Btal = como se genera desde li&racuando la s(l sea de B+n la versión solo saldrá la versión más reciente delo&%etoE no hace 2alta mandar toda la historia de modi2icaciones

ProgramaG om&re del programa V :P; Lista de valoresG om&re de la lista de valores V L! ;esto de s(lsG ""ZmmZddZnmZceZmdZ2n.sql 

""G dos 'ltimos d,gitos del a3o.mmG mes B"d,gitos.ddG d,a B" d,gitos.nmG numeración de las s(ls del mismo d,a = módulo.ceG centro de edisaG• mdG $adrid.• o)G <viedo.• ouG <urense• )"G !alencia•

),G !igo• bcG ?arcelona.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 94/118

Edisa Sistemas de Información

mdG módulo de li&raG• "l B6lmacDn• c" BCalidad• ce BComercio +)terior• cp BCompras• ct BConta&ilidad• 2" B-acturación• ," BJarant,as• om B<tros $ódulos• pr BProducción• sc BSección de CrDdito• te B8esorer,a• )7 B$a(uinaria / !eh,culos• p>  BPocRet / $ovilidad• us BHso nterno• crmG BC;$.

2nG 2uncionalidad de la SQLG• mj B$ensa%es.• mn B$en's.• tb B8a&las. $odi2icaciónE creaciónE etc.• p) BProcesos !arios. 8odo tipo de procesos de

actuali7ación de datosE etcE (ue no entren en los gruposanteriores.

Por e%emploE si se cam&ia una ta&la de 2acturación a 2echa de ho=E = =a se han creadoho= " s(ls de 2acturación en !igoE el nom&re (uedar,a as,G<*<**<<),2"tb.sql

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 95/118

Edisa Sistemas de Información

Generación de *ojas de c1lculo desde ,orms

Para generar ho%as de cálculo desde -orms disponemos la li&rer,a P@L?ALS.PLL = lali&rer,a P@>SS-P<.PLL.

● P@>SS-P<.PLLG Se &asa en las li&rer,as del pro=ecto FaRarta P< reali7adasen FavaE en este documento no se va a e)plicar su usoE las 2unciones (uecontiene son llamadas directas a las classes Fava (ue están documentadas enhttpG//poi.apache.org/hss2/inde).html

● P@L?ALS.PLLG Se &asa en la li&rer,a P@>SS-P<.PLL = su o&%etivo esgenerar de 2orma sencilla ho%as de cálculo a partir de SQLS.

Ventaas 3 desventaas so!re usar %$cel con macros.

%ent"j"s

● La ho%a de cálculo no tiene código !isual ?asicE 'nicamente contiene los datoscon las 2órmulasE con lo (ue se aligera el archivo generado.

● -unciona per2ectamente en -orms1gE además al usar código Fava 2uncionatanto si el servidor de aplicaciones se encuentra en WindoXs como en Linu).

● $a=or velocidad de generación.●  o es necesario tener instalado en el e(uipo el driver <&%ects 2or <le.

Des)ent"j"s

● +s necesario tener Li&ra instaladoE usando $acros se podr,a usar la +)cel de2orma independiente.

● 6ctualmente no ha= soporte parar crear grá2icos.

1e#uisitos

+s necesario tener instalado en el e(uipo el ;untime de Fava BF;+E versión 1.* osuperiorE además es necesario con2igurar la varia&le P68> en el li&ra.ini para a3adir eldirectorio &in = &inclient de %avaE tam&iDn ha= (ue a3adir la varia&le CL6SSP68> en

el li&ra.ini para (ue apunte a los archivos rt.%arE poi.%arE poicontri&.%arE poiscratchpad.%ar.

Para validar los re(uisitos e)iste en la li&rer,a P@L?ALS la 2unciónP@ALS:!6L46;:C<-JH;6C<E esta 2unción reci&e como parámetro un?<<L+6E si se pasa 8;H+ si encuentra alg'n pro&lema da un mensa%eE en caso de

 pasar -6LS+ no muestra ning'n mensa%eE por lo (ue ha= (ue controlar el retorno de la2unciónE si devuelve 8;H+ (uiere decir (ue está con2igurado = si devuelve -6LS+ es(ue ha= algo (ue no está correctamente con2iguradoE sea la varia&le P68> o laCL6SSP68>.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 96/118

Edisa Sistemas de Información

Pasos para la generación de una hoa de cálculo

Los pasos para generar una ho%a de cálculo son los siguientesG

1. Llamada aG p>ls.inici"li!"J Simplemente iniciali7a estructuras internas del

 pa(uete pR)lsE no reci&e ning'n parámetroE pero es o&ligatorio (ue sea la primera instrucción (ue se e%ecute.

". 4ar las propiedades a la ho%a de cálculo conG p>ls.setpropied"decelG4e2ine propiedades a nivel del archivo de ho%a de cálculoE como por e%emplo eldirectorio en donde se va a generarE nom&re del archivoE etc.

#. Crear como m,nimo una ho%a de cálculo dentro del archivoE Bse pueden generartantas como sean necesarias llamando a la 2unción p>ls.cre"7oj"J Lallamada a esta 2unción nos devuelve un H$?+; (ue identi2ica la ho%aE esedato será necesario almacenarlo para dar luego propiedades a la ho%aE como pore%emplo las s(ls (ue de&e de e%ecutar.

*. 4ar propiedades a la ho%aE con p>ls.setpropied"d7oj"G 4e2ine propiedades anivel de ho%aE como por e%emplo el nom&re de la ho%a. Este p"so es opcion"l porde2ecto la crea con el nom&re 4atos.

5. 63adir a la ho%a tantas s(ls como sean necesarias con la 2unción p>ls.cre"sqlEha= (ue pasarle como parámetro el identi2icador de la ho%a (ue ha devuelto la2unción pR)ls.crea:ho%a. os devuelve un H$?+; (ue identi2ica la s(lE esedato será necesario almacenarlo para poder dar luego propiedades a la s(l. Las

s(ls se e%ecutarán de 2orma independiente = una al 2inali7ar la otra = en el ordenen (ue se llame a pR)ls.crea:s(l. Este p"so es opcion"lE ha= un mDtodoalternativo para asignar directamente valores a las celdas indicando lascoordenadas de la celda = el valor a asignar con pR)ls.e)cel:celda.

. 4ar propiedades a la s(lE con p>ls.setpropied"dsqlG 4e2ine propiedades anivel de s(lE como por e%emplo la S+L+C8 (ue ha de e%ecutar. Este p"so esopcion"l.

0. 4ar propiedades a las columnas (ue se o&tienen de la s(l conp>ls.setpropied"dcolumn"G 4e2ine propiedades a nivel de un determinado

campo de la s(lE como por e%emplo la máscara de 2ormato. Este p"so esopcion"l.

. Por de2ecto todos los campos numDricos se totali7an con sumaE esa2uncionalidad se puede modi2icar creando tantas 2órmulas de totali7ación comosean necesarias con p>ls.cre"2ormul"tot"lsqlE cada 2órmula de totali7acióngenerará una 2ila de totales en el orden en (ue llamemos a la 2unción. +sta2unción devuelve un H$?+; (ue identi2ica la 2órmulaE ese dato seránecesario almacenarlo para poder dar luego propiedades a la 2órmula. Este p"soes opcion"l.

9. Lan7ar el proceso de generación llamando a p>ls.,ener"rls. Este p"so es

obli,"torioE es el (ue compila toda la in2ormación (ue se le ha proporcionado al pa(uete pR)ls = genera la ho%a de cálculo.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 97/118

Edisa Sistemas de Información

+%emploG

DECLARE  v_-d_o9a NUMBER;

  v_-d_s@l NUMBER;BEGIN  pk!".i#i$i%!i&%;  pk!"."'(_propi'd%d_'$'!(DIRECT$RI$! ,5Kt/p";  pk!"."'(_propi'd%d_'$'!(ARC&I3$! p0uba.ls";  v_-d_o9a 5= pk!".$r'%_)o*%(";  v_-d_s@l 5= pk!".$r'%_"+!(v_-d_o9a";  pk!"."'(_propi'd%d_"+!(v_-d_s@l! SL! SELECT,od-o_0ap-do C)d-o! no/b0 No/b0! 0s0vadon7% DatoNu/0-,o #R$M ,l-nts 4&ERE ,od-o_/p0sa =5lobal.,od-o_/p0sa";

  pk!".,'#'r%r_!"(";END;

Propiedades

A ni)el de "rc7i)o.

Se usará el procedimiento pR)ls.set:propiedad:e)celBNpropiedadOE NvalorO. Losvalores (ue puede tomar NpropiedadO son los siguientesG

● DIRE'@ORIOG 4irectorio en el (ue se va a generar el archivoE si no se indicaesta propiedad se generará en el directorio al (ue apunta la varia&le4;+C8<;<:S6L46 de li&ra.ini.

● AR'5I%OG om&re del archivoE si no se indica se generará un nom&re dearchivo concatenando el nom&re del programa con el usuario de li&ra = la 2echa= hora de la generación.

● ABRIREC'ELG Hna ve7 generado el archivo lo a&re con la aplicación predeterminadaE sea <22ice o <pen<22iceE por de2ecto está activadoE para

desactivarlo ha= (ue pasar en NvalorO .● O':L@AR'OL:#NA/G La columna "55 se usa internamente para

guardar un código de agrupación para luego poder hacer totali7acionesE porde2ecto esa columna se oculta =a (ue al usuario no le interesa para nadaE peromientras se está desarrollando posi&lemente interese ver el código de agrupación(ue se asigna. Para desactivar la ocultación de la columna "55 ha= (ue pasar enNvalorO .

● @EC@O@O@ALG 8e)to (ue se pone en las 2ilas de totali7aciónE como t,tulo dela totali7ación. Si es un total de una agrupación se concatena a este te)to el t,tulo

de la columna de la agrupación.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 98/118

Edisa Sistemas de Información

● SFL@I@:LOSNEGRI@AG Se indica si las 2ilas de t,tulo van a ponerse ennegritaE por de2ecto los t,tulos se ponen en negritaE para desactivarlo pasamos enNvalorO una de las siguientes constantesG

● 7ss22ont.boldMei,7tboldG egrita.● 7ss22ont.boldMei,7tnorm"lG ormal.

● SFL@I@:LOSS:BRAADOG Se indica si las 2ilas de t,tulo van a llevar elte)to su&ra=adoE por de2ecto está desactivadoE para activarlo pasamos enNvalorO una de las siguientes constantesG

● 7ss22ont.unoneG Sin su&ra=ado.● 7ss22ont.usin,leG Su&ra=ado simple.● 7ss22ont.udoubleG Su&ra=ado do&le.

● SFL@I@:LOSBORDES:+G Se indica si a las celdas de t,tulo van a llevarmarcado el &orde superiorE por de2ecto se le pone &ordeE para cam&iarlo se

 puede pasar en NvalorO una de las siguientes constantesG● hss2cellst=le.&order:noneG Sin &orde.● hss2cellst=le.&order:thin● hss2cellst=le.&order:medium● hss2cellst=le.&order:dashed● hss2cellst=le.&order:hair ● hss2cellst=le.&order:thicR ● hss2cellst=le.&order:dou&le● hss2cellst=le.&order:dotted● hss2cellst=le.&order:medium:dashed● hss2cellst=le.&order:dash:dot● hss2cellst=le.&order:medium:dash:dot● hss2cellst=le.&order:dash:dot:dot● hss2cellst=le.&order:slanted:dash:dot

● SFL@I@:LOSBORDEIN9G gual (ue SQL:88HL<S:?<;4+:SHPE porde2ecto se le pone &orde = puede llevar los mismos valores.

● SFL@I@:LOSBORDEDER G gual (ue SQL:88HL<S:?<;4+:SHPE por de2ecto se le pone &orde = puede llevar los mismos valores.

● SFL@I@:LOSBORDEIFG gual (ue SQL:88HL<S:?<;4+:SHPE

 por de2ecto se le pone &orde = puede llevar los mismos valores.● SFLRO@A'ION@I@:LOJ bngulo de rotación del t,tuloE por e%emplo 9

 para ponerlo en vertical.

● SFL@O@ALESNEGRI@AG gual (ue SQL:88HL<S:+J;86E pero para las 2ilas de totali7aciónE por de2ecto se ponen en negrita.

● SFL@O@ALESS:BRAADOG gual (ue SQL:88HL<S:SH?;6T64<E pero para las 2ilas de totali7aciónE por de2ecto no se su&ra=an.

● SFL@O@ALESBORDES:+G gual (ue SQL:88HL<S:?<;4+:SHPE pero para las 2ilas de totali7aciónE por de2ecto se marca el &orde.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& -)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 99/118

Edisa Sistemas de Información

● SFL@O@ALESBORDEIN9G gual (ue SQL:88HL<S: ?<;4+:-E pero para 2ilas de totali7aciónE por de2ecto se marca el &orde.

● SFL@O@ALESBORDEDER G gual (ue SQL:88HL<S:?<;4+:4+;E

 pero para 2ilas de totali7aciónE por de2ecto se marca el &orde.

● SFL@O@ALESBORDEIFG gual (ue SQL:88HL<S:?<;4+:ZQE pero para 2ilas de totali7aciónE por de2ecto se marca el &orde.

● SFLDA@OSNEGRI@AJ gual (ue SQL:88HL<S:+J;86E pero para2ilas de datosE por de2ecto no se pone en negrita.

● SFLDA@OSS:BRAADOG gual (ue SQL:88HL<S:SH?;6T64<E pero para 2ilas de datosE por de2ecto no se pone en su&ra=ado.

● SFLDA@OSBORDEIFG gual (ue SQL:88HL<S:?<;4+:ZQE pero para las 2ilas de datosE por de2ecto se marca el &orde.

● SFLDA@OSBORDEIN9G gual (ue SQL:88HL<S:?<;4+:-E pero para las 2ilas de datosE por de2ecto no se marca el &orde

● SFLDA@OSBORDEDER G gual (ue SQL:88HL<S:?<;4+:-E pero para 2ilas de datosE por de2ecto se marca el &orde.

● SFLDA@OSBORDES:+G gual (ue SQL:88HL<S:?<;4+:SHPE pero para 2ila de datosE por de2ecto no se marca el &orde.

● SFLDA@OSBORDE:L@9ILAS:+G gual (ueSQL:468<S:?<;4+:SHPE pero para la 'ltima 2ila de datos de la agrupacióno del listadoE por de2ecto no se marca el &orde.

● SFLDA@OSBORDE:L@9ILAIN9G gual (ueSQL:468<S:?<;4+:- pero para la 'ltima 2ila de datos de la agrupación odel listadoE por de2ecto se marca el &orde.

● SFLDA@OSBORDE:L@9ILADER G gual (ue

SQL:468<S:?<;4+:4+; pero para la 'ltima 2ila de datos de la agrupacióno del listadoE por de2ecto se marca el &orde.

● SFLDA@OSBORDE:L@9ILAIFG gual (ueSQL:468<S:?<;4+:ZQ pero para la 'ltima 2ila de datos de la agrupación odel listadoE por de2ecto se marca el &orde.

● SFL+ONER9ONDO9ILASI#+ARESG Sirve para resaltar las 2ilasimpares de la s(l. Los valores posi&les sonG

● SG 6ctiva con el valor por de2ecto B"".●  G 4esactiva el resaltado.

● *9G 6QH6● *G 6H8<$68C

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& --'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 100/118

Edisa Sistemas de Información

● G ?L6C@ ● 1"9G ?LH+● 5*G ?LH+:J;+T● 5*G ?;J>8:J;++● 11G ?;J>8:J;++● G ?;<W● "9G C<;6L● "*G C<;-L<W+;:?LH+● 1G 46;@:?LH+● 5G 46;@:J;++● 1G 46;@:;+4● 5G 46;@:8+6L● 19G 46;@:T+LL<W● 51G J<L4● 10G J;++● ""G J;+T:"5:P+;C+8● 55G J;+T:*:P+;C+8● "#G J;+T:5:P+;C+8● #G J;+T::P+;C+8● "G 4J<● *G L6!+4+; ● "G L+$<:C>--<● *G LJ>8:?LH+● #1G LJ>8:C<;-L<W+;:?LH+● *"G LJ>8:J;++● 5"G LJ>8:<;6J+● "0G LJ>8:8H;QH<S+● *#G LJ>8:T+LL<W● 5G L$+● "5G $6;<<● 59G <L!+:J;++● 5#G <;6J+● "G <;C>4● **G P6L+:?LH+● 1*G P@ ● 1G PLH$● 1G ;+4●

*5G ;<S+● #G ;<T6L:?LH+● 50G S+6:J;++● *G S@T:?LH+● *0G 86● "1G 8+6L● 15G 8H;QH<S+● "G !<L+8● 9G W>8+● 1#G T+LL<W

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 101/118

Edisa Sistemas de Información

A ni)el de 7oj".

Se usará el procedimiento pR)ls.set:propiedad:ho%aBNid:ho%aOE NpropiedadOE NvalorO.+s necesario pasar en el parámetro Nid:ho%aO el identi2icador devuelto por la 2unción

 pR)ls.crea:ho%a. Los valores (ue puede tomar NpropiedadO son los siguientesG

● NO#BRE5OAG om&re de la pesta3a de la ho%a. Si no se especi2ica se le pone el te)to 4atos.

● A+AISADOG Si se pasa el valor S se con2iguran las propiedades de la ho%a paraimpresión en apaisado. +l valor por de2ecto es .

● @A#ANO+A+ELG 8ama3o de la ho%a para la con2iguración de la impresión.Se le puede pasar los siguientes valoresG

● >SS-PrintSetup.L+88+;:P6P+;SZ+● >SS-PrintSetup.L+J6L:P6P+;SZ+● >SS-PrintSetup.+A+CH8!+:P6P+;SZ+● >SS-PrintSetup.6*:P6P+;SZ+ B!alor por de2ecto● >SS-PrintSetup.65:P6P+;SZ+● >SS-PrintSetup.+!+L<P+:1:P6P+;SZ+● >SS-PrintSetup.+!+L<P+:4L:P6P+;SZ+● >SS-PrintSetup.+!+L<P+:CS:P6P+;SZ+● >SS-PrintSetup.+!+L<P+:$<6;C>:P6P+;SZ+

● 9ILA9INRE+@I@:LOSG 'mero de 2ilas de la ho%a (ue se repiten en cada página en la impresión.

A ni)el de sql.

Se usará el procedimiento pR)ls.set:propiedad:s(lBNid:s(lOE NpropiedadOE NvalorO. +snecesario pasar en el parámetro Nid:s(lO el identi2icador devuelto por la 2unción

 pR)ls.crea:s(l. Los valores (ue puede tomar NpropiedadO son los siguientesG

● SFLG Select (ue se e%ecutará para e)traer los datos de la &ase de datos para ponerlos en la ho%a de cálculo.

● SFL@I@:LOS'OL:#NASG Por de2ecto al procesar una s(l lo primero (uehace es poner los t,tulos de las columnasE para (ue no los ponga ha= (ue pasaren NvalorO .

SFLAGR:+AREN+RI#ERA'OL:#NAG Si se usan agrupacionesindica como se reali7a la ruptura. Los posi&iles valores sonG● NG +s el valor por de2ecto. Cuando se cam&ia de nivel de agrupación las

columnas de los niveles superiores se de%an en &lanco● SG 8odas las agrupaciones las hace en la primera columna de%ando

espacios seg'n el nivel de agrupación.● @G Se hace la agrupación para la totali7ación pero se muestran todos los

datosE es decirE lo mismo (ue si no hu&iese agrupación pero contotali7aciones parciales.

● SFL@O@ALIAR G Por de2ecto se generan totales de todos los campos

numDricosE para desactivar este 2uncionamiento ha= (ue pasar en NvalorO E deesa 2orma la s(l no genera ning'n tipo de total.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 102/118

Edisa Sistemas de Información

● SFLDES+INI'IALG Con esta propiedad se puede indicar cuantas 2ilas en &lanco se de%arán antes de poner la primera 2ila generada por la s(lE el valor porde2ecto (ue tiene esta propiedad es .

A ni)el de column" de l" sql.

Se usará el procedimiento pR)ls.set:propiedad:columnaBNid:s(lOE Nnumero:columnaOENpropiedadOE NvalorO. +s necesario pasar en el parámetro Nid:s(lO el identi2icadordevuelto por la 2unción pR)ls.crea:s(l.

+l parámetro Nnumero:columnaO identi2ica el n'mero del campo (ue saca la selectcomen7ando a contar en 1.

Los valores (ue puede tomar NpropiedadO son los siguientesG

● SFL@I@:LO'OL:#NAG Por de2ecto se pone el t,tulo (ue se e)trae de las(lE pero si se especi2ica esta propiedad prevalece so&re el alias (ue tenga elcampo en la s(l.

● SFLRO@A'ION@I@:LOJ bngulo de rotación del t,tuloE por e%emplo 9 para ponerlo en vertical.

● SFL+ONER@I@:LOG Si a nivel de s(l no se ha desactivado la impresión delos t,tulos se puede desha&ilitar para un campo en concreto pasando en NvalorO.

● SFLA:S@AR@EC@OG Si es una columna de te)to se puede hacer (ue elte)to se a%uste a la columnaE para ello ha= (ue pasar S en NvalorO.

● SFLDESA'@I%ARA:@OSIEG Por de2ecto una ve7 terminado de procesarel s(l se a%usta el tama3o de las columnas al valor más largoE este2uncionamiento por de2ecto se puede desha&ilitar para una determinada columna

 pasando en NvalorO S.

● SFLDESA'@I%AR@O@ALIA'IONJ 8odas las columnas numDricas se

totali7anE se puede desha&ilitar para una determinada columna pasando enNvalorO S.

● SFLDESA'@I%ARS:B@O@ALG 8odas las columnas numDricas sesu&totali7an. Se puede desha&ilitar la su&totali7ación para una determinadacolumna pasando en NvalorO S.

● SFLAN'5O'OL:#NAG Si se especi2ica un ancho determinado para unacolumna lleva impl,cito (ue se desactiva el dimensionado automático de lacolumnaE el parámetro NvalorO será un dato numDricoE = se especi2ica en 1/"5

 partes de carácterE por lo (ue si (ueremos dar un ancho de 1 carácter ha&r,a (ue

indicar un valor de "5E aun(ue esa medida es un poco relativa a la 2uente.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 103/118

Edisa Sistemas de Información

● SFL9INGR:+OG Se pueden generar s(ls con agrupacionesE en este caso ha=(ue indicar (ue campos son los (ue 2inali7an un grupoE es importante el orden delos campos de la s(lE de&iendo mantener el orden de las agrupacionesE además esnecesario (ue la s(l lleve un <;4+; ?T por todos los campos (ue 2ormen lasagrupaciones. Puede contener los siguientes valoresG

● NG !alor por de2ectoE el campo no es 2in de agrupación.● SG +l campo es 2in de una agrupación = se generan totales.● %G +l campo es 2in de una agrupación = se generan totales = en el total se

concatena el valor de la agrupación (ue se está totali7ando.● N@G +l campo es 2in de una agrupación = para esa agrupación no se

generan totales.

● SFL#AS'ARA9OR#A@OG $áscara de 2ormato para campos numDricosEla máscara ha= (ue especi2icarla en 2ormato +)celE por e%emploG E.

● SFL@I+OG ndica el tipo de la columna. Puede contener los siguientes valoresG● CG Campo normal.● -G Campo con 2órmula de totali7ación. +n la s(l podemos sacar una

columna al2anumDrica con una 2órmulaE al pasarle este valor se le indicaa +)cel (ue la trate como una 2órmula = no como un te)to normalE versección !aria&les disponi&les en 2órmulasM.

● SFL9OR#:LA@O@ALG -ormula a aplicar cuando el campo es numDrico =se está totali7andoE si no se especi2ica una 2órmula usará la 2órmula detotali7ación por de2ecto por de2ecto (ue esG

● S,-"AL(7columna87fila'inicial837columna87fila'final8*

● SFL9OR#:LA@O@AL:L@NI%ELG -ormula a aplicar cuando elcampo es numDrico = se está totali7ando = aparte en caso de ha&er agrupacionesesta será la 2órmula aplicar en el nivel más &a%oE es decirE se opera directamentecon datos = no con resultado de otras 2órmulasE si no se especi2ica una 2órmulausará la 2órmula de totali7ación por de2ectoGSH$BNcolumnaON2ila:inicialOGNcolumnaON2ila:2inalO

A ni)el de 2órmul".

Se usará el procedimiento pR)ls.set:propiedad:2ormula:totalBNid:2ormulaOENpropiedadOE NvalorO. +s necesario pasar en el parámetro Nid:2ormulaO elidenti2icador devuelto por la 2unción pR)ls.crea:2ormula:total:s(lBNid:s(lO. Losvalores (ue puede tomar NpropiedadO son los siguientesG

● 9OR#:LAG 8e)to de la 2órmulaE ver !aria&les disponi&les en 2órmulasM.

● 9OR#:LA:L@I#ONI%ELG +n caso de ha&er agrupaciones será la2órmula (ue se aplica en el nivel más &a%oE cuando tiene (ue operar directamentecon datos = no con el resultado de otras 2órmulas. !er !aria&les disponi&les en2órmulasM.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 104/118

Edisa Sistemas de Información

● I#+RI#IRENAGR:+A'IONG Por de2ecto cuando se crea una 2ormula seva a imprimir en los totales del in2orme = en las agrupacionesE para desactivaruna 2órmula en las agrupaciones ha= (ue pasar en NvalorO.

● I#+RI#IREN@O@ALG Por de2ecto cuando se crea una 2ormula se va a

imprimir en los totales del in2orme = en las agrupacionesE para desactivar una2órmula en los totales del in2orme ha= (ue pasar en NvalorO.

● #AS'ARA9OR#A@OG Por de2ecto cuando se totali7a una columnanumDrica se usa la misma máscara (ue la (ue ha= especi2icada para la columnaE

 para cam&iar ese criterio para una determinada 2órmula ha= (ue pasar enNvalorO la máscara de 2ormato a aplicar.

● @I@:LOG Por de2ecto se le pone como t,tulo a la 2ila de totali7ación el t,tulo dela columnaE para cam&iar el t,tulo para una determinada 2órmula ha= (ue pasarloen NvalorO.

A ni)el de column" de 2órmul".

Se usará el procedimiento pR)ls.set:propiedad:columna:totalBNid:2ormulaOENnumero:columnaOE NpropiedadOE NvalorO. +s necesario pasar en el parámetroNid:2ormulaO el identi2icador devuelto por la 2unción pR)ls.crea:2ormula:total:s(l.

+l parámetro Nnumero:columnaO identi2ica el n'mero del campo (ue saca la selectcomen7ando a contar en 1.

Los valores (ue puede tomar NpropiedadO son los siguientesG

● 9OR#:LAG -ormula a aplicar cuando el campo es numDrico = se estátotali7andoE en caso de no especi2icarse se usará la 2órmula indicada en

 pR)ls.set:propiedad:2ormula:total& !er !aria&les disponi&les en 2órmulasM. Sise le pasa el valor S84 se aplica la 2órmula estándar.

● 9OR#:LA:L@I#ONI%ELG +n caso de ha&er agrupaciones será la2órmula (ue se aplica en el nivel más &a%oE cuando tiene (ue operar directamentecon datos = no con el resultado de otras 2órmulas. +n caso de no especi2icarse seusará la 2órmula indicada en pR)ls.set:propiedad:2ormula:total. !er !aria&les

disponi&les en 2órmulasM. Si se pasa el valor S84 se aplica la 2órmula estándarde 'ltimo nivel.

● #AS'ARA9OR#A@OG Por de2ecto cuando se totali7a una columnanumDrica se usa la misma máscara (ue la (ue ha= especi2icada para la columnaE

 para cam&iar ese criterio para una determinada 2órmula ha= (ue pasar enNvalorO la máscara de 2ormato a aplicar.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 105/118

Edisa Sistemas de Información

Varia!les disponi!les en )órmulas.

Para construir las 2órmulas de 2orma dinámica haciendo disponemos de las siguientesvaria&les (ue serán sustituidas antes de ser asignadas como 2órmula a la celdaG

● N2ila:inicialOG 'mero de 2ila en la (ue comien7a el grupo.● N2ila:2inalOG 'mero de 2ila en la (ue termina el grupo.● N2ilaOG 'mero de 2ila en la (ue va a poner la 2órmula.● NcolumnaOG Columna en (ue se va a poner la 2órmula.● Ncodigo:rupturaOG Código de la ruptura (ue se está totali7andoE el código de

ruptura se almacena en la columna !.

Se pueden usar operaciones para despla7ar el valor de una varia&leE por e%emplo si(ueremos coger la columna anterior a la en (ue se va a poner la 2órmula se pondr,aNcolumna1O.

,signar valores sin ser o!tenidos de una s#l a determinadas celdas.

>a= un mDtodo complementario a la opción de cu&rir la +)cel usando datos e)traidosde una s(lE este mDtodo permite ir indicando las posiciones ) e = de la celda = asignarleun valor. Se puede dar valor mediante este mDtodo a tantas celdas como sea necesario.

Se usará el procedimientoG

 pR)ls.e)cel:celdaBNid:ho%aOE N)OE N=OE NtipoOE NvalorOE NposicionO

● Nid:ho%aOG denti2ica la ho%a en (ue se va a crear la celdaE será el identi2icadorde la ho%a (ue se ha o&tenido con pR)ls.crea:ho%a.

● N)OG Coordenada ) de la celda en la ho%aE la primera celda es la .● N=OG Coordenada = de la celda en la ho%aE la primera celda es la .● NtipoOG ndica el 2ormato (ue va a tener la celda. Puede contener dos valoresG

● CG ndica (ue es un campo de datos normal.● 8G ndica (ue es un campo de t,tulo.

● NvalorOG Contenido (ue va a tener la celdaE puede ser numDrico o al2anumDrico.● NposicionOG ndica en (ue momento se va a escri&ir en la celdaE ha= #

 posi&ilidadesG● 1G Se escri&e antes de procesar las s(ls (ue tiene asignadas la ho%a.● "G Se escri&e despuDs de procesar las s(ls (ue tiene asignadas la ho%a

 pero antes de hacer el autosi7e de las columnasE por lo (ue el tama3o delas celdas se verá a2ectado por el contenido asignado por este

 procedimiento.● "5G gual (ue el " pero el valor de la coordenada = es relativa a la 'ltima

2ila impresa en la ho%a.● #G Se escri&e despuDs de procesar las s(ls (ue tiene asignadas la ho%a =

despuDs de ha&erse e%ecutado el autosi7eE por lo (ue los valoresasignados por este procedimiento no a2ectan al autosi7e.

● #5G gual (ue el # pero el valor de la coordenada = es relativa a la 'ltima2ila impresa en la ho%a.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 106/118

Edisa Sistemas de Información

Gestión de correos electrónicos

(ntroducción

Para el correcto 2uncionamiento de los env,os = descargas de correos electrónicos de&ede estar correctamente con2igurado el pa(uete F$6LE para in2ormación de lainstalación consultar la siguiente entrada en el &log de +disaGhttpG//&log.edisa.com/"11/*/con2iguracion=usode%mail/

%nv&o

Para el env,o es necesario (ue estD correctamente con2igurado el servidor S$8PE se

 puede con2igurar en varios nivelesE en caso de no estar disponi&le un servidor S$8P se pro&ará al siguiente nivelG

• :su"rioG $ediante el programa $6L:S+4+;S se pueden indicar los parámetros para el env,o de correo electrónicosG◦ Servidor SmtpG 4irección del servidor de S$8P asociado al usuario.◦ PuertoG Puerto 8CP en el (ue escucha el servidor S$8PE por de2ecto el "5.◦ 4irección de CorreoG 4irección de correo de origen del mensa%e.◦ HsuarioG +n caso de (ue el servidor re(uiera validación se introducirá el

nom&re del usuario del servidor S$8P.◦ PassXordG +n caso de (ue el servidor re(uiera validación se introducirá la

 passXord del usuario en el servidor S$8P.◦ ;e(uieve !alidaciónG Se activará la checR cuando el servidor S$8P re(uiera

de un usuario = contrase3a para enviar el correo.• Alert"G Se puede indicar una parametri7ación espec,2ica para una alerta Bmódulo de

alertas. +sta con2iguración se reali7a en el mantenimiento de parámetros generalesdel men'E programa H:$P;$+E en la pesta3a oti2icaciones / 6lertasM. Loscampos necesarios son iguales (ue a nivel de usuario.

• S#@+ GenricoG +n el mantenimiento de parámetros generales de men' se puedeindicar un servidor S$8P JenDrico (ue se usará cuando el Hsuario / 6lerta notienen un servidor espec,2ico.

La secuencia de env,o es la siguienteG• niciali7ar.• <pcionamente cam&iar el remitente del mensa%e.• ncorporar el asunto del mensa%e.• ncorporar el cuerpo del mensa%e.• ndicar los destintarios.• 6d%untar archivos.• Procesar env,o.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 107/118

Edisa Sistemas de Información

Inici"li!"r

+n primer lugar se e%ecutará la iniciali7ación del env,o del correo electrónico con lainstrucciónG

P@:+$6L.C6LZ6;BNcódigo de usuarioO

Opcion"mente c"mbi"r el remitente del mens"je

<pcionalmenteE en caso de (uerer cam&iar el remitente (ue se le asigna por de2ecto alusuario se puede e%ecutarG

P@:+$6L.S+8:+$6L:;+$8+8+BNemail (ue constará como remitente delmensa%eO

Incorpor"r el "sunto del mens"je

Para a3adir el asunto del mensa%e se e%ecutaráG

P@:+$6L.S+8:6SH8<BNte)to:del:asuntoO

Incorpor"r el cuerpo del mens"je

Para a3adir el te)to al cuerpo del mensa%e ha= (ue tener en cuenta (ue puede ir en te)to planoE en 2ormato html o mi)toE es decirE va tanto en te)to plano como html = eldispositivo receptor mostrará seg'n sus capacidades el (ue me%or se adapte.

Para a3adir te)to plano al cuerpo del mensa%e se utili7a el procedimientoG

P@:+$6L.S+8:CH+;P<BNte)to plano del cuerpo del mensa%eO

Para a3adir te)to en 2ormato html se utili7a el procedimientoG

P@:+$6L.S+8:CH+;P<:>8$LBNte)to html del cuerpo del mensa%eO

Indic"r los destin"t"rios

Para a3adir destinatarios se puede e%ecutar tantas veces como destinatarios del mensa%ee)istan el procedimientoG

P@:+$6L.644:4+S8686;<BNtipoOE Ndireccion.

+l parámetro NtipoO puede contener los siguients valoresG◦ 8<G 4estinatarios principales del mensa%e.◦ CCG 4estinatarios (ue irán en copia del mensa%e.◦ ?CCG 4estinatarios (ue irán con copia oculta del mensa%e.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 108/118

Edisa Sistemas de Información

Adjunt"r "rc7i)os

>a= dos 2ormas de ad%untar archivos a un mensa%eG

• +l archivo se encuentra almacenado en Li&ra en la ta&la 6;C>!<S:+;P. +n este

caso se e%ecutaráG P@:+$6L.644:64FH8<:A:4BNid:archivoOE en dondeNid:archivoO es el identi2icador del archivo en la ta&la 6;C>!<S:+;P.• +l archivo se encuentra en un directorio de la &ase de datos. +n este caso se

e%ecutaráG P@:+$6L.644:64FH8<BNarchivoOE en donde NarchivoO es laruta completa al archivo a ad%untar.

Se pueden ad%utar tantos archivos al mensa%e cómo sea necesario = tam&iDn se puedenme7clar llamadas de 644:64FH8<:A:4 con 644:64FH8<.

 <86G +l directorio en donde se encuentran los archivos tienen (ue tener permisos delectura para el motor de Fava de <racleE para ello se de&e de e%ecutarG

e)ec d&ms:%ava.grant:permissionBNusuario L?;6 en ma='sculasOE %ava.io.-ilePermissionE NdirectorioOfE readC<$$8

 Si la &ase de datos está en Linu) cam&iar NdirectorioOf por NdirectorioO/f +%emploG e)ec d&ms:%ava.grant:permissionBL?;6E%ava.io.-ilePermissionE CG<racledirectorios&lo&tempfE readC<$$8

+roces"r en)Ko.

Para procesar el env,o 2inalmente se e%ecutará la 2unciónG P@:+$6L.+!6;B.

+l resultado (ue devuelve es <@ en caso de (ue el env,o se reali7a correctamente o+;;<; en caso de producirse alg'n 2allo. +n este 'ltimo caso (uedará registrado enL?;6:L<J el motivo del errorE tam&iDn se puede consultar por código el resultadodel 'ltimo env,o llamando a la 2unción P@:+$6L.J+8:HL8$<:;4< = el detalledel error llamando a la 2unción P@:+$6L.J+8:HL8$<:8+A8<:+;;<;.

9unciones de control

+)isten una serie de 2unciones de control (ue permitirán reali7ar veri2icaciones antes deenviar el correoE

◦ P@:+$6L.>6T:S+;!4<;:S$8PG Se puede e%ecutar despuDs de llamar aP@:+$6L.C6LZ6;E = devolverá 8;H+ en caso de e)istir un servidor

 parametri7ado para reali7ar el env,o del correo = -6LS+ en caso contrario.◦ P@:>6T:;+$8+8+G 4evuelve 8;H+ en caso de (ue e)iste una dirección

de email de remite del mensa%eE -6LS+ en caso contrario. Se puede e%ecutarantes de P@:+$6L.+!6;E

◦ P@:>6T:4+S8686;<SG 4evuelve 8;H+ si se ha especi2icado alg'ndestinatario al mensa%e = -6LS+ en caso contrario. Se puede e%ecutar antes deP@:+$6L.+!6;.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$)'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 109/118

Edisa Sistemas de Información

+escarga

$ediante el pa(uete P@:+$6L tam&iDn se puede reali7ar la descarga de correos decuentas P<P#. +n primer lugar se de&en de con2igurar las cuentas P<P# en elmantenimiento de parámetros generales de men'E programa H:P;$+.

• 'ódi,oG denti2icador 'nico (ue se le asigna la cuenta P<P#E este código seránecesario luego para indicar la cuenta de correo de la (ue se (uiere descargar elcorreo.

• DescripciónG 4escripción &reve de la cuenta de correo.• Ser)idor +O+G 4irección P o nom&re del servidor de P<P# en donde se

encuentra la cuenta.• +uertoG Puerto 8CP en el (ue escucha el servidor de P<P#.• :su"rioG Hsuario de la cuenta de correo.• +"ssMordG Contrase3a del usuario de la cuenta de correo.•

:su"rio Libr"G Código del usuario de Li&ra al (ue (uedarán asociados los archivosad%untos descargados.• 9unción +roceso #ens"jeG B<pcional. -unción de &ase de datos (ue se invocará

 por cada mensa%e una ve7 descargado para poder automati7ar tareas. +sa 2unciónde&e de devolver el resultado Bsi es correcto de&e devolver <@ = reci&e como

 parámetro el 4 del mensa%e.

+%emploG

C;+68+ <; ;+PL6C+ -HC8< P;H+?6:+$6LBp:id:mensa%e H$?+; ;+8H;!6;C>6;" S?+J  ;+8H;B<@+4Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &$-'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 110/118

Edisa Sistemas de Información

Para descargar los correos de llamará al procedimientoGP@:+$6L.P;<C+S6;:S+;!4<;:P<P#BNcódigo cuenta pop#O. +n Ncódigocuenta pop#O se pasará el código de la cuenta con2igurada en los parámetros generalesde men'.

Los mensa%es (uedarán almacenados en las ta&lasG

• +$6L:J+S8<:C<;;+<SG 6lmacena los correos descargados.◦ 4G denti2icador numDrico 'nico asignado al mensa%e.◦ C<4J<:S+;!4<;:P<P#G Código del servidor P<P# del (uD procede el

mensa%e.◦ -+C>6G -echa del mensa%e.◦ -+C>6:4+SC6;J6G -echa en la (ue se reali7ó la descarga del mensa%e.◦  H$+;<:!+C+S:P;<C+S64<G 'mero de veces (ue se ha e%ecutado la

-unción Proceso $ensa%eM asociada a la cuenta P<P#.◦ -+C>6:HL8$<:P;<C+S<G -echa en la (ue se reali7ó la 'ltima llamada a

la -unción Proceso $ensa%eM.◦ ;+SHL864<:HL8$<:P;<C+S<MG ;esultado (ue devolvió en la 'ltima

llamada a la -unción Proceso $ensa%eM.◦ ;+$8+8+G 4irección de correo electrónico de la (ue procede el mensa%e.◦ 4+S86;<G Lista de destinatarios del mensa%e.◦ 6SH8<G 8e)to del asunto.◦ 8+A8<:?<4TG 8e)to del correo electrónico en 2ormato de te)to planoE si el

mensa%e viene en 2ormato >8$L e)clusivamente este campo estará en &lanco.◦ 8+A8<:?<4T:>8$LG 8e)to del correo electrónico en 2ormato >8$LE si el

mensa%e viene en 2ormato de te)to plano e)clusivamente este campo estará en &lanco.

• +$6L:J+S8<:C<;;+<S:64FH8<SG 6lmacena los ad%untos de loscorreosG◦ 4G denti2icador del mensa%eE se utili7a para relacionar los ad%untos con

+$6L:J+S8<:C<;;+<S.◦ 4:6;C>!<G denti2icador asignado al ad%unto en la ta&la

6;C>!<S:+;PE (ue es el almacenamiento real del archivo.◦  <$?;+:6;C>!<G om&re del archivo tal = como ven,a en el mensa%e.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&$'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 111/118

Edisa Sistemas de Información

Gestión de Arc*ivos

Para gestionar archivos en una ta&la 'nicamente es necesario (ue la ta&la tenga lossiguientes camposG

• NO#BREAR'5I%O de tipo !6;C>6;"B5G +l nom&re del campo puedevariarE no tiene (ue ser necesariamente <$?;+:6;C>!<E pero lorecomenda&le ser,a utili7ar ese nom&re. +ste campo será el (ue será visi&le porel usuario = le ha= (ue asignar la clase CL6S+:6;C>!< oCL6S+:6;C>!<:J;4 dependiendo si el campo está o no en unmultiregistro.

• IDAR'5I%O de tipo H$?+;G +ste campo no será visi&le al usuarioE por lo(ue no tendrá especi2icado lien7o. +n este campo se va almacenar el puntero alarchivo (ue realmente estará almacenado en la ta&la 6;C>!<S:+;P.

La su&ida = descarga de archivos los gestiona el entornoE lo 'nico (ue ha= (ue gestionardentro del 2uente es el &orrado del registro. 6l &orrar un registro (ue tenga un campocon valor en 4:6;C>!< ha= (ue e%ecutar la 2unción

 pR:&lo&"&d.&orra:archivoBNempresaOE Nid:archivoOE Nta&laO en el disparador P;+4+L+8+ del &lo(ue.

+sta 2unción reci&e # parámetrosG• NempresaO. Código de la empresaE normalmente se pasará

Gglo&al.codigo:empresa• Nid:archivoO. !alor del campo 4:6;C>!< del &lo(ue.•

Nta&laO. om&re de la ta&la (ue tiene el nom&re del archivo.+%emploG

DECLARE  v_0sultado 3ARC&AR*(+7";BEGIN  I# 5b*.-d_a0,-vo IS N$T NULL T&EN  v_0sultado 5= p:_blob*bd.bo00a_a0,-vo(5lobal.,od-o_/p0sa!  5b*.-d_a0,-vo!  CRME82EDIENTES_LIN_N$TAS";  END I#;END;

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&&'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 112/118

Edisa Sistemas de Información

Variables lobales

Las varia&les glo&ales (ue están de2inidas en todos los programas de li&ra sonG• IDIO#A:S:ARIOG Código del idioma (ue tiene el usuario en su 2icha. o

es el idioma del mantenimiento de diomasE es el idioma para el (ue se &uscan

las traducciones de las eti(uetas de los programas. Si en la 2icha del usuario notiene de2inido contendrá el valor `1.

• IDIO#AE#+RESAG 4e momento no tiene usoE siempre tiene le valor 1.• 'ODIGOE#+RESAG Código de la empresa (ue está validada.• NO#BREE#+RESAG om&re de la empresa (ue está validada.• 9E'5A'ONECIONG -echa = hora en 2ormato C>6; con 2ormato

44/$$/TTTT >>"*G$GSS en la (ue entró el usuario en Li&ra.• #EN:S+ER9ILESG Código de men' del 'ltimo programa en (ue entró el

usuario. +s mu= importante recalcar (ue es el 'ltimo programa en (ue entró elusuarioE =a (ue si el usuario entra en el programa 6 = por ventanas entratam&iDn en el programa ? = vuelve al programa 6 el valor de esta varia&lecontendrá el código del programa ?.

• 9E'5A@RABAOG -echa de tra&a%o en 2ormato C>6; con 2ormato44/$$/TTTT. +sta 2echa se propone automáticamente en campos 2echa (ueson o&ligatorios = (ue el usuario intenta de%ar en &lanco.

• DESDE+:ES@OG Contiene el valor de la varia&le L?;6:4 de li&ra.inicon el (ue inició sesión el usuario. Si no se especi2ica esa varia&le el men' alentrar pone el ella el valor de los primeros # caracteres del nom&re delordenador de WindoXs.

• +ER9ILG Per2il principal del usuarioE el (ue tiene asociado en la 2icha.• S:+ER:S:ARIOG Si el usuario tiene la marca de superusuario contendrá el

código del usuario validadoE si el usuario validado no es superusuario contendrá`+4S6.• :S:ARIOG Código del usuario validado.• I#+RESORAINDOSG Cuando entra en el men' se iniciali7a con el

nom&re de la impresora predeterminada (ue tiene el usuario en su ordenador. +lusuario la puede cam&iar para esa sesión de li&ra Bes decirE mientras no salga deli&ra por otra = se cam&ia el valor de esta varia&le.

• +R:EBA9ALLOSG Contendrá el valor S si li&ra se está e%ecutando en modo a prue&a de 2allos = en caso contrario. +l modo a prue&a de 2allos consiste en(ue no se e%ecutará ninguna personali7ación de los programasE 'nicamente loestándar.

• @RAAG Contendrá el valor S si se está e%ecutando en modo de tra7a = < encaso contrario. >a= algunos programas (ue si activas en el men' en modo tra7ageneran un archivo .log del proceso (ue reali7an.

• REG9ALLOS@RAD:''IONG Si tiene el valor S durante la traducción delos campos a otros idiomas distintos de castellano la traducción no e)iste eneti(uetas:erp:traducidas se guarda el 2allo en eti(uetas:erp:2allo:traduccion.

• SE+DIR G Separador de directorios en servidor de aplicaciones en -orms1g oel separador de directorios en el ordenador cliente en -orms.

• SIDES'RI@ORIOG Sid de <racle con el (ue está conectado el $en'.• IASG +n caso de estar e%ecutándose el programa en -orms1g o superior

contendrá el valor SE si se está e%ecutando en cliente / servidor contendrá el valor

 .

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&*'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 113/118

Edisa Sistemas de Información

+n programas dinámicos ha= tam&iDn un campo mu= 'til para personali7acionesJ+LAN@ILLA.'ODIGO+LAN@ILLAE contiene el código de la plantilla (ue tieneseleccionada el usuario.

Variables lobales accesibles mediante p2pantallas

+stas varia&les están accesi&les tanto desde los programasE desde los procedimientosalmacenados en la &ase de datosE vistasE etc. Su utilidad es m'ltipleE como hacer vistas

 parametri7adas por el usuario validadoE hacer s(ls con autori7ación de permisos en elgenerador de in2ormesE etc.

,ccesi!les sólo desde programas de nueva est:tica.

● +>p"nt"ll"s.usu"rio)"lid"doJ 4evuelve el usuario (ue ha iniciado sesiónE esdecirE el e(uivalente a la varia&le J,lob"l.usu"rio.

● +>p"nt"ll"s.superusu"rioJ Si el usuario validado es superusuario lo devuelveE

si no es superusuario devuelve +4S6E es el e(uivalente a la varia&leJ,lob"l.superusu"rio.● +>p"nt"ll"s.per2ilusu"rio)"lid"doJ 4evuelve el per2il principal del usuario

validadoE es el e(uivalente a la varia&le J,lob"l.per2il.● +>p"nt"ll"s.pro,r"m")"lid"doJ 4evuelve el nom&re del programa (ue se

está e%ecutandoE es e(uivalente a la varia&le Jp"r"meter.idpro,r"m".● +>p"nt"ll"s.idiom"usu"rio)"lid"doJ 4evuelve el idioma del usuario (ue

está validadoE es e(uivalente a la varia&le J,lob"l.idiom"usu"rio.● +>p"nt"ll"s.idperson"li!"cionJ  4evuelve el identi2icador de la

 personali7ación de P;<J;6$6S:+;P:P;+S (ue se está e%ecutando. o ha=e(uivalente en varia&le glo&al.

● +>p"nt"ll"s.,et)"lorultim"ejecucionlo)G !er sección código PL/SQL.

6ccesi&les desde cual(uier programa.● +>p"nt"ll"s.sectorempres"8empres"T;G 4evuelve el sector de la empresa

(ue se pasa por parámetroE es necesario pasar la empresa =a (ue se puede usartanto en programas de nueva como de vie%a estDticaE internamente la consulta ala &ase de datos solo la hace la primera ve7E luego =a de%a cargado el valor. otiene e(uivalente en varia&le glo&al.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&+'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 114/118

Edisa Sistemas de Información

+e)ini!les dinámicamente

Se pueden de2inir varia&les de 2orma dinámicaE desde el 2uente de un programa o desdecódigo pls(l del mantenimiento de programasE para ello tenemos las siguientes2unciones = procedimientosG

● +>p"nt"ll"s.set)"ri"bleen)8)"ri"bleT )"lorT;G 6signamos en lavaria&le Nvaria&leO el valor de NvalorO. )"lorT puede ser un !6;C>6;"E468+ o H$?+;E el procedimiento está so&recargado para cada posi&le tipode dato.

[email protected]+8:!6;6?L+:+!BP;H+?6E!6L<;:P6;6:P;H+?6

● +>p"nt"ll"s.,et)"ri"bleen))"rc7"r/8)"ri"bleT;J 4evuelve el valor de lavaria&le Nvaria&leOE siempre = cuando se le hu&iese asignado un !6;C>6;"Esi se le pasó un 468+ o un H$?+; hará la conversión a !6;C>6;".

[email protected]+8:!6;6?L+:+!:!6;C>6;"BP;H+?6E devolver,a!6L<;:P6;6:P;H+?6 si e%ecutamos antes el e%emplo del punto anterior.

● +>p"nt"ll"s.,et)"ri"bleen)number8)"ri"bleT;J 4evuelve el valor de lavaria&le Nvaria&leOE siempre = cuando se le hu&iese asignado un H$?+;.

● +>p"nt"ll"s.,et)"ri"bleen)d"te8)"ri"bleT;J  4evuelve el valor de lavaria&le Nvaria&leOE siempre = cuando se le hu&iese asignado un H$?+;.

● +>p"nt"ll"s.inici"li!"r)"ri"blesen)J ?orra todas las varia&les de2inidas.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&('&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 115/118

Edisa Sistemas de Información

Variables de inicio de LI%5A60INI 

● -<;$S:P68>G Camino (ue usa li&ra para &uscar los programas = lasli&rer,as. Se especi2icarán los directorios separados por punto = coma = se

 &uscaran los programas comen7ando por el primer directorio especi2icadoE sino

se encuentran por el siguienteE ...● H:C<G Camino (ue usa li&ra para &uscar los iconosE se especi2ican los

directorios separados por ● ;+P<;8S:P68>G Camino (ue se usa para &uscar los in2ormes = las li&rer,as

(ue usan estos.● P68>G Camino en los (ue se &uscan los e%ecuta&les del sistema operativo.●  LS:L6JG diomaG●  LS:468+:-<;$68G -ormato de la 2echa.●  LS:H$+;C:C>6;6C8+;SG Si se especi2ica E. se supone (ue E es el

separador de decimales = . el de millares.●  LS:S<;8G 8ipo de ordenación (ue aplicará <racleE normalmente se

especi2icará ?6;T.● 4;+C8<;<:S6L46G 4irectorio (ue usan m'ltiples programas de Li&ra

 para generar salidas a archivos.● -<;$S:HS+;+A8SG Se usa por el !JL = de&e de apuntar a los archivos

2)t&#".dll = c2)"#".dll● ;+P<;8S:8$PG 4irectorio temporal (ue usa reports.● L?;6:4G Puesto desde el (ue se e%ecuta Li&raE de&e de e)istir en la ta&la de

 puestos para (ue 2uncionen correctamente las listas de valores de impresoras.● W>+LPG 4irectorio en (ue se encuentran los manuales de Li&ra.● P68>:+AC+LG 4irectorio en (ue se encuentra el e%ecuta&le de e)cel. 4e&e de

apuntar hasta el propio e)cel.e)eE por e%emploG CG6rchivos de programa$icroso2t <22ice<--C+11e)cel.e)e● 4;+C8<;<:+AC+LG 4irectorio en (ue se encuentran las e)cel (ue se

 pueden llamar desde el men' de Li&ra.● 4"@WH8L:P68>G 4irectorio en (ue se encuentra la li&rer,a d"RXut.dll.

Solo se especi2icará si el men' no la encuentra por las distintas versiones de2orms montadas en el mismo ordenador.

● 4<$6:HSH6;<G dioma en (ue presentará la pantalla de login.● ;+J:-6LL<S:8;64HCC<G Si se pone S se activa por de2ecto la opción de

men' de registrar 2allos de traducción.● ;+P"+AC+L:P6;6$G Parámetros con los (ue se llamará a rep"e)cel para

converti el archivo html en )ls.● C<$64<:;+P"+AC+LG ndicar el comando completo para convertir un

html en un )lsE si no se especi2ica nada se usa los valores por de2ectos derep"e)cel. 4el comando de sustitu=en Narchivo:htmlO por el nom&re delarchivo con su ruta generado por el reportE = Narchivo:)lsO lo sustituirá por laruta = nom&re del archivo ALS (ue de&e generar. +%emploGC<$64<:;+P"+AC+Lstart httpG//=our:server:nameG0000/cgi&in/rep"e)cel.e)e&aseidrNarchivo:htmlO 

● P;<J;6$6:C<G om&re del 2m) (ue se e%ecutará seg'n se valide elusuarioE si el usuario tiene especi2icado un programa de inicio prevalecerá so&reel (ue se especi2i(ue en esta varia&le.

● P;<J;6$6:-G Programa (ue se e%ecutará al salir de Li&raE si el usuario

tiene especi2icado un programa de 2in prevalecerá so&re el (ue se especi2ica enesta varia&le.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&%'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 116/118

Edisa Sistemas de Información

● -<;$68<:6TH46G Si le ponemos el valor >LP a&rirá la a=uda en el archivo>LPE si no se especi2ica nada o cual(uier otra cosa distinta a >LP a&rirá el2ichero html.

• 4;+C8<;<:S6L46:;+P:-L+G 4irectorio (ue se propondrá por de2ectocuando se seleccione el env,o de in2ormes a 2ichero.

• 4;+C8<;<:S6L46:;+P:-6AG 4irectorio (ue se propondrá por de2ectocuando se seleccione el env,o de in2ormes a 2a).• 4;+C8<;<:S6L46:;+P:J+S84<CG 4irectorio (ue se propondrá por

de2ecto cuando se seleccione el env,o de in2ormes a gestor documental.• 4+S6C8!6;:;-G Si se asigna el valor SE no hace 2alta tener compilado ni

(ue e)ista nada relacionado con la radio2recuencia para (ue 2uncione el men'.• C<$64<:;+P"+AC+LG Comando de sistema operativo (ue se e%ecuta

cuando se selecciona el env,o a e)cel usando rep"e)cel. +l reports genera elin2orme en html = con el comando (ue se parametrice a(u, se hará la conversióna e)cel. +n el comando se puede usarG

• Narchivo:htmlOG Se sustituirá por el archivo html generado con su ruta .• Narchivo:)lsOG Se sustituirá por el archivo )ls (ue se (uiere generar con

su ruta.• ;+P"+AC+L:P6;6$G +sta varia&le es incompati&le con

C<$64<:;+P"+AC+LE si se especi2ican am&as se usarán 'nicamenteC<$64<:;+P"+AC+LE siendo ;+P"+AC+L:P6;6$ ignorada. +n estavaria&le podremos a3adir parámetros al comando rep"e)cel.

• ;+P"+AC+L:4+S6C8!6;:?<;;64<G Para generar e)celE rep"e)el se &asa en el archivo html generado por reportsE si a esta varia&le se asigna el valorS el archivo html no se &orra una ve7 hecha la llamada al rep"e)celE además alarchivo html = )ls se a3ade el nom&re del usuario = la 2echa para evitar (ue dosusuarios concurrentes generen el mismo archivo en un momento dado.

• P6J+SZ+:+AC+LG Se puede usar para indicar a reports el tama3o de la página cuando se env,a a e)celE es 'til para evitar el paginado en el in2ormeE pore%emploG P6J+SZ+:+AC+L#9 A 1#

• 4;+C8<;<:L<JG 4irectorio en donde se guardarán los archivos de tra7a.• C<$64<:-6AG Comando de sistema operativo (ue se e%ecutará cuando el

usuario selecciona 2a) = reports =a ha generado el archivo se pueden usar lassiguientes varia&lesG

• N2a)OG Se sustitu=e por el n'mero de 2a) al (ue se va a enviar el in2orme.• Narchivo:pd2OG om&re del archivo = ruta del 2ichero .pd2 generado.• Narchivo:psOG om&re del archivo = ruta del 2ichero .ps generado.

C<$64<:PS"PS"G Se usa cuando se especi2icó el C<$64<:-6AE elcomando (ue se parametri7a en esta varia&le se usa para convertir el archivo .pd2generado por 2orms a .ps necesario en muchos programas de env,o por 2a). Se

 pueden usar las siguientes varia&lesG• Narchivo:pd2OG om&re del archivo = ruta del 2ichero .pd2 generado.• Narchivo:psOG om&re del archivo = ruta del 2ichero .ps (ue se va a

generar.• C+8;6;:L<!G Si se asigna el valor las listas de valores no se centran en

 pantalla = se muestran en la posición E.• P;<J;6$6:4+S8<:$+S6F+G Cada ve7 (ue se muestre un mensa%eE en

ve7 de hacerlo por el mDtodo estándar de 2orms se llama al programa (ue se

indica en esta varia&le.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&"'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 117/118

Edisa Sistemas de Información

• 8P<:PH+S8<G Posi&les valoresG•  G ormalE es el valor por de2ecto si no se especi2ica nada.• 8G <ptimi7ado para el 2uncionamiento en terminal server con tama3o de

men' normal.• PG <ptimi7ado para el 2uncionamiento en terminal server con tama3o de

ventana optimi7ado para pocRet.• 4+S6C8!6;:C+;;+:C<:+SCG Si se asigna el valor se 2uer7a a (ue

con la tecla +SC se salga de Li&ra cuando se está en el men' = no ha= ning'n programa a&ierto.

• !+866G ndica como se (uiere (ue a&ra la ventana de Li&raG• $6AG $a)imi7adaE este el el valor por de2ecto en caso de no indicar esta

varia&le.• $G $inimi7ada.•  <;G ormalE en este caso se puede indicar el tama3o en pulgadas (ue

se (uiere (ue tenga la ventana = la posición AE T en donde de&e dea&rirseE para ello ha= (ue especi2icarG

!+866<;GAGTG6C><G6L8<E por e%emploG!+866<;GGGE#G5E* BSe a&rirá Li&ra en la posicion A e T E 6C>< E# = 6L8< 5E*

• HSH6;<:L?;6G Hsuario de Li&ra con el (ue se e%ecutará. Cuando se e%ecuteLi&ra no se podrá modi2icar el usuario.

• P6SSW<;4:L?;6G PassXord para el usuario indicado enHSH6;<:L?;6E si no se especi2ica el usuario de&erá de introducir sucontrase3a. Si se especi2ica de&erá de ponerse en el li&ra.ini ci2rada con lamisma herramienta para ci2rar el usuario de Li&ra en <racleE es decirE entrandoen Li&ra como superusuario = en cam&io de passXord la pesta3a UPassXord de?ase de 4atosU.

• C<$64<:+F+CH86G ndica (uD programa se llamará para arrancar lavisuali7ación de un archivoE por e%emploGC<$64<:+F+CH86LGe%ecuta.e)e

• 4;+C8<;<:!SH6LZ6C<G 4irectorio en donde se guardarántemporalmente los archivos (ue el usuario (uiera visuali7ar.

• +A8+S<+S:!SH6LZ6C<G Lista de e)tensiones de archivo separadas por comas (ue se pueden visuali7ar en el e(uipo en donde se está e%ecutandoLi&ra.

Creado por Archivo Versión Fecha Página

Elías Fernández Desarrollo i!ra v"#$#%#odt "#$#% &&'$('&& &&,'&&)

7/18/2019 Desarrollo-Libra-v6.0.5

http://slidepdf.com/reader/full/desarrollo-libra-v605 118/118

Edisa Sistemas de Información

#esarrollo de aplicaciones para poc2et para ejecuciónmediante 7erminal 4erver o Citri'0

Con)iguración del entorno.+l principal pro&lema de la e%ecución en 8erminal Server o Citri) en un dispositivoPocRet es el tama3o de la pantalla 2,sica = (uD suele ha&er una pantalla lógica másgrande = para recorrerla ha= (ue usar las &arras de scrollE algo mu= engorroso para losusuarios.

6l ser la pantalla lógica más grande (ue la 2,sicaE todo lo (ue salga centrado posi&lemente se vea en una 7ona de la pantalla (ue no se está visuali7ando en esemomento = para verlo el usuario tendrá (ue hacer scroll.

+l o&%etivo (ue ha= (ue plantearseE aparte de un men' más pe(ue3oE (ue todo salga enla posición E de la pantalla para (ue lo pueda visuali7ar &ien el usuario. Para ello sede&e modi2icar en el mantenimiento de puestos desplega&le 8ipo PuestoM e indicarPocRetM.

Ser,a recomenda&le con2igurar el login en Li&ra automático para (ue a los usuarios noles salga la pantalla de validación en li&raE para elloE simplemente ha= (ue ir almantenimiento de usuarios = cu&rir el campo Hsuario Sistema <perativoM.

+esarrollo o adaptación de un programa a pantalla pe#ue*a.

+l desarrollo ha= (ue tener en cuenta los siguientes puntosG

● Cam&iar en las propiedades del 2ormulario el menuM por menu:pocRetM ouno adaptado a las necesidades con las opciones (ue se (uieran dar por men' alos usuarios.