<html>
<head> <title>DATA</title> </head> <BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000"> <p align="left">⚠ <b>
<span class="titulo">DATA</span>⚠ </b>
</p>
<p align="left">⚠ <b>
Definicin⚠ </b>
</p>
<p align="left">Declaracin de objetos de datos.</p>
<p align="left">⚠ <b>
Sintaxis:⚠ </b>
</p>
<pre>DATA <campo> [ (<longitud>)] <tipo> [ <valor> ] [ <decimales> ]</pre>
<p>Variante utilizada para declarar variables. El nombre de la
variable <campo> no debe tener ms de 30 caracteres. Se puede utilizar cualquier carcter a excepcin de: "+", ".", ",", ":", "(" y ")". Adems el nombre no puede estar slo compuesto de dgitos numricos, ni coincidir con los objetos de datos predefinidos, ni con las palabras reservadas. Veamos algunas recomendaciones:</p>
<ul>
<li>Utilizar nombres significativos, que no requieran el uso de comentarios.</li> <li>No utilizar el "guin" ya que podramos confundir la variable con un field-string.</li> <li>Utilizar el "gui bajo" para nombres especiales.</li> <li>No utilizar los caracteres especiales. Utilizar siempre una letra como primer carcter del nombre.</li>
</ul>
<p>Con la opcin <tipo> se especifica el tipo de variable.Tenemos dos opciones:</p>
<ol>
<li>⚠ <a href="types.htm">
TYPE⚠ </a>
<tipo></li> <li>LIKE <objeto-dato></li>
</ol>
<ul><li>Con la clusula⚠ <a href="types.htm">
TYPE⚠ </a>
se puede utilizar cualquier tipo de datos, predefinido o definido por el usuario. Para algunos tipos de datos (C, P, N, y X) se puede definir la longitud con la clusula <longitud>. Si no se especifica longitud, estos tipos tienen una longitud por defecto. Si no se especifica la clusula <tipo> el sistema utiliza el tipo alfanumrico C.</li> <li>Con la clusula LIKE asignamos el tipo de dato de forma indirecta, con el tipo de dato del objeto de dato especificado. El objeto de dato debe estar ya declarado, y puede ser de cualquier tipo. A menudo se utiliza esta clusula para crear variables que almacenarn datos de tablas externas. Si se modifican las caractersticas del campos de la tabla externa, de forma automtica, se cambian los atributos de la variable.</li> <li>Una variante para las clusulas TYPE y LIKE es la siguiente: TYPE LINE OF <tabla-intera> y LIKE LINE OF <tabla-interna>. Con esta variante creamos un objeto de dato con la estructura de lnea de la tabla interna.</li>
</ul>
<p>Con la opcin <calor> se asigna un valor a la variable,distinto al valor inicial. El formato es el siguiente: VALUE <valor>. <valor> puede ser un literal, una constante o IS INITIAL.</p>
<p>Con la opcin <decimales> se puede especificar el nmero
de decimales para los campos de tipo P. El formato es el siguiente: DECIMALS <num>, siendo <num> el nmero de dgitos despus del punto decimal. El nmero mximo de decimales es de 14.</p>
<pre>DATA: BEGIN OF <registro>,
.... END OF <registro>.</pre>
<p>Variante utilizada para declarar registros o ⚠ <i>
field-strings⚠ </i>
.
Para declarar un⚠ <i>
field-strings⚠ </i>
se utiliza la sentencia DATA y ser marca el principio y el final de la agrupacin con las clusulas BEGIN OF y END OF. La opcin <registro> da nombre al⚠ <i>
field-string⚠ </i>
.</p>
<pre>DATA <tabla> <tipo> [ WITH HEADER LINE ].</pre>
<p>Variante utiliza para declarar tablas internas.</p> <ul><li>En la opcin <tipo> se puede referenciar un tipo de dato de tabla interna con la clusula⚠ <a href="types.htm">
TYPE⚠ </a>
o una tabla interna con la clusula LIKE. El objeto de dato <tabla> ser creado con la misma estructura que la referenciada en <tipo>.</li> <li>Si utilizamos la clusula WITH HEADER LINE la tabla interna se crea con el rea de trabajo <tabla>. El rea de trabajo y la tabla interna tienen el mismo nombre. En funcin de la sentencia que estemos utilizando, el sistema sabe si queremos emplear el rea de trabajo o la tabla.</li>
</ul>
<pre>DATA <tabla> <tipo> OCCURS <n> [ WITH HEADER LINE ].</pre> <p>Esta sentencia crea la tabla interna <tabla> por el usode la clusula OCCURS. en la opcin <tipo> se especifica una estructura. Las lneas de la tabla interna tendrn la estructura referenciada en <tipo>. <n> tiene el mismo significado que para los tipos de datos de tablas internas, visto en la sentencia⚠ <a href="types.htm">
types⚠ </a>
.</p>
<ul>
<li>Si utilizamos la clusula WITH HEADER LINE la tabla se crea con el rea de trabajo <tabla>.</li>
</ul>
<pre>DATA: BEGIN OF <tabla> OCCURS <n>,.... END OF <tabla>.</pre>
<ul>
<li>Con esta sentencia definimos la tabla interna <tabla>. Los componentes de la lnea de la tabla interna se definen entre las clusula BEGIN OF y END OF.</li> <li>A excepcin de la clusula OCCURS, el resto de la sintaxis es igual a la definicin de un field-string, visto anteriormente. Esta sentencia siempre crea un rea de trabajo. <n> tiene el mismo significado que el visto anteriormente.</li>
</ul>
<p>⚠ <b>
Ejemplo:⚠ </b>
</p>
<pre>DATA: BEGIN OF PERSON_TYPE,
NAME(20), AGE TYPE I, END OF PERSON_TYPE, PERSONS LIKE PERSON_TYPE OCCURS 20 WITH HEADER LINE. PERSONS TYPE LINE_TYPE OCCURS 20, PERSONS_WA TYPE LINE_TYPE.</pre>
<pre>DATA TAB TYP TYPE I OCCURS 10.
DATA TAB_WA TYPE LINE OF TAB. DATA NUMBER TYPE I VALUE 123,FLAG VALUE 'X', TABLE_INDEX LIKE SY-TABIX VALUE 45.</pre>
<p>⚠ <b>
Tipo de datos predefinido:⚠ </b>
</p>
<tbody> <tr> <th>Tipo</th> <th>Descripcin <th>Lo</th> <th>Valor inicial</th> <tr> <td>C</td> <td>Texto (carcter)</td> <td><1</td> <td>Blanco</td> <tr> <td>N</td> <td>Texto numrico</td> <td><1</td> <td><'00...0'</td> <tr> <td>D</td> <td>Fecha (YYYYMMDD)</td> <td><8</td> <td><'00000000'</td> <tr> <td>T</td> <td>Hora (HHMMSS)</td> <td><6</td> <td><'000000'</td> <tr> <td>X</td> <td>Hexadecimal</td> <td>1</td> <td>X'00'>/td> <tr> <td>I</td> <td>Entero</td> <td><4</td> <td><0</td> <tr> <td>P</td> <td>Numero empaquetado</td> <td>8</td> <td>0</td> <tr> <td>F</td> <td>Nmero punto flotante>/td> <td>8</td> <td>'0.0'</td> </tbody>
</table>
<span><br>⚠ <b>
Vease tambin: ⚠ </b>
⚠ <a href="include_structure.htm" tppabs="http://www.gaussr3.com/abap4/sentencias/include_structure.htm">
INCLUDE STRUCTURE⚠ </a>
. </span>
</body>
</html>