Está en la página 1de 25

Curso de iniciacin a SapScript

CURSO DE
INICIACIN A

http://www.sapabap.cc

Curso de iniciacin a SapScript

Los formularios en SAP se definen mediante una herramienta denominada SapScript.


Permite definir el formato de las pginas, as como la estructura de la informacin
que contienen.
Estn extrechamente relacionados con programas de control.

Se accede a la edicin de formularios a travs de Herramientas -> Tratamientos de


textos -> Formularios o directamente mediante la transaccin SE71

Desde esta pantalla podemos crear un nuevo formulario, editar uno ya existente o
modificarlo.

http://www.sapabap.cc

Curso de iniciacin a SapScript

Programa de control
Es un programa ABAP, el que a travs de funciones:
Controla si el dispositivo de salida es una impresora, fax, pantalla, cantidad de
copias, salida inmediata y otros atributos del requerimiento de impresin.
Selecciona los datos de la DB o del input del usuario y se los pasa al composer del
formulario.
Selecciona el formulario y controla el orden en que los textos van a ser impresos y
con qu frecuencia.

Programa de control
Formulario
Layout set 11

SAP DB

Formulario
Layout set 22
Formulario
Layout set 33

Application transaction
Print
Print program

http://www.sapabap.cc

Curso de iniciacin a SapScript

Composer
Es el que administra la interfase entre el print program y el layout set.
El documento es formateado de acuerdo a informacin proveniente del formulario, si
este tiene variables, el composer recibe los datos del programa de control para poder
mostrarlos en el documento
Una vez que el formulario es completado, lo entrega como orden de impresin al
spool.

Processing Sequence: The Composer


SAP DB
Layout set

Document
Invoice

Application transaction
Print program

In vo ice

Com poser
R

SAP AG

http://www.sapabap.cc

Curso de iniciacin a SapScript

Un formulario est formado por varias partes.

CABECERA
Informacin administrativa del formulario, los datos ms importantes son:
nombre del formulario
lenguaje
cliente o mandante
page format (A4, Letter, etc.)
character set y default paragraph
primera pgina del formulario

http://www.sapabap.cc

Curso de iniciacin a SapScript

PARRAFOS
Sirve para definir la apariencia del formulario:
espacio entre lneas
mrgenes izquierdo y derecho
alineamiento (izq., dcha., centralizado, justificado)
identacin de la primera lnea
tabuladores
fonts
opciones outline (divisin en captulos o secciones con numeracin arbigos,
romanos, letras, *, etc.)
proteccin de corte de pginas.
Un prrafo se identifica por dos letras.
El prrafo por defecto se define en la cabecera.

http://www.sapabap.cc

Curso de iniciacin a SapScript

Atributos estndar son la descripcin del prrafo, 2 letras de identificacin que


posteriormente nos servirn para utilizarlo, mrgenes, tipos de interlineado

Fuentes. Aqu definiremos el tipo de fuente asociado al prrafo, as como sus


atributos, tales como tamao, negrita, cursiva

Tabuladores. Aqu se definen las posiciones de tabulacin que


necesitemos para cada prrafo. Le deberemos indicar una posicin, ya
sea en centmetros (CM), caracteres (CH), milmetros (MM), puntos (PT)
y un tipo de alineacin: izquierda (LEFT), derecha (RIGHT), centrado
(CENTER), al signo(SIGN) o a la coma decimal (DECIMAL).

Esquema: Es posible definir numeracin y marcas automticas de forma


que podamos estructurar texto en captulos, subcapitulos y secciones.

http://www.sapabap.cc

Curso de iniciacin a SapScript

STRINGS

Caracteres. Dentro de cualquier prrafo es posible cambiar el tipo de letra para la


parte de la lnea que deseemos. Esto podemos hacerlo desde la opcin STRINGS.
Deberemos introducir un cdigo de 2 posiciones, una descripcin, el tipo de
letra que deseemos, sus atributos, as como caractersticas especiales como crear
cdigos de barra, impedir que la lnea se parta en 2 cuando alcanza final de
lnea, esconder el texto en la salida impresa, crear un subndice o superndice.

http://www.sapabap.cc

Curso de iniciacin a SapScript

VENTANAS
Son las diferentes reas dentro de una pgina del formulario.
Los textos dentro de una window pueden ser subdivididos o identificados usando
elementos de texto.
La posicin de una ventana est indicada por la distancia de la esquina superior
izquierda con respecto al formato de pgina dado en la cabecera.
Para definir una ventana se especifica el nombre y el tipo.
Un formulario puede tener varias pginas (ver pginas). Si la ventana en distintas
pginas va a contener la misma informacin se especifica tipo CONST, sino es
VAR. Es solo por razones de rendimiento.

Hay 3 tipos de ventanas:


MAIN: Es la ventana principal en la que se escribir el texto variable, como
podra ser el cuerpo de una carta. Cuando fsicamente la ventana se llen, continua en la
pgina siguiente, la ventana es la misma, solo vara su posicin y longitud (pero no el
ancho). Se puede definir ms de una ventana main en una pgina.
VAR: Es una ventana cuyo contenido puede variar. Estas ventanas deben
definirse en cada pgina en que deban aparecer.
CONST: Define una ventana cuyo contenido no cambia.

http://www.sapabap.cc

Curso de iniciacin a SapScript

PGINAS
Un formulario puede tener una o ms pginas conteniendo distinta informacin,
aunque pueden tener reas (ventanas) iguales, ej. fecha, encabezado, pie de pgina.
En la cabecera se define la primera pgina que previamente debe ser creada aqu.
Aqu se informa cual va a ser la pgina siguiente. Si no hay una siguiente, el proceso
de impresin finaliza despus que la pgina corriente ha sido impresa.

http://www.sapabap.cc

10

Curso de iniciacin a SapScript

VENTANA PGINA
Se puede asignar una ventana a cualquier pgina del formulario especificando
tamao y posicin en cada pgina.
La ventana puede tener tamao y posicin diferente en cada pgina, pero la ventana
main debe ser siempre del mismo ancho.
Puede haber ms de una ventana main definida en la misma pgina.

http://www.sapabap.cc

11

Curso de iniciacin a SapScript

ELEMENTOS DE TEXTO
Los elementos de texto se definen para cada ventana.
El programa de impresin 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:
Nombre de la ventana
en la que se define el
elemento de texto.

Tipo de prrafo

http://www.sapabap.cc

12

Curso de iniciacin a SapScript

FORMULARIO DE EJEMPLO
Formulario

Z_PRUEBA

Mandante
Idioma
Idioma original
a traducir
Status

011
S
S
s
activo

Clase desarrollo

$TMP

Autor
Fecha
Hora
Release

ES000000
13.05.1999
11:25:39
31H

Significado

Los objetos temporales no se transportan nunca !

P
N
1,00 CM
DINA4
Formato
6,00
10,00

Atributos font
Familia fonts
Altura fonta
Negrita
Cursiva
Subrayado

COURIER
12,0 Pun
no
no
no

Prrafos

CO

http://www.sapabap.cc

ES000000
17.05.1999
15:54:07
31H

prueba

Atributos std.
Pgina inicial
Prrafo defecto
Tabulaciones
Formato pgina
Formato hoja
Lneas/pulg.
Carcter/pulg.

Carcteres

Modificado por
Fecha
Hora
Release

Atributos

Cursiva
Atributos font
Cursiva

Negrita
Atributos font
Negrita

Atributos

Columnas
Atributos std.
Interlineado
Alineacin
Atributos font
Familia fonts
Altura fonta
Tabuladores
1.00 CM
9.00 CM

1.00 LN
alin. izq.
COURIER
12,0 Punto
alineacin izq.
alineacin izq.

13

Curso de iniciacin a SapScript

PI

TI

Ventanas

Prrafo normal
Atributos std.
Interlineado
Alineacin
Atributos font
Familia fonts
Altura fonta
Tabuladores
3.00 CM
12.00 CM
Prrafo de pie
Atributos std.
Interlineado
Alineacin
Atributos font
Familia fonts
Altura fonta
Cursiva
Ttulo
Atributos std.
Interlineado
Alineacin
Atributos font
Familia fonts
Altura fonta
Negrita

1.00 LN
alin. izq.
COURIER
12,0 Punto
alineacin izq.
alineacin izq.

1.00 LN
centrado
HELVE
6,0 Punto
s

1.00 LN
centrado
HELVE
14,0 Punto
s

Atributos

CABECERA

Encabezado de pgina
Tipo ventana
VAR

DIRECCIO

Direccin
Tipo ventana

VAR

Ventana princ.
Tipo ventana

MAIN

Pie de pgina
Tipo ventana

VAR

MAIN

PIE

Pginas

Atributos

Primera pgina
Cont. pgs.
Modo
Tipo numeracin
Ventana pgina
MAIN

CABECERA

DIRECCIO

http://www.sapabap.cc

INC
cifras rabes
Margen izq.
Margen superior
Ancho ventana
Altura ventana
Margen izq.
Margen superior
Ancho ventana
Altura ventana
Margen izq.
Margen superior
Ancho ventana

3.00
8.00
17.00
15.00
2.00
2.00
18.00
3.00
12.00
5.00
8.00

CM
CM
CM
CM
CM
CM
CM
CM
CM
CM
CM

14

Curso de iniciacin a SapScript

PIE

Altura ventana
Margen izq.
Margen superior
Ancho ventana
Altura ventana

3.00
2.00
26.00
18.00
1.00

CM
CM
CM
CM
CM

Elementos texto para ventanas:

CABECERA
Elemento CABECERA
TI FORMULARIO DE PRUEBA
Elemento LOGO
/: INCLUDE 'Z_LOGO_LLADRO' OBJECT TEXT ID ST PARAGRAPH FT

DIRECCIO
N
N
N

<N>Direccin:</>
&CALLE&
&CIUDAD&

MAIN
Elemento ITEM_HEADER
CO <N>,,COLUMNA 1,,COLUMNA 2</>
Elemento ITEM_LINE
CO ,,&COL1&,,&COL2&

PIE
PI Pgina &PAGE&

http://www.sapabap.cc

15

Curso de iniciacin a SapScript

PROGRAMA DE IMPRESIN DEL FORMULARIO


REPORT ZFORM.
TABLES: ITCPO.

"SAPscript Salida interfase

* Variables para comunicarnos con el formulario


DATA: CALLE(40),
CIUDAD(20),
COL1(20),
COL2(20).
* Configuracin de la impresora
ITCPO-TDPAGESLCT = SPACE.
ITCPO-TDNEWID
= 'X'.
ITCPO-TDCOPIES
= 1.
ITCPO-TDDEST
= 'ORG1'.
ITCPO-TDPREVIEW
= SPACE.
ITCPO-TDCOVER
= SPACE.
ITCPO-TDIMMED
= 'X'.
ITCPO-TDDELETE
= 'X'.

"Todas las pginas


"Crea nuevo spool
"1 copia
"Nombre de la impresora
"No Preview
"No portada
"Imprime inmediatamente
"Borra despus de imprimir

* Abrimos el formulario
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM
= 'Z_PRUEBA'
LANGUAGE = SY-LANGU
OPTIONS = ITCPO
DEVICE
= 'PRINTER'
DIALOG
= 'X'
EXCEPTIONS
OTHERS
= 1.
IF SY-SUBRC NE 0.
WRITE /'error al abrir formulario'.
STOP.
ENDIF.
IF SY-SUBRC NE 0.
WRITE /'error al escribir en ventana CABECERA'.
STOP.
ENDIF.
* Datos de la ventana direccin
calle = 'C/ ALBORAYA, S/N'.
CIUDAD = 'VALENCIA'.
* Imprimimos la ventana principal
call function 'WRITE_FORM'
exporting
window = 'MAIN'
element = 'ITEM_HEADER'
exceptions
others = 1.

http://www.sapabap.cc

16

Curso de iniciacin a SapScript

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.
CALL FUNCTION 'CLOSE_FORM'.

http://www.sapabap.cc

17

Curso de iniciacin a SapScript

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 funcin 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.

http://www.sapabap.cc

18

Curso de iniciacin a SapScript

INCLUIR GRFICOS
Para incluir grficos 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 instruccin como esta:
INCLUDE 'Z_LOGO_LLADRO' OBJECT TEXT ID ST PARAGRAPH FT
Donde Z_LOGO_LLADRO es un elemento de texto que hemos obtenido al convertir el
logotipo de Lladr mediante el report mencionado.

http://www.sapabap.cc

19

Curso de iniciacin a SapScript

CAJAS, LINEAS Y SOMBREADOS

Se pueden dibujar cajas y lneas en SAPScript mediante los siguiente comandos:


BOX: Dbuja una caja o una lnea.
POSITION: Especfica el punto inicial de una caja o lnea
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.

http://www.sapabap.cc

20

Curso de iniciacin a SapScript

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
lnea normal excepto que el deberemos seleccionar el prrafo /:

Estos comandos son:

NEW-PAGE. Provoca el salto automtico de pgina

PROTECT ENDPROTECT. Se asegura que el texto introducido entre estos


dos comandos aparezca siempre en una misma pgina.

NEW-WINDOW. Llama automticamente a la siguiente ventana MAIN


definida en una misma pgina.

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 pas especfico.

SET SIGN. Indica la posicin del signo.

RESET. Inicializa el contador de un prrafo de numereacin.

INCLUDE: Inserte el contenido de otro texto en el texto actual.

STYLE: Cambia el contenido del estilo actual deltexto.

ADDRESS - ENDADDRESS: Formatea una direccin de acuerdo con las


convenciones postales del pas definido por el parmetro COUNTRY.

TOP ENDTOP.. Especifica lneas de texto que siempre quieres definir en la


parte superior de la ventana MAIN.

BOTTOM ENDBOTTOM. Especifica lneas de texto que siempre quieres


definir en la parte inferior de la ventana MAIN.

IF ENDIF. Permite especificar que lneas debera imprimirse solamente


cuando se cumplan ciertas condiciones.

CASE: Cubre el caso de mltiples comandos IF anidados.

PERFORM. Permite llamar una rutina de un programa ABAP

http://www.sapabap.cc

21

Curso de iniciacin a SapScript

PRINT-CONTROL: Llama directamente ciertas funciones de la impresora.

BOX, POSITION, LINE: Dibuja lneas y cajas.

HEX ENDHEX. Enva a la impresora rdenes en el lenguaje que utiliza la


impresora.

SUMMING. Acumula un valor total para un smbolo de programa.

http://www.sapabap.cc

22

Curso de iniciacin a SapScript

SAPSCRIPT SYMBOLS

La informacin variable se introduce en los formularios SAPScript mediante


smbolos o variables que SAP reconoce porque van rodeadas de &. Ej:
&symbol&.

Los smbolos que se pueden utilizar son:


Smbolos del sistema: variable como fecha, hora
Smbolos de programa: variables almacenas en aplicaciones SAP como campos
del diccionario de datos o variables globales de los programas.
Smbolos estndar definidos en la tabla TTDTG. El valor de estos smbolos es
dependiente del lenguaje y puede contener hasta 60 caracteres. SAP mantiene
esta tabla con valores estndar.
Smbolos de texto. Aquellos que no corresponden a los tipos de smbolos
definidos anteriormente. Son definidos por el usuario en el editor de texto,
eligiendo Incluir -> Smbolos ->Texto. O bien definindolos con el comando
INCLUDE.

http://www.sapabap.cc

23

Curso de iniciacin a SapScript

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& Smbolo .
&ULINE& Lnea de subrayado
&VLINE& Lnea vertical

CAMPOS GENERALES DE SAPSCRIPT

&SAPSCRIPT-SUBRC&. Recibe un valore despus 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 pginas del form.
&SAPSCRIPT-JOBPAGES&. N total de pginas de todos los formularios
contenido en la peticin de impresin actual.
&SAPSCRIPT_CONTER_X& (x = 09) Representan 10 variables de contador que
se puede utilizar en el texto y formularios para cualquier propsito.

http://www.sapabap.cc

24

Curso de iniciacin a SapScript

OPCIONES DE FORMATO DE LOS SIMBOLOS

Desplazamiento
Longitud de salida
Omisin del signo
Sacar el signo por la izquierda
Sacar el signo por la derecha
Omitir los ceros iniciales
Comprimir los espacios
Nmero de decimales
Omitir el indicador de miles
Especificar exponente
Alinear a la derecha
Rellenar de caracteres
Suprimir valores iniciales
Ignorar rutinas de converisin
Cambiar valor de un contador

Textos precedentes

http://www.sapabap.cc

&symbol+offset&
&symbol(length)&
&symbol(S)&
&symbol(<)&
&symbol(>)&
&symbol(Z)&
&symbol(C)&
&symbol(.2)&
&symbol(T)&
&symbol(E2)&
&symbol(8R)&
&symbol(Ff)&
&symbol(I)&
&symbol(K)&
&SAPSCRIPT_COUNTER_X(+)&
&SAPSCRIPT_COUNTER_X(+)&
&pre-textsymbolpost-text&

25

También podría gustarte