Programa ejemplo de ABAP Sociedad Doc. Contable Año Moneda MontoENER 400000001 2004 USD 700,00ENER 400000002 2004 USD 700,00ENER 400000003 2004 USD 700,00ENER 400000004 2004 USD 700,00ENER 400000005 2004 USD 700,00ENER 2000000001 2004 PEN 14.752,05ENER 2000000002 2004 PEN 13.231,37ENER 2000000003 2004 PEN 1.519,35ENER 2000000004 2004 PEN 7.677,52ENER 2000000005 2004 PEN 9.917,00ENER 2000000006 2004 PEN 28.342,32ENER 2000000007 2004 PEN 97,14ENER 2000000008 2004 PEN 1.873,83ENER 2000000009 2004 PEN 96,24ENER 2000000010 2004 PEN 20,98ENER 2000000011 2004 PEN 32,96ENER 2000000012 2004 PEN 26,59ENER 2000000013 2004 PEN 16,48ENER 2000000014 2004 PEN 32,96ENER 2000000015 2004 PEN 83,91ENER 2000000016 2004 PEN 32,96ENER 2000000017 2004 PEN 106,02ENER 2000000018 2004 PEN 176,81ENER 2000000019 2004 PEN 3.699,22ENER 2000000020 2004 PEN 1.312,86ENER 2000000021 2004 PEN 47,95ENER 2000000022 2004 PEN 26,63ENER 2000000023 2004 PEN 156,73ENER 2000000024 2004 PEN 179,80ENER 2000000025 2004 PEN 55,44ENER 2000000026 2004 PEN 542,09
[CODE]REPORT Z_PRUEBA_ABAP.*=======================================================================* Tablas*======================================================================="Definimos las tablas que vamos a leerTABLES: BKPF,BSEG.*=======================================================================* Estructuras*======================================================================="Creamos una tabla interna con los campos necesarios"El OCCURS 0 indica que es una tabla dinámicaDATA: 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 contadorDATA: 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ámicaDATA: BEGIN OF T_DATOS OCCURS 0,BUKRS LIKE BKPF-BUKRS, *Que son este tipo de Datos? --> BUKRSBELNR LIKE BKPF-BELNR, *BELNRGJAHR LIKE BKPF-GJAHR, *GJAHRBLART LIKE BKPF-BLART, *BLARTWAERS LIKE BKPF-WAERS, *WAERSDMBTR LIKE BSEG-DMBTR, *DMBTREND OF T_DATOS."Una variable a modo de contadorDATA: 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
"de nuestra tabla interna. El SINGLE indica que solo queremos un valorSELECT SINGLE DMBTRINTO T_DATOS-DMBTRFROM BSEGWHERE 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 titulosWRITE:/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 DMBTRINTO T_DATOS-DMBTRFROM BSEGWHERE BUKRS EQ T_DATOS-BUKRS *EQ -->Que es?, Si T_DATOS-BUKRS es el dato seleccionado o no se.¿?AND BELNR EQ T_DATOS-BELNRAND 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..????
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 leerTABLES: BKPF,BSEG. *=======================================================================* Estructuras*======================================================================= "Creamos una tabla interna con los campos necesarios"El OCCURS 0 indica que es una tabla dinámicaDATA: 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 contadorDATA: 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 valoresSELECT-OPTIONS: S_BUKRS FOR BKPF-BUKRS, S_BELNR FOR BKPF-BELNR."Podemos elegir solamente un valor"OBLIGATORY indica que es obligatorio para ejecutar el programaPARAMETERS: 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 creadoPERFORM 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 WAERSINTO T_DATOSFROM BKPFWHERE 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 "valorSELECT SINGLE DMBTRINTO T_DATOS-DMBTRFROM BSEGWHERE 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
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.