lunes, 12 de diciembre de 2011
smartforms a pdf
* Internal table declaration
DATA:
W_CTRLOP TYPE SSFCTRLOP,
W_COMPOP TYPE SSFCOMPOP,
W_RETURN TYPE SSFCRESCL,
I_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE.
* Declaration of local variables.
DATA: ST_OUTPUT_OPTIONS TYPE SSFCOMPOP,
ST_CONTROL_PARAMETERS TYPE SSFCTRLOP,
V_LEN_IN TYPE SO_OBJ_LEN,
V_LANGUAGE TYPE SFLANGU VALUE 'E',
V_E_DEVTYPE TYPE RSPOPTYPE,
V_BIN_FILESIZE TYPE I,
BIN_FILESIZE TYPE D,
V_NAME TYPE STRING,
V_PATH TYPE STRING,
V_FULLPATH TYPE STRING,
V_FILTER TYPE STRING,
V_UACT TYPE I,
V_GUIOBJ TYPE REF TO CL_GUI_FRONTEND_SERVICES,
V_FILENAME TYPE STRING,
V_FM_NAME TYPE RS38L_FNAM,
W_NAMESF TYPE TNAPR-SFORM VALUE 'Yz_SF'. "SMARTFORM
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = V_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = V_E_DEVTYPE.
ST_OUTPUT_OPTIONS-TDPRINTER = V_E_DEVTYPE.
ST_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
ST_CONTROL_PARAMETERS-GETOTF = 'X'.
*.................OBTIENE MODULO DE FUNCIONES DEL SMATRFORMS.................*
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = W_NAMESF "LLEVA EL NOMBRE DEL SMARTFORM
IMPORTING
FM_NAME = V_FM_NAME " GUARDA LA RFC DEL SMARTFORM
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
*...........................CALL SMARTFORM............................*
W_CTRLOP-GETOTF = 'X'.
W_CTRLOP-NO_DIALOG = ' '.
W_COMPOP-TDNOPREV = ' '.
CALL FUNCTION V_FM_NAME
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = W_CTRLOP
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
OUTPUT_OPTIONS = W_COMPOP
USER_SETTINGS = 'X'
* D = '0'
IMPORTING
* document_output_info = st_document_output_info
JOB_OUTPUT_INFO = W_RETURN
* job_output_options = st_job_output_options
* EXCEPTIONS
* FORMATTING_ERROR = 1
* INTERNAL_ERROR = 2
* SEND_ERROR = 3
* USER_CANCELED = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
I_OTF[] = W_RETURN-OTFDATA[].
*.........................CONVERT TO OTF TO PDF.......................*
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
* PDF_USERNAME = ' '
IMPORTING
BIN_FILESIZE = V_LEN_IN
* BIN_FILE =
TABLES
OTF = I_OTF
LINES = I_TLINE
* EXCEPTIONS
* ERR_MAX_LINEWIDTH = 1
* ERR_FORMAT = 2
* ERR_CONV_NOT_POSSIBLE = 3
* ERR_BAD_OTF = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*........................MATCH CODE GUARDAR EL PDF...................*
CONCATENATE 'smrt' '.pdf' INTO V_NAME.
CREATE OBJECT V_GUIOBJ.
CALL METHOD V_GUIOBJ->FILE_SAVE_DIALOG
EXPORTING
DEFAULT_EXTENSION = 'pdf'
DEFAULT_FILE_NAME = V_NAME
FILE_FILTER = V_FILTER
CHANGING
FILENAME = V_NAME
PATH = V_PATH
FULLPATH = V_FULLPATH
USER_ACTION = V_UACT.
IF V_UACT = V_GUIOBJ->ACTION_CANCEL.
EXIT.
ENDIF.
*..................................DOWNLOAD AS FILE....................*
MOVE V_FULLPATH TO V_FILENAME.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = V_BIN_FILESIZE
FILENAME = V_FILENAME
FILETYPE = 'BIN'
TABLES
DATA_TAB = I_TLINE
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
Sapscript a PDF
nota: crear el sapscript con el elemento detalle en el main. que fue el caso de este codigo.
TABLES: itcpo."P.Q. FUNCIONE EL PDF (ojo)
**TABLA PARA EL PDF
DATA: otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,"P.Q. FUNCIONE EL PDF (ojo)
intab TYPE soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
objbin TYPE solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_intab TYPE LINE OF soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_objbin TYPE LINE OF solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
objpack LIKE sopcklsti1."P.Q. FUNCIONE EL PDF (ojo)
*DATA: receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
**********datos de consulta
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA NAME TYPE USR21-BNAME.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
DATA P TYPE I VALUE 10.
SELECT-OPTIONS NOMBRE FOR NAME.
select a~NAME_FIRST a~NAME_LAST
into TABLE IT
from USR21 as u
INNER JOIN ADRP as a
on u~PERSNUMBER = a~PERSNUMBER
where U~BNAME IN NOMBRE.
**********fin *datos de consulta
itcpo-tdgetotf = 'X'."P.Q. FUNCIONE EL PDF (ojo)
itcpo-tddest = 'LP01'."P.Q. FUNCIONE EL PDF (ojo)
CALL FUNCTION 'OPEN_FORM'
EXPORTING
* APPLICATION = 'TX'
* ARCHIVE_INDEX =
* ARCHIVE_PARAMS =
DEVICE = 'PRINTER'"P.Q. FUNCIONE EL PDF (ojo)
DIALOG = ''"P.Q. FUNCIONE EL PDF (ojo)
FORM = 'YSAPSCRIPT_SSCRIPT' "nombre del sapscript
LANGUAGE = SY-LANGU
OPTIONS = itcpo "P.Q. FUNCIONE EL PDF (ojo)
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJECT =
* RAW_DATA_INTERFACE = '*'
* SPONUMIV =
* IMPORTING
* LANGUAGE =
* NEW_ARCHIVE_PARAMS =
* RESULT =
* EXCEPTIONS
* CANCELED = 1
* DEVICE = 2
* FORM = 3
* OPTIONS = 4
* UNCLOSED = 5
* MAIL_OPTIONS = 6
* ARCHIVE_ERROR = 7
* INVALID_FAX_NUMBER = 8
* MORE_PARAMS_NEEDED_IN_BATCH = 9
* SPOOL_ERROR = 10
* CODEPAGE = 11
* OTHERS = 12
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'START_FORM'
EXPORTING
* ARCHIVE_INDEX =
FORM = 'YSAPSCRIPT_SSCRIPT'
* LANGUAGE = ' '
* STARTPAGE = ' '
* PROGRAM = ' '
* MAIL_APPL_OBJECT =
* IMPORTING
* LANGUAGE =
* EXCEPTIONS
* FORM = 1
* FORMAT = 2
* UNENDED = 3
* UNOPENED = 4
* UNUSED = 5
* SPOOL_ERROR = 6
* CODEPAGE = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'DETALLE'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
* IMPORTING
* PENDING_LINES =
* EXCEPTIONS
* ELEMENT = 1
* FUNCTION = 2
* TYPE = 3
* UNOPENED = 4
* UNSTARTED = 5
* WINDOW = 6
* BAD_PAGEFORMAT_FOR_PRINT = 7
* SPOOL_ERROR = 8
* CODEPAGE = 9
* OTHERS = 10
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'END_FORM'
* IMPORTING
* RESULT =
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SPOOL_ERROR = 3
* CODEPAGE = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = otfdata"P.Q. FUNCIONE EL PDF (ojo)
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SEND_ERROR = 3
* SPOOL_ERROR = 4
* CODEPAGE = 5
* OTHERS = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*********para bajar a pdf
LOOP AT otfdata.
wa_intab = otfdata.
APPEND wa_intab TO intab.
CLEAR wa_intab.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'LP01'
CHANGING
transfer_bin = objpack-transf_bin
content_txt = intab
content_bin = objbin
objhead = intab
len = objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:/PRUEBASS.PDF'
filetype = 'BIN'
TABLES
data_tab = objbin
EXCEPTIONS
file_write_error = 1
no_batch = 2.
IF sy-subrc <> 0.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*END PDF
TABLES: itcpo."P.Q. FUNCIONE EL PDF (ojo)
**TABLA PARA EL PDF
DATA: otfdata LIKE itcoo OCCURS 0 WITH HEADER LINE,"P.Q. FUNCIONE EL PDF (ojo)
intab TYPE soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
objbin TYPE solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_intab TYPE LINE OF soli_tab,"P.Q. FUNCIONE EL PDF (ojo)
wa_objbin TYPE LINE OF solix_tab,"P.Q. FUNCIONE EL PDF (ojo)
objpack LIKE sopcklsti1."P.Q. FUNCIONE EL PDF (ojo)
*DATA: receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
**********datos de consulta
TYPES: BEGIN OF TY,
NOMBRE TYPE NAME_FIRST,
APELLIDO TYPE NAME_LAST,
END OF TY.
DATA NAME TYPE USR21-BNAME.
DATA IT TYPE STANDARD TABLE OF TY WITH HEADER LINE.
DATA P TYPE I VALUE 10.
SELECT-OPTIONS NOMBRE FOR NAME.
select a~NAME_FIRST a~NAME_LAST
into TABLE IT
from USR21 as u
INNER JOIN ADRP as a
on u~PERSNUMBER = a~PERSNUMBER
where U~BNAME IN NOMBRE.
**********fin *datos de consulta
itcpo-tdgetotf = 'X'."P.Q. FUNCIONE EL PDF (ojo)
itcpo-tddest = 'LP01'."P.Q. FUNCIONE EL PDF (ojo)
CALL FUNCTION 'OPEN_FORM'
EXPORTING
* APPLICATION = 'TX'
* ARCHIVE_INDEX =
* ARCHIVE_PARAMS =
DEVICE = 'PRINTER'"P.Q. FUNCIONE EL PDF (ojo)
DIALOG = ''"P.Q. FUNCIONE EL PDF (ojo)
FORM = 'YSAPSCRIPT_SSCRIPT' "nombre del sapscript
LANGUAGE = SY-LANGU
OPTIONS = itcpo "P.Q. FUNCIONE EL PDF (ojo)
* MAIL_SENDER =
* MAIL_RECIPIENT =
* MAIL_APPL_OBJECT =
* RAW_DATA_INTERFACE = '*'
* SPONUMIV =
* IMPORTING
* LANGUAGE =
* NEW_ARCHIVE_PARAMS =
* RESULT =
* EXCEPTIONS
* CANCELED = 1
* DEVICE = 2
* FORM = 3
* OPTIONS = 4
* UNCLOSED = 5
* MAIL_OPTIONS = 6
* ARCHIVE_ERROR = 7
* INVALID_FAX_NUMBER = 8
* MORE_PARAMS_NEEDED_IN_BATCH = 9
* SPOOL_ERROR = 10
* CODEPAGE = 11
* OTHERS = 12
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'START_FORM'
EXPORTING
* ARCHIVE_INDEX =
FORM = 'YSAPSCRIPT_SSCRIPT'
* LANGUAGE = ' '
* STARTPAGE = ' '
* PROGRAM = ' '
* MAIL_APPL_OBJECT =
* IMPORTING
* LANGUAGE =
* EXCEPTIONS
* FORM = 1
* FORMAT = 2
* UNENDED = 3
* UNOPENED = 4
* UNUSED = 5
* SPOOL_ERROR = 6
* CODEPAGE = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'DETALLE'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
* IMPORTING
* PENDING_LINES =
* EXCEPTIONS
* ELEMENT = 1
* FUNCTION = 2
* TYPE = 3
* UNOPENED = 4
* UNSTARTED = 5
* WINDOW = 6
* BAD_PAGEFORMAT_FOR_PRINT = 7
* SPOOL_ERROR = 8
* CODEPAGE = 9
* OTHERS = 10
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'END_FORM'
* IMPORTING
* RESULT =
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SPOOL_ERROR = 3
* CODEPAGE = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = otfdata"P.Q. FUNCIONE EL PDF (ojo)
* EXCEPTIONS
* UNOPENED = 1
* BAD_PAGEFORMAT_FOR_PRINT = 2
* SEND_ERROR = 3
* SPOOL_ERROR = 4
* CODEPAGE = 5
* OTHERS = 6
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*********para bajar a pdf
LOOP AT otfdata.
wa_intab = otfdata.
APPEND wa_intab TO intab.
CLEAR wa_intab.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'LP01'
CHANGING
transfer_bin = objpack-transf_bin
content_txt = intab
content_bin = objbin
objhead = intab
len = objpack-doc_size
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:/PRUEBASS.PDF'
filetype = 'BIN'
TABLES
data_tab = objbin
EXCEPTIONS
file_write_error = 1
no_batch = 2.
IF sy-subrc <> 0.
ENDIF.
"P.Q. FUNCIONE EL PDF (ojo)
*END PDF
lunes, 5 de diciembre de 2011
SEPARATED BY ABAP
DATA: ONE(10) VALUE 'Ivan',
TWO(7) VALUE 'Rodrigo',
THREE(10) VALUE 'Baños',
NAME(30),
SEPARATOR VALUE ':'.
CONCATENATE ONE TWO THREE INTO NAME
SEPARATED BY separator.
write name.
TWO(7) VALUE 'Rodrigo',
THREE(10) VALUE 'Baños',
NAME(30),
SEPARATOR VALUE ':'.
CONCATENATE ONE TWO THREE INTO NAME
SEPARATED BY separator.
write name.
FETCH NEXT CURSOR C INTO WA
TABLES SBOOK.
DATA: C TYPE CURSOR,
WA LIKE SBOOK.
OPEN CURSOR C FOR SELECT * FROM SBOOK
WHERE
CARRID = 'AA' AND
CONNID = '017' AND
BOOKID = '00000053'
ORDER BY PRIMARY KEY.
DO.
FETCH NEXT CURSOR C INTO WA.
IF SY-SUBRC <> 0.
CLOSE CURSOR C. EXIT.
ENDIF.
WRITE: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,
WA-SMOKER, WA-LUGGWEIGHT, WA-WUNIT,
WA-INVOICE.
ENDDO.
TRAE DATOS UY LOS DEJA EN LA VARIABLE C Y DESPUES LOS PASA AL WA
DATA: C TYPE CURSOR,
WA LIKE SBOOK.
OPEN CURSOR C FOR SELECT * FROM SBOOK
WHERE
CARRID = 'AA' AND
CONNID = '017' AND
BOOKID = '00000053'
ORDER BY PRIMARY KEY.
DO.
FETCH NEXT CURSOR C INTO WA.
IF SY-SUBRC <> 0.
CLOSE CURSOR C. EXIT.
ENDIF.
WRITE: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,
WA-SMOKER, WA-LUGGWEIGHT, WA-WUNIT,
WA-INVOICE.
ENDDO.
TRAE DATOS UY LOS DEJA EN LA VARIABLE C Y DESPUES LOS PASA AL WA
SPLIT ABAP
data text1(255).
data text2(255).
data text3(255).
data text4(255).
data text5(255).
data text(18) value '3.000.000'.
SPLIT text AT '.' INTO text1 text2 text3 text4 text5.
CONCATENATE text1 text2 text3 text4 text4 into text.
*coje valor de la text 3.000.000 los separa y los deja en cada variable
*text1 = 3
*text2 = 000
*text3 = 000
*CONCATENATE queda 3000000 sin puntos
data text2(255).
data text3(255).
data text4(255).
data text5(255).
data text(18) value '3.000.000'.
SPLIT text AT '.' INTO text1 text2 text3 text4 text5.
CONCATENATE text1 text2 text3 text4 text4 into text.
*coje valor de la text 3.000.000 los separa y los deja en cada variable
*text1 = 3
*text2 = 000
*text3 = 000
*CONCATENATE queda 3000000 sin puntos
DESCRIBE ABAP
Data wl_tabix TYPE sy-tabix.
DESCRIBE TABLE it_z LINES wl_tabix.
IF wl_tabix = 0.
MESSAGE: 'No se ecnontraron datos' TYPE 'E'.
EXIT.
ENDIF.
DESCRIBE TABLE it_z LINES wl_tabix.
IF wl_tabix = 0.
MESSAGE: 'No se ecnontraron datos' TYPE 'E'.
EXIT.
ENDIF.
WRITE MONEDA LOCAL ABAP
DATA:
sumator TYPE dmbtr,”DEPENDE VALOR DEL CAMPO
moneda TYPE waers, “EL WAERS TRAE EL COP
lv_value TYPE tdsymvalue,”VARIBLE TIPO TDS… GUARDAR EL NUMERO A CONVERTIR
moneda = ‘COP’ “OPCIONAL OBLIGAR EL COP
sumator = it_z-dmbtr.”GUARDA EN SUMATOR EL VAOR ACONVERTIR
WRITE sumator TO lv_value CURRENCY moneda.”CAMBIO TIPO COP = MONEDA LOCAL
CONDENSE lv_value.”
“OPCION PARA INSERTARLO EN UNA IT Z
it_z-dmbtr1 = lv_value.
MODIFY it_z TRANSPORTING dmbtr1.
sumator TYPE dmbtr,”DEPENDE VALOR DEL CAMPO
moneda TYPE waers, “EL WAERS TRAE EL COP
lv_value TYPE tdsymvalue,”VARIBLE TIPO TDS… GUARDAR EL NUMERO A CONVERTIR
moneda = ‘COP’ “OPCIONAL OBLIGAR EL COP
sumator = it_z-dmbtr.”GUARDA EN SUMATOR EL VAOR ACONVERTIR
WRITE sumator TO lv_value CURRENCY moneda.”CAMBIO TIPO COP = MONEDA LOCAL
CONDENSE lv_value.”
“OPCION PARA INSERTARLO EN UNA IT Z
it_z-dmbtr1 = lv_value.
MODIFY it_z TRANSPORTING dmbtr1.
SHIFT VERLAY CONDENSE ABAP
Data: lv_lwert TYPE wert8,
lv_value TYPE tdsymvalue.
lv_lwert = variable que trae el numero.
WRITE lv_lwert TO lv_value CURRENCY 'COP' DECIMALS 2.
CONDENSE lv_value.
variable que trae el numero = lv_value.
* retirar puntos, comas y espacios.
TRANSLATE variable que trae el numero USING ', '.
TRANSLATE variable que trae el numero USING '. '.
CONDENSE variable que trae el numero NO-GAPS.
* Alinear a la derecha.
SHIFT variable que trae el numero RIGHT DELETING TRAILING ' '.
* Rellenar con ceros a la derecha.
OVERLAY variable que trae el numero valor WITH '00000000000000000'.
lv_value TYPE tdsymvalue.
lv_lwert = variable que trae el numero.
WRITE lv_lwert TO lv_value CURRENCY 'COP' DECIMALS 2.
CONDENSE lv_value.
variable que trae el numero = lv_value.
* retirar puntos, comas y espacios.
TRANSLATE variable que trae el numero USING ', '.
TRANSLATE variable que trae el numero USING '. '.
CONDENSE variable que trae el numero NO-GAPS.
* Alinear a la derecha.
SHIFT variable que trae el numero RIGHT DELETING TRAILING ' '.
* Rellenar con ceros a la derecha.
OVERLAY variable que trae el numero valor WITH '00000000000000000'.
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.
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 .
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
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
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
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
Suscribirse a:
Entradas (Atom)