Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Examen Basico ABAPSolucionado
Examen Basico ABAPSolucionado
*&---------------------------------------------------------------------*
*& Report ZEXA_PROGRAMA
*& ---------------------------------------------------------------------*
*& ------------------------------ Z_BSIK_00_PROGRAAM
*& ZALVREPORTE DYNPRO
*& 369 LEERLO
*& 350 EMPESAR DE AHI
*& 1 Creamos el objeto CUSTOM_CONTAINER apuntando a nuestro CUSTOM_CONTROL *&
(Cuyo nombre est almacenado en la variable MYCONTAINER).
REPORT ZEXA_PROGRAMA MESSAGE-ID CU.
TABLES: T001, BSIK, T005T.
TYPES: BEGIN OF TY_T001,
BUKRS TYPE T001-BUKRS,
BUTXT TYPE T001-BUTXT,
ADRNR TYPE T001-ADRNR,
ORT01 TYPE T001-ORT01,
LANDX TYPE T005T-LANDX,
END OF TY_T001.
DATA: T_T001 TYPE STANDARD TABLE OF TY_T001.
*
T_ZT001 TYPE STANDARD TABLE OF T001 WITH HEADER LINE.
DATA: SOC TYPE T001-BUKRS,
PAIS TYPE C.
START-OF-SELECTION.
CALL SCREEN '100'.
FORM OBTENER_DATOS.
SOC = T001-BUKRS.
* SELECT BUKRS BUTXT ADRNR ORT01 LANDX
SELECT SINGLE BUKRS BUTXT ADRNR ORT01 LAND1
INTO (T001-BUKRS,T001-BUTXT,T001-ADRNR,
T001-ORT01,T001-LAND1)
* INTO TABLE T_T001
FROM T001
*FROM T001 INNER JOIN T005T
*
ON T005T~LAND1 = T001~LAND1
WHERE T001~BUKRS EQ SOC.
IF SY-SUBRC <> 0.
MESSAGE E654 WITH SOC.
ENDIF.
SET PARAMETER ID 'BUK' FIELD SOC.
1
RFJB
ENDFORM.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR '100'.
ENDMODULE.
" STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
DATA: OK_CODE TYPE SY-UCOMM.
OK_CODE = SY-UCOMM.
CLEAR SY-UCOMM.
CASE OK_CODE.
WHEN 'DETALLE'.
SUBMIT Z_BSIK_OO_PROGRAM AND RETURN.
*
SUBMIT Z_BSIK_PROGRAM AND RETURN.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR SY-UCOMM.
WHEN 'EXIT'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR SY-UCOMM.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN ''.
PERFORM OBTENER_DATOS.
ENDCASE.
ENDMODULE.
REPORT Z_BSIK_OO_PROGRAM.
*INCLUDE ZDOWN_TEXTO_INCLUDE.
DATA: E_UCOMM TYPE SY-UCOMM.
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
*----------------------------------------------------------------------*
*
CLASS LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_HANDLER DEFINITION.
PUBLIC SECTION.
METHODS:
* PARA IMPLEMENTAR USER_COMMANDS
HANDLE_USER_COMMAND
FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID IMPORTING E_UCOMM,
* HOTSPOT CLICK CONTROL
handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id es_row_no.
*--Double-click control
*handle_double_click
*FOR EVENT double_click OF cl_gui_alv_grid
*IMPORTING e_row e_column,
*--To be triggered before user commands
*handle_before_user_command
*FOR EVENT before_user_command OF cl_gui_alv_grid
*IMPORTING e_ucomm ,
*--To be triggered after user commands
*handle_after_user_command
*FOR EVENT context_menu_request OF cl_gui_alv_grid
*IMPORTING e_object.
*--To control button clicks
*handle_button_click
*FOR EVENT button_click OF cl_gui_alv_grid
*IMPORTING e_oject e_ucomm .
ENDCLASS.
"LCL_EVENT_HANDLER DEFINITION
*----------------------------------------------------------------------*
*
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
*--Handle User Command
METHOD handle_user_command .
PERFORM handle_user_command USING e_ucomm .
ENDMETHOD.
"handle_user_command
*--Handle Hotspot Click
METHOD handle_hotspot_click .
PERFORM handle_hotspot_click USING e_row_id e_column_id es_row_no .
ENDMETHOD .
"handle_hotspot_click
*--Handle Double Click
*METHOD handle_double_click .
*PERFORM handle_double_click USING e_row e_column es_row_no .
*ENDMETHOD.
*--Handle Before User Command
*METHOD handle_before_user_command .
*PERFORM handle_before_user_command USING e_ucomm .
*ENDMETHOD.
*--Handle After User Command
*METHOD handle_context_menu_request .
*PERFORM handle_context_menu_request USING e_object .
*ENDMETHOD.
*--Handle Button Click
*METHOD handle_button_click .
*PERFORM handle_button_click USING e_object e_ucomm .
*ENDMETHOD.
ENDCLASS.
"LCL_EVENT_HANDLER IMPLEMENTATION
*DECLARACION DE TABLAS
TABLES: BSIK.
*DECLARACION DE TYPES-POOLS
TYPE-POOLS: SLIS, truxs.
*DECLRACION DE LA ESTRUCTURA
TYPES: BEGIN OF TY_BSIK,
BUKRS TYPE BSIK-BUKRS,
LIFNR TYPE BSIK-LIFNR,
GJAHR TYPE BSIK-GJAHR,
MONAT TYPE BSIK-MONAT,
BELNR TYPE BSIK-BELNR,
BUDAT TYPE BSIK-BUDAT,
WAERS TYPE BSIK-WAERS,
"HANDLE_USER_COMMAND
* FORM CARGAR_DATOS
FORM CARGAR_DATOS.
DATA: VALOR(4) TYPE C.
GET PARAMETER ID 'BUK' FIELD VALOR.
SELECT BUKRS LIFNR GJAHR MONAT BELNR BUDAT WAERS DMBTR WRBTR
INTO TABLE T_BSIK
FROM BSIK
WHERE BUKRS EQ VALOR.
* WHERE BUKRS IN S_BUKRS.
ENDFORM. "CARGAR_DATOS
*&---------------------------------------------------------------------*
*&
Form bajar_a_texto
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
form bajar_a_texto.
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
I_FIELD_SEPERATOR
= '|'
* I_LINE_HEADER
=
* I_FILENAME
=
* I_APPL_KEEP
=''
TABLES
I_TAB_SAP_DATA
= T_BSIK
CHANGING
I_TAB_CONVERTED_DATA
= gt_salida2
EXCEPTIONS
CONVERSION_FAILED
=1
OTHERS
=2
.
IF SY-SUBRC <> 0.
WRITE: / 'FALL LA CONVERSION DE DATOS'.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
* CALL FUNCTION 'GUI_DOWNLOAD'
*
EXPORTING
**
BIN_FILESIZE
=
*
FILENAME
='E:\download.txt'
*
FILETYPE
= 'ASC'
**
APPEND
=''
*
WRITE_FIELD_SEPARATOR
= '|'
**
HEADER
= '00'
*
TRUNC_TRAILING_BLANKS
= '|'
**
WRITE_LF
= 'X'
**
COL_SELECT
=''
**
COL_SELECT_MASK
=''
**
DAT_MODE
=''
**
CONFIRM_OVERWRITE
=''
**
NO_AUTH_CHECK
=''
**
CODEPAGE
=''
**
IGNORE_CERR
= ABAP_TRUE
**
REPLACEMENT
= '#'
**
WRITE_BOM
=''
**
TRUNC_TRAILING_BLANKS_EOL
= 'X'
**
WK1_N_FORMAT
=''
**
WK1_N_SIZE
=''
**
WK1_T_FORMAT
=''
**
WK1_T_SIZE
=''
**
IMPORTING
**
FILELENGTH
=
*
TABLES
*
DATA_TAB
= T_BSIK
**
FIELDNAMES
=
* 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
*
.
* IF SY-SUBRC <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*
WRITE:/ 'Programa fall al descargar datos'.
* ENDIF.
CALL FUNCTION 'DOWNLOAD'
TABLES
data_tab = t_bsik
EXCEPTIONS
OTHERS = 8.
IF sy-subrc <> 0.
WRITE: / 'Program failed to download data.'.
ENDIF.
ENDIF.
ENDFORM.
"bajar_a_texto
*&---------------------------------------------------------------------*
*&
Form FILL_LAYOUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM FILL_LAYOUT.
GS_LAYOUT-SEL_MODE = 'A'.
ENDFORM.
"FILL_LAYOUT
*&---------------------------------------------------------------------*
*&
Form FILL_CATALOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM FILL_CATALOG.
DATA: GS_FIELDCAT TYPE LVC_S_FCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'. "NOM TABLA CON ESTRUCTURA DE ALV.
GS_FIELDCAT-FIELDNAME = 'BUKRS'. " NOM DEL CAMPO A MOSTRAR.
GS_FIELDCAT-KEY = 'X'.
GS_FIELDCAT-HOTSPOT = 'X'.
GS_FIELDCAT-REPTEXT = 'Sociedad'."TEXTO QUE MOSTRARA EL CAMPO
GS_FIELDCAT-COL_POS = 1. " POS. QUE TENDRA EL CAMPO EN EL ALV.
GS_FIELDCAT-OUTPUTLEN = 15. " ES LA CANTIDAD DE CARACTERES DE SALIDA.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'. "NOM TABLA CON ESTRUCTURA DE ALV.
GS_FIELDCAT-FIELDNAME = 'LIFNR'. " NOM DEL CAMPO A MOSTRAR.
GS_FIELDCAT-REPTEXT = 'Nmero Cuenta'."TEXTO QUE MOSTRARA EL CAMPO
GS_FIELDCAT-COL_POS = 1. " POS. QUE TENDRA EL CAMPO EN EL ALV.
GS_FIELDCAT-OUTPUTLEN = 15. " ES LA CANTIDAD DE CARACTERES DE SALIDA.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'GJAHR'.
GS_FIELDCAT-REPTEXT = 'Ejercicio'.
GS_FIELDCAT-COL_POS = 2.
GS_FIELDCAT-OUTPUTLEN = 11.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'MONAT'.
GS_FIELDCAT-REPTEXT = 'Mes Contable'.
GS_FIELDCAT-COL_POS = 3.
GS_FIELDCAT-OUTPUTLEN = 14.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'BELNR'.
GS_FIELDCAT-REPTEXT = 'Dumento Contable'.
GS_FIELDCAT-COL_POS = 4.
GS_FIELDCAT-OUTPUTLEN = 18.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'BUDAT'.
GS_FIELDCAT-REPTEXT = 'Contabilizacin'.
GS_FIELDCAT-COL_POS = 5.
GS_FIELDCAT-OUTPUTLEN = 17.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'WAERS'.
GS_FIELDCAT-REPTEXT = 'Moneda'.
GS_FIELDCAT-COL_POS = 6.
GS_FIELDCAT-OUTPUTLEN = 8.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'DMBTR'.
GS_FIELDCAT-REPTEXT = 'Importe Mon. Local'.
GS_FIELDCAT-COL_POS = 7.
GS_FIELDCAT-OUTPUTLEN = 20.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-TABNAME = 'T_BSIK'.
GS_FIELDCAT-FIELDNAME = 'WRBTR'.
GS_FIELDCAT-REPTEXT = 'Importe Mon. Dmto'.
GS_FIELDCAT-COL_POS = 8.
GS_FIELDCAT-OUTPUTLEN = 20.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDFORM.
"FILL_CATALOG
*&---------------------------------------------------------------------*
*&
Form LLAMAR_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM LLAMAR_ALV.
IF CUSTOM_CONTAINER IS INITIAL.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
DATA: OK_CODE TYPE SY-UCOMM.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR SY-UCOMM.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN 'CALLFB03'.
*
PERFORM HANDLE_USER_COMMAND.
when 'EXPORTAR'.
include ZDOWN_TEXTO_INCLUDE.
*
perform bajar_a_texto.
ENDCASE.
ENDMODULE.