Informática
Workbench ABAP 4
-
Se accede a la edición de formularios a través de Herramientas -> Tratamientos de textos -> Formularios o directamente mediante la transacción SE71
-
Desde esta pantalla podemos crear un nuevo formulario, editar uno ya existente o modificarlo.
Un formulario está formado por varias partes.
CABECERA
-
Una cabecera en la que se definen los datos generales del formulario como es el nombre, la descripción, el formato de página, el tipo de letra por defecto, etc…
PARRAFOS
-
Los párrafos, que son las definiciones de formatos de párrafo en el que definiremos sus características, divididas en: atributos estándar, tipo de letra, tabulaciones y esquema.
-
Atributos estándar son la descripción del párrafo, 2 letras de identificación que posteriormente nos servirán para utilizarlo, márgenes, tipos de interlineado…
-
Fuentes. Aquí definiremos el tipo de fuente asociado al párrafo, así como sus atributos, tales como tamaño, negrita, cursiva…
-
Tabuladores. Aquí se definen las posiciones de tabulación que necesitemos para cada párrafo. Le deberemos indicar una posición, ya se en centímetros (CM), caracteres (CH), milímetros (MM), puntos (PT) y un tipo de alineación: izquierda (LEFT), derecha (RIGHT), centrado (CENTER), al signo(SIGN) o a la coma decimal (DECIMAL).
-
Esquema: Es posible definir numeración y marcas automáticas de forma que podamos estructurar texto en capítulos, subcapitulos y secciones.
STRINGS
-
Caracteres. Dentro de cualquier párrafo es posible cambiar el tipo de letra para la parte de la línea que deseemos. Esto podemos hacerlo desde la opción STRINGS.
-
Deberemos introducir un código de 2 posiciones, una descripción, el tipo de letra que deseemos, sus atributos, así como características especiales como crear códigos de barra, impedir que la línea se parta en 2 cuando alcanza final de línea, esconder el texto en la salida impresa, crear un subíndice o superíndice.
VENTANAS
-
Las ventanas representan áreas que se posicionarán sobre las páginas.
Hay 3 tipos de ventanas:
MAIN: Es la ventana principal en la que se escribirá el texto variable, como podría ser el cuerpo de una carta. Esta ventana puede extenderse a más de una página.
VAR: Es una ventana cuyo contenido puede variar. Estás ventanas deben definirse en cada página en que deban aparecer.
CONST: Define una ventana cuyo contenido no cambia.
PÁGINAS
-
Para cada formulario se ha de definir al menos una página. En esta apartado daremos una descripción a la página, indicaremos cual es la siguiente página a continuación y cómo se actualizar el contador de páginas.
VENTANA PÁGINA
-
En este apartado las ventanas son asignadas a las páginas. Se debe especificar la posición y tamaño de la ventana en cada página.
ELEMENTOS DE TEXTO
Los elementos de texto se definen para cada ventana.
El programa de impresión accede a los elementos de texto por nombre, los formatea e imprime en la ventana correspondiente.
Si entramos al editor de texto, seleccionando primero una ventana y pulsando luego en Elementos de texto veremos la siguiente pantalla:
FORMULARIO DE EJEMPLO
Formulario |
| Z_PRUEBA |
| ||||||||||||||
| |||||||||||||||||
Mandante 011 | |||||||||||||||||
Idioma |
| S | |||||||||||||||
Idioma original S | |||||||||||||||||
a traducir s | |||||||||||||||||
Status |
| activo | |||||||||||||||
| |||||||||||||||||
Clase desarrollo $TMP ¡Los objetos temporales no se transportan nunca ! | |||||||||||||||||
| |||||||||||||||||
Autor ES000000 Modificado por ES000000 | |||||||||||||||||
Fecha 13.05.1999 Fecha 17.05.1999 | |||||||||||||||||
Hora 11:25:39 Hora 15:54:07 | |||||||||||||||||
Release 31H Release 31H | |||||||||||||||||
| |||||||||||||||||
Significado |
| prueba | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Atributos std. | |||||||||||||||||
Página inicial P | |||||||||||||||||
Párrafo defecto N | |||||||||||||||||
Tabulaciones 1,00 CM | |||||||||||||||||
Formato página DINA4 | |||||||||||||||||
Formato hoja Formato | |||||||||||||||||
Líneas/pulg. 6,00 | |||||||||||||||||
Carácter/pulg. 10,00 | |||||||||||||||||
| |||||||||||||||||
Atributos font | |||||||||||||||||
Familia fonts COURIER | |||||||||||||||||
Altura fonta 12,0 Pun | |||||||||||||||||
Negrita no | |||||||||||||||||
Cursiva no | |||||||||||||||||
Subrayado no | |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Carácteres Atributos | |||||||||||||||||
| |||||||||||||||||
| C |
| Cursiva | ||||||||||||||
| Atributos font | ||||||||||||||||
Cursiva sí | |||||||||||||||||
| |||||||||||||||||
| N |
| Negrita | ||||||||||||||
| Atributos font | ||||||||||||||||
Negrita sí | |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Párrafos Atributos | |||||||||||||||||
| |||||||||||||||||
| CO |
| Columnas | ||||||||||||||
| Atributos std. | ||||||||||||||||
Interlineado 1.00 LN | |||||||||||||||||
Alineación alin. izq. | |||||||||||||||||
| Atributos font | ||||||||||||||||
Familia fonts COURIER | |||||||||||||||||
Altura fonta 12,0 Punto | |||||||||||||||||
| Tabuladores | ||||||||||||||||
1.00 CM alineación izq. | |||||||||||||||||
9.00 CM alineación izq. | |||||||||||||||||
| |||||||||||||||||
| N |
| Párrafo normal | ||||||||||||||
| Atributos std. | ||||||||||||||||
Interlineado 1.00 LN | |||||||||||||||||
Alineación alin. izq. | |||||||||||||||||
| Atributos font | ||||||||||||||||
Familia fonts COURIER | |||||||||||||||||
Altura fonta 12,0 Punto | |||||||||||||||||
| Tabuladores | ||||||||||||||||
3.00 CM alineación izq. | |||||||||||||||||
12.00 CM alineación izq. | |||||||||||||||||
| |||||||||||||||||
| PI |
| Párrafo de pie | ||||||||||||||
| Atributos std. | ||||||||||||||||
Interlineado 1.00 LN | |||||||||||||||||
Alineación centrado | |||||||||||||||||
| Atributos font | ||||||||||||||||
Familia fonts HELVE | |||||||||||||||||
Altura fonta 6,0 Punto | |||||||||||||||||
Cursiva sí | |||||||||||||||||
| |||||||||||||||||
| TI |
| Título | ||||||||||||||
| Atributos std. | ||||||||||||||||
Interlineado 1.00 LN | |||||||||||||||||
Alineación centrado | |||||||||||||||||
| Atributos font | ||||||||||||||||
Familia fonts HELVE | |||||||||||||||||
Altura fonta 14,0 Punto | |||||||||||||||||
Negrita sí | |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Ventanas Atributos | |||||||||||||||||
| |||||||||||||||||
| CABECERA |
| Encabezado de página | ||||||||||||||
Tipo ventana VAR | |||||||||||||||||
| |||||||||||||||||
| DIRECCIO |
| Dirección | ||||||||||||||
Tipo ventana VAR | |||||||||||||||||
| |||||||||||||||||
| MAIN |
| Ventana princ. | ||||||||||||||
Tipo ventana MAIN | |||||||||||||||||
| |||||||||||||||||
| PIE |
| Pie de página | ||||||||||||||
Tipo ventana VAR | |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Páginas Atributos | |||||||||||||||||
| |||||||||||||||||
| P |
| Primera página | ||||||||||||||
| Cont. págs. | ||||||||||||||||
Modo INC | |||||||||||||||||
Tipo numeración cifras árabes | |||||||||||||||||
| Ventana página | ||||||||||||||||
MAIN Margen izq. 3.00 CM | |||||||||||||||||
Margen superior 8.00 CM | |||||||||||||||||
Ancho ventana 17.00 CM | |||||||||||||||||
Altura ventana 15.00 CM | |||||||||||||||||
CABECERA Margen izq. 2.00 CM | |||||||||||||||||
Margen superior 2.00 CM | |||||||||||||||||
Ancho ventana 18.00 CM | |||||||||||||||||
Altura ventana 3.00 CM | |||||||||||||||||
DIRECCIO Margen izq. 12.00 CM | |||||||||||||||||
Margen superior 5.00 CM | |||||||||||||||||
Ancho ventana 8.00 CM | |||||||||||||||||
Altura ventana 3.00 CM | |||||||||||||||||
PIE Margen izq. 2.00 CM | |||||||||||||||||
Margen superior 26.00 CM | |||||||||||||||||
Ancho ventana 18.00 CM | |||||||||||||||||
Altura ventana 1.00 CM | |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
Elementos texto para ventanas: | |||||||||||||||||
| |||||||||||||||||
CABECERA | |||||||||||||||||
| |||||||||||||||||
Elemento CABECERA | |||||||||||||||||
TI | FORMULARIO DE PRUEBA | ||||||||||||||||
| |||||||||||||||||
Elemento LOGO | |||||||||||||||||
/: | INCLUDE 'Z_LOGO_EMPRESA' OBJECT TEXT ID ST PARAGRAPH FT | ||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
DIRECCIO | |||||||||||||||||
| |||||||||||||||||
N | <N>Dirección:</> | ||||||||||||||||
N | &CALLE& | ||||||||||||||||
N | &CIUDAD& | ||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
MAIN | |||||||||||||||||
| |||||||||||||||||
Elemento ITEM_HEADER | |||||||||||||||||
CO | <N>,,COLUMNA 1,,COLUMNA 2</> | ||||||||||||||||
| |||||||||||||||||
Elemento ITEM_LINE | |||||||||||||||||
CO | ,,&COL1&,,&COL2& | ||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
PIE | |||||||||||||||||
| |||||||||||||||||
PI | Página &PAGE& |
PROGRAMA DE IMPRESIÓN DEL FORMULARIO
REPORT ZFORM.
TABLES: ITCPO. "SAPscript Salida interfase
SELECTION-SCREEN BEGIN OF BLOCK BLK_PAR WITH FRAME.
SELECTION-SCREEN SKIP.
PARAMETERS P_IDIOMA LIKE RSSCF-TDSPRAS DEFAULT 'S'.
PARAMETERS P_GRAF AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK BLK_PAR.
* Variables para comunicarnos con el formulario
DATA: CALLE(40),
CIUDAD(20),
COL1(20),
COL2(20).
* Configuración de la impresora
ITCPO-TDPAGESLCT = SPACE. "Todas las páginas
ITCPO-TDNEWID = 'X'. "Crea nuevo spool
ITCPO-TDCOPIES = 1. "1 copia
ITCPO-TDDEST = 'ORG1'. "Nombre de la impresora
ITCPO-TDPREVIEW = SPACE. "No Preview
ITCPO-TDCOVER = SPACE. "No portada
ITCPO-TDIMMED = 'X'. "Imprime inmediatamente
ITCPO-TDDELETE = 'X'. "Borra después de imprimir
* Abrimos el formulario
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'Z_PRUEBA'
LANGUAGE = P_IDIOMA
OPTIONS = ITCPO
DEVICE = 'PRINTER'
DIALOG = 'X'
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC NE 0.
WRITE /'error al abrir formulario'.
STOP.
ENDIF.
* Imprimimos la ventana CABECERA
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'CABECERA'
ELEMENT = 'CABECERA'
EXCEPTIONS
OTHERS = 1.
IF P_GRAF = 'X'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'CABECERA'
ELEMENT = 'LOGO'
EXCEPTIONS
OTHERS = 1.
ENDIF.
IF SY-SUBRC NE 0.
WRITE /'error al escribir en ventana CABECERA'.
STOP.
ENDIF.
* Imprimimos la ventana dirección
CALLE = 'C/ ALBOROYA, S/N'.
CIUDAD = 'VALENCIA'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'DIRECCIO'
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC NE 0.
WRITE /'error al escribir en ventana DIRECCION'.
STOP.
ENDIF.
* Imprimos la ventana principal
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = 'ITEM_HEADER'
EXCEPTIONS
OTHERS = 1.
DO 10 TIMES.
COL1 = SY-INDEX.
COL2 = 10 + SY-INDEX.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'MAIN'
ELEMENT = 'ITEM_LINE'
EXCEPTIONS
OTHERS = 1.
ENDDO.
IF SY-SUBRC NE 0.
WRITE /'error al escribir en ventana MAIN'.
STOP.
ENDIF.
* Imprimos el pie de página
CALL FUNCTION 'WRITE_FORM'
EXPORTING
WINDOW = 'PIE'
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC NE 0.
WRITE /'error al escribir en ventana PIE'.
STOP.
ENDIF.
CHECK SY-SUBRC = 0.
CALL FUNCTION 'CLOSE_FORM'.
FORMULARIOS EN VARIOS IDIOMAS
-
Una vez tenemos creado el formulario en un idioma padre, podemos crearlo en otros idiomas. Para ello en la pantalla de mantenimiento de formularios, seleccionamos el formulario que acabamos de crear, seleccionamos el nuevo lenguaje del formulario y seleccionamos crear. Veremos que trabajamos con una copia del formulario anterior en el que lo único que deberemos hacer será traducir los textos y adaptar el formulario, si fuera necesario, a las peculiaridades del nuevo idioma.
-
Para llamar al formulario en distintos idiomas se realiza mediante la función de abrir formulario, indicando el idioma requerido. Si el formulario no existiera en ese idioma, se abrirá el formulario en el idioma padre.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'Z_PRUEBA'
LANGUAGE = P_IDIOMA
OPTIONS = ITCPO
DEVICE = 'PRINTER'
DIALOG = 'X'
EXCEPTIONS
OTHERS = 1.
INCLUIR GRÁFICOS
Para incluir gráficos en un formulario, primero hay que grabarlo en SAP en forma de elemento de texto. Esto se puede realizar mediante el report RSTXLDMC que convierte un fichero en formato TIFF a elemento de texto que posteriormente es posible incorporar a un formulario con una instrucción como esta:
INCLUDE 'Z_LOGO_EMPRESA' OBJECT TEXT ID ST PARAGRAPH FT
Donde Z_LOGO_EMPRESA es un elemento de texto que hemos obtenido al convertir el logotipo de Lladró mediante el report mencionado.
CAJAS, LINEAS Y SOMBREADOS
-
Se pueden dibujar cajas y líneas en SAPScript mediante los siguiente comandos:
-
BOX: Díbuja una caja o una línea.
-
POSITION: Especfica el punto inicial de una caja o línea
-
SIZE: Especifica la anchura o altura de una caja.
Ejemplo:
Creamos una nueva ventana de tipo CONST de identicas proporciones que la ventana MAIN que dibuje una caja que rodee las dos columnas de la ventana MAIN del ejemplo.
/: BOX XPOS '0.5' CM WIDTH 8 CM HEIGHT 15 CM FRAME 10 TW.
/: BOX XPOS '8.5' CM WIDTH 8 CM HEIGHT 15 CM FRAME 10 TW.
COMANDOS DE CONTROL
-
SAPScript dispone de una serie de comandos que permiten obtener un control total sobre el texto. Estos comandos son introducidos en el editor de textos igual que una línea normal excepto que el deberemos seleccionar el párrafo /:
-
Estos comandos son:
-
NEW-PAGE. Provoca el salto automático de página
-
PROTECT - ENDPROTECT. Se asegura que el texto introducido entre estos dos comandos aparezca siempre en una misma página.
-
NEW-WINDOW. Llama automáticamente a la siguiente ventana MAIN definida en una misma página.
-
DEFINE: Permite crear una constante con un valor dado.
-
SET DATE MASK. Define el formato de los campos fecha.
-
SET TIME MASK. Define el formato de los campos hora.
-
SET COUNTRY. Define el formato de ciertos campos como el punto para los millares adaptados a un país específico.
-
SET SIGN. Indica la posición del signo.
-
RESET. Inicializa el contador de un párrafo de numereación.
-
INCLUDE: Inserte el contenido de otro texto en el texto actual.
-
STYLE: Cambia el contenido del estilo actual deltexto.
-
ADDRESS - ENDADDRESS: Formatea una dirección de acuerdo con las convenciones postales del país definido por el parámetro COUNTRY.
-
TOP - ENDTOP.. Especifica líneas de texto que siempre quieres definir en la parte superior de la ventana MAIN.
-
BOTTOM - ENDBOTTOM. Especifica líneas de texto que siempre quieres definir en la parte inferior de la ventana MAIN.
-
IF - ENDIF. Permite especificar que líneas debería imprimirse solamente cuando se cumplan ciertas condiciones.
-
CASE: Cubre el caso de múltiples comandos IF anidados.
-
PERFORM. Permite llamar una rutina de un programa ABAP
-
PRINT-CONTROL: Llama directamente ciertas funciones de la impresora.
-
BOX, POSITION, LINE: Dibuja líneas y cajas.
-
HEX - ENDHEX. Envía a la impresora órdenes en el lenguaje que utiliza la impresora.
-
SUMMING. Acumula un valor total para un símbolo de programa.
SAPSCRIPT SYMBOLS
-
La información variable se introduce en los formularios SAPScript mediante “símbolos” o variables que SAP reconoce porque van rodeadas de `&'. Ej: &symbol&.
-
Los símbolos que se pueden utilizar son:
-
Símbolos del sistema: variable como fecha, hora…
-
Símbolos de programa: variables almacenas en aplicaciones SAP como campos del diccionario de datos o variables globales de los programas.
-
Símbolos estándar definidos en la tabla TTDTG. El valor de estos símbolos es dependiente del lenguaje y puede contener hasta 60 caracteres. SAP mantiene esta tabla con valores estándar.
-
Símbolos de texto. Aquellos que no corresponden a los tipos de símbolos definidos anteriormente. Son definidos por el usuario en el editor de texto, eligiendo Incluir -> Símbolos ->Texto. O bien definiéndolos con el comando INCLUDE.
SIMBOLOS DEL SISTEMA
-
&DATE&: Fecha del sistema. Se imprimirá de acuerdo al tipo de SET DATE MASK definida anteriormente.
-
&DAY&
-
&MONTH&
-
&YEAR&
-
&NAME_OF_DAY&
-
&NAME_OF_MONTH&
-
&TIME&
-
&HOURS&
-
&MINUTES&
-
&SECONDS&
-
&PAGE&
-
&NEXTPAGE&
-
&DEVICE&. Tipo del dispostivo de salida (PRINTER, SCREEN, TELEX, ABAP).
-
&SPACE& Símbolo ` `.
-
&ULINE& Línea de subrayado
-
&VLINE& Línea vertical
CAMPOS GENERALES DE SAPSCRIPT
-
&SAPSCRIPT-SUBRC&. Recibe un valore después de ejecutar un comando INCLUDE. (0 si lo encuentra, 4 si no).
-
&SAPSCRIPT-DRIVER&. Nombre del dispositivo de salida (POST, HPL2, PRES).
-
&SAPSCRIPT-FORMPAGES&. Nº total de páginas del form.
-
&SAPSCRIPT-JOBPAGES&. Nº total de páginas de todos los formularios contenido en la petición de impresión actual.
-
&SAPSCRIPT_CONTER_X& (x = 0…9) Representan 10 variables de contador que se puede utilizar en el texto y formularios para cualquier propósito.
OPCIONES DE FORMATO DE LOS SIMBOLOS
-
Desplazamiento &symbol+offset&
-
Longitud de salida &symbol(length)&
-
Omisión del signo &symbol(S)&
-
Sacar el signo por la izquierda &symbol(<)&
-
Sacar el signo por la derecha &symbol(>)&
-
Omitir los ceros iniciales &symbol(Z)&
-
Comprimir los espacios &symbol(C)&
-
Número de decimales &symbol(.2)&
-
Omitir el indicador de miles &symbol(T)&
-
Especificar exponente &symbol(E2)&
-
Alinear a la derecha &symbol(8R)&
-
Rellenar de caracteres &symbol(Ff)&
-
Suprimir valores iniciales &symbol(I)&
-
Ignorar rutinas de converisión &symbol(K)&
-
Cambiar valor de un contador &SAPSCRIPT_COUNTER_X(+)&
&SAPSCRIPT_COUNTER_X(+)&
-
Textos precedentes &'pre-text'symbol'post-text'&
1
Nombre de la ventana en la que se define el elemento de texto.
Tipo de párrafo
Descargar
Enviado por: | Adolfo Veliz |
Idioma: | castellano |
País: | España |