lunes, 5 de diciembre de 2011

VERIFICAR SI HAY DATOS EN UNA TABLA INTERNA ABAP

DATA WL_TABIX TYPE SY-TABIX.
DATA S TYPE I VALUE 1.

TYPES: BEGIN OF TY,
A TYPE I,
END OF TY.

DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
DATA IT2 TYPE STANDARD TABLE OF TY WITH HEADER LINE.

DO 7 TIMES.
IT-A = S + 1.
APPEND IT.
S = S + 1.
ENDDO.

*1 forma versi una tabla esta vacia
DESCRIBE TABLE IT LINES WL_TABIX.
IF WL_TABIX = 0.
WRITE: 'No se ecnontraron datos'.
ENDIF.
*2 forma versi una tabla esta vacia
IF IT2 IS INITIAL.
WRITE: 'No se ecnontraron datos'.
ENDIF.

REPLACE ABAP

DATA FIELD(15).
MOVE 'carro' TO FIELD.

REPLACE 'A' WITH '1 ' INTO FIELD.

*Devuelve:
*SY-SUBRC = 0 SI ENCUENTRA LA LETRA Y 4 SI NO .

SPLIT


DATA: BEGIN OF ITAB OCCURS 10,
WORD(20),
END OF ITAB.

SPLIT 'STOP LUIS STOP MARIA SAMACA STOP GOMEZ ' AT 'STOP' INTO TABLE ITAB.
*quita los Stop y cada texto los insertar en una fila en la itab
*eJ: 1
*linea word(20)
*1
*2 LUIS
*3 LARIA SAMACA
*4 GOMEZ

SHIFT CONDENSE OVERLAY ABAP

DATA F(12) VALUE 'ok PEDRO'.
DATA F1(20) VALUE 'carro'.
DATA Ff1(20).
DATA Fff1(20).
DATA F11(20) VALUE 'gracias'.
DATA F2(12) VALUE '912345678'.

SHIFT F BY 3 PLACES.
*rta PEDRO quita 'ok '

SHIFT f2 CIRCULAR.
*rta 12345678 9 move primer numero al final

SHIFT f1 RIGHT DELETING TRAILING ' '.
*corre el texto a la derecha

ff1 = f1.
CONDENSE ff1 NO-GAPS.
*quita los espaciosen blanco

fff1 = f1.

OVERLAY fff1 WITH '00000000000000000000000000000' .
*rellena el campo con 0 en los espacios que esten en blanco

Translate Upper Lower ABAP

DATA: LETTERS(15) VALUE 'Xlexonder',
CHANGE(5) VALUE 'XAoa',
a type string value 'carro',
b type string value 'caRRo'.

TRANSLATE LETTERS USING CHANGE.
*coje la X de change la busca en letters y la reemplazao porla que tiene al lado osea A
*y sigue.... coje y busca la o y la reemplaza por a
*entonces Xlexonder queda alexander

TRANSLATE a TO UPPER CASE. " salida CARRO
TRANSLATE b TO LOWER CASE. " Salida carro

SORT ABAP


TYPES: BEGIN OF ty,
C1(2) TYPE c,
C2(30) TYPE c,
C3(2) TYPE c,
END OF ty.
data it type STANDARD TABLE OF ty WITH HEADER LINE.

it-c1 = 8.it-c2 = 'Alex'.it-c3 = 45.append it.
it-c1 = 2.it-c2 = 'pedro'.it-c3 = 4.append it.
it-c1 = 3.it-c2 = 'luis'.it-c3 = 50.append it.

sort it DESCENDING by c2."ordena ascendente con respecto al campo 2 letras
sort it ASCENDING by c3. "ordena ascendente con respecto al campo 3 numeros
SORT it ASCENDING. "ordena ascedente con respecto al primer campo
SORT it DESCENDING. "ordena descendente con respecto al primer campo

COLLECT ABAP

DATA: BEGIN OF linea,
col1(1) TYPE C,
col2(1) TYPE c,
col3 TYPE i,
col4 TYPE i,

END OF linea.

*DATA tabla LIKE HASHED TABLE OF linea WITH UNIQUE KEY col1 COL2.
DATA tabla LIKE STANDARD TABLE OF linea WITH HEADER LINE.
*CUALQUIERA DE LAS DOS TABLAS

*EL COLLECT SUMA LOS DATOS NUMERICOS PERO CUANDO TODAS LAS COLUMNAS SE PARECEN
linea-col1 = 'A'.
linea-col2 = 'S'.
linea-col3 = 1.
linea-col4 = 15.

COLLECT linea INTO tabla.

linea-col1 = 'T'.
linea-col2 = 'V'.
linea-col3 = 1.
linea-col4 = 0.
COLLECT linea INTO tabla.

linea-col1 = 'A'.
linea-col2 = 'S'.
linea-col3 = 3.
linea-col4 = 5.

COLLECT linea INTO tabla.

linea-col1 = 'A'.
linea-col2 = 'I'.
linea-col3 = 5.
linea-col4 = 3.

COLLECT linea INTO tabla.

WRITE linea-col3. "ESCRIBE EL ULTIMO DATO EJEMPLO 5
*SALIDA
* A S 6 20 SUMA LAS DOS
* T V 1 0
* A I 5 3