• Viernes 6 de Diciembre de 2024, 06:10

Autor Tema:  Programa De Ejemplo En Abap  (Leído 30504 veces)

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Programa De Ejemplo En Abap
« en: Miércoles 19 de Enero de 2005, 17:28 »
0
Código: Text
  1.  
  2. ************************************************************************
  3. * Programa : Z_PRUEBA_ABAP
  4. * Módulo   : FI - Finanzas
  5. * Documento:
  6. * Usuario responsable:
  7. * Consultor funcional:
  8. * Consultor ABAP     : Alvaro Tejada Galindo
  9. * Descripción: Programa de Ejemplo de ABAP
  10. * Transacción:
  11. * Juego de datos:
  12. ************************************************************************
  13.  
  14. REPORT Z_PRUEBA_ABAP.
  15.  
  16. *=======================================================================
  17. * Tablas
  18. *=======================================================================
  19.  
  20. "Definimos las tablas que vamos a leer
  21. TABLES: BKPF,BSEG.
  22.  
  23. *=======================================================================
  24. * Estructuras
  25. *=======================================================================
  26.  
  27. "Creamos una tabla interna con los campos necesarios
  28. "El OCCURS 0 indica que es una tabla dinámica
  29. DATA: BEGIN OF T_DATOS OCCURS 0,
  30.       BUKRS LIKE BKPF-BUKRS,
  31.       BELNR LIKE BKPF-BELNR,
  32.       GJAHR LIKE BKPF-GJAHR,
  33.       BLART LIKE BKPF-BLART,
  34.       WAERS LIKE BKPF-WAERS,
  35.       DMBTR LIKE BSEG-DMBTR,
  36.       END OF T_DATOS.
  37.  
  38. *=======================================================================
  39. * Variables
  40. *=======================================================================
  41.  
  42. "Una variable a modo de contador
  43. DATA: CONTADOR TYPE I.
  44.  
  45. *=======================================================================
  46. * Selection screen
  47. *=======================================================================
  48.  
  49. "Estos son los parámetros de selección de nuestro programa
  50.  
  51. SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME TITLE TEXT-T01.
  52. "Podemos elegir un rango de valores
  53. SELECT-OPTIONS:
  54.       S_BUKRS FOR BKPF-BUKRS,
  55.       S_BELNR FOR BKPF-BELNR.
  56. "Podemos elegir solamente un valor
  57. "OBLIGATORY indica que es obligatorio para ejecutar el programa
  58. PARAMETERS:
  59.       P_GJAHR LIKE BKPF-GJAHR OBLIGATORY.
  60. SELECTION-SCREEN END OF BLOCK DATA.
  61.  
  62. *=======================================================================
  63. * Start-of-selection
  64. *=======================================================================
  65.  
  66. "Comienza la ejecución del programa
  67.  
  68. START-OF-SELECTION.
  69. "Llamamos a las funciones que hemos creado
  70. PERFORM OBTENER_DATOS.
  71. PERFORM IMPRIMIR_DATOS.
  72.  
  73. *=======================================================================
  74. * Subrutinas
  75. *=======================================================================
  76.  
  77. *&---------------------------------------------------------------------*
  78. *&      Form  OBTENER_DATOS
  79. *&---------------------------------------------------------------------*
  80. * Obtenemos los datos de las tablas BKPF y BSEG.
  81. *----------------------------------------------------------------------*
  82.  
  83. FORM OBTENER_DATOS.
  84.  
  85. "Seleccionamos los valores de la tabla BKPF que cumplan con los
  86. "requisitos y los guardamos en nuestra tabla interna.
  87. "El APPEND sirve para almacenar los valores en la ultima fila
  88. "de la tabla interna
  89.  
  90. SELECT BUKRS BELNR GJAHR BLART WAERS
  91. INTO T_DATOS
  92. FROM BKPF
  93. WHERE BUKRS IN S_BUKRS
  94.   AND BELNR IN S_BELNR
  95.   AND GJAHR EQ P_GJAHR.
  96. APPEND T_DATOS.
  97. ENDSELECT.
  98.  
  99. "Hacemos un LOOP para recorrer todos los registros de nuestra
  100. "tabla interna
  101.  
  102. LOOP AT T_DATOS.
  103. "El SY-TABIX es una variable del sistema que nos indica el número
  104. "de vueltas que ha dado un LOOP.
  105. CONTADOR = SY-TABIX.
  106. "Seleccionamos un dato y lo almacenamos en uno de los campos
  107. "de nuestra tabla interna. El SINGLE indica que solo queremos un
  108. "valor
  109. SELECT SINGLE DMBTR
  110. INTO T_DATOS-DMBTR
  111. FROM BSEG
  112. WHERE BUKRS EQ T_DATOS-BUKRS
  113.   AND BELNR EQ T_DATOS-BELNR
  114.   AND GJAHR EQ T_DATOS-GJAHR.
  115.  
  116. "El MODIFY modifica la tabla interna, para agregar el valor
  117. "que hemos obtenido en el query anterior, utilizando como
  118. "indice, el número de vuelta del LOOP
  119.  
  120. MODIFY T_DATOS INDEX CONTADOR.
  121.  
  122. ENDLOOP.
  123.  
  124. ENDFORM.
  125.  
  126. *&---------------------------------------------------------------------*
  127. *&      Form  IMPRIMIR_DATOS
  128. *&---------------------------------------------------------------------*
  129. * Imprimimos en pantalla los datos generados
  130. *----------------------------------------------------------------------*
  131.  
  132. FORM IMPRIMIR_DATOS.
  133.  
  134. "Imprimimos una pequeña cabecera con los titulos
  135.  
  136. WRITE:/1 'Sociedad',15 'Doc. Contable',30 'Año',37 'Moneda',
  137. 55 'Monto'.
  138.  
  139. "Recorremos nuestra tabla interna e imprimimos en pantalla
  140. "registro por registro...
  141.  
  142. LOOP AT T_DATOS.
  143. WRITE:/1 T_DATOS-BUKRS,15 T_DATOS-BELNR,30 T_DATOS-GJAHR,
  144. 38 T_DATOS-WAERS,45 T_DATOS-DMBTR.
  145. ENDLOOP.
  146.  
  147. ENDFORM.
  148.  
  149.  

Saludos,

Blag  :smartass:

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #1 en: Miércoles 19 de Enero de 2005, 17:31 »
0
El resultado de ejecutar este reporte sería:

Citar
Programa ejemplo de ABAP                                   
                                                           
Sociedad    Doc. Contable  Año    Moneda           Monto
ENER          400000001      2004    USD             700,00
ENER          400000002      2004    USD             700,00
ENER          400000003      2004    USD             700,00
ENER          400000004      2004    USD             700,00
ENER          400000005      2004    USD             700,00
ENER          2000000001     2004    PEN          14.752,05
ENER          2000000002     2004    PEN          13.231,37
ENER          2000000003     2004    PEN           1.519,35
ENER          2000000004     2004    PEN           7.677,52
ENER          2000000005     2004    PEN           9.917,00
ENER          2000000006     2004    PEN          28.342,32
ENER          2000000007     2004    PEN              97,14
ENER          2000000008     2004    PEN           1.873,83
ENER          2000000009     2004    PEN              96,24
ENER          2000000010     2004    PEN              20,98
ENER          2000000011     2004    PEN              32,96
ENER          2000000012     2004    PEN              26,59
ENER          2000000013     2004    PEN              16,48
ENER          2000000014     2004    PEN              32,96
ENER          2000000015     2004    PEN              83,91
ENER          2000000016     2004    PEN              32,96
ENER          2000000017     2004    PEN             106,02
ENER          2000000018     2004    PEN             176,81
ENER          2000000019     2004    PEN           3.699,22
ENER          2000000020     2004    PEN           1.312,86
ENER          2000000021     2004    PEN              47,95
ENER          2000000022     2004    PEN              26,63
ENER          2000000023     2004    PEN             156,73
ENER          2000000024     2004    PEN             179,80
ENER          2000000025     2004    PEN              55,44
ENER          2000000026     2004    PEN             542,09

Saludos,

Blag  :smartass:

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #2 en: Miércoles 19 de Enero de 2005, 22:41 »
0
Cita de: "Blag"
[CODE]
REPORT Z_PRUEBA_ABAP.

*=======================================================================
* Tablas
*=======================================================================

"Definimos las tablas que vamos a leer
TABLES: BKPF,BSEG.

*=======================================================================
* Estructuras
*=======================================================================

"Creamos una tabla interna con los campos necesarios
"El OCCURS 0 indica que es una tabla dinámica
DATA: BEGIN OF T_DATOS OCCURS 0,
      BUKRS LIKE BKPF-BUKRS, *Que son este tipo de Datos? --> BUKRS
      BELNR LIKE BKPF-BELNR, *BELNR
      GJAHR LIKE BKPF-GJAHR, *GJAHR
      BLART LIKE BKPF-BLART, *BLART
      WAERS LIKE BKPF-WAERS, *WAERS
      DMBTR LIKE BSEG-DMBTR, *DMBTR
      END OF T_DATOS.

"Una variable a modo de contador
DATA: CONTADOR TYPE I. *Type I Que es? La variable?
 
Preguntas?
El pasado son solo recuerdos, el futuro son solo sueños

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #3 en: Jueves 20 de Enero de 2005, 03:47 »
0
Me suena mucho a Cobol B)

Le faltan unos jeroglificos por aqui y por alla y termino siendo chino :P

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #4 en: Jueves 20 de Enero de 2005, 04:07 »
0
Citar
"Creamos una tabla interna con los campos necesarios
"El OCCURS 0 indica que es una tabla dinámica
DATA: BEGIN OF T_DATOS OCCURS 0,
BUKRS LIKE BKPF-BUKRS, *Que son este tipo de Datos? --> BUKRS
BELNR LIKE BKPF-BELNR, *BELNR
GJAHR LIKE BKPF-GJAHR, *GJAHR
BLART LIKE BKPF-BLART, *BLART
WAERS LIKE BKPF-WAERS, *WAERS
DMBTR LIKE BSEG-DMBTR, *DMBTR
END OF T_DATOS.

"Una variable a modo de contador
DATA: CONTADOR TYPE I. *Type I Que es? La variable?

Bueno....vamos por partes....Aquí estamos definiendo una tabla interna....Que es lo mismo que una tabla en Base de Datos, con la diferencia que solo existe miestras el programa se esté ejecutando.....

Citar
*Que son este tipo de Datos? --> BUKRS

El BUKRS, no es un tipo de dato propiamente dicho, es en realidad un campo de la tabla BKPF, entonces, estamos diciendo que el campo BUKRS, de nuestra tabla interna T_DATOS, va a tener la misma definición que el campo BUKRS de la tabla BKPF.

Y que significa o que guarda cada unos de esos campos???

Pues esto......

BUKRS --> Sociedad
BELNR  --> Documento Contable
GJAHR  --> Año Contable
BLART  --> Tipo de Documento  (Me olvidé de imprimirlo  :lol:  )
WAERS  --> Moneda
DMBTR  --> Monto

Citar
DATA: CONTADOR TYPE I. *Type I Que es? La variable?

La variable es CONTADOR y el tipo de variable es I, es decir INTEGER o Entero.

Saludos,

Blag  :smartass:

Soultaker

  • Miembro HIPER activo
  • ****
  • Mensajes: 972
  • Nacionalidad: pe
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #5 en: Jueves 20 de Enero de 2005, 08:53 »
0
Bueno la verdad que no entiendo ni "michi" de ese codigo, sera porque no programo en cobol, parece un arañado de gato  :D  :D  bueno ya poco por poco ire entendiendo estas jeroglificos. :think:  :think:

 :comp:
http]
foros,programacion, c, c++, java,
linux, videojuegos, directX, .NET,
visual basic,robotica,microprocesadores

Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente

Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado


<<< Harol Moreyra Bendezú >>>

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #6 en: Jueves 20 de Enero de 2005, 13:55 »
0
Hola,

A mi tampoco me ha parecido tan dificil de seguir, sobre todo por los comentarios que tiene el programa, que lo estructuran muy bien.

En mi opinion tiene mucho de SQL. Supongo que será porque en SAP practicamente todo se guarda en tablas de la base de datos.
Había miles de tablas, no?

Saludos y animo!
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #7 en: Jueves 20 de Enero de 2005, 14:47 »
0
Citar
En mi opinion tiene mucho de SQL. Supongo que será porque en SAP practicamente todo se guarda en tablas de la base de datos.
Había miles de tablas, no?

Tienes toda la razón del mundo amigo Güorker....En SAP todo se guarda en tablas, inclusive el código fuente de los programas..... :lol:

Miles??? Bueno....las tablas estandard de SAP son aproximante 23,500 tablas.......Y claro, como usuario puedes crear miles de tablas más  B)

Citar
Bueno la verdad que no entiendo ni "michi" de ese codigo, sera porque no programo en cobol, parece un arañado de gato

Bueno....lo mismo me pasó a mi la primera vez que lo vi.....Y yo tampoco he programado nunca en COBOL  :hola:  Pero con el tiempo, se me hace lo más natural del mundo ver códigos como ese.....Y eso que es uno de los ejemplos más simples.....Lo hice para que entendieran  :scream: ......No quiero imaginar que pasa si les pongo que el código de un Reporte Interactivo o de un ALV....... :lol:

Bueno....ya será con el tiempo, y con la serie de tutoriales que voy a comenzar a escribir, apenas tenga un tiempo libre  :comp:

Saludos,

Blag   :smartass:

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #8 en: Jueves 20 de Enero de 2005, 16:39 »
0
Cita de: "Blag"

"de nuestra tabla interna. El SINGLE indica que solo queremos un valor
SELECT SINGLE DMBTR
INTO T_DATOS-DMBTR
FROM BSEG
WHERE BUKRS EQ T_DATOS-BUKRS *EQ -->Que es?, Si T_DATOS-BUKRS es el dato seleccionado o no se.¿?
  AND BELNR EQ T_DATOS-BELNR
  AND GJAHR EQ T_DATOS-GJAHR.

FORM IMPRIMIR_DATOS.

"Imprimimos una pequeña cabecera con los titulos

WRITE:/1 'Sociedad',15 'Doc. Contable',30 'Año',37 'Moneda',
55 'Monto'. *1, 15, 30, 37, 55 --> Son las posiciones?

"Recorremos nuestra tabla interna e imprimimos en pantalla
"registro por registro...

LOOP AT T_DATOS.
WRITE:/1 T_DATOS-BUKRS,15 T_DATOS-BELNR,30 T_DATOS-GJAHR,
38 T_DATOS-WAERS,45 T_DATOS-DMBTR.
ENDLOOP.

ENDFORM.
 
Vuelvo a preguntar¿?
El pasado son solo recuerdos, el futuro son solo sueños

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Programa De Ejemplo En Abap
« Respuesta #9 en: Jueves 20 de Enero de 2005, 19:14 »
0
Una pregunta, este codigo de Abap se parace bastante a las sentencias de SQL con parte de Pascal y algo de basic. Su entorno es grafico como Visual o es como pascal..????
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #10 en: Jueves 20 de Enero de 2005, 20:25 »
0
Citar
SELECT SINGLE DMBTR
INTO T_DATOS-DMBTR
FROM BSEG
WHERE BUKRS EQ T_DATOS-BUKRS *EQ -->Que es?, Si T_DATOS-BUKRS es el dato seleccionado o no se.¿?
AND BELNR EQ T_DATOS-BELNR
AND GJAHR EQ T_DATOS-GJAHR.

T_DATOS-BUKRS, es la condición que le pasas a la consulta SQL......EQ, signica Equal o IGUAL A y puedes escribirlo como =.


Por ejemplo......

Código: Text
  1.  
  2. SELECT SINGLE DMBTR
  3. INTO T_DATOS-DMBTR
  4. FROM BSEG
  5. WHERE BUKRS = T_DATOS-BUKRS
  6.  
  7.  

Y para que quede más claro....

Código: Text
  1.  
  2. SELECT SINGLE DMBTR
  3. INTO T_DATOS-DMBTR
  4. FROM BSEG
  5. WHERE BUKRS = 'TBLP'
  6.  
  7.  

'TBLP', vendría a ser el valor que está guardado dentro del campo BUKRS de nuestra tabla interna T_DATOS..... B)

Citar
Una pregunta, este codigo de Abap se parace bastante a las sentencias de SQL con parte de Pascal y algo de basic. Su entorno es grafico como Visual o es como pascal..????

Tienes mucha razón Juravi, es como una mezcla de lenguajes  :lol: .....Y su entorno de programación??? Pues bueno......Para hacer reportes o programas de carga, que es lo que normalmente se hace, su entorno es similar al del Turbo Pascal, es decir.....no hay nada visual.....

Ahora, puedes utilizar los Dynpros, que son interfaces gráficas (Botones, tablas, etc)....Con un editor visual tipo VB, pero todo el código debe de ser hecho de todos modos, en el editor común y silvestre de ABAP

Saludos,

Blag   :smartass:

sami25

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #11 en: Martes 24 de Octubre de 2006, 21:19 »
0
Cita de: "Blag"
Código: Text
  1.  
  2. ************************************************************************
  3. * Programa : Z_PRUEBA_ABAP
  4. * Módulo   : FI - Finanzas
  5. * Documento:
  6. * Usuario responsable:
  7. * Consultor funcional:
  8. * Consultor ABAP     : Alvaro Tejada Galindo
  9. * Descripción: Programa de Ejemplo de ABAP
  10. * Transacción:
  11. * Juego de datos:
  12. ************************************************************************
  13.  
  14. REPORT Z_PRUEBA_ABAP.
  15.  
  16. *=======================================================================
  17. * Tablas
  18. *=======================================================================
  19.  
  20. &#34;Definimos las tablas que vamos a leer
  21. TABLES: BKPF,BSEG.
  22.  
  23. *=======================================================================
  24. * Estructuras
  25. *=======================================================================
  26.  
  27. &#34;Creamos una tabla interna con los campos necesarios
  28. &#34;El OCCURS 0 indica que es una tabla dinámica
  29. DATA: BEGIN OF T_DATOS OCCURS 0,
  30.       BUKRS LIKE BKPF-BUKRS,
  31.       BELNR LIKE BKPF-BELNR,
  32.       GJAHR LIKE BKPF-GJAHR,
  33.       BLART LIKE BKPF-BLART,
  34.       WAERS LIKE BKPF-WAERS,
  35.       DMBTR LIKE BSEG-DMBTR,
  36.       END OF T_DATOS.
  37.  
  38. *=======================================================================
  39. * Variables
  40. *=======================================================================
  41.  
  42. &#34;Una variable a modo de contador
  43. DATA: CONTADOR TYPE I.
  44.  
  45. *=======================================================================
  46. * Selection screen
  47. *=======================================================================
  48.  
  49. &#34;Estos son los parámetros de selección de nuestro programa
  50.  
  51. SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME TITLE TEXT-T01.
  52. &#34;Podemos elegir un rango de valores
  53. SELECT-OPTIONS:
  54.       S_BUKRS FOR BKPF-BUKRS,
  55.       S_BELNR FOR BKPF-BELNR.
  56. &#34;Podemos elegir solamente un valor
  57. &#34;OBLIGATORY indica que es obligatorio para ejecutar el programa
  58. PARAMETERS:
  59.       P_GJAHR LIKE BKPF-GJAHR OBLIGATORY.
  60. SELECTION-SCREEN END OF BLOCK DATA.
  61.  
  62. *=======================================================================
  63. * Start-of-selection
  64. *=======================================================================
  65.  
  66. &#34;Comienza la ejecución del programa
  67.  
  68. START-OF-SELECTION.
  69. &#34;Llamamos a las funciones que hemos creado
  70. PERFORM OBTENER_DATOS.
  71. PERFORM IMPRIMIR_DATOS.
  72.  
  73. *=======================================================================
  74. * Subrutinas
  75. *=======================================================================
  76.  
  77. *&---------------------------------------------------------------------*
  78. *&      Form  OBTENER_DATOS
  79. *&---------------------------------------------------------------------*
  80. * Obtenemos los datos de las tablas BKPF y BSEG.
  81. *----------------------------------------------------------------------*
  82.  
  83. FORM OBTENER_DATOS.
  84.  
  85. &#34;Seleccionamos los valores de la tabla BKPF que cumplan con los
  86. &#34;requisitos y los guardamos en nuestra tabla interna.
  87. &#34;El APPEND sirve para almacenar los valores en la ultima fila
  88. &#34;de la tabla interna
  89.  
  90. SELECT BUKRS BELNR GJAHR BLART WAERS
  91. INTO T_DATOS
  92. FROM BKPF
  93. WHERE BUKRS IN S_BUKRS
  94.   AND BELNR IN S_BELNR
  95.   AND GJAHR EQ P_GJAHR.
  96. APPEND T_DATOS.
  97. ENDSELECT.
  98.  
  99. &#34;Hacemos un LOOP para recorrer todos los registros de nuestra
  100. &#34;tabla interna
  101.  
  102. LOOP AT T_DATOS.
  103. &#34;El SY-TABIX es una variable del sistema que nos indica el número
  104. &#34;de vueltas que ha dado un LOOP.
  105. CONTADOR = SY-TABIX.
  106. &#34;Seleccionamos un dato y lo almacenamos en uno de los campos
  107. &#34;de nuestra tabla interna. El SINGLE indica que solo queremos un
  108. &#34;valor
  109. SELECT SINGLE DMBTR
  110. INTO T_DATOS-DMBTR
  111. FROM BSEG
  112. WHERE BUKRS EQ T_DATOS-BUKRS
  113.   AND BELNR EQ T_DATOS-BELNR
  114.   AND GJAHR EQ T_DATOS-GJAHR.
  115.  
  116. &#34;El MODIFY modifica la tabla interna, para agregar el valor
  117. &#34;que hemos obtenido en el query anterior, utilizando como
  118. &#34;indice, el número de vuelta del LOOP
  119.  
  120. MODIFY T_DATOS INDEX CONTADOR.
  121.  
  122. ENDLOOP.
  123.  
  124. ENDFORM.
  125.  
  126. *&---------------------------------------------------------------------*
  127. *&      Form  IMPRIMIR_DATOS
  128. *&---------------------------------------------------------------------*
  129. * Imprimimos en pantalla los datos generados
  130. *----------------------------------------------------------------------*
  131.  
  132. FORM IMPRIMIR_DATOS.
  133.  
  134. &#34;Imprimimos una pequeña cabecera con los titulos
  135.  
  136. WRITE:/1 'Sociedad',15 'Doc. Contable',30 'Año',37 'Moneda',
  137. 55 'Monto'.
  138.  
  139. &#34;Recorremos nuestra tabla interna e imprimimos en pantalla
  140. &#34;registro por registro...
  141.  
  142. LOOP AT T_DATOS.
  143. WRITE:/1 T_DATOS-BUKRS,15 T_DATOS-BELNR,30 T_DATOS-GJAHR,
  144. 38 T_DATOS-WAERS,45 T_DATOS-DMBTR.
  145. ENDLOOP.
  146.  
  147. ENDFORM.
  148.  
  149.  

Saludos,

Blag  :smartass:
Hola gente busco info sobre OCCURS... el unico valor q toma es 0??
Significa q es una tabla dinamica nada mas??
Desde ya muchas gracias!
Sami

"Creamos una tabla interna con los campos necesarios
"El OCCURS 0 indica que es una tabla dinámica
DATA: BEGIN OF T_DATOS OCCURS 0,
[/b]SAMI

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #12 en: Martes 24 de Octubre de 2006, 21:27 »
0
Bienvenid@ Sami:

Citar
Hola gente busco info sobre OCCURS... el unico valor q toma es 0??
Significa q es una tabla dinamica nada mas??
Desde ya muchas gracias!
Sami

El OCCURS indica la cantidad de registros que puede soportar una tabla interna....Por ejemplo....

Código: Text
  1.  
  2. OCCURS 10 --&#62; Solo 10 registros.
  3. OCCURS 1 --&#62; Solo un registro.
  4.  
  5.  

En el caso del OCCURS 0, significa que hay límite para la cantidad de registros....

Las tablas internas no son más que Arrays...Por lo tanto tienes que definir el tamaño que van a tener...Lo más común es utilizar 0 porque normalmente no sabes cuantos registros vas a coseguir luego de hacer un SELECT.

Espero haber sido claro  :comp:  Sino...Puedes seguir preguntando  :lol:

Saludos,

Blag  :smartass:

sami25

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #13 en: Miércoles 25 de Octubre de 2006, 16:33 »
0
Hola, muchas gracias por lo del occurs.. me sirvio mucho..
Otra cosa alguien tiene definido tablas internas con el type?

SORRY QUE PREGUNTE TONTERIAS PERO HACE 2 DIAS Q EMPECE A LABURAR CON ESTO!!
GRACIAS!

SAMI
[/b]SAMI

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #14 en: Miércoles 25 de Octubre de 2006, 17:37 »
0
Citar
Otra cosa alguien tiene definido tablas internas con el type?

SORRY QUE PREGUNTE TONTERIAS PERO HACE 2 DIAS Q EMPECE A LABURAR CON ESTO!!
GRACIAS!

No te preocupes que no son tonterías  :lol:  Es solo que recién estás empezando  B)

En realidad....La mejor forma de declarar tablas internas es con TYPE  :comp:

Código: Text
  1.  
  2. DATA: T_MARA TYPE STANDARD TABLE OF MARA WITH HEADER LINE.
  3.  
  4.  

Ves  :lol:  Ya no necesitas el famoso OCCURS 0  B)

Saludos,

Blag  :smartass:

sami25

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #15 en: Miércoles 25 de Octubre de 2006, 20:27 »
0
hola blag, gracias por responder a todo..
te cuento q estoy usando el sap nuevo... y nos indican q empecemos a declarar las tablas de esta forma:

TYPES: BEGIN OF TI_SFLIGHT ,
      CONNID LIKE SFLIGHT-CONNID,
      CARRID LIKE SFLIGHT-CARRID,
      FLDATE LIKE SFLIGHT-FLDATE,
      PRICE LIKE SFLIGHT-PRICE,
      CURRENCY LIKE SFLIGHT-CURRENCY,
      PLANETYPE LIKE SFLIGHT-PLANETYPE,
END OF TI_SFLIGHT.

DATA: IT_SFLIGHT TYPE TABLE OF TI_SFLIGHT.

DATA: wa_sflight TYPE TI_SFLIGHT.

Esto no entiendo por q standard y q hace el with header line...
DATA: T_MARA TYPE STANDARD TABLE OF MARA WITH HEADER LINE.

pd: te agregue al msn..

desde ya gracias, Sami
[/b]SAMI

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Programa De Ejemplo En Abap
« Respuesta #16 en: Miércoles 25 de Octubre de 2006, 20:45 »
0
Citar
Esto no entiendo por q standard y q hace el with header line...
DATA: T_MARA TYPE STANDARD TABLE OF MARA WITH HEADER LINE.

El standard se utiliza, porque en este caso MARA es una tabla transparente o tabla standard de base de datos.

WITH HEADER LINE lo que hace es agregar una línea de cabecera, y una línea de cabecera es el lugar donde se almacena la información cuando la estás leyendo.

Por ejemplo:

Código: Text
  1.  
  2. SELECT *
  3. INTO TABLE T_MARA
  4. FROM MARA.
  5.  
  6. LOOP AT T_MARA.
  7. WRITE:/ T_MARA-MATNR.
  8. ENDLOOP.
  9.  
  10.  

Por cada vuelta del loop, el registro que estás leyendo se guarda en la línea de cabecera, es por eso que puedes imprimir los campos así:

Código: Text
  1.  
  2. WRITE:/ T_MARA-MATNR.
  3.  
  4.  

P.D: No uso messenger  B)  Utilizo Skype: atejadag y GTalk: atejada@gmail.com

Saludos,

Blag  :smartass:

fer_saikyo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Programa De Ejemplo En Abap
« Respuesta #17 en: Miércoles 5 de Diciembre de 2007, 16:56 »
0
hola! que buen ejemplo: me sono al abuelo cuando dice "Chicos, vengan todos que les cuento un cuento " (valga la redundacia..) jajajajaja! no tenes mas cuentos como éste? o sea tan faciles de llevar? y con cada cuento vas agregando cosas? jeje! Saludos amigo!