Diferencia entre revisiones de «Funciones»

De WikiDgp21
Saltar a: navegación, buscar
(g_mens)
 
(No se muestran 99 ediciones intermedias de 5 usuarios)
Línea 8: Línea 8:
 
*&$fecha1m: Fecha de primero de mes.
 
*&$fecha1m: Fecha de primero de mes.
 
*&$fecha1a: Fecha de primero de año.
 
*&$fecha1a: Fecha de primero de año.
 +
*&$emp: Cuenta, nombre de la base de datos.
 +
*&$pid: pid proceso del cliente abierto.
 +
 
Referencias a controles
 
Referencias a controles
 
En los campos de sentencia SQL y parámetros de la función,
 
En los campos de sentencia SQL y parámetros de la función,
Línea 25: Línea 28:
 
*Pide confirmación del borrado de la fila
 
*Pide confirmación del borrado de la fila
 
*Ejecuta la sentencia DELETE especificada en el campo sql.  
 
*Ejecuta la sentencia DELETE especificada en el campo sql.  
*Después se ejecuta un [[Funciones#g_consulta|g_consulta]] (poner a modo consulta) de cabecera y detalle que coge los parámetros indicados al [[Funciones#g_borrar|g_borrar]] (ver parámetros de [[Funciones#g_consulta|g_consulta]]).
+
*Después se ejecuta un [[Funciones#g_consulta|g_consulta]] (poner a modo consulta) de cabecera y detalle que coge los parámetros indicados al [[Funciones#g_borrar|g_borrar]]
*Si no recibe ningún parámetro se comporta como si hubiera recibido un 0.
+
*Parámetros:
*Además de los parámetros del [[Funciones#g_consulta|g_consulta]], [[Funciones#g_borrar|g_borrar]] tiene un parámetro adicional, a continuación de los anteriores, que indica si se ha de registrar la operación (usuario, hora, ip...): s para registrar, n para no registrar, si no se indica nada coge por defecto n.
+
**Parámetro 1:
 +
***0: No modifica ningún control.
 +
***1: Inicializa todos los controles a su valor por defecto
 +
***2: Inicializa los controles mayores que 50 a su valor por defecto.
 +
***3: Inicializa todos los controles a excepción de los indicados a continuación, separados por espacios, por ejemplo: 3 51 52 63
 +
**Parámetro 2: Opcional, registrar operación
 +
***'s': la operación se registrará (usuario, ip, hora...) en el log.
 +
***'n': la operación no se registrará en el log, opción por defecto.
 +
::Ejemplo:
 +
3 51 52 63,s
 +
:: En este ejemplo, se inicializarán los controles 51, 52 y 63 y se anotará la operación en el registro de la aplicación.
 +
*Pares de campos: Si la operación se registra en el log (según el valor del parámetro 2), texto que aparecerá en el registro de la aplicación.
 +
::Ejemplo:
 +
  baja en tabla zona, código:#051, descripción:#052
 
*Si el usuario aprieta el botón Aceptar el control 1 guardará el valor 0, si aprieta el botón Cancelar, dicho valor será mayor que 0.
 
*Si el usuario aprieta el botón Aceptar el control 1 guardará el valor 0, si aprieta el botón Cancelar, dicho valor será mayor que 0.
*Ejemplo: 3 51 52 63,s
 
 
====g_list====
 
Se usa para rellenar una grid con los datos obtenidos la consulta SQL especificada. La grid puede ser la de la misma pantalla donde utilizamos la función o bien otra pantalla que especifiquemos.
 
*Uso: para rellenar la grid de la misma pantalla en que se usa la función.
 
*Parámetros función: Ninguno.
 
*Sentencia SQL: Sentencia SQL cuyo resultado queremos mostrar.
 
*Pares de campos o descripción del listado: Formato o descripción del listado. Para cada columna del select deberemos indicar el formato: 'N' para campos numéricos, 'E' para campos numéricos con separacion con punto en los millares (en este caso debemos tener en cuenta los puntos a la hora de calcular la extensión del campo en el listado), 'X' para campos alfanuméricos y 'V' para campos de longitud variable; y seguidamente la longitud a reservar para cada columna indicada con 2 o 3 dígitos, separando los campos con comas. Podemos jugar con la longitud para truncar los datos de una columna o ampliar el espacio de una columna para poder mostrar un título mas extenso.
 
 
Como todos los campos tienen que ir seguido de dos dígitos, para el formato 'V', que no tiene función alguna, por convenio y para evitar confusiones pondremos siempre 99.
 
 
En los campos que sean numéricos ('E' y 'V') tenemos la opción de ocultar los valores que sean 0. Lo indicaremos mediante minúscula, o sea con la letra del parámetro en minúscula:
 
e14,n10...
 
*Ejemplo:
 
**Sentencia SQL:
 
select cco_codi, cco_desc, cco_abierto, cco_descamp from cco
 
**Descripción del listado:
 
N06,X130,X07,e10,V99...
 
Uso de g_list para rellenar y mostar datos en una grid de una pantalla distinta a la pantalla en que se usa la función.
 
Parámetros función.
 
#Nombre de la pantalla a mostrar con el resultado de la senetencia select especificada
 
#Fijo, valor 033
 
#Incluir 1º columna con oid de la tabla principal de la select:
 
**'s': incluirla, eso mostrará el oid de la tabla principal.
 
**'n': no incluirla, eso borra el primer campo.
 
 
La primera columna del select se utiliza como identificador de la fila, debe contener un valor que identifique de forma univoca la fila, este valor se situa en en el campo 006 de la pantalla cada vez que el usuario clica en una linea de la grid. Con este valor podemos identificar el valor que ha seleccionado el usuario y actuar en consecuencia.
 
 
Si no se especifica este parámetro o bien especificamos una 's', la función inserta de forma automática en el resultado de la select, una primera columna con el oid de la 1ª tabla especificada en la sentencia select. Si queremos utilizar una columna distinta para identificar la fila que seleccione el usuario especificamos una 'n' en el 3er parámetro, en este caso la 1ª columna del select especificado actuará como identificador de la fila.
 
 
Enlaces.
 
Pares de campos a enlazar con la pantalla especificada en el apartado anterior. Por lo menos enlazaremos el campo 033 y el campo 006 para recuperar el resultado de la selección efectuada por el usuario sobre la grid mostrada.
 
Sentencia SQL
 
Sentencia SQL cuyo resultado queremos mostrar.
 
Pares de campos o descripción del listado
 
Formato o descripción del listado. Para cada columna del select deberemos indicar el formato: 'N' para campos numéricos o 'X' para campos alfanuméricos y la longitud a reservar para cada columna indicada con 2 dígitos. Podemos jugar con la longitud para truncar los datos de una columna o ampliar el espacio de una columna para poder mostrar un título mas extenso.
 
 
Ejemplo:
 
 
'''Parámetros función:''' dgsel 01,033
 
'''Enlaces:''' 006=006,033=033
 
'''Sentencia SQL:''' select trn_nom,trn_codi from transporte where trn_nom ilike '#052%' order by trn_nom
 
'''Descripción del listado:''' X20N08
 
 
 
  
 
====g_borrdoc====
 
====g_borrdoc====
Línea 89: Línea 61:
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**3: Inicializa todos los controles a excepción de los indicados, por ejemplo: 3,51,52,63
 
**3: Inicializa todos los controles a excepción de los indicados, por ejemplo: 3,51,52,63
 +
 +
====g_cal====
 +
Rellena una estructura de calendario con los días y semanas.
  
 
====g_consulta====
 
====g_consulta====
Línea 98: Línea 73:
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**3: Inicializa todos los controles a excepción de los indicados a continuación, separados por espacios, por ejemplo: 3 51 52 63
 
**3: Inicializa todos los controles a excepción de los indicados a continuación, separados por espacios, por ejemplo: 3 51 52 63
 +
 +
====g_crgimp====
 +
*Función que envía el resultado de un select al generador de informes para hacer un report.
 +
*Parámetros: 3 parámetros
 +
**1: Cabecera o detalle ("c" o "d"): indicamos si el resultado del select corresponde a la cabecera del impreso o corresponde a un detalle.
 +
**2: Write o Append ("w" o "a"): indicamos si creamos un nuevo impreso o añadimos a uno existente.
 +
**3: El tercer parámetro nos indica si ha habido errores en la base de datos, debe contener 0 o 1
 +
***0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.
 +
***1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.
 +
 +
*En sentencia SQL pondremos la sentencia que devuelva los datos que enviamos al impreso.
 +
select cac_ejer, cac_num, cac_fecha from abclcb where cac_num=#061 and cac_ejer=#060 and cac_alm=#059
 +
*En pares de campos pondremos el tipo de dato y tamaño de cada uno de los campos que mostramos con el select en el mismo orden. Para el ejemplo anterior sería:
 +
N02,N06,X10
  
 
====g_csv====
 
====g_csv====
 
Transmite al programa cliente la selección de datos actual en formato csv y el programa cliente abre automáticamente el fichero con la aplicación asociada a este tipo de datos, habitualmente Excel u Open Office.
 
Transmite al programa cliente la selección de datos actual en formato csv y el programa cliente abre automáticamente el fichero con la aplicación asociada a este tipo de datos, habitualmente Excel u Open Office.
 
*Parámetros función: Esta función no tiene parámetros
 
*Parámetros función: Esta función no tiene parámetros
 
+
 
 +
====g_dia_c====
 +
Pone el día seleccionado en la cabecera del calendario y el lunes correspondiente en la semana.
 +
 
 
====g_dupdoc====
 
====g_dupdoc====
 
*Se usa para ordenar al cliente que copie un documento como otro. El documento origen debe estar ya en la máquina cliente.
 
*Se usa para ordenar al cliente que copie un documento como otro. El documento origen debe estar ya en la máquina cliente.
 
*Parámetros de la función:
 
*Parámetros de la función:
*Referencia documento origen
+
**1: Referencia documento origen
*Versión documento origen
+
**2: Versión documento origen
*Tipo de documento
+
**3: Tipo de documento
*Referencia documento destino
+
**4: Referencia documento destino
*Versión documento destino
+
**5: Versión documento destino
  
 
====g_ejecuta====
 
====g_ejecuta====
Línea 129: Línea 121:
 
***'s': la operación se registrará (usuario, ip, hora...) en el log.  
 
***'s': la operación se registrará (usuario, ip, hora...) en el log.  
 
***'n': la operación no se registrará en el log, opción por defecto.
 
***'n': la operación no se registrará en el log, opción por defecto.
 +
*Sentencia SQL: Sentencia SQL a ejecutar.
 +
::Ejemplo:
 +
  insert into zona (zo_codi,zo_desc) values ('#051','#052')
 +
*Pares de campos: Si la operación se registra en el log (según el valor del parámetro 4), texto que aparecerá en el registro de la aplicación.
 +
::Ejemplo:
 +
  alta en tabla zona, código:#051, descripción:#052
 +
 +
====g_email====
 +
*Función que abre el gestor de correo con el mail, asunto y texto que se le indique desde la pantalla.
 +
*Parámetro:
 +
**Código de control dónde se guarda la información que necesita el gestor de correo. Previamente a llamar a [[Funciones#g_email|g_email]] se deberá hacer un [[Funciones#g_rellena|g_rellena]] de este control con una cadena con el mail, asunto y cuerpo del mensaje separado por pipes "|". Si no disponemos de asunto y cuerpo no hace falta ponerlos en blanco, si no que pasaremos solo el mail sin pipes.
 +
 +
====g_envdat====
 +
Envía los datos de un select del servidor a un archivo en el cliente.
 +
*Parámetros función:
 +
**1: (r,R,w,W) Una letra que indica el comportamiento, '''r''' sólo lectura, '''w''' lectura y escritura, '''R''' y '''W''' indican lo mismo, pero después se lanza la aplicación para abrir el fichero.
 +
**2: (s/n) Indica si debe preguntar al usuario donde guardar el fichero.
 +
**3: (nombre archivo) es el nombre con que se guardará el archivo. Se puede sustituir por un control, donde tenga el nombre del archivo guardado.
 +
 +
*Ejemplo:
 +
 +
R,n,graphic.svg
 +
w,s,#056
 +
 +
*Sentencia SQL:
 +
select ....
  
 
====g_envdoc====
 
====g_envdoc====
Línea 141: Línea 159:
 
**a: Formato RTF
 
**a: Formato RTF
 
**b: Formato texto plano
 
**b: Formato texto plano
 +
**c: Impresión directa a impresora Windows con funciones especificas Windows de Impresión
 +
**d: Impresión directa de texto a la impresora (tiquets TPV e impresoras de etiquetas
  
 
====g_exeapl====
 
====g_exeapl====
Línea 146: Línea 166:
 
**1,2: Los dos primeros son los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
 
**1,2: Los dos primeros son los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
 
**3: El control que guarda la extensión del archivo a ejecutar, para así sepa que aplicación ha de utilizar para realizar la acción.
 
**3: El control que guarda la extensión del archivo a ejecutar, para así sepa que aplicación ha de utilizar para realizar la acción.
 +
 +
====g_fijar====
 +
*Pone el oid del registro seleccionado en la grid
 +
**Parámetro 1: Indica el control que ha sido seleccionado, independientemenete de si lo ha clickado el usuario o no.
 +
*Devuelve el número de control pulsado en el campo 15
 +
 +
====g_foco====
 +
Coloca el foco en el control indicado en el parámetro.
 +
*Parámetro: El número de control que deseamos reciba el foco.
 +
 +
====g_grid====
 +
Muestra los datos del select especificado en la grid de la pantalla actual.
 +
 +
*Sentencia SQL:
 +
**Sentencia select de los datos a mostrar.
 +
 +
*Parámetros:
 +
**Identificar el registro por su oid: si: 's' o no: 'n'.<sup>''nota''</sup>
 +
 +
*Pares de campos:
 +
**Especificación del formato de cada una de las columnas del select especificado, ver [[Funciones#g_list|g_list]] para ver las opciones disponibles.
 +
 +
<sup>''nota''</sup> La primera columna del select se utiliza como identificador de la fila, debe contener un valor que identifique de forma univoca la fila, este valor se sitúa en el campo 006 de la pantalla cada vez que el usuario clica en una linea de la grid. Con este valor podemos identificar el valor que ha seleccionado el usuario y actuar en consecuencia.
 +
 +
Si especificamos una 's' o bien no se especifica este parámetro, la función inserta de forma automática en el resultado de la select, una primera columna con el oid de la 1ª tabla especificada en la sentencia select. Si queremos utilizar una columna distinta para identificar la fila que seleccione el usuario especificamos una 'n', en este caso la 1ª columna del select especificado actuará como identificador de la fila y no aparecerá en la grid.
  
 
====g_imprimir====
 
====g_imprimir====
Línea 152: Línea 197:
 
*2: Impresora. Indica en que impresora se ha de imprimir el impreso
 
*2: Impresora. Indica en que impresora se ha de imprimir el impreso
 
*3: Previsualizar. Indica si se ha de previsualizar el impreso.
 
*3: Previsualizar. Indica si se ha de previsualizar el impreso.
 +
*4: Opcional: S: Probar impreso (El programa cliente genera el impreso con un documento xml en uso). También puede especificarse uncampo de donde obtener el valor con la notación #nnn.
 +
 +
====g_list====
 +
Se usa para llamar a una pantalla rellenando la grid con el resultado de la sentencia select introducida y de acuerdo con los parámetros utilizados.
 +
 +
La setencia select, antes de ser ejecutada, se depurará eliminando las condiciones no especificadas, ver notación empleada para ello en la función [[Funciones#g_ejecuta|g_ejecuta]] por ejemplo.
 +
 +
Para cada columna del select deberemos indicar el formato: 'N' para campos numéricos, 'E' para campos numéricos con separación con punto en los millares (en este caso debemos tener en cuenta los puntos a la hora de calcular la extensión del campo en el listado), 'X' para campos alfanuméricos y 'V' para campos de longitud variable; y seguidamente la longitud a reservar para cada columna indicada con 2 o 3 dígitos, separando los campos con comas. Podemos jugar con la longitud para truncar los datos de una columna o ampliar el espacio de una columna para poder mostrar un título mas extenso.
 +
 +
En los campos que sean numéricos ('E' y 'N') tenemos la opción de ocultar los valores que sean 0. Lo indicaremos mediante minúscula, o sea con la letra del parámetro en minúscula:
 +
e14,n10...
 +
Como todos los campos tienen que ir seguido de dos dígitos, para el formato 'V', que no tiene función alguna, por convenio y para evitar confusiones pondremos siempre 99.
 +
 +
*Ejemplo:
 +
 +
Parámetros función.
 +
#'''Nombre de la pantalla''' a mostrar con el resultado de la sentencia select especificada .
 +
#'''Numero del control''' que se ejecutara nada mas cargar la pantalla.
 +
#'''Posición relativa''' a la pantalla que realiza la llamada. Si la lista se visualiza en una ventana, ésta se creara desplazada según el valor que indiquemos en este parámetro. Se indica en formato ''X-Y'' donde X e Y representan el desplazamiento en sus respectivas coordenadas. También se puede poner un campo alfanumérico con ese mismo valor para poder trabajar con el desde la programación. Si se omite el parámetro, la pantalla se mostrará sin desplazamiento. Un ejemplo de este caso es cuando se quiere mostrar una pantalla completa.
 +
#'''Incluir 1º columna''' con oid de la tabla principal del select <sup>''nota''</sup>:
 +
##'s': Identificará el registro por el oid de la tabla principal.
 +
##'n': Identificará el registro por el primer campo del select y este no aparecerá en la grid.
 +
 +
<sup>''nota''</sup> La primera columna del select se utiliza como identificador de la fila, debe contener un valor que identifique de forma univoca la fila, este valor se sitúa en el campo 006 de la pantalla cada vez que el usuario clica en una linea de la grid. Con este valor podemos identificar el valor que ha seleccionado el usuario y actuar en consecuencia.
 +
 +
Si especificamos una 's' o bien no se especifica este parámetro, la función inserta de forma automática en el resultado de la select, una primera columna con el oid de la 1ª tabla especificada en la sentencia select. Si queremos utilizar una columna distinta para identificar la fila que seleccione el usuario especificamos una 'n' en el 3er parámetro, en este caso la 1ª columna del select especificado actuará como identificador de la fila.
 +
 +
Ejemplo:
 +
 +
'''Parámetros función:''' dgsel 01,033,100-100,n
 +
'''Enlaces:''' 006=006,033=033
 +
'''Sentencia SQL:''' select trn_nom,trn_codi from transporte where trn_nom ilike '#052%' order by trn_nom
 +
'''Descripción del listado:''' X20N08
  
 
====g_llamar====
 
====g_llamar====
 
Enlaza con la pantalla especificada y opcionalmente ejecuta un control.
 
Enlaza con la pantalla especificada y opcionalmente ejecuta un control.
 
*Parámetros:
 
*Parámetros:
**Nombre de la pantalla a enlazar, sin comillas.
+
**'''Nombre de la pantalla a enlazar''', sin comillas.
**Núm de control a ejecutar. Si no se quiere ejecutar ningún control al inicio, omitimos este segundo parámetro
+
**'''Núm. de control a ejecutar'''. Si no se quiere ejecutar ningún control al inicio, omitimos este segundo parámetro dejándolo en blanco y continuando con los siguientes parámetros.
 
+
**'''Posición relativa''' a la pantalla que realiza la llamada. Si la pantalla que llamamos es una ventana, ésta se creara desplazada según el valor que indiquemos en este parámetro. Se indica en formato ''X-Y'' donde X e Y representan el desplazamiento en sus respectivas coordenadas. También se puede poner un campo alfanumérico con ese mismo valor para poder trabajar con el desde la programación.
*Enlaces: <br >En los enlaces indicaremos los campos que van a intercanviar datos con la pantalla llamada, sin comillas, con 3 dígitos y separados por comas, mediante los signos siguientes:  
+
Atención: El valor de la posición relativa  se informa a través del campo 12, eso quiere decir que hay que vigilar de no inicializarlo o cambiar su valor en la pantalla llamada.
 +
 +
*Enlaces: <br>En los enlaces indicaremos los campos que van a intercambiar datos con la pantalla llamada, sin comillas, con 3 dígitos y separados por comas, mediante los signos siguientes:  
 
**< : indica solo retorno.  
 
**< : indica solo retorno.  
 
**= : indica envío y retorno.  
 
**= : indica envío y retorno.  
Línea 167: Línea 247:
 
El el campo 52 de la pantalla origen recibirá el valor del campo 27 de la pantalla destino, pero el 27 no recibirá nada;
 
El el campo 52 de la pantalla origen recibirá el valor del campo 27 de la pantalla destino, pero el 27 no recibirá nada;
 
el campo 56 de origen y el 15 de destino se intercambiaran el contenido, tanto al ir, como al volver;
 
el campo 56 de origen y el 15 de destino se intercambiaran el contenido, tanto al ir, como al volver;
el campo 57 enviará la información al 67 al ir, pero al volver no recojerá ningún dato..  
+
el campo 57 enviará la información al 67 al ir, pero al volver no recogerá ningún dato..  
 
Si queremos que al salir de la página llamada se pasen también los datos
 
Si queremos que al salir de la página llamada se pasen también los datos
la pantalla deberá salir con un [[Funciones#g_aceptar|g_aceptar]], si por el contrario sale con un [[Funciones#g_salir|g_salir]]no se pasará ningún dato.
+
la pantalla deberá salir con un [[Funciones#g_aceptar|g_aceptar]], si por el contrario sale con un [[Funciones#g_salir|g_salir]] no se pasará ningún dato.
  
 
*Ejemplo:  
 
*Ejemplo:  
  g_llamar, Parámetros: h_personal,011
+
  g_llamar, Parámetros: dgg0102.1,026,300-400
 
+
====g_fijar====
+
*Pone el oid del registro seleccionado en la grid
+
**Par&aacutemetro 1: Indica el control que ha sido seleccionado, independientemenete de si
+
lo ha clickado el usuario o no.
+
====g_foco====
+
Coloca el foco en el control indicado en el parámetro.
+
*Parámetro: El número de control que deseamos reciba el foco.
+
  
 
====g_mens====
 
====g_mens====
 
*Permite mostrar un mensaje por pantalla para el usuario.
 
*Permite mostrar un mensaje por pantalla para el usuario.
 
*Esta función se llama con 4 parámetros, que son:
 
*Esta función se llama con 4 parámetros, que son:
**1: La pantalla que se quiere utilizar para mostrar el error, 10 dígitos alfanuméricos. <br >Valores posibles (msg0001, msg0002, msg0003... msg0008).
+
**1: La pantalla que se quiere utilizar para mostrar el error, hasta 10 dígitos alfanuméricos. <br >Por ejemplo: msg0001, msg0002, msg0003... msg0008.
**2: El código del error que quiere mostrarse, definido previamente en la tabla dgmens. 10 dígitos alfanumérico.
+
**2: El código del error que quiere mostrarse, definido previamente en la tabla dgmens. Podemos definir nuevos mensajes accediendo a [[Gestión de mensajes de programación]]. También podemos especificar un identificador de control con la notación #nnn, desde donde se tomará el código de error.  
**3: Una referencia identificadora del error, 6 dígitos alfanuméricos.  
+
**3: Una referencia identificadora del error, 6 dígitos alfanuméricos (Opcional).  
**4: Un campo de la pantalla cuyo contenido quiera mostrarse en el mensaje, 3 dígitos numéricos.
+
**4: Un campo de la pantalla cuyo contenido quiera mostrarse como información adicional en el mensaje, 3 dígitos numéricos (Opcional).
***La pantalla que aparece con el mensaje siempre contendrá uno o dos botones (un “Aceptar” y un “Cancelar”). Si se clicka en aceptar la función devolverá un 0 en el campo 1 (estado), mientras que si se clicka en cancelar devolverá un 1.  
+
* Aunque no especifiquemos los carácteres opcionales, debemos mantener las comas separadoras de los mismos.
*Los dos primero parámetros son obligatorios y deben existir, teniendo en cuenta de intercalar cuatro espacios entre el código de pantalla y el código de formato, si quiere omitirse la referencia pero en cambio se quiere poner el cuarto parámetro, deberá hacerse de la siguiente forma, por ejemplo:
+
*La pantalla que aparece con el mensaje siempre contendrá uno o dos botones (un “Aceptar” y un “Cancelar”). Si se clicka el primero la función devolverá un 0 en el campo 1 (estado), mientras que si se clicka el segundo devolverá un 1.  
  msg0001, msg_err, , 53
+
* Podemos utilizar una pantalla de error con un botón de ayuda, por ejemplo la [[#msg0008a | msg0008a]]. El control de ayuda (número 21) contendrá el código del mensaje de error para poder enlazar a la página de ayuda referida al error que se está mostrando.
 
+
 
 +
 
 +
Ejemplos.
 +
 
 +
msg0001,msg_err,001,053
 +
  msg0001,msg_err,,053
 +
msg0001,#066,,067
 +
 
Las pantallas con las que se muestran los errores se pueden crear o cogerlas ya predeterminadas:
 
Las pantallas con las que se muestran los errores se pueden crear o cogerlas ya predeterminadas:
  
Línea 198: Línea 277:
 
[[Imagen:msg_0002.png|frame|none|msg0002]]
 
[[Imagen:msg_0002.png|frame|none|msg0002]]
 
[[Imagen:msg_0003.png|frame|none|msg0003]]
 
[[Imagen:msg_0003.png|frame|none|msg0003]]
 +
[[Imagen:msg_0010.png|frame|none|msg0010]]
 +
[[Imagen:msg0007.png|frame|none|msg0007]]
 +
 
[[Imagen:msg_0004.png|frame|none|msg4 01]]
 
[[Imagen:msg_0004.png|frame|none|msg4 01]]
 
[[Imagen:msg_0005.png|frame|none|msg5 01]]
 
[[Imagen:msg_0005.png|frame|none|msg5 01]]
[[Imagen:msg_0006.png|frame|none|msg6 01]]
+
[[Imagen:msg_0006.png|frame|none|msg0006]]
 
[[Imagen:msg_0007.png|frame|none|msg7 01]]
 
[[Imagen:msg_0007.png|frame|none|msg7 01]]
 
[[Imagen:msg_0009.png|frame|none|msg9 01]]
 
[[Imagen:msg_0009.png|frame|none|msg9 01]]
  
 
+
<span id="msg0008a">Pantalla msg0008a</span>
 +
[[Imagen:msg0008a.png|frame|none|msg9 01]]
 +
 
 
====g_modificar====
 
====g_modificar====
 
*Pone el estado 'Modificar' estableciendo los atributos de los campos para ese estado.
 
*Pone el estado 'Modificar' estableciendo los atributos de los campos para ese estado.
Línea 215: Línea 299:
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**2: Inicializa los controles mayores que 50 a su valor por defecto.
 
**3: Inicializa todos los controles a excepción de los indicados, separados por espacios, por ejemplo: 3 51 52 63
 
**3: Inicializa todos los controles a excepción de los indicados, separados por espacios, por ejemplo: 3 51 52 63
 +
 +
====g_nomfit====
 +
*Esta función devuelve un nombre de archivo único a partir de una raiz.
 +
*Parámetros: 1
 +
**1: Número de control donde se pasa la raíz del nombre de archivo y donde será devuelto el nombre complementado con 6 dígitos que lo hacen único.
  
 
====g_nuevo====
 
====g_nuevo====
Línea 228: Línea 317:
  
 
====g_rebdoc====
 
====g_rebdoc====
Esta función envía una copia del archivo referenciado en pantalla desde el servidor al ordenador local.  
+
Esta función envía una copia del documento referenciado en pantalla desde el servidor al ordenador local.  
 
Para ello se le pasan cuatro parámetros: el modo de apertura del archivo, los controles que identifican este archivo y la extensión del archivo.
 
Para ello se le pasan cuatro parámetros: el modo de apertura del archivo, los controles que identifican este archivo y la extensión del archivo.
*1: Tiene cuatro posibles valores: 'r','w','R','W'. En los dos primeros casos se indica como vamos a copiar el archivo (solo lectura o escritura, respectivamente). Los dos casos siguientes indican lo mismo, pero además abriendo el archivo con la aplicación correspondiente.
+
*1: Tiene cuatro posibles valores: ' r ',' w ',' R ',' W '. En los dos primeros casos se indica como vamos a copiar el archivo (solo lectura o escritura, respectivamente). Los dos casos siguientes indican lo mismo, pero además abriendo el archivo con la aplicación correspondiente.
*2, 3: Los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
+
*2, 3: Los controles que identifican este archivo como único (referencia, versión). Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
 
*4: La extensión del archivo a copiar, que utilizará el programa para saber con que aplicación se ha de abrir este archivo.
 
*4: La extensión del archivo a copiar, que utilizará el programa para saber con que aplicación se ha de abrir este archivo.
 +
 +
====l_refresca====
 +
*Se ejecuta siempre detrás de cualquier modificación en la base de datos (alta, baja, modificación de un registro) para que este cambio salga reflejado en la grid.
 +
*Contiene dos parámetros: el control que queremos que se ejecute, y el número de orden.
 +
*Parámetros: 2 parámetros y son obligatorios.
 +
**1: El control que queremos que se ejecute, habitualmente el control 10 que es el que hace la búsqueda y rellena la grid.
 +
**2: El número de orden que corresponde a la función que queremos que se ejecute en el control referido.
  
 
====g_rellena====
 
====g_rellena====
Línea 243: Línea 339:
 
***0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.  
 
***0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.  
 
***1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.  
 
***1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.  
***2: No avisa nunca y devuelve un 0 en el control de status, control 1, como si no hubiese habido ningún error.
 
***3: No avisa nunca pero devuelve un 1 o un 2 en el control de status, control 1, dependiendo de si el error es que no hay filas o si es un error de base de datos.
 
 
**Segundo parámetro:  
 
**Segundo parámetro:  
 
***Número de control donde se almacenaran el número de filas afectadas por el select de la función, si no se desea guardarlas en ningún control introducir el valor 0. Su aplicación tiene utilidad en la programación interna  
 
***Número de control donde se almacenaran el número de filas afectadas por el select de la función, si no se desea guardarlas en ningún control introducir el valor 0. Su aplicación tiene utilidad en la programación interna  
Línea 250: Línea 344:
 
***'s': La sentencia sql se depurará antes de ejecutarse. Por ejemplo en sentencias selects se eliminan las condiciones de la clausula where de los campos que no tienen ningún valor  
 
***'s': La sentencia sql se depurará antes de ejecutarse. Por ejemplo en sentencias selects se eliminan las condiciones de la clausula where de los campos que no tienen ningún valor  
 
***'n': La sentencia sql se ejecutará sin ningún cambio.  
 
***'n': La sentencia sql se ejecutará sin ningún cambio.  
 
+
::Ejemplo:  
*Ejemplo: 1,99<br >En este ejemplo se avisa si hay un error de base de datos y almacena el número de filas afectadas por la sentencia select de la función en el control 99.
+
1,99
 +
::En este ejemplo se avisa si hay un error de base de datos y almacena el número de filas afectadas por la sentencia select de la función en el control 99.
 
*Sentencia SQL: Sentencia a ejecutar, por ejemplo:  
 
*Sentencia SQL: Sentencia a ejecutar, por ejemplo:  
select fmh_codi,fmh_desc from h_famhor where oid=#006  
+
select fmh_codi,fmh_desc from h_famhor where oid=#006  
 
*Pares de campos: Controles a rellenar con los datos de la select, por ejemplo:
 
*Pares de campos: Controles a rellenar con los datos de la select, por ejemplo:
 
  001063,002064
 
  001063,002064
 
Nota: Esta función no puede utilizarse para rellenar el contenido del campo donde está definida.
 
Nota: Esta función no puede utilizarse para rellenar el contenido del campo donde está definida.
 +
 
====g_salir====
 
====g_salir====
 
*Sale de la pantalla devolviendo un 1 en el estatus.
 
*Sale de la pantalla devolviendo un 1 en el estatus.
Línea 273: Línea 369:
 
====g_setatr====
 
====g_setatr====
 
*Se usa para cambiar un atributo en tiempo de ejecución a uno o varios controles. La función se asigna a cualquier control de la pantalla.
 
*Se usa para cambiar un atributo en tiempo de ejecución a uno o varios controles. La función se asigna a cualquier control de la pantalla.
*Parámetros de la función: El primer parámetro será un digito, un 0 o un 1 que indicará si el atributo es dinámico o estático respectivamente, es decir, si cuando cambie el estado de la pantalla (altas, consultas, etc...), el atributo se modificará con su valor correspondiente o mantendrá el que le indiquemos en la función. A continuación se introducen tantos parámetros como controles queramos modificar. Para cada control escribimos el número de control de 3 dígitos, el signo igual y el atributo de 2 dígitos, los parámetros se separan por comas. Si tenemos muchos campos que tendrán el mismo atributo podemos agruparlos mediante guiones.  
+
*Parámetros:
 +
**1:
 +
***0: Indica que el atríbuto es dinámico es decir, cuando cambie el estado de la pantalla (altas, consultas, etc...), el atributo se modificará con su valor correspondiente o mantendrá el que le indiquemos en la función.
 +
***1:  Indica que el atríbuto es estático es decir no cambiará en función del estado de la pantalla como en el caso anterior.
 +
**Siguientes: A continuación se introducen tantos parámetros adicionales como controles queramos modificar. Para cada control escribimos el número de control de 3 dígitos, el signo igual y el atributo de 2 dígitos, los parámetros se separan por comas. Si tenemos muchos campos que tendrán el mismo atributo podemos agruparlos mediante guiones.  
 
*Ejemplo:  
 
*Ejemplo:  
 
  1,051=10,052-056=20,053-062=00  
 
  1,051=10,052-056=20,053-062=00  
Línea 281: Línea 381:
 
Se usa principalmente en la búsqueda avanzada. Su función es sustituir el valor del control que se le pasa en “Páram. Func.” por los valores de los controles contenidos en “Sentencia SQL”, separados por comas. De esta forma si después has de pasar todos estos valores, los tendrás todos contenidos dentro de un único control.
 
Se usa principalmente en la búsqueda avanzada. Su función es sustituir el valor del control que se le pasa en “Páram. Func.” por los valores de los controles contenidos en “Sentencia SQL”, separados por comas. De esta forma si después has de pasar todos estos valores, los tendrás todos contenidos dentro de un único control.
  
====l_refresca====
+
====g_transfit====
*Se ejecuta siempre detrás de cualquier modificación en la base de datos (alta, baja, modificación de un registro) para que este cambio salga reflejado en la grid.
+
Esta función transmite un fichero desde el servidor al ordenador local. Para ello se le pasan dos parámetros: el modo de apertura del archivo y el nombre del fichero.
*Contiene dos parámetros: el control que queremos que se ejecute, y el número de orden.
+
Para crear un fichero temporal con nombre único ver la función g_nomfit.
*Parámetros: 2 parámetros y son obligatorios.
+
*Parámetros: 2
**1: El control que queremos que se ejecute, habitualmente el control 10 que es el que hace la búsqueda y rellena la grid.
+
**1: Tiene cuatro posibles valores: ' r ',' w ',' R ',' W '. En los dos primeros casos se indica como vamos a copiar el archivo (solo lectura o escritura, respectivamente). Los dos casos siguientes indican lo mismo, pero además abriendo el archivo con la aplicación correspondiente.
**2: El número de orden que corresponde a la función que queremos que se ejecute en el control referido.
+
**2: El nombre del archivo a enviar o el campo que lo contiene(#134).
 +
 +
*Ejemplos:
 +
W, nombre_fichero.csv
 +
W, #134
 +
 
 +
 
  
====g_crgimp====
 
*Función que envía el resultado de un select al generador de informes para hacer un report.
 
*Parámetros: 3 parámetros
 
**1: Cabecera o detalle ("c" o "d"): indicamos si el resultado del select corresponde a la cabecera del impreso o corresponde a un detalle.
 
**2: Write o Append ("w" o "a"): indicamos si creamos un nuevo impreso o añadimos a uno existente.
 
**3: El tercer parámetro nos indica si ha habido errores en la base de datos, debe contener 0, 1 o 2
 
***0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.
 
***1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.
 
***2: No avisa nunca y devuelve un 0 en el control de status, control 1, como si no hubiese habido ningún error.
 
  
*En sentencia SQL pondremos la sentencia que devuelva los datos que enviamos al impreso.
 
select cac_ejer, cac_num, cac_fecha from abclcb where cac_num=#061 and cac_ejer=#060 and cac_alm=#059
 
*En pares de campos pondremos el tipo de dato y tamaño de cada uno de los campos que mostramos con el select en el mismo orden. Para el ejemplo anterior sería:
 
N02,N06,X10
 
====g_email====
 
*Función que abre el gestor de correo con el mail, asunto y texto que se le indique desde la pantalla.
 
*Parámetro:
 
**Código de control dónde se guarda la información que necesita el gestor de correo. Previamente a llamar a [[Funciones#g_email|g_email]] se deberá hacer un [[Funciones#g_rellena|g_rellena]] de este control con una cadena con el mail, asunto y cuerpo del mensaje separado por pipes "|". Si no disponemos de asunto y cuerpo no hace falta ponerlos en blanco, si no que pasaremos solo el mail sin pipes.
 
  
 
[[Categoría:desarrolladores]]
 
[[Categoría:desarrolladores]]

Revisión actual del 11:39 22 nov 2019

Funciones Valores de entorno En las funciones pueden utilizarse los siguientes valores de entorno:

  • &$idi : Idioma de la sesión.
  • &$ipn: Ip de la sesión.
  • &$usu: Código de usuario conectado.
  • &$fecha: Fecha actual.
  • &$fecha1m: Fecha de primero de mes.
  • &$fecha1a: Fecha de primero de año.
  • &$emp: Cuenta, nombre de la base de datos.
  • &$pid: pid proceso del cliente abierto.

Referencias a controles En los campos de sentencia SQL y parámetros de la función, podemos hacer referencia al contenido de los campos de la pantalla indicando el número de contorl (3 dígitos) precedido por #. De esta manera se substituirá el contenido del campo indicado por el conjunto #XXX.

Ejemplos:

select * from abtdt where doid=#006;
msg0003 ,#078, ref001, 101 

g_aceptar

  • Sale de la pantalla devolviendo un 0 en el estatus.
  • Si se han utilizado enlaces, devuelve los campos enlazados actualizados a la pantalla anterior.

g_borrar

  • Pide confirmación del borrado de la fila
  • Ejecuta la sentencia DELETE especificada en el campo sql.
  • Después se ejecuta un g_consulta (poner a modo consulta) de cabecera y detalle que coge los parámetros indicados al g_borrar
  • Parámetros:
    • Parámetro 1:
      • 0: No modifica ningún control.
      • 1: Inicializa todos los controles a su valor por defecto
      • 2: Inicializa los controles mayores que 50 a su valor por defecto.
      • 3: Inicializa todos los controles a excepción de los indicados a continuación, separados por espacios, por ejemplo: 3 51 52 63
    • Parámetro 2: Opcional, registrar operación
      • 's': la operación se registrará (usuario, ip, hora...) en el log.
      • 'n': la operación no se registrará en el log, opción por defecto.
Ejemplo:
3 51 52 63,s
En este ejemplo, se inicializarán los controles 51, 52 y 63 y se anotará la operación en el registro de la aplicación.
  • Pares de campos: Si la operación se registra en el log (según el valor del parámetro 2), texto que aparecerá en el registro de la aplicación.
Ejemplo:
 baja en tabla zona, código:#051, descripción:#052
  • Si el usuario aprieta el botón Aceptar el control 1 guardará el valor 0, si aprieta el botón Cancelar, dicho valor será mayor que 0.

g_borrdoc

Borra del ordenador local el archivo indicado mediante tres parámetros:

  • 1,2: Los dos primeros son los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
  • 3: El control que guardar la extensión del archivo a eliminar.

g_buscar

  • Ejecuta el select especificado en el SQL.
  • Rellena los campos de la pantalla en función de los pares de campos.
  • Lanza un g_consulta pasándole los parámetros especificados.
  • Si no recibe ningún parámetro se comporta como si hubiera recibido un 0.
  • Parámetros:
    • 0: No modifica ningún control.
    • 1: Inicializa todos los controles a su valor por defecto
    • 2: Inicializa los controles mayores que 50 a su valor por defecto.
    • 3: Inicializa todos los controles a excepción de los indicados, por ejemplo: 3,51,52,63

g_cal

Rellena una estructura de calendario con los días y semanas.

g_consulta

  • Pone la pantalla en modo consulta
  • Inicializa los controles de acuerdo con los parámetros que recibe
  • Parámetros:
    • 0: No modifica ningún control.
    • 1: Inicializa todos los controles a su valor por defecto
    • 2: Inicializa los controles mayores que 50 a su valor por defecto.
    • 3: Inicializa todos los controles a excepción de los indicados a continuación, separados por espacios, por ejemplo: 3 51 52 63

g_crgimp

  • Función que envía el resultado de un select al generador de informes para hacer un report.
  • Parámetros: 3 parámetros
    • 1: Cabecera o detalle ("c" o "d"): indicamos si el resultado del select corresponde a la cabecera del impreso o corresponde a un detalle.
    • 2: Write o Append ("w" o "a"): indicamos si creamos un nuevo impreso o añadimos a uno existente.
    • 3: El tercer parámetro nos indica si ha habido errores en la base de datos, debe contener 0 o 1
      • 0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.
      • 1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.
  • En sentencia SQL pondremos la sentencia que devuelva los datos que enviamos al impreso.

select cac_ejer, cac_num, cac_fecha from abclcb where cac_num=#061 and cac_ejer=#060 and cac_alm=#059

  • En pares de campos pondremos el tipo de dato y tamaño de cada uno de los campos que mostramos con el select en el mismo orden. Para el ejemplo anterior sería:
N02,N06,X10

g_csv

Transmite al programa cliente la selección de datos actual en formato csv y el programa cliente abre automáticamente el fichero con la aplicación asociada a este tipo de datos, habitualmente Excel u Open Office.

  • Parámetros función: Esta función no tiene parámetros

g_dia_c

Pone el día seleccionado en la cabecera del calendario y el lunes correspondiente en la semana.

g_dupdoc

  • Se usa para ordenar al cliente que copie un documento como otro. El documento origen debe estar ya en la máquina cliente.
  • Parámetros de la función:
    • 1: Referencia documento origen
    • 2: Versión documento origen
    • 3: Tipo de documento
    • 4: Referencia documento destino
    • 5: Versión documento destino

g_ejecuta

  • Ejecuta la sentencia sql especificada.
  • Número de parámetros: 3
    • Parámetro 1:
      • 0: Da error si no hay filas o si hay un error devolviendo un 1 en el primer caso o un 2 en el segundo en el control de status, control 1.
        Podemos capturar el valor dentro del código de programación mediante un campo numérico, por ejemplo:
stat numeric(2,0)@1;
      • 1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.
      • 2: No avisa nunca y devuelve un 0 en el control de status, control 1, como si no hubiese habido ningún error.
      • 3: No avisa nunca pero devuelve un 1 o un 2 en el control de status, control 1, dependiendo de si el error es que no hay filas o si es un error de base de datos.
    • Parámetro 2:
      • 's': La sentencia sql se depurará antes de ejecutarse. Por ejemplo en sentencias selects se eliminan las condiciones de la clausula where de los campos que no tienen ningún valor
      • 'n': La sentencia sql se ejecutará sin ningún cambio.
    • Parámetro 3:
      • Número de control donde se almacenaran el número de filas afectadas por el select de la función, si no se desea guardarlas en ningún control introducir el valor 0. Su aplicación tiene utilidad en la programación interna.
    • Parámetro 4:
      • 's': la operación se registrará (usuario, ip, hora...) en el log.
      • 'n': la operación no se registrará en el log, opción por defecto.
  • Sentencia SQL: Sentencia SQL a ejecutar.
Ejemplo:
 insert into zona (zo_codi,zo_desc) values ('#051','#052')
  • Pares de campos: Si la operación se registra en el log (según el valor del parámetro 4), texto que aparecerá en el registro de la aplicación.
Ejemplo:
 alta en tabla zona, código:#051, descripción:#052

g_email

  • Función que abre el gestor de correo con el mail, asunto y texto que se le indique desde la pantalla.
  • Parámetro:
    • Código de control dónde se guarda la información que necesita el gestor de correo. Previamente a llamar a g_email se deberá hacer un g_rellena de este control con una cadena con el mail, asunto y cuerpo del mensaje separado por pipes "|". Si no disponemos de asunto y cuerpo no hace falta ponerlos en blanco, si no que pasaremos solo el mail sin pipes.

g_envdat

Envía los datos de un select del servidor a un archivo en el cliente.

  • Parámetros función:
    • 1: (r,R,w,W) Una letra que indica el comportamiento, r sólo lectura, w lectura y escritura, R y W indican lo mismo, pero después se lanza la aplicación para abrir el fichero.
    • 2: (s/n) Indica si debe preguntar al usuario donde guardar el fichero.
    • 3: (nombre archivo) es el nombre con que se guardará el archivo. Se puede sustituir por un control, donde tenga el nombre del archivo guardado.
  • Ejemplo:
R,n,graphic.svg
w,s,#056
  • Sentencia SQL:
select ....

g_envdoc

Envía un documento desde el ordenador cliente al servidor. En el servidor mira cual es la versión actual y le cambia el nombre aumentando en uno el número de versión.

  • Parámetros función:
    • 1,2: Los dos primeros son los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
    • 3: El control que guarda la extensión del archivo, para poder completar el nombre.

g_envfit

Transmite al programa cliente la selección de datos actual. El cliente transforma el fichero al formato especificado en Parámetros Función y abre el fichero para su consulta o edición.

  • Parámetros función:
    • a: Formato RTF
    • b: Formato texto plano
    • c: Impresión directa a impresora Windows con funciones especificas Windows de Impresión
    • d: Impresión directa de texto a la impresora (tiquets TPV e impresoras de etiquetas

g_exeapl

  • Ejecuta el archivo indicado mediante tres parámetros:
    • 1,2: Los dos primeros son los controles que identifican este archivo como único. Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
    • 3: El control que guarda la extensión del archivo a ejecutar, para así sepa que aplicación ha de utilizar para realizar la acción.

g_fijar

  • Pone el oid del registro seleccionado en la grid
    • Parámetro 1: Indica el control que ha sido seleccionado, independientemenete de si lo ha clickado el usuario o no.
  • Devuelve el número de control pulsado en el campo 15

g_foco

Coloca el foco en el control indicado en el parámetro.

  • Parámetro: El número de control que deseamos reciba el foco.

g_grid

Muestra los datos del select especificado en la grid de la pantalla actual.

  • Sentencia SQL:
    • Sentencia select de los datos a mostrar.
  • Parámetros:
    • Identificar el registro por su oid: si: 's' o no: 'n'.nota
  • Pares de campos:
    • Especificación del formato de cada una de las columnas del select especificado, ver g_list para ver las opciones disponibles.

nota La primera columna del select se utiliza como identificador de la fila, debe contener un valor que identifique de forma univoca la fila, este valor se sitúa en el campo 006 de la pantalla cada vez que el usuario clica en una linea de la grid. Con este valor podemos identificar el valor que ha seleccionado el usuario y actuar en consecuencia.

Si especificamos una 's' o bien no se especifica este parámetro, la función inserta de forma automática en el resultado de la select, una primera columna con el oid de la 1ª tabla especificada en la sentencia select. Si queremos utilizar una columna distinta para identificar la fila que seleccione el usuario especificamos una 'n', en este caso la 1ª columna del select especificado actuará como identificador de la fila y no aparecerá en la grid.

g_imprimir

Manda el impreso en cuestión a imprimir en el formato y en la impresora especificados mediante los parámetros:

  • 1: Formato. Indica el formato del impreso ha imprimir.
  • 2: Impresora. Indica en que impresora se ha de imprimir el impreso
  • 3: Previsualizar. Indica si se ha de previsualizar el impreso.
  • 4: Opcional: S: Probar impreso (El programa cliente genera el impreso con un documento xml en uso). También puede especificarse uncampo de donde obtener el valor con la notación #nnn.

g_list

Se usa para llamar a una pantalla rellenando la grid con el resultado de la sentencia select introducida y de acuerdo con los parámetros utilizados.

La setencia select, antes de ser ejecutada, se depurará eliminando las condiciones no especificadas, ver notación empleada para ello en la función g_ejecuta por ejemplo.

Para cada columna del select deberemos indicar el formato: 'N' para campos numéricos, 'E' para campos numéricos con separación con punto en los millares (en este caso debemos tener en cuenta los puntos a la hora de calcular la extensión del campo en el listado), 'X' para campos alfanuméricos y 'V' para campos de longitud variable; y seguidamente la longitud a reservar para cada columna indicada con 2 o 3 dígitos, separando los campos con comas. Podemos jugar con la longitud para truncar los datos de una columna o ampliar el espacio de una columna para poder mostrar un título mas extenso.

En los campos que sean numéricos ('E' y 'N') tenemos la opción de ocultar los valores que sean 0. Lo indicaremos mediante minúscula, o sea con la letra del parámetro en minúscula:

e14,n10...

Como todos los campos tienen que ir seguido de dos dígitos, para el formato 'V', que no tiene función alguna, por convenio y para evitar confusiones pondremos siempre 99.

  • Ejemplo:

Parámetros función.

  1. Nombre de la pantalla a mostrar con el resultado de la sentencia select especificada .
  2. Numero del control que se ejecutara nada mas cargar la pantalla.
  3. Posición relativa a la pantalla que realiza la llamada. Si la lista se visualiza en una ventana, ésta se creara desplazada según el valor que indiquemos en este parámetro. Se indica en formato X-Y donde X e Y representan el desplazamiento en sus respectivas coordenadas. También se puede poner un campo alfanumérico con ese mismo valor para poder trabajar con el desde la programación. Si se omite el parámetro, la pantalla se mostrará sin desplazamiento. Un ejemplo de este caso es cuando se quiere mostrar una pantalla completa.
  4. Incluir 1º columna con oid de la tabla principal del select nota:
    1. 's': Identificará el registro por el oid de la tabla principal.
    2. 'n': Identificará el registro por el primer campo del select y este no aparecerá en la grid.

nota La primera columna del select se utiliza como identificador de la fila, debe contener un valor que identifique de forma univoca la fila, este valor se sitúa en el campo 006 de la pantalla cada vez que el usuario clica en una linea de la grid. Con este valor podemos identificar el valor que ha seleccionado el usuario y actuar en consecuencia.

Si especificamos una 's' o bien no se especifica este parámetro, la función inserta de forma automática en el resultado de la select, una primera columna con el oid de la 1ª tabla especificada en la sentencia select. Si queremos utilizar una columna distinta para identificar la fila que seleccione el usuario especificamos una 'n' en el 3er parámetro, en este caso la 1ª columna del select especificado actuará como identificador de la fila.

Ejemplo:

Parámetros función: dgsel 01,033,100-100,n
Enlaces: 006=006,033=033
Sentencia SQL: select trn_nom,trn_codi from transporte where trn_nom ilike '#052%' order by trn_nom
Descripción del listado: X20N08

g_llamar

Enlaza con la pantalla especificada y opcionalmente ejecuta un control.

  • Parámetros:
    • Nombre de la pantalla a enlazar, sin comillas.
    • Núm. de control a ejecutar. Si no se quiere ejecutar ningún control al inicio, omitimos este segundo parámetro dejándolo en blanco y continuando con los siguientes parámetros.
    • Posición relativa a la pantalla que realiza la llamada. Si la pantalla que llamamos es una ventana, ésta se creara desplazada según el valor que indiquemos en este parámetro. Se indica en formato X-Y donde X e Y representan el desplazamiento en sus respectivas coordenadas. También se puede poner un campo alfanumérico con ese mismo valor para poder trabajar con el desde la programación.

Atención: El valor de la posición relativa se informa a través del campo 12, eso quiere decir que hay que vigilar de no inicializarlo o cambiar su valor en la pantalla llamada.

  • Enlaces:
    En los enlaces indicaremos los campos que van a intercambiar datos con la pantalla llamada, sin comillas, con 3 dígitos y separados por comas, mediante los signos siguientes:
    • < : indica solo retorno.
    • = : indica envío y retorno.
    • > : indica solo envío.
    • Ejemplo:
052<027,056=015, 057>067 

El el campo 52 de la pantalla origen recibirá el valor del campo 27 de la pantalla destino, pero el 27 no recibirá nada; el campo 56 de origen y el 15 de destino se intercambiaran el contenido, tanto al ir, como al volver; el campo 57 enviará la información al 67 al ir, pero al volver no recogerá ningún dato.. Si queremos que al salir de la página llamada se pasen también los datos la pantalla deberá salir con un g_aceptar, si por el contrario sale con un g_salir no se pasará ningún dato.

  • Ejemplo:
g_llamar, Parámetros: dgg0102.1,026,300-400

g_mens

  • Permite mostrar un mensaje por pantalla para el usuario.
  • Esta función se llama con 4 parámetros, que son:
    • 1: La pantalla que se quiere utilizar para mostrar el error, hasta 10 dígitos alfanuméricos.
      Por ejemplo: msg0001, msg0002, msg0003... msg0008.
    • 2: El código del error que quiere mostrarse, definido previamente en la tabla dgmens. Podemos definir nuevos mensajes accediendo a Gestión de mensajes de programación. También podemos especificar un identificador de control con la notación #nnn, desde donde se tomará el código de error.
    • 3: Una referencia identificadora del error, 6 dígitos alfanuméricos (Opcional).
    • 4: Un campo de la pantalla cuyo contenido quiera mostrarse como información adicional en el mensaje, 3 dígitos numéricos (Opcional).
  • Aunque no especifiquemos los carácteres opcionales, debemos mantener las comas separadoras de los mismos.
  • La pantalla que aparece con el mensaje siempre contendrá uno o dos botones (un “Aceptar” y un “Cancelar”). Si se clicka el primero la función devolverá un 0 en el campo 1 (estado), mientras que si se clicka el segundo devolverá un 1.
  • Podemos utilizar una pantalla de error con un botón de ayuda, por ejemplo la msg0008a. El control de ayuda (número 21) contendrá el código del mensaje de error para poder enlazar a la página de ayuda referida al error que se está mostrando.


Ejemplos.

msg0001,msg_err,001,053
msg0001,msg_err,,053
msg0001,#066,,067

Las pantallas con las que se muestran los errores se pueden crear o cogerlas ya predeterminadas:

msg0001
msg0002
msg0003
msg0010
msg0007
msg4 01
msg5 01
msg0006
msg7 01
msg9 01

Pantalla msg0008a

msg9 01

g_modificar

  • Pone el estado 'Modificar' estableciendo los atributos de los campos para ese estado.
  • Sentencia sql y pares de campos, existen dos opciones:
    • Introducir una sentencia select específica (normalmente para bloquear el registro), indicando también los pares de campos que debe rellenar
    • Dejar la sentencia select en blanco, en ese caso por programación hay que ejecutar previamente el control 36 (exeb(36)) para refrescar los datos que se vayan a modificar.
  • Parámetros:
    • 0: No modifica ningún control.
    • 1: Inicializa todos los controles a su valor por defecto.
    • 2: Inicializa los controles mayores que 50 a su valor por defecto.
    • 3: Inicializa todos los controles a excepción de los indicados, separados por espacios, por ejemplo: 3 51 52 63

g_nomfit

  • Esta función devuelve un nombre de archivo único a partir de una raiz.
  • Parámetros: 1
    • 1: Número de control donde se pasa la raíz del nombre de archivo y donde será devuelto el nombre complementado con 6 dígitos que lo hacen único.

g_nuevo

  • Pone en estado de altas
  • Establece los atributos correspondientes al estado de altas.
  • Inicializa los campos de acuerdo con sus valores por defecto en función de los parámetros recibidos.
  • Si no recibe ningún parámetro se comporta como si hubiera recibido un 1.
  • Parámetros:
    • 0: No modifica ningún control.
    • 1: Inicializa todos los controles a su valor por defecto.
    • 2: Inicializa los controles mayores que 50 a su valor por defecto.
    • 3: Inicializa todos los controles a su valor por defecto, a excepción de los indicados, separados por espacios, por ejemplo: 3 51 52 63

g_rebdoc

Esta función envía una copia del documento referenciado en pantalla desde el servidor al ordenador local. Para ello se le pasan cuatro parámetros: el modo de apertura del archivo, los controles que identifican este archivo y la extensión del archivo.

  • 1: Tiene cuatro posibles valores: ' r ',' w ',' R ',' W '. En los dos primeros casos se indica como vamos a copiar el archivo (solo lectura o escritura, respectivamente). Los dos casos siguientes indican lo mismo, pero además abriendo el archivo con la aplicación correspondiente.
  • 2, 3: Los controles que identifican este archivo como único (referencia, versión). Si el segundo no es necesario dejaremos el parámetro en blanco pero sin obviar las comas.
  • 4: La extensión del archivo a copiar, que utilizará el programa para saber con que aplicación se ha de abrir este archivo.

l_refresca

  • Se ejecuta siempre detrás de cualquier modificación en la base de datos (alta, baja, modificación de un registro) para que este cambio salga reflejado en la grid.
  • Contiene dos parámetros: el control que queremos que se ejecute, y el número de orden.
  • Parámetros: 2 parámetros y son obligatorios.
    • 1: El control que queremos que se ejecute, habitualmente el control 10 que es el que hace la búsqueda y rellena la grid.
    • 2: El número de orden que corresponde a la función que queremos que se ejecute en el control referido.

g_rellena

Rellena los controles de la pantalla a partir del resultado de una select. No inicializa los campos previamente. Si así se quiere hay que llamar la función g_nuevo con los parámetros pertinentes.

  • Función: g_rellena
  • Fichero funciones: nada (general)
  • Tipo: B
  • Parámetros función: 3 parámetros
    • Primer parámetro:
      • 0: Da error si no hay filas o si hay un error devolviendo un 1 o un 2 respectivamente en el control de status, control 1.
      • 1: Sólo avisa si hay un error de base de datos y devuelve un 2 en el control de status, control 1.
    • Segundo parámetro:
      • Número de control donde se almacenaran el número de filas afectadas por el select de la función, si no se desea guardarlas en ningún control introducir el valor 0. Su aplicación tiene utilidad en la programación interna
    • Tercer parámetro:
      • 's': La sentencia sql se depurará antes de ejecutarse. Por ejemplo en sentencias selects se eliminan las condiciones de la clausula where de los campos que no tienen ningún valor
      • 'n': La sentencia sql se ejecutará sin ningún cambio.
Ejemplo:
1,99
En este ejemplo se avisa si hay un error de base de datos y almacena el número de filas afectadas por la sentencia select de la función en el control 99.
  • Sentencia SQL: Sentencia a ejecutar, por ejemplo:
select fmh_codi,fmh_desc from h_famhor where oid=#006 
  • Pares de campos: Controles a rellenar con los datos de la select, por ejemplo:
001063,002064

Nota: Esta función no puede utilizarse para rellenar el contenido del campo donde está definida.

g_salir

  • Sale de la pantalla devolviendo un 1 en el estatus.
  • Anula el comportamiento del campo enlazar. Si un control contiene una función g_salir, si se ejecuta, no se efectuará el enlace que se halla especificado en el campo "enlazar ctrl"

g_seleccionar

  • Pone en estado de seleccionar
  • Establece los atributos correspondientes al estado de seleccionar.
  • Inicializa los campos de acuerdo con sus valores por defecto en función de los parámetros recibidos. Si no recibe ningún parámetro se comporta como si hubiera recibido un 0.
  • Parámetros: 1
    • 0: No modifica ningún control.
    • 1: Inicializa todos los controles a su valor por defecto.
    • 2: Inicializa los controles mayores que 50 a su valor por defecto.
    • 3: Inicializa todos los controles a su valor por defecto a excepción de los indicados, por ejemplo: 3 51 52 63

g_setatr

  • Se usa para cambiar un atributo en tiempo de ejecución a uno o varios controles. La función se asigna a cualquier control de la pantalla.
  • Parámetros:
    • 1:
      • 0: Indica que el atríbuto es dinámico es decir, cuando cambie el estado de la pantalla (altas, consultas, etc...), el atributo se modificará con su valor correspondiente o mantendrá el que le indiquemos en la función.
      • 1: Indica que el atríbuto es estático es decir no cambiará en función del estado de la pantalla como en el caso anterior.
    • Siguientes: A continuación se introducen tantos parámetros adicionales como controles queramos modificar. Para cada control escribimos el número de control de 3 dígitos, el signo igual y el atributo de 2 dígitos, los parámetros se separan por comas. Si tenemos muchos campos que tendrán el mismo atributo podemos agruparlos mediante guiones.
  • Ejemplo:
1,051=10,052-056=20,053-062=00 

En este ejemplo el campo 51 estará deshabilitado, los campos 52 y 56 estarán ocultos y los campos 53 y 62 estarán habilitados, y en los tres casos estos atributos se mantendrán en todos los estados.

g_sustit

Se usa principalmente en la búsqueda avanzada. Su función es sustituir el valor del control que se le pasa en “Páram. Func.” por los valores de los controles contenidos en “Sentencia SQL”, separados por comas. De esta forma si después has de pasar todos estos valores, los tendrás todos contenidos dentro de un único control.

g_transfit

Esta función transmite un fichero desde el servidor al ordenador local. Para ello se le pasan dos parámetros: el modo de apertura del archivo y el nombre del fichero. Para crear un fichero temporal con nombre único ver la función g_nomfit.

  • Parámetros: 2
    • 1: Tiene cuatro posibles valores: ' r ',' w ',' R ',' W '. En los dos primeros casos se indica como vamos a copiar el archivo (solo lectura o escritura, respectivamente). Los dos casos siguientes indican lo mismo, pero además abriendo el archivo con la aplicación correspondiente.
    • 2: El nombre del archivo a enviar o el campo que lo contiene(#134).
  • Ejemplos:
W, nombre_fichero.csv
W, #134