< Anterior | Siguiente >

Lección 7: Creación de una biblioteca de funciones reutilizables

Cree una biblioteca para dar formato a los valores monetarios y asociar números de categorías con descripciones.
Las bibliotecas contienen funciones, constantes y variables que se pueden utilizar en múltiples ubicaciones.

Cuando se hace referencia a una declaración en la biblioteca desde otra lógica como, por ejemplo, un servicio o manejador, puede incluir el nombre de la biblioteca como prefijo. Por ejemplo, MiBiblioteca.variableMiBiblioteca resulta adecuado si el nombre de la biblioteca es MiBiblioteca y la biblioteca incluye la variable variableMiBiblioteca. De forma alternativa, puede incluir el nombre de la biblioteca en una sentencia use en la otra lógica y evitar así la necesidad de cualificar cada referencia. En ese caso, variableMiBiblioteca será suficiente para hacer referencia a sea variable.

Creación de un componente Biblioteca

Para crear un componente Biblioteca:

  1. Efectúe una pulsación con el botón derecho del ratón en la carpeta PaymentClient y, a continuación, pulse Nueva > Biblioteca.
  2. En la ventana Biblioteca EGL nueva, escriba la información siguiente:
    • En el campo Nombre de archivo de origen EGL, escriba el nombre siguiente:
      PaymentLib
    • En el campo Paquete, escriba el nombre siguiente:
      bibliotecas
    • En Tipo de biblioteca EGL, deje seleccionado el valor predeterminado de Básico.
    Se abrirá el componente Biblioteca en el editor EGL.
  3. Sustituya el código repetitivo en el componente Biblioteca por las líneas siguientes:
    package libraries;
    
    library PaymentLib type BasicLibrary {}
    
    end
  4. Guarde el archivo.

Creación de la matriz de categorías

Añada el código siguiente antes del final de la sentencia end:
categories STRING[] = [

   "Rent",          // 1
   "Food",          // 2
   "Entertainment", // 3
   "Automotive",    // 4
   "Utilities",     // 5
   "Clothes",       // 6
   "Other"          // 7
];

El valor es una raíz y como es verdadera (true) para todas las matrices en EGL, el índice del primer elemento será 1, no 0.

La matriz se utiliza en la lógica que actúa tal como se indica a continuación:
  • Coloca una categoría de gastos en la base de datos en formato de entero, para ahorrar espacio.
  • Coloca la categoría de gatos en la página web en formato de serie, para mayor claridad.

Creación de las funciones de obtención para categorías

Las funciones siguientes realizan conversiones entre los dos formatos siguientes en cuanto a categorías de gastos: entero y serie.
  1. Añada el código siguiente antes del final de la sentencia end:
    function getCategoryDesc(cat INT in) returns(STRING)
       if(cat)       // el entero no es 0
          return(categories[cat]);
       else
          return("");
       end
    end

    La función recibe el formato entero de una categoría de gastos y devuelve el elemento de matriz relacionado. Si el valor de entrada es 0, la función devuelve una serie vacía.

  2. Añada el código siguiente antes del final de la sentencia end:
    function getCategoryNum(desc STRING in) returns(INT)
       for(i INT from 1 to categories.getSize())
          if(categories[i] == desc)
             return(i);
          end
       end	
       return(0);	// no hay coincidencia
    end

    Esta función recupera el formato de serie de una categoría de gastos y devuelve el formato entero, si es posible. Si no se encuentra ninguna coincidencia para la serie recibida, la función devolverá 0.

  3. Formatee el archivo.
  4. Guarde y cierre la biblioteca PaymentLib. Si detecta errores en el archivo de origen, compare el código con el contenido del archivo en Código finalizado para PaymentLib.egl después de la lección 7.

Punto de comprobación de lección

Ha aprendido a realizar las tareas siguientes:
  • Crear un componente Biblioteca.
  • Añadir funciones y una variable a una biblioteca.
< Anterior | Siguiente >

Comentarios