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
[CODE]Preguntas?
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?
"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?
*Que son este tipo de Datos? --> BUKRS
DATA: CONTADOR TYPE I. *Type I Que es? La variable?
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?
Bueno la verdad que no entiendo ni "michi" de ese codigo, sera porque no programo en cobol, parece un arañado de gato
Vuelvo a preguntar¿?
"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.
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.
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..????
Hola gente busco info sobre OCCURS... el unico valor q toma es 0??Código: Text
************************************************************************ * Programa : Z_PRUEBA_ABAP * Módulo : FI - Finanzas * Documento: * Usuario responsable: * Consultor funcional: * Consultor ABAP : Alvaro Tejada Galindo * Descripción: Programa de Ejemplo de ABAP * Transacción: * Juego de datos: ************************************************************************ 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, BELNR LIKE BKPF-BELNR, GJAHR LIKE BKPF-GJAHR, BLART LIKE BKPF-BLART, WAERS LIKE BKPF-WAERS, DMBTR LIKE BSEG-DMBTR, END OF T_DATOS. *======================================================================= * Variables *======================================================================= "Una variable a modo de contador DATA: CONTADOR TYPE I. *======================================================================= * Selection screen *======================================================================= "Estos son los parámetros de selección de nuestro programa SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME TITLE TEXT-T01. "Podemos elegir un rango de valores SELECT-OPTIONS: S_BUKRS FOR BKPF-BUKRS, S_BELNR FOR BKPF-BELNR. "Podemos elegir solamente un valor "OBLIGATORY indica que es obligatorio para ejecutar el programa PARAMETERS: P_GJAHR LIKE BKPF-GJAHR OBLIGATORY. SELECTION-SCREEN END OF BLOCK DATA. *======================================================================= * Start-of-selection *======================================================================= "Comienza la ejecución del programa START-OF-SELECTION. "Llamamos a las funciones que hemos creado PERFORM OBTENER_DATOS. PERFORM IMPRIMIR_DATOS. *======================================================================= * Subrutinas *======================================================================= *&---------------------------------------------------------------------* *& Form OBTENER_DATOS *&---------------------------------------------------------------------* * Obtenemos los datos de las tablas BKPF y BSEG. *----------------------------------------------------------------------* FORM OBTENER_DATOS. "Seleccionamos los valores de la tabla BKPF que cumplan con los "requisitos y los guardamos en nuestra tabla interna. "El APPEND sirve para almacenar los valores en la ultima fila "de la tabla interna SELECT BUKRS BELNR GJAHR BLART WAERS INTO T_DATOS FROM BKPF WHERE BUKRS IN S_BUKRS AND BELNR IN S_BELNR AND GJAHR EQ P_GJAHR. APPEND T_DATOS. ENDSELECT. "Hacemos un LOOP para recorrer todos los registros de nuestra "tabla interna LOOP AT T_DATOS. "El SY-TABIX es una variable del sistema que nos indica el número "de vueltas que ha dado un LOOP. CONTADOR = SY-TABIX. "Seleccionamos un dato y lo almacenamos en uno de los campos "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 AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. "El MODIFY modifica la tabla interna, para agregar el valor "que hemos obtenido en el query anterior, utilizando como "indice, el número de vuelta del LOOP MODIFY T_DATOS INDEX CONTADOR. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form IMPRIMIR_DATOS *&---------------------------------------------------------------------* * Imprimimos en pantalla los datos generados *----------------------------------------------------------------------* FORM IMPRIMIR_DATOS. "Imprimimos una pequeña cabecera con los titulos WRITE:/1 'Sociedad',15 'Doc. Contable',30 'Año',37 'Moneda', 55 'Monto'. "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.
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
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!
Esto no entiendo por q standard y q hace el with header line...
DATA: T_MARA TYPE STANDARD TABLE OF MARA WITH HEADER LINE.