Puntos de entrada > Módulo Supervisor > Script estándar AIMP3 

PRINT

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]

Export. Informes

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)

__DBSERVERNombre 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)

_FormatDelStringDelimitador 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)

X3CLIRazón social cliente

X3EDT Copyright

X3ETA Código del informe

X3TITNombre 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

$PRINT

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]

Export. Informes

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]

Export. Informes

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]

Export. Informes

Este punto de entrada se ejecuta justo después de crear el informe ZPL.