Controles fijos

De WikiDgp21
Saltar a: navegación, buscar

Se trata de los controles comprendidos entre el número 1 y el número 50.

Control 1 – Pantalla

  • Con el control 1 creamos una ventana superpuesta sobre el fondo con el tamaño indicado en “posic 1” como la esquina superior izquierda y “posic 2” como la esquina inferior derecha.
  • El “tipo” ha de ser P


Control 2 – Nombre empresa

  • Campo donde se indica la empresa en la que estamos trabajando. Es de tipo “T” (título) y sus características son fijas en todas las pantallas. Aparece en la esquina superior izquierda de la pantalla.

Control 3 – Título

  • Campo donde indica el título de la aplicación en la que estamos trabajando. Es de tipo “T” (título) y sus características son fijas en todas las pantallas, exceptuando el “Valor def”, donde se escribirá el texto del título. Aparece en la parte superior de la pantalla.

Control 4 – Estado cabecera

  • Se trata del control que indica en que estado estamos en el programa: Altas, Modificación, Consultas, Búsqueda, etc... en la parte de la pantalla correspondiente a la cabecera.
  • Su valor varía en modo ejecución, es de tipo “T” y todas sus características son fijas.
  • El lenguaje en el que aparecerá depende de la definición del usuario.

Control 5 – Estado detalles

  • Si una pantalla contiene un mantenimiento de detalles independiente del mantenimiento de cabeceras (con iconos propios) también tendrá un mensaje de estado (altas, modificación, consultas, búsqueda) propio del detalle. Su comportamiento es igual al de cabecera.

Control 6 – Botón 'Nuevo’

  • Es tipo “H”, lo que indica que se trata de un icono. En posic1 se indica la posición dentro de la pantalla donde aparecerá (3,17), y en posic2 se indica el código dentro de dgp21i01 que le pertoca, que es 0,6.
  • La etiqueta ha de ser “_nuevo”.
  • Llama a la función “g_nuevo” (se ha de indicar en el detalle) sin parámetros de ningún tipo.
  • Cuando se clicka, limpia todos los campos de la pantalla y pone el foco en el primero en estado Altas.

Control 7 – Botón 'Seleccionar'


  • Es de tipo “H”.
  • La etiqueta es “_selec”.
  • La ‘posic 2’ es 0,7 y la 'posic 1' es, normalmente, 29,17.
  • Llama a la función “g_seleccionar” con el parámetro “borr”.
  • Limpia todos los controles de la pantalla y pone el foco en el primer control. En este estado, indicado como Seleccionar, solo tenemos el icono de búsqueda como operativo.
  • Se clicka para poder rellenar los campos (que lo permitan) por los que queremos buscar un registro o más de uno

Control 8 – Botón 'Modificar'



  • Es de tipo “H”
  • La etiqueta es “_modif”.
  • La ‘posic 2’ es 0,8 y la 'posic 1' es, normalmente, 77,17.
  • Llama a la función “g_modificar” sin parámetros.
  • En sentencia SQL se indicará mediante un select cual es el registro que queremos modificar (todos los campos de la tabla), que será el que tengamos en pantalla en el momento que clickemos el icono, por lo que en el where relacionaremos el campo clave de la tabla con el campo correspondiente en la pantalla.
  • En pares de campos, se indica el numero de posición en el select y el numero de control en la pantalla de cada uno de los campos indicados en el select.
  • En el campo Referencia de la cabecera tiene que aparecer un 8

Control 9 – Botón 'Borrar'



  • Es de tipo “H”, etiqueta “_borrar” ,'posic 1' igual a 125,17 y ‘posic 2’ igual a 0,9
  • Llama a la función “g_borrar”.
  • En sentencia SQL se indica mediante la sentencia Delete cual es el registro que eliminamos. Para ello se relaciona en el where el número del control de la pantalla que se corresponde con el campo clave de la tabla.
  • Cuando se clicka aparecerá un mensaje de confirmación y a continuación se eliminará el control o registro que tengamos en ese momento en pantalla.

Control 10 – Botón 'Buscar'



Es de tipo “H”, etiqueta “_buscar”, ‘posic 2’ igual a 0,10

  • Referencia 10.
  • Está enlazado con el control 41 si existe listado en pantalla o con el 13 si no existe.
  • Hay dos tipos: con listado en pantalla o sin listado.
  • Con listado llama a la función “g_list” sin parámetros. En la sentencia SQL se indica mediante select los registros que buscamos, relacionando los campos de la tabla con los números de control en la pantalla. En pares de campos se indica el tamaño de estos campos, poniendo una X o N dependiendo que el campo sea alfanumérico o numérico, y a continuación el tamaño (siempre con dos dígitos), en cada uno de los campos que mostraremos en el listado. Los registros encontrados aparecerán en la grid de listado.
  • Cuando no hay grid llama a la función “g_buscar”. En la sentencia SQL se pondrá como en el otro caso, pero en “pares de campos” se indica el número del campo dentro del select y a continuación el numero de control que le corresponde dentro de la pantalla, de cada uno de los campos. En el campo “enlazar control” se ha de poner un “13”.

Control 11 – Botón 'Guardar'



- Tipo H, etiqueta “_guardar”, ‘posic 2’ igual a 0,11

- Este botón contiene código en el campo 'Programación'. Hay que tener en cuenta que el botón Guardar es común para altas y para modificaciones, por lo que cuando se clicka dependerá de que es lo que deseamos hacer, si crear un registro nuevo o modificar uno existente.

- Para solucionarlo, cuando se clicke sobre el icono se ejecutará el código. Este código lo primero que hace es mirar en que estado estamos (mirando el valor del control 50 que guarda el código de estado). Si nos encontramos en altas ejecutará la función que se encuentre en el numero de orden 1, y que será un insert. Si nos encontramos en modificaciones ejecutará la función que se encuentra en el numero de orden 2 y que será un update.

Control 12 – Control 'Salir'

  • Es de tipo “H”, etiqueta “_salir” y ‘posic 2’ igual a 0,12
  • Llama a la función “g_salir”, sin parámetros ni sentencia.
  • Cuando de clicka se sale de la pantalla actual volviendo a donde se estuviese cuando se ejecutó ésta.

Controles 13-18 Navegación sin grid.



  • Los botones de navegación no se han de poner cuando disponemos de una grid en pantalla.
  • Los campos 13,14,15,16 que son respectivamente Primero, Anterior, Siguiente y Último y son tipo “H”.
  • En referencia tendrán 10,1 (enlaza con buscar)
  • Su función es retroceder y avanzar por los registros.
  • En el control 17, tipo “C”, caja de texto, indica el número de registros de la tabla, o el número de registros resultado de una búsqueda.
  • Si la pantalla tiene cabeceras y detalles, el control 18 será el campo donde se indiquen el número de detalles, y es igual que el 17.

Control 13. Botón 'Primero'

  • Para ir al primer registro de la selección. Llama a la función 'g_primero'.
  • 'Posic 2' igual a 0,13.

Control 14. Botón 'Anterior'

  • Retrocede un registro. Llama a la función 'g_anterior'.
  • 'Posic 2' igual a 0,45.

Control 15. Botón 'Siguiente'

  • Avanza un registro. Llama a la función 'g_siguiente'.
  • 'Posic 2' igual a 0,46.

Control 16. Botón 'Último'

  • Se sitúa en el último registro de la selección. Llama a la función 'g_ultimo'.
  • 'Posic 2' igual a 0,16.

Control 17. Número de registros.

  • Se trata de una caja de texto (tipo 'C'), donde se muestra el número de registros resultado de la búsqueda. Se halla entre los botones de navegación y es informativo, no realiza ninguna función.
  • Siempre que se realiza un select de cualquier tipo, el número de líneas encontradas se guardará en este campo.

Control 18. Número de registros para detalles.

  • Hace la misma función que el control 17, pero en este campo se guardará el resultado de las búsquedas en los detalles, en el caso que existan.

Control 19. Nombre de proceso.

  • Campo informativo, de tipo “T” donde indica el proceso que se esta utilizando (nombre, versión). Se ha de indicar en valor por defecto.

Control 20. Fecha.

  • Muestra la fecha actual del sistema. Es tipo “T”. En valor por defecto se ha de poner el literal “&fecha”. Aparece en la esquina superior derecha de la pantalla.

Control 26. Origen.

  • Utilizamos este campo para indicar desde donde se llama a la pantalla. Por ejemplo: si realizamos un único programa de albaranes que se comporta de forma diferente si se llama desde el menú de ventas o de compras, en el campo origen del menú se pondría un "1" en un caso y "2" en el otro, y en el campo control inicio del menú colocaremos un "26", de forma que cuando el programa se ejecute desde el menú, se lanzará el control 26 que en función de su propio valor (1 o 2) ejecutará unas instrucciones u otras según la programación del control.
  • Si se llama al programa desde otra pantalla con un g_llamar, como por ejemplo desde facturas, deberemos enlazar con el campo 26 pasándole el correspondiente valor, para que la pantalla llamada sepa que comportamiento debe tener.
  • Este campo no se inicializa nunca de forma automática, si quisiera modificarse de forma voluntaria, deberá hacerse con un g_rellena o desde código de programación lcf.

Controles 35-38. La grid.

  • Controles tipo “U” que dibujan un cuadro en la pantalla con las coordenadas indicadas en posic1 y posic2.
  • Solo se usarán cuando el mantenimiento disponga de una grid.



Control 35. Línea vertical izquierda.

  • Dibuja una línea vertical que va desde la esquina superior izquierda a la esquina inferior izquierda.
  • Modificando la 'y' haremos la grid mas baja o mas alta.

Control 36. Cuadro de título.



  • Dibuja el cuadro superior de la grid, donde va situado el título.

Control 37. Cuadro de navegación vertical.

  • Dibuja el cuadro vertical derecho donde se encuentran los botones de navegación para subir y bajar por la grid.



Control 38. Cuadro de navegación horizontal.

  • Dibuja el cuadro horizontal inferior donde aparece el cuadro de texto con el número de registros y los botones de navegación derecha e izquierda.



Controles 39-48. Controles de navegación por grid.

  • Botones de navegación, de tipo “H”, para moverse por dentro de un listado (grid). El listado aparece como una sucesión de líneas en que cada una es un registro. Con estos botones podremos ir al primero, al último, bajar o subir uno, o bajar o subir un bloque, También nos podremos mover a la izquierda o derecha si los registros no caben enteros en el cuadro.
  • Los datos son:
    • Control 39 - Subir línea: etiqueta “_slinea”, posic2 igual a 0 39, llama a la función “l_lant” sin parámetros ni sentencia.
    • Control 40 - Subir página: “_spag”, 0 40, “l_pgant”.
    • Control 41 - Subir al principio: “_sprinc”, 0 41, “l_prim”.
    • Control 42 - Bajar línea: “_blinea”, 0 42, “l_lsig”.
    • Control 43 - Bajar página: “_bpag”, 0 43, “l_pgsig”.
    • Control 44 - Bajar al final: “_bfinal”, 0 44, “l_ult”.
    • Control 45 - Un carácter a la izquierda: “_izq”, 0 45, “l_izq”.
    • Control 46 - Un carácter a la derecha: “_der”, 0 46, “l_der”.
    • Control 47 - Un bloque a la izquierda: “_bizq”, 0 47, “l_bizq”.
    • Control 48 - Un bloque a la derecha: “_bder”, 0 48, “l_bder”.

Control 050. Valor del estado

  • Se guarda un código que indica el estado en el que estamos.
    • _altas
    • _modif
    • _selec
    • _consult
  • A partir de este código el programa rellena el control 4 que muestra por pantalla el estado en el lenguaje del usuario.
  • También es útil en el código del control 11 (guardar) para saber si se ha de hacer un insert o un update, (mirar control).