W Pub: ABAP Cursosentenciawrite

<html>

<head>

<title>WRITE</title>

</head>

<BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000">

<p align="left">⚠ &lt;b class="titulo"&gt;WRITE⚠ &lt;/b&gt;</p>

<p align="left">⚠ &lt;b&gt;Definicin⚠ &lt;/b&gt;</p>

<p align="left">Saca datos por pantalla. </p>

<p align="left">⚠ &lt;b&gt;Sintaxis:⚠ &lt;/b&gt;</p>

WRITE [ AT ][ / ][ <posicin> ] [ <longitud> ] <campo> [ <opciones> ].

<p>Esta sentencia saca el campo <campo> en su formato

estndar por la salida activa. La salida activa por defecto es la pantalla. El

campo <campo> puede ser cualquier objeto de dato, field-symbol o

parmetro formal, o texto simblico.</p>

<p>En la pantalla normalmente los campos de salida estn

justificados a la izquierda. Utilizando varias sentencias WRITE los campos de

salida aparecen uno detrs de otro separados por un espacio en blanco. Sino hay

suficiente espacio para un campo de salida en la lnea actual, el sistema

provoca un salto de lnea.</p>

<p>El formato de los campos en la pantalla depende de su tipo.

Las caractersticas de los campos es la siguiente: <br>

</p>

<table border="0" width="100%">

  <tr>
    <td width="27%">⚠ &lt;b&gt;Tipo de dato⚠ &lt;/b&gt;</td>
    <td width="39%">⚠ &lt;b&gt;Longitud de salida⚠ &lt;/b&gt;</td>
    <td width="34%">⚠ &lt;b&gt;Posicionamiento⚠ &lt;/b&gt;</td>
  </tr>
  <tr>
    <td width="27%">C</td>
    <td width="39%">Longitud del campo</td>
    <td width="34%">Justificado a la izquierda</td>
  </tr>
  <tr>
    <td width="27%">D</td>
    <td width="39%">8</td>
    <td width="34%">Justificado a la izquierda</td>
  </tr>
  <tr>
    <td width="27%">F</td>
    <td width="39%">22</td>
    <td width="34%">Justificado a la derecha</td>
  </tr>
  <tr>
    <td width="27%">I</td>
    <td width="39%">11</td>
    <td width="34%">Justificado a la derecha</td>
  </tr>
  <tr>
    <td width="27%">N</td>
    <td width="39%">Longitud del campo</td>
    <td width="34%">Justificado a la izquierda</td>
  </tr>
  <tr>
    <td width="27%">P</td>
    <td width="39%">2* Longitud del campo (+1)</td>
    <td width="34%">Justificado a la derecha</td>
  </tr>
  <tr>
    <td width="27%">T</td>
    <td width="39%">6</td>
    <td width="34%">Justificado a la izquierda</td>
  </tr>
  <tr>
    <td width="27%">X</td>
    <td width="39%">2 * Longitud del campo</td>
    <td width="34%">Justificado a la izquierda</td>
  </tr>

</table>

<p>Los campos numricos F, I y P estn justificados a la

derecha rellenados con espacios en blanco por la izquierda. Si hay suficiente

espacio se escriben los separadores de miles. Estos separados van desapareciendo

en funcin del espacio disponible en salida. Si el campos es del tipo P y tiene

posiciones decimales, la longitud de salida se incrementa en 1. Con los tipos de

datos D, el formato interno del campo difiere del formato de salida. Para

campos de tipo D, el sistema lee el formato de salida especificado en el

registro maestro de usuario. Posibles formatos de salida son DD/MM/YY o MM/DD/YYYY,

donde, DD es el da, MM es el mes y YYYY es el ao.</p>

<p>Se puede dar formato al campo de salida con las opciones /,

<offset> y <longitud>. Con / forzamos un salto de lnea antes de la

salida. <posicin> es un nmero o una variable de hasta tres dgitos de

longitud que sirve para indicar la posicin en el dispositivo de salida.

<longitud> es un nmero o una variable de hasta tres dgitos de longitud

que sirve para indicar la longitud de salida del campo. Si <posicion> y

<longitud> son literales numricos la clusula es AT es opcional. Si

utilizamos la opcin <posicin>, el campo saldr en esa posicin

aunque no haya espacio, o haya sido utiliza esa posicin por otro campo. Si

<longitud> es menor que el campo de salida, si ste es alfanumrico se

trunca y si es numrico se rellena por la izquierda con un asterisco (*).</p>

<p>Se pueden utilizar distintas opciones de formato con

<opciones>. Las opciones son las siguientes:</p>

<ul>

  <li>LEFT-JUSTIFIED -> Salida justificada a la izquierda.</li>
  <li>CENTERED -> Salida centrada.</li>
  <li>RIGHT-JUSTIFIED -> Salida justificada a la derecha.</li>
  <li>UNDER <campo> -> La salida se posiciona bajo el
    campo <campo>.</li>
  <li>NO-GAP -> El espacio en blanco posterior a la salida se
    omite.</li>
  <li>USING EDIT MASK <mscara> -> Se especifica un
    formato de salida.</li>
  <li>USING NO EDIT MASK -> Desactiva el formato que puede
    tener un campo del diccionario de datos.</li>
  <li>NO-ZERO -> Si un campo tiene ceros, se reemplazan por
    espacios en blanco. En campos de tipo C y N, los ceros a la izquierda se
    reemplaza automticamente.</li>

</ul>

<p>Las opciones para los campo numricos es la siguiente:</p>

<ul>

  <li>NO-SIGN -> Salida sin signo.</li>
  <li>DECIMALS <decimales> -> <decimales>
    especifica el nmero de dgitos despus del punto.</li>
  <li>EXPONENT <exponente> -> En campos de tipo F,
    <exponente> especifica el exponente.</li>
  <li>ROUND <r> -> En campos de tipo P, se multiplican
    por 10 elevado a a <r>.</li>
  <li>CURRENCY <moneda> -> Formato sobre la base de
    datos de la moneda <moneda> definida en la tabla TCURX.</li>
  <li>UNIT <unidad> -> El nmero de decimales se fija
    sobre la base de la unidad <unidad> especificada en la tabla T006 para
    los campos de tipo P.</li>

</ul>

<p>Opciones para campo de tipo DD (da), MM (Mes), YYYY (Ao):</p>

<ul>

  <li>DD/MM/YY -> El separador se define en el registro
    maestro de usuario.</li>
  <li>MM/DD/YY -> El separador se define en el registro
    maestro de usuario.</li>
  <li>DD/MM/YYYY -> El separador se define en el registro
    maestro de usuario.</li>
  <li>MM/DD/YYYY -> El separador se define en el registro
    maestro de usuario.</li>
  <li>DDMMYY -> Sin separadores.</li>
  <li>MMDDYY -> Sin separadores.</li>
  <li>YYMMDD -> Sin separadores.</li>

</ul>

<p>Tambin puede utilizarse las mismas opciones de la sentencia ⚠ &lt;a href="format.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/format.htm"&gt;FORMAT⚠ &lt;/a&gt;

anteponiendo la clusula COLOR. El detalle de opciones se ver con dicha

sentencia.</p>

<p>Tambin tenemos las siguientes opciones de la sentencia WRITE:</p>

<ul>

  <li>WRITE <symbol> AS SYMBOL -> Si escribe el grfico
    <smbolo>. Para poder utilizar esta opcin es necesario incluir en
    el programa</li>
  <li>WRITE <icono> AS ⚠ &lt;a href="iconos.htm"&gt;ICON⚠ &lt;/a&gt; -> Se escribe el icono
    <icono>. Para poder utilizar esta opcin es necesario incluir en el
    programa la siguiente sentencia: INCLUDE <ICON>.</li>
  <li>WRITE <campo> AS CHECKBOX -> <input type=checkbox name=roger> Se escribe el campo
    <campo> con la caracterstica de checkbox. </li>⚠ &lt;a name="hotspot"&gt;
  <li>WRITE <campo> ⚠ &lt;a href="write.htm#hotspot"&gt;HOTSPOT⚠ &lt;/a&gt; -> Cuando situemos el cursor
    por encima del campo, ste cambiar a una mano, y con un solo click
    activaremos el evento AT LINE-SELECTION.</li>

</ul>

<p>⚠ &lt;a href="include.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/include.htm"&gt;INCLUDE⚠ &lt;/a&gt; <SYMBOL> y ⚠ &lt;a href="include.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/include.htm"&gt;INCLUDE⚠ &lt;/a&gt;

<ICON> puede ser sustituida por ⚠ &lt;a href="include.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/include.htm"&gt;INCLUDE⚠ &lt;/a&gt; <LIST>.</p>

<p>⚠ &lt;b&gt;Ejemplo 1:⚠ &lt;/b&gt;</p>

<pre>DATA: MARKFIELD(1) TYPE C VALUE 'X'.

...

WRITE MARKFIELD AS CHECKBOX. "checkbox seleccionado

MARKFIELD = SPACE.

WRITE MARKFIELD AS CHECKBOX. "deseleccionado

WRITE MARKFIELD AS CHECKBOX INPUT OFF. "deseleccionado, protegido</pre>

<p>⚠ &lt;b&gt;Ejemplo 2:⚠ &lt;/b&gt;</p>

<pre>INCLUDE <LINE>.</pre>

<pre>ULINE /1(50).

WRITE: / SY-VLINE NO-GAP, LINE_TOP_LEFT_CORNER AS LINE.

ULINE 3(48).

WRITE: / SY-VLINE NO-GAP, SY-VLINE NO-GAP.</pre>

<p>⚠ &lt;b&gt;Ejemplo 3:⚠ &lt;/b&gt;</p>

<pre>DATA: X TYPE P DECIMALS 3 VALUE '1.267',

      Y TYPE F            VALUE '125.456E2'.</pre>

<pre>WRITE: /X DECIMALS 0, "salida: 1

       /X DECIMALS 2,  "salida: 1.27
       /X DECIMALS 5,  "salida: 1.26700
       /Y DECIMALS 1,  "salida: 1.3E+04
       /Y DECIMALS 5,  "salida: 1.25456E+04
       /Y DECIMALS 20. "salida: 1.25456000000000E+04</pre>

<p>⚠ &lt;b&gt;Ejemplo 4:⚠ &lt;/b&gt;</p>

<pre>DATA HOUR TYPE P DECIMALS 3 VALUE '1.200'.</pre>

<pre>WRITE (6) HOUR UNIT 'STD'. "Salida: 1,2

HOUR = '1.230'.

WRITE (6) HOUR UNIT 'STD'. "Salida: 1,230</pre>

<p>⚠ &lt;b&gt;Ejemplo 5:⚠ &lt;/b&gt;</p>

<pre>DATA TIME TYPE T VALUE '154633'.</pre>

<pre>WRITE (8) TIME USING EDIT MASK _:__:_. "Salida: 15:46:33</pre>

<p>⚠ &lt;b&gt;Ejemplo 6:⚠ &lt;/b&gt;</p>

<pre>

DATA: FIELD(10) VALUE 'abcde'.</pre>

<pre> WRITE: / '|' NO-GAP, FIELD LEFT-JUSTIFIED NO-GAP, '|',

         / '|' NO-GAP, FIELD CENTERED        NO-GAP, '|',
         / '|' NO-GAP, FIELD RIGHT-JUSTIFIED NO-GAP, '|'.</pre>

<pre>* salida: |abcde |

  • | abcde |
  • | abcde|</pre>

<p>⚠ &lt;b&gt;Ejemplo 7:⚠ &lt;/b&gt;</p>

<pre>INCLUDE <SYMBOL>.

WRITE: / SYM_RIGHT_HAND AS SYMBOL, " salida de un smbolo

         'Tip, Note',
         SYM_LEFT_HAND  AS SYMBOL.    " salida de un smbolo</pre>

<p>⚠ &lt;b&gt;Vase tambin:⚠ &lt;/b&gt; ⚠ &lt;a href="write_to.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/write_to.htm"&gt;WRITE TO⚠ &lt;/a&gt;.</p>

</body>

</html>