manual de sapscripts
TRANSCRIPT
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
1
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
2
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
3
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 descripcin, el formato de pgina, el tipo de letra por defecto, etc
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
4
PARRAFOS Los prrafos, que son las definiciones de formatos de prrafo en el que definiremos
sus caractersticas, divididas en: atributos estndar, tipo de letra, tabulaciones y esquema.
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
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
5
Tabuladores. Aqu se definen las posiciones de tabulacin que necesitemos para cada prrafo. Le deberemos indicar una posicin, ya se 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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
6
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
7
VENTANAS
Las ventanas representan reas que se posicionarn sobre las pginas.
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. Esta ventana puede extenderse a ms de una pgina. VAR: Es una ventana cuyo contenido puede variar. Ests ventanas deben definirse en cada pgina en que deban aparecer. CONST: Define una ventana cuyo contenido no cambia.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
8
PGINAS
Para cada formulario se ha de definir al menos una pgina. En esta apartado daremos una descripcin a la pgina, indicaremos cual es la siguiente pgina a continuacin y cmo se actualizar el contador de pginas.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
9
VENTANA PGINA En este apartado las ventanas son asignadas a las pginas. Se debe especificar la
posicin y tamao de la ventana en cada pgina.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
10
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
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
11
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. Pgina inicial P Prrafo defecto N Tabulaciones 1,00 CM Formato pgina DINA4 Formato hoja Formato Lneas/pulg. 6,00 Carcter/pulg. 10,00
Atributos font Familia fonts COURIER Altura fonta 12,0 Pun Negrita no Cursiva no Subrayado no
Carcteres Atributos
C
Cursiva
Atributos font Cursiva s
N
Negrita
Atributos font Negrita s
Prrafos Atributos
CO
Columnas
Atributos std. Interlineado 1.00 LN Alineacin alin. izq.
Atributos font Familia fonts COURIER Altura fonta 12,0 Punto
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
12
Tabuladores 1.00 CM alineacin izq. 9.00 CM alineacin izq.
N
Prrafo normal
Atributos std. Interlineado 1.00 LN Alineacin alin. izq.
Atributos font Familia fonts COURIER Altura fonta 12,0 Punto
Tabuladores 3.00 CM alineacin izq. 12.00 CM alineacin izq.
PI
Prrafo de pie
Atributos std. Interlineado 1.00 LN Alineacin centrado
Atributos font Familia fonts HELVE Altura fonta 6,0 Punto Cursiva s
TI
Ttulo
Atributos std. Interlineado 1.00 LN Alineacin centrado
Atributos font Familia fonts HELVE Altura fonta 14,0 Punto Negrita s
Ventanas Atributos
CABECERA
Encabezado de pgina Tipo ventana VAR
DIRECCIO
Direccin Tipo ventana VAR
MAIN
Ventana princ. Tipo ventana MAIN
PIE
Pie de pgina Tipo ventana VAR
Pginas Atributos
P
Primera pgina
Cont. pgs. Modo INC Tipo numeracin cifras rabes
Ventana pgina MAIN Margen izq. 3.00 CM Margen superior 8.00 CM Ancho ventana 17.00 CM Altura ventana 15.00 CM
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
13
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 Direccin:
N &CALLE&
N &CIUDAD&
MAIN
Elemento ITEM_HEADER CO
,,COLUMNA 1,,COLUMNA 2
Elemento ITEM_LINE CO
,,&COL1&,,&COL2&
PIE
PI Pgina &PAGE&
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
14
PROGRAMA DE IMPRESIN 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).
* Configuracin de la impresora ITCPO-TDPAGESLCT = SPACE. "Todas las pginas 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 despus 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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
15
* Imprimimos la ventana direccin 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 pgina 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'.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
16
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
17
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_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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
18
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
19
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
20
CASE: Cubre el caso de mltiples 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 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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
21
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
22
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.
-
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
23
OPCIONES DE FORMATO DE LOS SIMBOLOS
Desplazamiento &symbol+offset& Longitud de salida &symbol(length)& Omisin del signo &symbol(S)& Sacar el signo por la izquierda &symbol()& Omitir los ceros iniciales &symbol(Z)& Comprimir los espacios &symbol(C)& Nmero 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 converisin &symbol(K)& Cambiar valor de un contador &SAPSCRIPT_COUNTER_X(+)&
&SAPSCRIPT_COUNTER_X(+)& Textos precedentes &pre-textsymbolpost-text&