0% encontró este documento útil (0 votos)
146 vistas54 páginas

Guía de SAPscript para Formularios

El documento describe cómo crear formularios en SAP usando SAPscript. Explica los pasos para diseñar un formulario básico incluyendo la creación de páginas, ventanas y párrafos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
146 vistas54 páginas

Guía de SAPscript para Formularios

El documento describe cómo crear formularios en SAP usando SAPscript. Explica los pasos para diseñar un formulario básico incluyendo la creación de páginas, ventanas y párrafos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

An Indra company

Sistema R / 3.
ABAP / 4.

Sapscripts.

Enero de 2019
Índice

1. Introducción .......................................................................................................................................... 3
2. Diseño y Ejecución................................................................................................................................ 4

An Indra company 2
1. Introducción

FORMULARIOS
Los formularios se utilizan para hacer hojas de pedido, listados simples, etc... Para realizar formularios
utilizaremos el SAPscript. El SAPscript es un leguaje que se utiliza para diversos cometidos y uno de ellos es
el de crear formularios. Para acceder a los formularios desde la pantalla inicial de SAP R/3 vamos al menú
Herramientas -> Tratamientos de textos -> Formularios, o ir directamente a través de la transacción SE71. La
pantalla principal es la siguiente:

En Formulario escribiremos el nombre del formulario que queramos crear, modificar

o visualizar.

En Objetos parciales tenemos las siguientes opciones:

- Cabecera -> Definiremos los atributos del formulario como el tipo de formulario, tamaño que
tendrá, forma de visualización, fuentes que se utilizarán por defecto, etc...

- Párrafos -> Definiremos los párrafos que utilizaremos para visualizar los datos.

- Strings -> Definiremos como se visualiza un determinado dato en el formulario.

An Indra company 3
- Pags -> Crearemos las páginas que se utilizarán en el formulario, como mínimo ha de haber
una página.

- Ventana -> Son las ventanas que utilizaremos en la página o páginas que hayamos creado.

- Ventana página -> Aquí pondremos las ventanas, que hemos creado en Ventana en la
página o páginas que hayamos creado en .Pags..

2. Diseño y Ejecución

CREAR UN FORMULARIO
Ahora crearemos un formulario sencillo que como ejemplo servirá, lo llamaremos ZZIVAN10. Si no tenemos
activado el pushbutton de Cabecera lo activaremos y daremos el botón de Crear y nos saldrá la siguiente
pantalla:

Solo nos informa de que el formulario no existe si pulsamos el botón de confirmar o ENTER, nos saldrá la
pantalla de cabecera que es la siguiente:

An Indra company 4
CABECERAS
Desde esta pantalla es donde configuraremos el aspecto general de nuestro formulario:

como se visualizará , página y párrafos por defecto, etc.. la pantalla que sale es la

siguiente:

An Indra company 5
Fig. Cabecera.

Aquí hay tres campos obligatorios:

- Significado

- Párrafo defecto

- Página inicial.

los dos últimos campos los introduciremos al final ya que hasta que no creemos los

párrafos y página inicial no le indicaremos los párrafos y la página inicial que usaremos.

Por el momento solo introduciremos la descripción de nuestro formulario y se hará

en el campo Significado.

Lo siguiente que haremos será crear las páginas que tendrá el formulario, y para ello pulsaremos

el botón .Páginas. o F5.

An Indra company 6
PAGINAS
Es aquí donde indicaremos las páginas que formarán el formulario. Un formulario como

mínimo ha de tener una página, y en nuestro caso con una ya tendremos suficiente. La

página que sale es la siguiente:

Fig. Páginas.

Como vemos yo ya he creado una página. Inicialmente el único campo en que

podremos introducir datos será en el de página, cuando introduzcamos el nombre de la

página y pulsemos ENTER se activarán el resto de campos y la box de .págs. nos saldrá

la página que hayamos creado o las que tengamos creadas.

Lo siguiente es poner el significado de la página, ya que es obligatorio, en el campo

Significado y volveremos a pulsar ENTER para que SAP coja el dato.

Después hay diversos campos que nos servirán para configurar como será la página:

- Pág cont. -> Indicaremos la siguiente página que se visualizará. Cuando solo se

An Indra company 7
utiliza una página se deja en blanco pero cuando se utiliza más de una es de obligada

introducción.

- Modo -> Es el modo de como se hará la numeración, si pulsamos al matchcode

o sobre el campo F4 nos saldrá una ventana con las distintas de posibilidad de paginación.

- Tipo numeración -> Es el tipo de numeración que utilizaremos para esquemas y

páginas, si pulsamos el matchcode o sobre el campo F4 nos saldrá una ventana con

los distintos tipos de numeración.

Si queremos crear una página nueva , copiarla de una ya creada o borrarla tendremos

que ir al menú .Tratar. hay tenemos las siguientes opciones: .Crear elemento.

SHIFT+F7, .Copiar elemento. SHIFT+F8 y .Borrar elemento. SHIFT+F2.

Tenemos que vigilar cuando borremos una página ya que se borra la que este

seleccionada, la que esta seleccionada aparece en azul. Para seleccionar una página

tenemos que hacer doble clic sobre la página que queramos o un clic y luego el botón

Seleccionar.

Cuando creemos una nueva página siempre se nos pedirá el nombre de la página y la

descripción de ella.

Lo siguiente es crear las ventanas del formulario, para ello pulsaremos el botón

Ventanas, o SHIFT+F6.

VENTANAS
Las ventanas son un trozo de pantalla dentro de una página que servirá para visualizar

los datos que queramos. La pantalla que sale es la siguiente:

An Indra company 8
Fig. Ventanas.

Inicialmente SAP ya nos pone una, ya que como mínimo un formulario ha de tener una

ventana principal. Las demás ventanas podrán ser definidas como ventanas constantes o

variables.

La ventana principal tendrá el mismo ancho de cada hoja de formulario; en la ventana

principal se visualizará el texto corrido (el texto que puede abarcar varias páginas).

Las ventanas constantes deberán tener el mismo tamaño y el mismo contenido en todas

las hojas del formulario, es decir, que sólo deberán ser editadas una vez. Al definir una

ventana como constante se acelerará el proceso de la edición de texto.

En el campo .Párrafo por defecto. indicaremos que párrafo utilizará esa ventana por

defecto.

Si queremos crear una ventana nueva , copiarla de una ya creada, borrarla o acceder al

programa de la ventana tendremos que ir al menú .Tratar. hay tenemos las siguientes

An Indra company 9
opciones: .Crear elemento. SHIFT+F7, .Copiar elemento. SHIFT+F8, .Borrar

elemento. SHIFT+F2 y .Elementos de texto. SHIFT+F4.

Los elementos también se pueden acceder pulsando el botón .Elementos de textos..

La ventana que esté seleccionada aparecerá en azul. Para seleccionar una ventana

tenemos que hacer doble clic sobre la página que queramos o un clic y luego el botón

Seleccionar.

Cuando creemos una ventana tendremos que introducir obligatoriamente el nombre de

la ventana y su significado. Nosotros tendremos que crear las siguientes ventanas:

VENTANA SIGNIFICADO
El
CABEC Cabecera

FECHA Fecha actual

HORA Hora actual

MEMBRETE Membrete

TITULO Títulos de línea


resultado sería la siguiente página:

An Indra company 10
Lo siguiente que haremos es crear los párrafos que se utilizarán, para ellos pulsaremos

el botón .Párrafos. o F7.

PARRAFOS
En párrafos crearemos dos uno será un párrafo simple y el otro será con tabulaciones.

La pantalla que saldría es la siguiente:

An Indra company 11
Fig. Párrafos.

En la box Atributos estándar es donde configuraremos como será nuestro párrafo,

tendiendo las siguientes opciones:

- Botón Estándar -> es donde definiremos los márgenes del párrafo, sangrías,

interlineados.

- Check box Sin lín. Blanco -> Mediante este indicador, se puede determinar si

se han de imprimir todas las líneas en blanco.

- Check box Conserv. líneas junt. -> Sirve para proteger un párrafo cuando no

queremos que se rompa cuando se realice un salto de página.

- Check box Parraf [Link] pág. -> Sirve para indicar que el siguiente párrafo

a visualizar se haga en la misma página y no se separen a través desde un

salto de página.

- Botón FONT -> Indicar la fuente y su tamaño y como se visualizara en negrita,

An Indra company 12
cursiva y negrita.

- Botón TABULADORES -> Indicaremos en que posiciones se visualizarán los

datos del formulario.

- Botón ESQUEMA -> El esquema del párrafo.

Si queremos crear un párrafo nuevo , copiarlo de uno ya creado, borrarlo tendremos que

ir al menú Tratar hay tenemos las siguientes opciones:

.Crear elemento. SHIFT+F7,

.Copiar elemento. SHIFT+F8

.Borrar elemento. SHIFT+F2.

Primero crearemos el párrafo simple que le llamaremos .P1. y le pondremos un

significado, por ejemplo Párrafo simple, recordad que estos dos campos son

obligatorios.

El párrafo con tabulaciones le llamaremos .P2. y en significado le pondremos .Párrafo

con tabulaciones. una vez creado tendremos que ponerle los tabuladores, y para ello lo

seleccionaremos si no lo está, después pulsaremos el botón .Tabuladores. y

escribiremos los siguientes tabuladores: 7, 19 y 52. A la izquierda aparece un recuadro,

inicialmente en blanco, que es donde pondremos la unidad de medida del tabuladores.

Para indicarle que unidad de medida utilizaremos en ese tabulador pulsaremos sobe el

matchcode o sobre el campo F4 y nos saldrá una ventana con las unidades de medida

posibles, nosotros escogeremos la unidad .CH. que significa .Carácter.. Con esta

unidad es más fácil controlar en que posición queremos que visualice un dato.

El resultado sería la siguiente pantalla:

An Indra company 13
Los tabuladores funcionan de la siguiente forma. El primer dato que se visualice se

mostrará en la posición que le indiquemos en el margen izquierdo (Si esta en blanco se

mostrará en la posición cero), el segundo que visualicemos se mostrará en la posición

que indique el tabulador número 1, el tercer dato se mostrará en la posición que indique

el tabulador número 2 y así sucesivamente.

Ahora crearemos un string, para ello pulsaremos el botón .Strings. o F8.

STRINGS
Los strings se utilizan para visualizar de una forma un determinado dato dentro de un

párrafo. Yo haré un string para visualizar la hora en cursiva. La pantalla es la siguiente:

An Indra company 14
Fig. Strings.

Yo ya he creado uno, pero su funcionamiento es similar al de un párrafo.

Los atributos que se ven corresponden al del botón .Font. que no se ve por estar

seleccionado. Aquí es donde definiremos como será el tipo de letra, como se verá etc..

En la imagen se ve activado la opción de .Cursiva..

En los atributos .Estándar. definiremos como se visualizará el string: oculto, Índice,

Subíndice, etc..

Si queremos crear un string nuevo , copiarlo de uno ya creado o borrarlo tendremos que

ir al menú .Tratar.. Tenemos las siguientes opciones:

.Crear elemento. SHIFT+F7,

.Copiar elemento. SHIFT+F8

.Borrar elemento. SHIFT+F2.

Después de crear el string, nos iremos a la parte más importante de un formulario que

An Indra company 15
son las ventanas de página, para acceder pulsaremos el botón .Ventanas página. o F6.

VENTANAS PAGINA
Aquí es donde uniremos las páginas creadas anteriormente con las ventanas creadas

también anteriormente. La página inicial es la siguiente:

Fig. Ventanas página.

En el campo .Página. nos sale la última página que hayamos seleccionado, si pulsamos

el matchcode o sobre el campo pulsamos F4 nos saldrá una ventana con las páginas que

tiene el formulario, en nuestro caso solo aparecerá una. Abajo del campo .Página. se

visualizaran las ventanas que hayamos insertado.

Si queremos crear un ventana nueva, borrarla, ir al código fuente de la ventana o ir a los

atributos de la ventana principal tendremos que ir al menú .Tratar. hay tenemos las

siguientes opciones:

An Indra company 16
.Crear elemento. SHIFT+F7

.Borrar elemento. SHIFT+F2,

.Elementos de texto. SHIFT+F4

.Ventana principal..

Por ejemplo vamos a crear la cabecera para ello iremos al menú .Tratar., .Crear

elemento. y nos saldrá la siguiente pantalla:

En esta pantalla nos saldrán las ventanas que no hayamos insertado exceptuando la

.MAIN. que la podemos insertar tantas veces como queramos (pero hay que vigilar ya

que si insertamos muchas las ventanas se pueden solapar).

Nosotros escogeremos la primera que sale que es .CABEC., una vez insertada hemos

de indicar la margen izquierdo, margen superior, anchura y altura estas dos ultimas son

de obligada introducción.

También hemos de poner la unidad de medida que utilizaremos. Para la anchura y

margen izq. Utilizaremos la .CH. (Carácter) y para la altura y margen superior la .LN.

(Líneas). Con estas dos medidas es más fácil controlar la posición de una ventana ( o un

párrafo como hemos hecho antes) en un formulario.

Para la cabecera pondremos los siguientes valores: margen izq-> 1, anchura-> 80 y

altura-> 20.

An Indra company 17
El resto de ventanas quedan como en la siguiente imagen:

También aquí la ventana que esta seleccionada aparece en azul, para seleccionar una

ventana solo hace falta hacer doble clic y la seleccionaremos.

Ahora tenemos que escribir el código de cada ventana, empezaremos por la ventana

.Membrete. para ello la seleccionaremos y pulsaremos el botón .Elementos de texto. y

la pantalla inicial que sale es la siguiente:

An Indra company 18
El asterisco que sale indica que lo que escribamos en esa línea se visualizara con el

formato del párrafo por defecto que le hayamos indicado cuando creamos la ventana.

Donde aparece el asterisco es donde vamos a indicar como se visualizara lo que

escribamos en esa línea, para ver los formatos que tenemos pulsamos sobre el

matchcode que tiene o sobre el campo pulsamos F4 y nos saldrá la siguiente pantalla:

An Indra company 19
Fig. Formato.

En esta pantalla también aparecen los párrafos que hayamos creado. Los .Strings. no

aparecen.

Los formatos destacados son:

- ./:. se utiliza cuando queramos meter instrucciones en el código del programa.

- ./E:. Se utiliza para separar diferentes zonas de texto dentro de una misma página.

Si el cursor está en el campo formato (donde esta el asterisco) y pulsamos el botón

.Marcar. aparece un submenú donde podremos copiar, cortar, borrar, etc.. esa línea que

aparecerá en azul. Si dentro de ese submenú hacemos clic sobre otra línea también se

marcará (se pondrá de color azul) y también podremos cortar, borrar, copiar, etc... las

líneas marcadas.

El código que quedaría sería el siguiente:

Como vemos cada vez que visualice una línea haré un salto de línea. Después volveremos atrás. y haremos
el código del título que será este:

En esta pantalla vemos que los textos se ponen sin comillas simples y que para separar

un texto de otro se utilizan dos comas (Esta separación también es válida para separar

An Indra company 20
variables). Las dos comas realizan un salto equivalente a la tabulación que tengamos

definida en la pantalla de .Cabecera. (En nuestro caso de 1 carácter).

En nuestro caso como queremos que visualice con el formato del párrafo .P2. hará lo

que diga el formato del párrafo que tiene preferencia.

Al final vemos la instrucción .uline., esta instrucción realiza una línea yo le indico que

la haga de 81 caracteres, ya que si no se pone nada la realiza de un solo carácter.

Entre el texto .Región. y la orden .uline. no pongo separación alguna para que asuma

que esa orden va en la línea siguiente.

Las instrucciones o variables en un formulario van entre .&. al principio y al final de

la misma.

Lo siguiente es poner el código a la ventana .main. para ello volvemos atrás y

selecciona la ventana. El código sería el siguiente:

Aquí he utilizado el formato ./E., este indicador sirve para indicar un elemento de

Texto. Dentro de una misma ventana podemos tener más de un elemento de texto y solo

se mostrará ese trozo de texto cuando se lo indiquemos desde el programa.

También vemos como se separan campos de una tabla y de distintas tablas. Estos

campos se visualizarán con el formato del párrafo .P2..

Lo siguiente sería poner el código de la ventana .Cabec. que sería el siguiente:

An Indra company 21
Aquí lo visualizo con el párrafo .P1.. El código de la ventana .Fecha. sería el siguiente:

Como vemos utilizo símbolos de SAPscript, que van entre .&., para visualizar el dia, el

nombre del mes y el año todo ello mezclado con textos, y con el formato del párrafo

.P1..

El código de la ventana .Hora. sería el siguiente:

Aquí también utilizo símbolos de SAPscript y texto. También vemos como he colocado

el string haciendo que englobe al texto y a la variable del sistema. Si queremos que

englobe solo a la variable del sistema sería así:

Hora:,,<cu>&time&</>

Por último después de grabar y hacer la revisión sintáctica y activarlo hemos de poner

los dos campos que faltan a la .Cabecera. del formulario, vamos a la cabecera del

formulario y ponemos al campo .Párrafo defecto. el párrafo .P1. también lo podemos

seleccionar a través del matchcode y en .Página principal. la página .Principal. que

An Indra company 22
también la podemos seleccionar a través del matchcode.

Después lo grabaremos y si es la primera vez que lo hacemos nos saldrá un recuadro

para asignarle la clase de desarrollo, como ejemplo lo grabaremos como objeto local.

Lo verificaremos y si no hay errores lo activaremos. Para ver como quedaría el diseño

del formulario vamos al menú .Utilidades., .Impresión test. y nos saldrá la siguiente

pantalla:

Fig. Pre-impresión.

Ahora pulsamos sobre el botón .Visual impresión. y nos saldría la siguiente pantalla:

An Indra company 23
Como vemos así quedaría nuestro formulario, podemos apreciar como sale la hora en

cursiva.
LLAMAR A UN FORMULARIO

Un formulario se llama a través de un programa ABAP. Los formularios se han de abrir, enviarle

los datos necesarios y cerrarlo.

ABRIR UN FORMULARIO
Un formulario se abre con la función .OPEN_FORM., cuya estructura sería la

siguiente:

call function ’open_form’

exporting

device = ’ ’

dialog = ’ ’

form = ’ ’

language = ’ ’

options =

An Indra company 24
exceptions

canceled = 1

device = 2

form = 3

options = 4

unclosed = 5

others = 6.

Las opciones de .exporting. son las siguientes:

- Device -> Es por donde saldrá el formulario admitiendo los siguientes parámetros:

printer (Impresora), screen (pantalla), telex, fax. Hay que decir que si lo sacamos

por pantalla algunos de los formatos no se visualizarán, ejemplo cursivas, negritas,

etc...

- Dialog -> Cuando saquemos el formulario por impresora y no queramos que nos

salga antes la pantalla de pre-impresión (Véase Fig. pre-impresión) dejaremos esta

casilla en blanco, si queremos que visualice esta pantalla la marcaremos con una

.X. o sencillamente no pondremos esa opción ya que por defecto aparecerá esa

pantalla.

- Form -> Es el nombre del formulario.

- Languaje -> En que lenguaje se visualizara el formulario, si esta opción no se pone

se visualizara con el idioma original del formulario.

- Options-> Este parámetro es opcional. Se le pasa una tabla o una estructura con la

estructura de la estructura .itcpo..

- Los campos más importantes o utilizados de la estructura .itcpo. son lo siguientes:

tdcopies-> Numero de copias que se harán del formulario.

tddest -> Dispositivo de salida o nombre de la impresora, fax, etc...

tdnewid -> Nueva orden de SPOOL.

tdimmed -> Salida inmediata.

tddelete -> Borrar tras la salida.

Esta función tiene más opciones, pero con estas es más que suficientes para imprimir un

An Indra company 25
sencillo formulario.

ESCRIBIR EN EL FORMULARIO
Para enviar datos del programa al formulario se utiliza la función .WRITE_FORM.,

cuya sintaxis es la siguiente:

call function ’write_form’

exporting

element = ’ ’

window = ’ ’

exceptions

element = 1

function = 2

type = 3

unopened = 4

unstarted = 5

window = 6

others = 7.

Las opciones de exporting son las siguientes:

- Element -> Es el nombre del elemento de textos que deseamos enviarle datos, os

acordáis que hemos declarado un elemento de textos en la ventana .main. que se

llama .ivan. pues si hubiera más de un elemento de texto en la ventana tendríamos

que hacer tantos .write_form. como elementos de texto hubiera.

- Window -> Es el nombre de la ventana al cual pertenece el elemento de texto.

Esta función también se utiliza cuando queremos sacar datos de una tabla interna o de

diccionario y hay que llamar a la ventana del formulario varias veces, si solo queremos

sacar un dato una sola vez no hace falta que utilicemos esta función ya que los saca el

solito. En el ejemplo de más adelante se ve mejor.

An Indra company 26
CERRAR UN FORMULARIO
Después de haberlo abierto y haberle enviado datos hay que cerrarlo. Para cerrarlo se

utiliza la orden .CLOSE_FORM. la sintaxis sería la siguiente:

call function ’close_form’

exceptions

unopened = 1

others = 2.

Como vemos no hay más historia.

EJEMPLO

En este ejemplo veremos como se llama al formulario que hemos creado anteriormente.

report zziva200.

tables: zztabpru10, itcpo, bnka.

data: begin of tabla occurs 0,

kunnr like zztabpru10-kunnr, " deudor

bankl like zztabpru10-bankl, " codigo bancario

bukrs like zztabpru10-bukrs, " sociedad

banka like bnka-banka, " nombre del banco

provz like bnka-provz, " region

stras like bnka-stras, " calle y número

ort01 like bnka-ort01, " población

end of tabla.

parameters wbukrs like zztabpru10-bukrs default ’1080’ obligatory.

parameters wbanks like zztabpru10-banks default ’es’. " obligatory.

select-options wkunnr for zztabpru10-kunnr.

initialization.

An Indra company 27
wkunnr-low = ’10000’. wkunnr-high = ’15000’. wkunnr-option = ’bt’.

wkunnr-sign = ’i’. append wkunnr.

start-of-selection.

perform abrir_formulario.

select * from zztabpru10 where bukrs = wbukrs and

banks = wbanks

and kunnr in wkunnr.

select single * from bnka where bankl = zztabpru10-bankl.

perform imprimir using ’ivan’ ’main’.

endselect.

call function ’close_form’

exceptions

unopened = 1

others = 2.

form abrir_formulario.

move: 1 to itcpo-tdcopies, " nº de copias

’esb6’ to itcpo-tddest, " dispositivo de salida

’x’ to itcpo-tdnewid, " nueva orden de spool

’x’ to itcpo-tdimmed, " salida inmediata

’x’ to itcpo-tddelete. " borrar tras salida

call function ’open_form’

exporting

device = ’screen’

dialog = ’x’

form = ’zzivan10’

language = ’s’

options = itcpo

exceptions

An Indra company 28
canceled = 1

device = 2

form = 3

options = 4

unclosed = 5

others = 6.

endform. " abrir_formulario

*&---------------------------------------------------------------------*

*& form imprimir

*&---------------------------------------------------------------------*

* le paso dos valores el elemento y el nombre de la ventana *

*----------------------------------------------------------------------*

form imprimir using elemento

ventana.

call function ’write_form’

exporting

element = elemento

window = ventana

exceptions

element = 1

function = 2

type = 3

unopened = 4

unstarted = 5

window = 6

others = 7.

endform. " cabecera

En este ejemplo se pide el deudor que inicialmente va entre 10.000 y 15.000, la sociedad por defecto es
.10802 y el país del banco que por defecto vale .ES.. Después busco en la tabla .ZZTABPRU10. los datos

An Indra company 29
que cumplan los criterios introducidos por teclado y después busco en la tabla .bnka. por el código del banco
para saber la región de ese banco.

Cuando abro el formulario le envío las opciones como el número de copias, la

impresora por donde quiero que se imprima, etc..

Tengo un procedimiento hecho donde le paso el elemento de datos y la ventana donde

se pasaran los datos del resultado de la búsqueda al formulario.

Si ejecutamos el programa el resultado sería el siguiente:

Y si pulsamos F8 para ejecutar la búsqueda saldría esta otra pantalla:

Se puede apreciar de cómo la hora no la saca en cursiva, pero como ya he dicho

An Indra company 30
anteriormente cuando sacamos el formulario por pantalla algunos formatos no se

visualizan.

También vemos como cuando visualizamos algo con el párrafo .P1., que no tiene

ninguna tabulación ni nada, las separaciones entre los datos es de un carácter (recordar

que la separación de datos se realiza con dos comas y esta separación equivale a la

tabulación que le hayamos puesto en .Cabecera., y nosotros le pusimos un carácter por

lo tanto SAP realiza una separación de un solo carácter).

Para probar lo de los elementos de textos y el .write_form., haremos un experimento.

En el código fuente de la ventana .main. eliminaremos el elemento de texto dejando

solo la línea de las variables de los campos, quedaría solo esto.

Y el trozo de código fuente donde se utiliza el .write_form. quedaría:

select * from zztabpru10 where bukrs = wbukrs and

banks = wbanks

and kunnr in wkunnr.

select single * from bnka where bankl = zztabpru10-bankl.

perform imprimir using ’ ’ ’main’.

endselect.

Si lo volvemos a ejecutar, no os olvidéis de volver a activar el formulario y generar el

programa. Veréis que el resultado es el mismo.

SIMBOLOS SAPscript

Los símbolos SAPscript o variables del sistema son los siguientes:

- Date -> fecha actual.

- Day -> Día de la fecha actual.

- Device -> Dispositivo de salida: printer, screen, fax y telex.

- Hours -> Hora de la hora de hoy.

- Minutes -> Minutos de la hora de hoy.

- Month -> Mes de la fecha actual.

An Indra company 31
- Name_of_day -> Nombre del dia.

- Name_of_month -> Nombre del mes.

- Nextpage -> Número de la página siguiente.

- Page -> Número de página actual.

- Seconds -> Segundos de la hora de hoy.

- Space -> Espacio en blanco.

- Time -> Hora actual.

- Uline -> Línea horizontal.

- Vline -> Línea vertical.

- Year -> Año de la fecha actual.

COMANDOS SAPscript

Los comandos de SAPscript se han de poner con el formato ./e:., como en este

ejemplo:

SAPscript tiene los siguientes comandos.

NEW-PAGE

Se utiliza para realizar un salto de página, la sintaxis es la siguiente:

/: NEW-PAGE [nombre_pagina]

Si el nombre de página no se pone saltará a la siguiente indicada en el formato de la

página, si esa opción esta en blanco se ignorará.

PROTECT

Sirve para proteger un párrafo de un salto de página, este párrafo ha de estar dentro de

este comando para que las proteja. La sintaxis es la siguiente:

/: PROTECT

/: ENDPROTECT

Si nos olvidamos de poner el .protect. o el .endprotect. el comando no tendrá efecto.

NEW-WINDOW

An Indra company 32
Crea una nueva ventana cuando ésta esté llena, el número de ventanas puede ir de 0

hasta 98. Si se realiza un .new-window. y la ventana no esáa llena éste comando no tiene

efecto. Si lo realizas en la ultima ventana principal de la página éste comando tiene el

mismo efecto que un .new-page.. Su sintaxis es:

/: NEW-WINDOW

DEFINE

Se utiliza para asignar un texto a un símbolo. Este símbolo puede ser utilizado durante

todo el formulario aunque también puede variarse su contenido. Su sintaxis:

/: DEFINE &nombre_simbolo& = ’valor

Ejemplo:

/: DEFINE &simbolo& = ’Nuestra carta 7/3/95’

El valor que le asignamos no puede sobrepasar de los 60 caracteres.

Otro ejemplo:

/: DEFINE &simbolo1& = ’mail’

/: DEFINE &simbolo2& = ’SAP&symbol1&’

/: DEFINE &simbolo1& = ’script’

&simbolo2&

El resultado sería -> SAPscript

Si queremos hacer que no cambie .simbolo2. después de haberle asignado .simbolo1.,

tendríamos que hacer lo siguiente:

/: DEFINE &simbolo1& = ’mail’

/: DEFINE &simbolo2& := ’SAP&symbol1&’

/: DEFINE &simbolo1& = ’script’

&simbolo2&

El resultado sería -> SAPmail

SET DATE MASK

Es la máscara de visualización para la fecha.

/: SET DATE MASK = ’mascara_fecha’

Pudiendo utilizar los siguientes códigos:

An Indra company 33
· DD -> Día (dos dígitos)

· DDD -> Nombre del día abreviado.

· DDDD -> Nombre del día completo.

· MM -> Mes (dos dígitos)

· MMM -> Nombre del mes abreviado.

· MMMM -> Nombre del mes completo

· YY -> Año (dos dígitos)

· YYYY -> Año en cuatro dígitos

· LD -> Día (formateado con la opción L)

· LM -> Mes (formateado con la opción L)

· LY -> Año (formateado con la opción L)

Todos los caracteres de la mascara SAP las coge como un solo string.

Un ejemplo sería el siguiente:

/: SET DATE MASK = ’Barcelona, MM/DD/YY’

&DATE&

Resultado sería -> Barcelona, 03/01/94

/: SET DATE MASK = ’MMMM DD, YYYY’

&DATE&

Resultado sería -> Marzo 01, 1994

Para quitar la mascara se haría de la siguiente forma.

/: SET DATE MASK = ’ ’

Los valores del día y del mes serian los siguientes:

dd: Numero de dia 01 = Lunes, ..., 07 = Domingo

mm: Numero del mes 01 = Enero, ..., 12 = Diciembre

SET TIME MASK

Es la mascara de cómo se visualizaría la hora. La sintaxis sería:

/: SET TIME MASK = mascara_hora’

Los códigos serían los siguientes:

· HH -> Hora (dos dígitos)

An Indra company 34
· MM -> Minutos (dos dígitos)

· SS -> Segundos (dos dígitos)

Todos los caracteres de la mascara SAP las coge como un solo string.

Varios ejemplos serían:

/: SET TIME MASK = ’HH:MM’

&TIME&

El resultado sería -> 10:08

/: SET TIME MASK = ’HH horas MM minutos’

&TIME&

El resultado sería -> 10 hours 08 minutes

Para quitar la mascara se haría de la siguiente forma:

/: SET TIME MASK = ’ ’

SET COUNTRY

Hay determinados campos que dependen del país como puede ser los decimales, la

moneda, los miles, etc... Con este comando podemos hacer que nos coja el país que

nosotros queramos. La sintaxis:

/: SET COUNTRY código_pais

.Código_país. puede ir entre comillas simples o ser un simbolo.

Ejemplo:

/: SET COUNTRY ’CAN’

/: SET COUNTRY &codigo_pais&

En el primer comando pongo el país a mano, y en el segundo .codigo_pais. sería un

símbolo que contendría el código del país.

Para volver a poner el código de país que estaba ante sería ponerlo en blanco.

/: SET COUNTRY ’ ’

SET SIGN

Con este podemos cambiar la posición de visualización del signo, por defecto aparece

por la derecha pero podemos hacer que se visualice por la izquierda. La sintaxis

/: SET SIGN LEFT

An Indra company 35
Con este comando el signo aparece por la izquierda

/: SET SIGN RIGHT

Con este comando el signo aparece por la derecha.

RESET

Sirve para hacer un reset de las líneas de un parágrafo. Su sintaxis:

/: RESET nombre_parrafo

N1 Introduce tu nombre

N1 Introduce tu contraseña

N1 Selecciona la aplicación que quiere usar

La especificación del texto debe ser como sigue:

Proceder como sigue si quiere trabajar con el sistema SAP R/3:

1. Asegúrese de que tiene PC

2. Encender el PC

3. Hacer clic con el ratón en el icono de SAP

Se muestra la ventana de logon de SAP. Para hacer Logon, debe de hacer lo siguiente:

4. Introduce tu nombre

5. Introduce tu contraseña

6. Selecciona la aplicación que quieres usar.

Si no hay un comando de Reset entre estas dos secciones, las dos listas serán renumeradas en una
sóla secuencia.

INCLUDE

Esa orden se utiliza para insertar textos que tengamos creados de antemano. Podemos

acceder a los textos de dos formas: una cuando estemos creando o modificando un

formulario a través del menú .Entorno., .Textos estándar. y la segunda es accediendo

desde la pantalla principal de SAP menú .Herramientas., .Tratamiento de textos.,

.Texto estándar..

Para incluirlos dentro de nuestro formulario utilizaremos el comando .include. cuya

sintaxis es la siguiente:

/: INCLUDE nombre_texto [OBJECT o] [ID i] [LANGUAGE l] [PARAGRAPH p]

[NEW-PARAGRAPH np]

An Indra company 36
El nombre del texto puede ser de hasta 70 caracteres, si el nombre lleva espacios

tendremos que encerrarlo en comillas simples, también se puede utilizar símbolos con el

nombre del texto. Todos los parámetros son opcionales, y si no los ponemos SAP coge los

valores por defecto.

Las opciones que tenemos son las siguientes:

- OBJECT -> Las restricciones del tipo de documento que visualizaremos. Con las

siguientes opciones:

- Algún tipo de texto debe de ser introducido en el conjunto. Si no se especifica un objeto, los textos
estandar se podrán utilizar.

- En el caso de un documento de texto (objeto DOKU), sólo puede incluir documentos de texto. Este
tipo objeto es asumido si no se especifica ningún objeto en este entorno.

- Sólo hipertextos y documentos de texto se pueden incluir en un objeto hipertexto (objeto DSYS). Si
el parámetro OBJECT se pierde, se usa DSYS como valor por defecto.

- Para los demás tipos de textos sólo se puede incluir textos estandar (objeto (TEXT), documentos de
texto o hipertextos. Si no se especifica, por defecto toma el valor TEXT.

- ID i -> El Text-ID es parte de la clave de texto la cual permite usar objetos de texto sin un objeto
definido. Si no se especifica, el include ID por defecto se coge de la tabla TTXID para el texto llamado.
Si no hay entradas en la tabla, se usa el Text-ID del texto llamante.

- LANGUAGE l -> Sirve para indicar en que lenguaje se mostrarán los textos del

formulario, si se omite esta opción se mostrarán en lenguaje original del formulario.

- PARAGRAPH -> Todos los textos que se muestran lo hacen con el párrafo que

se usa en ese momento en el formulario, con esta opción se redefine el

párrafo standard que se este utilizando. Todos los *-paragraphs en el texto incluido se deben de
formatear usando el párrafo especificado.

- NEW-PARAGRAPH -> La primera línea del texto a incluir se debe de especificar en el formato
indicado, tanto si no es un comentario como una línea de comandos. Si el parámetro opcional
PARAGRAPH no se especifica, todos los *-paragraphs del texto incluido se deben formatear usando
el párrafo especificado en el comando NEW-PARAGRAPH.

Varios ejemplos serían:

/: INCLUDE MITEXTO

El texto MITEXTO es incluido con el lenguaje del texto llamado.

/: INCLUDE MITEXTO LANGUAGE ’E’ PARAGRAPH ’A1’

An Indra company 37
El texto con el nombre MITEXTO y el lenguaje E es incluido, a pesar del lenguaje del texto origen, el
formato de párrafo A1 será usado en el tipo de párrafo estándar.

El .include. puede devolver errores, a través de la variable .sy-subrc., que pueden ser

los siguientes:

· 0: El texto ha sido incluido con éxito.

· 1: El comando no ha podido ser ejecutado por que contenia errores.

· 2: las normas que rigen el texto no se incluirán (véase más arriba). Esto no ocurrirá si el comando
es usado en el SAPscript layout set.

· 4: El texto especificado no ha podido ser encontrado.

STYLE

Sirve para cambiar el estilo del texto. Si aplicamos un estilo éste no variará hasta que no

cambiemos de estilo o volvamos al original. Su sintaxis es:

/: STYLE estilo

Para volver al estilo original hariamos:

/: STYLE *

ADDRESS

Sirve para visualizar la dirección de uns persona física o jurídica en un formulario. Su sintaxis es la
siguiente:

/: ADDRESS [DELIVERY] [TYPE t] [PARAGRAPH a] [PRIORITY p] [LINES l]

/: TITLE titulo

/: NAME nombre[,nombre2[,nombre3[,nombre4]]]

/: PERSON nombre de la persona natural [TITLE dirección_formulario]

/: DEPARTMENT departamento

/: STREET nombre calle

/: LOCATION informacion adicional de la localidad

/: POBOX po box [CODE codigo postal] [CITY ciudad]

/: POSTCODE código postal

/: CITY ciudad1[,ciudad2]

/: REGION comunidad / país

/: COUNTRY país destinatario [LANGUAGE código lenguaje]

An Indra company 38
/: FROMCOUNTRY país remitente

/: ADDRESSNUMBER número dirección.

/: ENDADDRESS

Las descripción de las opciones son las siguientes:

DELIVERY

Significa que la dirección será formateada como una dirección de entrega completa, i.e.

usando el nombre de la calle y el número seguidos del código postal.

TYPE

Especifica el tipo de dirección. Tenemos las siguientes posibilidades

- 1 ->- Dirección normal (ADRS1). Es la dirección de una compañía u organización.

es la estructura típica de una dirección de SAP.

- 2 -> Dirección privada y otra personal (ADRS2). Es la dirección natural de una

personal, una privada o de su casa.

- 3 -> Direccion de la compañia (ADRS3) con persona de contacto. Esta es la

dirección de un compañero sin nombre de empresa. El nombre de la compañía se visualiza en los


campos .TITLE. y .NAME. ; El ATTN: persona de contacto será mostrada en PERSON y TITLE.

Si no se pone esta opción la dirección se coge como tipo uno.

PARAGRAPH

Especifica el formato de párrafo que se utilizará para la escribir la dirección. Si este parámatro no se
especifica, la dirección se escribirá usando el formato de párrafo por defecto.

PRIORITY

Especifica que líneas de la dirección serán omitidas cuando sea necesario. Cualquier

combinación de los siguientes códigos se puede poner. El orden de la lista de códigos

determina el orden en el cual se mostrarán las líneas -> TRADUCIR.

Los códigos son como siguen:

- A -> Título.

- P -> Linea en blanco obligatoria

- 4 -> Nombre 4

- 3 -> Nombre 3

- R -> Región

An Indra company 39
- T -> Vecino, administrador de la seccion de la ciudad (CITY2)

- D -> Departamento

- L -> Nombre de la comunidad

- C -> Código postal

- 2 -> Nombre 2

- B -> Código postal solo para Japón.

- S -> Nombre de la calle o código postal, dependiendo del parametro DELIVERY.

- N -> Nombre y formulario de la dirección de una persona natural (PERSON y TITLE)

- I -> Información local en LOCATION

- O -> Ciudad

LINES

Especifica el número de líneas que serán usadas para la dirección. Si hay pocas líneas

disponibles, los datos de la dirección se mostrarán basandose en el parametro PRIORITY.

PRIORITY.

Si no se especifica el parámetro LINES y si el comando se usa en una ventana de otro tipo distinto
de MAIN, el número de líneas disponibles para formatear la dirección es automáticamente calculado
con la posición actual y el tamaño de la ventana.

TITLE

Título de la dirección. Usado solo con las direcciones de tipo 1 y 3.

NAME

Se pueden utilizar hasta cuatro nombres, separados por comas. Solo se puede utilizar en

direcciones de tipo 1 y 3.

PERSON

Usado sólo para destinatario de tipo 2 (Dirección privada o personal) o tipo 3 (dirección de contacto
de la empresa). En el tipo de destinatario 3, usaremos PERSON para el nombre de la persona de
contacto: ’Attn: Mr. Jeffries’. El nombre del campo sera usado para la dirección de la compañía.

TITLE (con PERSON)

TÍTULO destinatario. Usado solo para direcciones de tipo 2 o tipo 3 (dirección privada o

personal).

DEPARTMENT

An Indra company 40
Departamento destinatario. Usado solo para direcciones de tipo 3 dirección de la compañia).

STREET

Nombre de la calle, incluyendo el número.

LOCATION

Información adicional, como el edificio, escalera y similares. Aparecen en su propia línea de la


dirección.

POBOX

Código postal

CODE

Código postal, si es diferente el código postal del destinatario.

CITY

La ciudad en la cual el Código Postal está localizado si es diferente de la ciudad del destinatario.

POSTCODE

Código postal del destinatario.

CITY

Ciudad del destinatario.

REGION

Permite una región administrativa, condado, provincia, estado, etc…

COUNTRY

Especifica el país destinatario, i.e. el país correspondiente a las convenciones postales de la dirección.

LANGUAGE

Código del lenguaje del país del destinatario, si es diferente del país destinatario.

Ejemplo: Dirección en Suiza. El código estándar de SAP se puede visualizar

inicialmente en un texto de SAPscript procesandolo por la pantalla o en la tabla T002.

FROMCOUNTRY

Especifica el lenguaje que será usado para formatear el nombre del país destinatario.

Para muchos paises de Europa, el país destinatario se especifica usando las letras de la matrícula de
coche internacional delante del código postal y separadas del mismo con un guión.

ADDRESSNUMBER

An Indra company 41
El número de la dirección es usado en casos especiales, como por ejemplo en Japon.

El número es usado en el indice central de ficheros, del cual la dirección deseada es leida. Se puede
encontrar más información en la documentación en el modulo de función
ADDRESS_INTO_PRINTFORM (transacción SE37).

Un ejemplo sería:

/: ADDRESS

/: TITLE ’Firma’

/: NAME ’Ivan & Inés y Montsé asociados’

/: STREET ’Alí Bei 135 1º 4ª’

/: POSTCODE ’08013’

/: CITY ’Barcelona

/: COUNTRY ’DE’

/: FROMCOUNTRY ’DE’

/: ENDADDRESS

La salida en pantalla sería:

Firma

Ivan & Inés y Montsé asociados

08013 Barcelona

Si el parametro DELIVERY es especificado en el comando ADDRESS, cuando el

nombre de la calle y número aparecerán sustiyuendo el Código Postal de la

dirección.

Firma

Ivan & Inés y Montsé asociados

Ali Beí 135 1º 4ª

08013 Barcelona

TOP

Sirve para poner texto en la cabecera del formulario. Su sintaxis:

/: TOP

An Indra company 42
/: ENDTOP

Si las líneas de texto estan entre los dos comandos se visualizarán cuando se inicio la

pagina principal.

Si ya existe una cabecera podemos desactivarla usando .TOP .. ENDTOP. sin que no

haya ninguna linea entre medio de los comandos, ejemplo:

/: TOP

/: ENDTOP

BOTTOM

Tiene el mismo funcionamiento que el comando .TOP. pero pone una serie de lineas en

el pie de página. Su sintaxis es:

/: BOTTOM

/: ENDBOTTOM

Si ya existe una pie de página y lo queremos desactivar usaremos .BOTTOM ..

ENDBOTTOM. sin ningún texto en su interior.

/: BOTTOM

/: ENDBOTTOM

IF

Sirve para hacer condiciones lógicas en un formulario.

Sintaxis.

/: IF condicion

/: ENDIF

Los operadores que podemos utilizar son los siguientes:

· = EQ igual que

· < LT menor que

· > GT mayor que

An Indra company 43
· <= LE menor o igual que

· >= GE mayor o igual que.

· <> NE diferente.

Para conectar las expresiones lógicas se utilizan los siguientes operadores:

· NOT

· AND

· OR

Sintaxis:

/: IF condition

/: ELSE

/: ENDIF

El comando ELSEIF sirve para especificar multiples campos.

Sintaxis:

/: IF condition

/: ELSEIF condition

/: ELSE

/: ENDIF

La cláusula .ELSE. es opcional.

CASE

Se utiliza para hacer multiples casos de un valor determinado. Su sintaxis:

/: CASE symbol

/: WHEN value1

/: WHEN value2

An Indra company 44
:

/: WHEN valuen

/: WHEN OTHERS.

/: ENDCASE

La opción .WHEN OTHERS. es opcional.

PERFORM

Sirve para llamar un procedimiento de un programa. Su sintaxis es:

/: PERFORM <form> IN PROGRAM <prog>

/: USING &INVAR1&

/: USING &INVAR2&

......

/: CHANGING &OUTVAR1&

/: CHANGING &OUTVAR2&

......

/: ENDPERFORM

INVAR1 y INVAR2 son variables simbolos y se pueden utilizar hasta cuatro SAPscript

tipos de simbolos

OUTVAR1 y OUTVAR2 son simbolos de texto locales y must therefore be character

strings.

PERFORM <form> IN PROGRAM <prog> TABLES INPUT_TABLE

OUTPUT_TABLE

IF FOUND.

INPUT_TABLE contiene los nombres y valores de los parametros USING en el

comando SAPscript PERFORM. El parametro USING debe coincidir con el número de parámetros de
entrada de la rutina llamada.

OUTPUT_TABLE contiene los nombres y valores de los parametros CHANGING en el

comando SAPscript PERFORM. Son los parámetros de salida de la rutina llamada.

PRINT-CONTROL

An Indra company 45
Este comando se utiliza para imprimir funciones de un texto. No se pueden introducir

caracteres de control directamente, podemos definir un control de impresión a través del

spooler mediante la transacción .SPAD.. La sintaxis:

/: PRINT-CONTROL nombre

Podemos especificar el nombre del control con o sin comillas invertidas.

BOX, POSITION y SIZE

Estos tres comandos se utilizan para hacer dibujos de cajas. La sintaxis:

1. /: BOX [XPOS] [YPOS] [WIDTH] [HEIGHT] [FRAME] [INTENSITY]

2. /: POSITION [XORIGIN] [YORIGIN] [WINDOW] [PAGE]

3. /: SIZE [WIDTH] [HEIGHT] [WINDOW] [PAGE]

BOX

Sintaxis:

/: BOX [XPOS] [YPOS] [WIDTH] [HEIGHT] [FRAME] [INTENSITY]

Efecto: Dibuja una caja en las coordenadas especificadas

Parametros: Para los valores XPOS, YPOS, WIDTH, HEIGHT y FRAME se utiliza una

medida y una unidad de medida especifica. The INTENSITY parametro que puede ser

especificado entre un porcentaje de 0 y 100.

1. XPOS, YPOS: Equina superior de la caja, los valores relativos del comando

POSITION.

Defecto: los valores son especificados en el comando POSITION

El calculo se realiza internamente y determina la posición absoluta de la caja en la

página

X(abs) = XORIGIN + XPOS

Y(abs) = YORIGIN + YPOS

2. WIDTH: Altura de la caja. Por defecto: WIDTH tiene el valor del comando

SIZE.

An Indra company 46
3. HEIGHT: Anchura de la caja. Por defecto: HEIGHT tiene el valor del comando

SIZE.

4. FRAME: ancho del frame. Por defecto: 0 (sin frame).

5. INTENSITY: la escala de grises de la caja en % . Por defecto: 100 (todo negro)

Medidas: los decimales se especifican como valores literales (como las constantes ABAP) encerrados
entre comillas. El punto se usa como carácter separador decimal.

Unidades de medida: se utilizan las siguientes unidades de medida

· TW (twip)

· PT (point)

· IN (inch)

· MM (milimetros)

· CM (centimetro)

· LN (linea)

· CH (caracter).

Los siguientes factores de conversión son aplicados:

· 1 TW = 1/20 PT

· 1 PT = 1/72 IN

· 1 IN = 2.54 CM

· 1 CM = 10 MM

· 1 CH = tamaño de un caracter relativo a la especificación CPI in the layout set

header.

· 1 LN = tamaño de la línea en la especificación LPI en la cabecera

/: BOX FRAME 10 TW

Dibuja un frame en la ventana actual con un recuadro fino de 10 TW (= 0.5 PT).

/: BOX INTENSITY 10

Rellena el fondo de una ventana con sombra con una escala de grises del 10 %.

/: BOX HEIGHT 0 TW FRAME 10 TW

Dibuja una línea horizontal a través de la mitad de la ventana.

/: BOX WIDTH 0 TW FRAME 10 TW

Dibuja una línea vertical a través de la mitad de la ventana.

An Indra company 47
/: BOX WIDTH ’17.5’ CM HEIGHT 1 CM FRAME 10 TW INTENSITY 15

/: BOX WIDTH ’17.5’ CM HEIGHT ’13.5’ CM FRAME 10 TW

/: BOX XPOS ’10.0’ CM WIDTH 0 TW HEIGHT ’13.5’ CM FRAME 10 TW

/: BOX XPOS ’13.5’ CM WIDTH 0 TW HEIGHT ’13.5’ CM FRAME 10 TW

Dibuja una ventana con dos rectangulos para construir una tabla de tres columnas con una sección
de cabecera sin remarcar

Dibuja dos rectángulos y dos líneas para construir una tabla de 3 columnas con la

sección de cabecera remarcada.

POSITION

Sintaxis:

/: POSITION [XORIGIN] [YORIGIN] [WINDOW] [PAGE]

Efecto: pone el origen del sistema de coordenadas al valor de los parámetros XPOS e YPOS del
comando. Cuando una ventana se inicia con el valor POSITION, se refiere a la esquina superior
izquierda de la ventana (por defecto).

Parametro: Si el valor de los parametros no tiene signo, el valor es intrerpretado como

absoluto, en otras palabras, como un valor que especifica un desplazamiento de la esquina superior
izquierda de la página de salida. Si el parametro se especifica con signo, el nuevo valor se calcula de
la posición relativa del valor anterior.. Si uno de los parametros se omite, los cambios no se realizaran
en el parametro.

1. XORIGIN, YORIGIN: Coordenadas originales del sistema.

2. WINDOW: fija el valor para los bordes superior e izquierdo para que sean los mismos que la ventana
actual (valores por defecto)

3. PAGE: fija el valor para los bordes superior e izquierdo para que sean los mismos que la página
actual de salida (XORIGIN = 0 cm, YORIGIN = 0 cm).

/: POSITION WINDOW

Fija las coordenadas originales del sistema en la esquina superior izquierda de la ventana.

/: POSITION XORIGIN 2 CM YORIGIN ’2.5 CM’

Fija las coordenadas originales del sistema en un punto a dos centímetros del borde izquierdo y 2.5
cm de la mitad superior de la pantalla de salida.

/: POSITION XORIGIN ’-1.5’ CM YORIGIN -1 CM

Fija las coordenadas originales a 1.5 cm a la izquierda y 1 cm arriba.

SIZE

An Indra company 48
Syntax

/: SIZE [WIDTH] [HEIGHT] [WINDOW] [PAGE]

Efecto: fija los valores de los parametros WIDTH y HEIGHT usados en el comando

BOX. Cuando una ventana es la primera en iniciarse el valor SIZE se fija con el mismo valor que la
misma ventana (valor por defecto).

Parameters: Si uno de los parametros se omite,los cambios no tendrán efecto el valor

actual del parametro. Si el valor del parametro no tiene signo, este valor es interpretado

como absoluto. Si el valor del parámetro tiene signo, el valor nuevo es calculado a la

posicion relativa del valor antiguo.

1. WIDTH, HEIGHT: Dimensiones de un rectangulo o línea.

2. WINDOW: fija los valores ancho y alto de la ventana actual (valor por

defecto).

3. PAGE: fija los valores ancho y alto de la actual página de salida.

/: SIZE WINDOW

Pone WIDTH y HEIGHT a las dimensiones actuales de la ventana.

/: SIZE WIDTH ’3.5’ CM HEIGHT ’7.6’ CM

Pone WIDTH a 3.5 cm y HEIGHT a 7.6 cm.

/: POSITION WINDOW

/: POSITION XORIGIN -20 TW YORIGIN -20 TW

/: SIZE WIDTH +40 TW HEIGHT +40 TW

/: BOX FRAME 10 TW

Un recuadro es añadido de la ventana actual. Los bordes del recuadro se extienden más allá que los
bordes de la ventana en si misma, a fin de evitar el oscurecimiento de los caracteres principales.

OPCIONES DIVERSAS

Esta opciones sirven para cambiar el modo de visualizacion de una variable por

pantalla. Las opciones son las siguientes:

TAMAÑO

Esta opción nos permite ver una parte de una variable. Ejemplo:

Imaginemos que el simbolo vale-> 123456789, la visualización sería la siguiente:

An Indra company 49
&simbolo& -> 123456789

& simbolo+3& -> 456789

& simbolo +7& -> 89

& simbolo +12& ->

& simbolo +0& -> 123456789

LONGITUD DE SALIDA

Parecido al anterior podemos acotar el ancho de visualización de un dato. La sintaxis

sería:

&simbolo(longitud)&

Imaginemos que el simbolo vale -> 123456789.

&simbolo(3)& -> 123

&simbolo(7)& -> 1234567

La longitud de salida se puede combinar con el offset(TRADUCIR)

&simbolo+4(3)& -> 567

Si la longitud de salida es mayor a la longitud de la variable o dato se añadiran espacios

en el simbolo.

El carácter .*. se puede usar para especificar la longitud del symbolo. La sintaxis:

&simbolo(*)&

El campo SYST-UNAME contiene el nombre del usuario llamado: .Inésita.. La

longitud del campo en el diccionario es 12.

&SYST-UNAME&... -> Inésita...

&SYST-UNAME(9)&... -> Inésita ...

&SYST-UNAME(*)&... -> Inésita ...

CAMBIO DE SIGNO

Por defecto el signo aparece en la parte derecha para cambiarlo de sitio utilizaremos la

siguiente opción:

Por ejemplo:

&itcdp-tdulpos(>)& -> 100.00-

&itcdp-tdulpos(<)& -> -100.00

An Indra company 50
Si lo queremos volver a cambiar a la derecha sería:

&itcdp-tdulpos(>)& -> 100.00-

ELIMINAR LOS CEROS

También se puede quitar los ceros de la derecha de un número.

Asumiendo que la fecha actual es: 1.1.1994,

&day& -> 01

&day(z)& -> 1

ELIMINAR ESPACIOS

También podemos eliminar los espacios de una variable o campo, esta opción tiene el

mismo efecto que la orden .condense. de lenguaje ABAP. La sintaxis:

&simbolo(C)&

Asumiendo que ’ Albert Einstein ’ es el valor del símbolo,

&simbolo& -> Albert Einstein

&simbolo(C)& -> Albert Einstein

NUMERO DE DECIMALES

Tambien tenemos la posibilidad de añadir o quitar decimales a una variable o campo.

Esta opción solo es válida para variables o campos de tipo .dec., .quan. y .fltp. que

contenga algún decimal. La sintaxis sería:

&symbol(.N)&

El campo .ekpo-menge. contine el valor-> 1234.56. la definición del diccionario dice

que es un campo de longitud 17 con 3 decimales.

&ekpo-menge& -> 1,234.560

&ekpo-menge(.1) -> 1,234.6

&ekpo-menge&(.4) -> 1,234.5600

&ekpo-menge&(.0) -> 1,235

QUITANDO EL SEPARADOR DE LOS MILES

Con esta opción podemos quitar la .,. que se utiliza hacer la separación de los miles. La

sinatxis sería:

&simbolo(T)&

An Indra company 51
El campo .ekpo-menge. contine el valor-> 1234.56. la definición del diccionario dice

que es un campo de longitud 17 con 3 decimales.

&ekpo-menge& -> 1,234.560

&ekpo-menge(t)& -> 1234.560

JUSTIFICACION HACIA LA DERECHA

Esta opción se utiliza para justificar los números por la derecha, ya que siempre se

justifican por la izquierda. La sintaxis:

&symbol(R)&

Si el simbolo vale 1234.

&symbol& -> 1234

&symbol(8R) -> 1234

Para los simbolos de programa la longitud especificada en la definición diccionario debe ser utilizada
en función de la del diccionario.

RELLENO DE CARACTERES

Con esta opción podemos rellenar los espacios en blanco con caracteres de relleno. La

sintaxis:

&symbol(Ff)&

f = carácter de relleno

Imaginemos que el campo .kna1-umsat. vale $700. Según el diccionario ese campo

tiene una longitud de 8.

&KNA1-UMSAT& -> 700.00

&KNA1-UMSAT(F*)& -> **700.00

&KNA1-UMSAT(F0)& -> 00700.00

NO VISUALIZACION DE CAMPOS VACIOS

Con esta opción tenemos la posibilidad de que no se visualizen los campos que esten vacios. La
sintaxis sería:

&simbolo(I)&

Asumiendo que el campo .kna1-umsat. tiene el valor 0 y el páis es DEM.

&KNA1-UMSAT& -> 0,00

&KNA1-UMSAT(I)& ->

An Indra company 52
Si el campo tiene valor diferente a 0, el valor se vería normalmente:.

&KNA1-UMSAT& -> 700,00

&KNA1-UMSAT(I)& -> 700,00

IGNORAR CONVERSIONES

Hay veces que hay campos que tienen conversiones especificadas en el diccionario y

automáticamente son ejecutadas cuando realizamos alguna operación con este campo.

Con esta opción podemos hacer que no se realice esta conversión. La sintaxis:

&simbolo(k)&

FECHAS LOCALES (SOLO JAPON)

Sirve para ver la fecha en el formato japones, esta opción solo es válida para la versión

de SAP en japonés.

AÑADIENDO TEXTO AL FINAL O AL PRINCIPIO DE UN DATO

Con esta opción podemos añadir un texto al principio o al final de un campo o variable.

Su sintaxis:

&’pre-text’symbol’post-text’&

El campo .kna1-pfach. contiene el valor del código postal.

Si hacemos lo siguiente:

P.O. Box &KNA1-PFACH& -> P.O. Box

Como vemos no sale bien.

Si hacemos:

&’P.O. Box ’KNA1-PFACH& -> P.O. Box 123456

Ahora sale bien.

An Indra company 53
An Indra company

Persona de contacto
pgarciap@[Link]

Pedro García Parra


Senior Consultant
Sistemas de Gestión Empresarial

Avda. de la Innovación, Edificio Renta Sevilla 5ª Planta


41020 Sevilla, España
Tel. Directo: (+34) 954369742
Tel. Centralita: (+34) 954998610 Extensión 242742

También podría gustarte