UTP
-1-
Minicomputadoras
CAPITULO DE MATRICES Hay dos formas de trabajar con matrices en : a) Tiempo de Compilación cuando los datos son cargados a la matriz al momento que se ejecute el programa, estos datos permanecen en el mismo programa. b) En tiempo de ejecución la matriz solo se declara , luego alimentados por teclado o por cualquier otro dispositivo de entrada. Ejemplo1.- Matriz en tiempo de Compilación . Matrices en tiempo de compilación, y como localizar un elemento en una matriz utilizando el operador lookup, solo tienes que ingresar el nro de mes y automáticamente saldrá el mes en letras. DISEÑO DEL FORMULARIO FRM01
PROPIEDADES DEL XMES • • • •
NOMBRE DEL COMPONENTE: XMES LONGITUD: 2 TIPO DE DATO: NUMERICO POSICIONES DECIMALES: 0
PROPIEDADES DEL XMESLET • • •
NOMBRE DEL COMPONENTE: XMESLET LONGITUD: 15 TIPO DE DATO: CARÁCTER
Codificacion y descripción : -Primero declaramos la matriz en la hoja D dependiendo del valor almacenar definimos el tipo y el tamaño de la matriz con DIM(N) CTDATA ( en tiempo de compilación) - PERRCD(N2) define la cantidad de elementos por registro. Ejemplo - ALT(Matriz) define una matriz alternante a la matriz anterior , por lo general clave y dato.
UTP
-2-
Minicomputadoras
Todos los datos de la matriz son colocados al final del programa no tienen un tipo de hoja y se inician de la primera columna
LOOKUP .- Busca un elemento en la matriz , si lo encuentra se activa un indicador asociado al lookup en la columna EQ de la hoja de calculo
UTP
-3-
Minicomputadoras
2.- Matriz en tiempo de Ejecución.MATRICES EN TIEMPO DE EJECUCION USANDO OPERADORES COMO SORTA – XFOOT – MOVEA, SOLAMANTE TIENES QUE INGRESAR 10 ELEMENTOS. SORTA.- ordena una matriz XFOOT suma los elementos de una matriz MOVEA .- Copia todos los elementos de una matriz a otra DISEÑO DEL FORMULARIO FRM01
PROPIEDADES DEL TXTELE • • • •
NOMBRE DEL COMPONENTE: TXTELE LONGITUD: 2 TIPO DE DATO: NUMERICO POSICIONES DECIMALES: 0
PROPIEDADES DEL XNRO • • • •
NOMBRE DEL COMPONENTE: XNRO LONGITUD: 2 TIPO DE DATO: NUMERICO POSICIONES DECIMALES: 0
PROPIEDADES DEL SUB01
UTP • •
-4NOMBRE DEL COMPONENTE: SUB01 LISTA DE CAMPOS: o CAMPO: NRO1 o LONGITUD: 2 o TIPO DE DATO: NUMERICO o POSICIONES DECIMALES: 0
PROPIEDADES DEL SUB02 • •
NOMBRE DEL COMPONENTE: SUB02 LISTA DE CAMPOS: o CAMPO: NRO2 o LONGITUD: 2 o TIPO DE DATO: NUMERICO o POSICIONES DECIMALES: 0
PROPIEDADES DEL TXTNUM • • • •
NOMBRE DEL COMPONENTE: TXTNUM LONGITUD: 7 TIPO DE DATO: NUMERICO POSICIONES DECIMALES: 2
PROPIEDADES DEL TXTMSG • • •
NOMBRE DEL COMPONENTE: TXTMSG LONGITUD: 255 TIPO DE DATO: CARACTER
Minicomputadoras
UTP
-5-
Minicomputadoras
UTP
-6-
Minicomputadoras
Nota.- El control SUB01, SUB02 son tipo Subarchivo que se encuentra en la caja de herramientas, permite almacenar datos similares a una tabla. Ejercicio. 1.- Empleando matrices crear un programa para convertir de números a letras.
UTP
-7-
Minicomputadoras
CONTROL DE SUBARCHIVO
Utilice el componente subarchivo para visualizar una lista de registros, cada uno de los cuales consta de uno o más campos. La función del componente subarchivo es similar a la de un subarchivo de iSeries . El usuario puede desplazar el contenido de la lista en sentido horizontal o vertical utilizando las barras de desplazamiento del subarchivo. Para crear un campo de entrada de subarchivo, añada un campo de la ventana Definir campos de referencia o de la paleta de componentes en el componente subarchivo. También puede añadir campos utilizando el cuaderno de propiedades REMOVEITEM Suprime un elemento de una lista. El parámetro index determina el elemento que se va a suprimir. Para eliminar todos los elementos de una lista, especifique 0 como valor de índice. En un componente subarchivo, este atributo se aplica a un campo de entrada de subarchivo que tenga valores definidos como tipo de validación. Utilice este atributo para eliminar valores de la lista de validación del campo de entrada del subarchivo. Primero ha de establecer el atributo ColNumber a fin de identificar la columna con la que se debe trabajar. En el caso de un componente selector cíclico, solo puede eliminar todos los elementos; es decir, el valor de índice debe establecerse en 0 (eliminar todos). No está permitido eliminar un elemento específico de un selector cíclico. Tipo Numérico Valor permitido El valor de índice del elemento que se va a eliminar Ejemplo de formato libre *...1....+....2....+....3....+....4....+....5....+....6....+. ...7....+....8 CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len ++D+HiLoEq---* C EVAL %setatr('win01': 'LB1': 'RemoveItem') = 3 * Ejemplo de formato fijo *...1....+....2....+....3....+....4....+....5....+....6....+. ...7....+....8 CSRN01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len ++D+HiLoEq---* C 'LB1' SETATR 3 'REMOVEITEM' *
UTP
-8-
Ejemplo .- empleando subarchivo , matrices en tiempo de compilación
Controles: Cuadro Combinado CBA (colocar seis datos en tiempo de diseño) LBPRE Tipo Label numerico (6,0) TXTCAN tipo TextBox Numerico(4,0) Un boton Aceptar nombre BtnOk Un subarchivo añadir campos (sub01) después
Minicomputadoras
UTP
-9-
Minicomputadoras
Cada campo tiene que tener un nombre y un tipo como si fuese un control : Xdes A(20) Xpre N(6,0) Xcan N(6,0) Xtot N(8,0) A=Alfanumerico N= Numerico
Tiene que definirse los tipos de datos y edición para campos numéricos. Codificación :
UTP Minicomputadoras
Prof. Ing. Alberto Moreno C.
-10-