ILE (RPG-IV)

Introducción : El RPG IV  es la evolución lógica y natural del RPG III. Además utiliza el entorno ILE. Para entender este tutorial, es necesario conocer RPG III y entorno ILE.
 
Proceso de compilación :



Se puede compilar de dos formas :


a)Compilación en proceso de dos pasos :


CRTRPGMOD : crea módulo en RPG (objeto no ejecutable).
CRTPGM : enlaza uno o más módulos para crear un objeto ejecutable.


b)Compilación en proceso de un solo paso :


CRTBNDRPG : crea un objeto ejecutable.


CRTSRVPGM : crea un programa de servicio.
CRTCLMOD : crea un CL ILE.
UPDPGM : actualiza programa (una vez tengamos el nuevo módulo o módulos, evita recompilar programa al modificar o añadir un módulo)
UPDSRVPGM : actualiza programa de servicio.


Un módulo de ILE RPG : consta de un procedimiento principal opcional y de cero o varios subprocedimientos.


Creación de programas ILE - Estrategia 1 - compatible con OPM (un solo paso) :


El programa creado se beneficiará de las mejora de RPG IV pero no de todas las mejoras del entorno ILE. No se podrá utilizar el enlace estático de ILE. Sería una solución temporal hasta completar la migración hacia ILE.

Primero habría que compartir el fuente a RPG IV (y los /COPY) mediante CVTRPGSRC.
Luego ya se podría crear el programa (en un solo paso) con CRTBNDRPG especificando DFTACTGRP(*YES), que significa que se ejecutará en el grupo de activación por omisión (en el que se ejecutan todos los programas OPM).

Ejemplo :
Creación de programas ILE - Estrategia 2 - utilizando CRTBNDRPG (un solo paso) :


El programa creado se beneficiará del enlace estático de ILE, puede contener procedimientos dinámicos y estáticos (estos últimos enlazando el módulo con otros módulos o programas de servicio que utilicen un directorio de enlace). También se puede especificar el grupo de activación en el que se ejecutará.
El problema de esta estrategia, es que no hay un módulo de objeto permanente que se pueda volver a utilizar con otros módulos y crear así un programa ILE,


Primero habría que convertir un RPG III a RPG IV con CVTRPGSRC (incluído los /COPY).
Si se utiliza CL, utilizar CL ILE en vez de CL OPM.
Crear programa ILE con CRTBNDRPG, especificando el parámetro DFTACTGRP(*NO), el grupo de activación en el parámetro ACTGRP y opcionalmente el directorio de enlace en el parámetro BNDDIR. (Si no se quiere utilizar el directorio de enlace, habría que utilizar la estrategia 3).


Ejemplo :


Creación de programas ILE - Estrategia 3 - utilizando CRTRPGMOD (en dos pasos) :


Permite utilizar toda la potencia del ILE, pero es la estrategia más complicada.


Volveré ...y seguirá ...




VISUAL BASIC 6.0 (GUIA RAPIDA DE REFERENCIA)

Introducción :

Pantalla para crear un nuevo proyecto.


Pantalla principal

Propiedades :

Se utilizan para controlar la apariencia y comportamiento de un objeto.
Propiedades

Se accede a esta pantalla pulsando F4.

Algunas propiedades :

Name : dentificador único
Index : número que identifica al objeto
Left : distancia entre el borde izquierdo
Top : distancia entre el borde superior
Height : altura (desencadena el evento Resize)
Width : anchura (desencadena el evento Resize)
Enabled : activar o desactivar el objeto
Visible : determina si un objeto es visible o no

Propiedades clave del formulario :

BorderStyle :  establece tipo de borde
ControlBox : determina si el cuadro de control (que contiene Mover y Cerrar) está visible mientras se ejecuta el programa
Font : fuente del texto
Icon : icono de minimizado
MaxButton : determina si aparece el botón Maximizar
MDIChild : determina si el formulario es secundario de una aplicación MDI
MinButton : determina si aparece el botón Minimizar
StartUpPosition : determina posición inicial de un formulario por primera vez
WindowsState : determina si aparece maximizado, minimizado o normal

Algunos métodos :


Son las tareas que pueden realizar los objetos.
Existe una serie de métodos comunes a varios objetos :

Drag : arrastar y soltar
Move : cambia la posición de un objeto
SetFocus : da el enfoque
Zorder : determina si un objeto aparece en frente o detrás de otro
Show : carga el formulario (tiene un Load implícito), lo muestra y pone la propiedad Visible a True. Si se activa el parámetro modal, el usuario no podrá ir a otro formulario
Hide : pone la propiedad Visible a False (si se utiliza con un formulario, lo quitará de pantalla pero no de memoria). 

Algunas instrucciones :

Load : carga en memoria un formulario o control (Load formulario1),  se ejecutará el evento Load (formulario1_Load).
Unload : descarga de memoria un formulario o control (y lo quita de pantalla). Unload Me quita el formulario actual.


Cuadro de herramientas :
Cuadro de herramientas

Picture Box (cuadro de imagen) : muestra gráfico y es contenedor de otros controles.
Label (etiqueta) : solo muestra texto, el texto está en la propiedad Caption.
TextBox (cuadro de texto) : muestra texto y permite modificarlo.
Frame (marco) : contenedor de otros controles, los agrupa.
CommandButton (botón de orden) : botón que inicia una acción.
CheckBox (casilla de verificación) : permite escoger al usuario una o varias opciones.
OptionButton (botón de opción) : permite escoger una opción.
ComboBox (cuadro combinado) : permite escoger a partir de una lista, o introducir un valor nuevo.
ListBox (cuadro de lista) : permite elegir entre una lista de elementos.
HS ScrollBar (barra de desplazamiento horizontal) : permite elegir un valor con una barra de desplazamiento horizonal.
VS ScrollBar (barra de desplazamiento vertical) : permite elegir un valor con una barra de desplazamiento vertical.
Timer (temporizador) : permite ejecutar funciones basados en un temporizador.
Drive List Box (cuadro de lista de unidad) : permite seleccionar una unidad de disco.
Directory List (lista de directorios) : permite seleccionar un directorio.
File List Box (cuadro de lista de archivos) : permite seleccionar un archivo.
Shape (forma) : muestra una forma en un formulario.
Line (línea) : muestra una línea en el formulario.
Image (imagen) : parecido a PictureBox, con menos recursos y propiedades.
Data Control (control de datos) : interfaz entre programa y fuente de datos.
OLE : proporciona conexión entre programa y servidor OLE.
Common Dialog (cuadro de diálogo común) : permite usar cuadro de diálogo estándar de Windows para recuperar nombre de archivo, fuentes y colores.

Algunos controles :

Label (etiqueta) : muestra un texto.
  • Propiedad Autosize : si es True el tamaño del control se ajustará automáticametne en función de la propiedad WordWrap.
  • Propiedad WordWrap : si es False, se ajustará horizontalmente. Si es True, se ajustará verticalmente.
  • Propiedad Caption : contiene el texto. Para insertar un salto de línea, habría que añadir al texto la constante vbCrLf.
  • Propiedad Alignment : alinea texto por la izquierda, lo centra o por la derecha.
  • Propiedad Appearance : plano o tridimensional.
  • Propiedad BorderStyle : con y sin borde.
  • Propiedad Font : tipo de letra, estilo (normal, cursiva, negrita, etc), tamaño, tachado, subrayado, etc.
  • Propiedad ForeColor y BackColor : color del texto y el fondo.
  • Propiedad UseMnemonic : controla si el signo & de la propiedad se trata como indicador de la tecla de acceso.
TextBox (cuadro de texto) : permite visualizar y modificar texto.
  • Propiedad Text : contiene el texto.
  • Propiedad MaxLenght : limita cantidad de caracteres (por defecto, una línea).
  • Propiedad MultiLine : permite varias líneas.
  • Propiedad ScrollBar : permite poner barras de desplazamiento.
  • Evento Validate : si ejecuta cuando la propiedad CausesValidation está a True y se pierde el foco (puede ir bien para validar la entrada, antes de perder el foco). Este evento debe impedir perder el foco (por ejemplo, en caso de error), poniendo a True el parámetro recibido, o permitirlo, poniéndolo a False.
CommandButton (botón de orden) : botón que inicia una acción.
  • Propiedad Caption : contiene el texto del botón.
  • Propiedad Default a True del formulario : convierte en el botón en predeterminado (pulsar Intro en cualquier control).
  • Propiedad Cancel a True del formulario : hace que al pulsar Esc.
CheckBox (casilla de verificación) :
  • Propiedad Value : permite saber si se ha activado la casilla (1=si, 0=no).
  • Propiedad Style : permite poner gráfico para activar casilla.
  • Propiedad Picture : permite poner una imagen (si utilizamos la propiedad Style).
  • Propiedad DownPicture : permite poner una imagen al pulsar casilla (si utilizamos la propiedad Style).

OptionButton (botón de opción) : permite escoger una opción (y solo una). Solo se pueden seleccionar varias si cada grupo de botones está en un control Frame.
  • Propiedad Value : permite saber si se ha activado el botón de opción o no (True=si, False=no).
ListBox (cuadro de lista) : permite elegir entre una lista (ya desplegada) de opciones (sin posibilidad de añadir).
  • Propiedad List : contiene un array con la lista de elementos (se puede llenar por programa o en tiempo de diseño). Para ver el texto del tercer elemento escribíriamos ésto : MgBox List1.List(2).
  • Propiedad AddItem : permite añadir elementos al final de la lista (Ejemplo:  List1.AddItem "Texto del elemento"). Si se añade el parámetro Indice, se puede insertar en un lugar concreto.  Por ejemplo, para insertar en el tercer elemento : List1.AddItem "Texto a poner en el tercer lugar y desplazar éste",2.
  • Propiedad ListCount : contiene el número de elementos.
  • Propiedad ListIndex : contiene el número de elemento (o índice) seleccionado (0=primer elemento, 1=segundo elemento, etc, -1=no hay ningún elemento seleccionado). Si le asignamos un índice, antes de mostrarlo, se situará en ese elemento (teniendo en cuenta, denuevo, que el primer elemento es el 0).
  • Propiedad Text : contiene el texto del elemento seleccionado (para cuando MultiSelect es 0).
  • Propiedad Sorted : si se pone a True, ordena la lista.
  • Propiedad Style : define la apariencia (0 o VbListBoxStandard=stándar, 1 o VbListBoxCheckBox=con casilla de verificación).
  • Propiedad MultiSelect : permite multiselección (0=no, 1=simple, 2=extendida, se puede marcar un grupo con la tecla Shift).
  • Propiedad Selected : permite saber si un elemento está seleccionado y habría que recorrer la lista aproximadamente de esta forma :

  • Propiedad ItemData : es un índice paralelo (informado por nosotros) a ListIndex. Se informa de la siguiente forma :

  • Propiedad NewIndex : contiene el número de índice del elemento añadido más reciente.
  • Método Clear : borra todos los elementos de la lista.
  • Método RemoveItem : elimina un elemento de la lista (Ejemplo : List1.RemoveItem nº de elemento, o también se podría eliminar el elemento seleccionado : List1.RemoveItem List1.ListIndex). De esta forma, se necesita otro control (por ejemplo, un botón), que ejecute el RemoveItem. Habría otra forma, seleccionando directamente en la lista el elemento y eliminar con la tecla Suprimir:

Combo Box (cuadro combinado) : permite escoger a partir de una lista, o introducir un valor nuevo.
  • Propiedad Style : determina la apariencia. Si le asignamos un 0 (desplegable), podremos seleccionar una opción o escribir una nueva. Si le asignamos un 1 (sencillo), no es desplegable pero se podrá seleccionar o escribir. Si asignamos un 2 (lista desplegable) : solo se podrá seleccionar una opción existente y no se podrá escribir una nueva.
  • Propiedad AddItem, NewIndex y Text : igual que el control ListBox.
VS ScrollBar y HS ScrollBar (barra de desplazamiento vertical y horizontal) : permite elegir un valor (entre un mínimo y máximo) con una barra de desplazamiento vertical.

  • Propiedad Value : contiene el valor del control (debe estar entre -32.768 y 32.767).
  • Propiedad Min : define el valor mínimo que puede tener.
  • Propiedad Max : define el valor máximo que puede tener.
  • Propiedad LargeChange : define el avance rápido (al pulsar entre la flecha y el botón de desplazamiento), por defecto es 1.
  • Evento Change : se ejecuta cada vez que se cambie el valor de la propiedad Value.
  • Evento Scroll : se ejecuta mientras se arrastra el botón de la barra de desplazamiento.
Timer (temporizador) : ejecutar una tarea al transcurrir un tiempo determinado.
  • Evento Timer : lo ejectua cada vez que pase el tiempo transcurrido en la propiedad Interval.
  • Propiedad Interval : expresada en milisegundos (1 segundo=1000 milisegundos).
  • Propiedad Enabled : activar y desactiva temporalmente el temporizador (informar True o False).
Frame (marco) : contenedor de otros controles, los agrupa. Para ponerlos dentro, primero poner el marco y luego insertar los controles.
  • Propiedad Caption :  contiene el texto del marco.
  • Propiedad Appearance : marco plano o en 3D.
  • Propiedad BorderStyle : con y sin borde.






Volveré ...y seguirá ...