Script AIMP3: Informes
El punto de entrada PRINT se activa justo antes de elegir impresora. Lo único que se puede hacer es parametrizar la variable GPE que, si tiene asignado un valor distinto a 0, permite no introducir una impresora.
Contexto y modo de funcionamiento
Las tablas siguientes están en línea :
Tabla |
Contenido relevante |
Nombre de la tabla |
---|---|---|
AREPORT [ARP] |
Sí |
Los parámetros se encuentran en la variable PARAMETRE con los índices 1 para NBPAR. Cada valor es una cadena en forma de "parámetro = valor" sin ningún otro separador. Los parámetros del informe se distribuyen en 4 clases:
Los que empiezan por un guion bajo doble. Estos son los parámetros destinados a X3, que no se transmiten al informe (o por lo menos, no tal cual).
Los que empiezan por un guion bajo simple. Estos son los parámetros destinados a Crystal Reports, que no se transmiten al informe. Los valores de estos parámetros deben contener el prefijo chr$(1).
Los que empiezan por "X3". Estos son los parámetros de contexto, que se transmiten al informe y se inicializan automáticamente con el supervisor.
Los que aparecen descritos en el diccionario de informes. Cuando el diccionario contiene un parámetro que acaba por "deb" o "str", se añade automáticamente otro parámetro con la misma raíz que acaba por "fin" o "end".
El nombre del servidor de impresión no es un parámetro. Este se define en la variable local SERVEUR (car. (30)).
Lista de parámetros:
__REPORT Nombre del informe Crystal Reports
__DESTINATION 0 = vista previa, 1 = impresora, 2 = mensajería, 3 = fichero
__TYPDBA Tipo de base de datos (menú local 23)
__DBSERVER Nombre del ODBC
__DBDATABASE Nombre de la base de datos
__DBUSER Usuario de la base de datos
__DBPASSWORD Contraseña
__WSTATION (*140) Nº de puerto del servidor de impresión
__CDUSER (*140) Código de usuario
__APPLICATION Dossier; máquina; servicio (donde se lanza la impresión)
__APPRPT Dossier; máquina; servicio (donde se encuentra el informe)
__REQUETE Nº de petición
_PreVisuOptions Opciones de previsualización (no operacional)
_PrinterName Nombre de la impresora
_Orientation 0 = vertical, 1 = apaisado
_PrinterDriver (*) Nombre del controlador de impresora
_PrinterPort (*) Puerto de la impresora
_PrinterDescription (*) Características de la impresora
_FormatExport Formato del fichero de exportación (menú local 91)
_FormatDelString Delimitador de cadena si formato CSV
_FormatDelRecord Separador de campo si formato CSV
_ExportFile Nombre del fichero exportado
X3DOS Dossier; máquina; servicio; versión; idioma (*140 versión + idioma)
X3CLI Razón social cliente
X3EDT Copyright
X3ETA Código del informe
X3TIT Nombre del informe
X3USR (*130) Código de usuario
X3LAN (*140) Directorio de idiomas del informe
X3FCY (*Warehousing) Planta
X3DEP (*Warehousing) Depositario
X3OPE Nombre de usuario
X3SIT1 (*120) Plantas autorizadas
X3SIT2 (*120) Plantas prohibidas
X3PRF (*130) Perfil función
X3FCT (*130) Función asociada al informe
X3SIT (*130) Listas de plantas prohibidas
(*) Estos parámetros dependen de la impresora y no se pueden describir. Se suelen recuperar mediante la instrucción selimp (realizar una prueba en una determinada impresora y anotar los valores de estos parámetros).
(*120) Disponible en V110 y V120, pero no a partir de V130.
(*130) Disponible a partir de la V130
Tablas abiertas
La tabla AREPORT, que contiene el informe en curso de impresión, es la única relevante.
Ejemplo
####################################################################
## Ejemplo de uso de los puntos de entrada del proceso AIMP3
####################################################################
$ACTION
Case ACTION
When 'PRINT': Gosub PRINT
When "PARAM": Gosub PARAM
Endcase
Return
If [F:ARP]RPTCOD='REPORT1', 'REPORT2','REPORT3'): # Lista de informes para procesar
GPE = 1: # Evita la entrada de la impresora
Endif
Return
$PARAM
####################################################################
## Los parámetros se encuentran en la variable PARAMETRE (1..NBPAR)
## pero los subprogramas GETPARAM y SETPARAM del TrT ETAT
## permiten acceder más fácilmente
####################################################################
Local Char XPARAM(250)(1..10), XPAR(50), XVAL(50), XETAT(20)
Local Integer XNB, XK, XI
####################################################################
## ¿Se ha solicitado la impresión?
####################################################################
Call GETPARAM('__DESTINATION',NBPAR,PARAMETER,XVAL) From ETAT
If XVAL<>'1'
Return: # No, no se hace nada
Endif
####################################################################
## Definición de la impresora en función del informe
####################################################################
Call GETPARAM('X3ETA',NBPAR,PARAMETER,XETAT) From ETAT
Case XETAT
When 'REPORT1': XIMP = 'my_printer'
When 'REPORT2': XIMP = 'laser_printer'
When 'REPORT3': XIMP = 'dot-matrix_line_printer'
When Default Return
Endcase
####################################################################
## Asignación del servidor de impresión
####################################################################
SERVER = 'the_machine_that_prints'
####################################################################
## Recuperación de los parámetros por defecto de la impresora
####################################################################
XNB = 0
XNB += 1: XPARAM(XNB) = '_PrinterName=' + chr$(1) + XIMP: # Nombre de la impresora a asignar
XNB += 1: XPARAM(XNB) = '_Orientation=' + chr$(1) + '1': # Modo apaisado
XNB += 1: XPARAM(XNB) = "_NoVisible=" + chr$(1) + "1": # No se completa
Selimp XPARAM = '' With XPARAM(1..XNB): # Lectura de los parámetros por defecto
XNB = stat1
For XI=1 To XNB
XK = instr(1,XPARAM(XI),'=')
If XK
XPAR = left$(XPARAM(XI),XK-1)
XVAL = right$(XPARAM(XI),XK+1)
# Si no quiere parámetros por defecto
# También puede reasignarlos aquí
# If XPAR='_PrinterPort : XVAL = 'my_port': Endif
Case XPAR
When '_PrinterName' , '_PrinterDriver' , '_PrinterPort'
& , '_PrinterDescription' , '_Orientation'
Call SETPARAM(XPAR,NBPAR,PARAMETRE,XVAL) From ETAT
Endcase
Endif
Next XI
Return
PARAM
El punto de entrada PARAM permite modificar cualquier parámetro del informe.
Contexto y modo de funcionamiento
Las tablas siguientes están en línea :
Tabla |
Contenido relevante |
Nombre de la tabla |
---|---|---|
AREPORT [ARP] |
Sí |
REPORT
El punto de entrada REPORT permite lanzar un proceso después de imprimir el informe. Este punto de entrada se ejecuta justo después de enviar la orden de impresión al cliente (o al servidor). En el caso de una impresión/fichero, puede servir para lanzar un proceso en el fichero generado.
Contexto y modo de funcionamiento
Las tablas siguientes están en línea :
Tabla |
Contenido relevante |
Nombre de la tabla |
---|---|---|
AREPORT [ARP] |
Sí |
REPORT_ZPL
El punto de entrada REPORT_ZPL permite lanzar un proceso después de imprimir el informe ZPL. Este punto de entrada se ejecuta justo después de enviar la orden de impresión al cliente (o al servidor). En el caso de una impresión/fichero, puede servir para lanzar un proceso en el fichero generado.
Contexto y modo de funcionamiento
Las tablas siguientes están en línea :
Tabla |
Contenido relevante |
Nombre de la tabla |
---|---|---|
AREPORT [ARP] |
Sí |