Vous êtes sur la page 1sur 4

*&---------------------------------------------------------------------*

*& Report ZRMS_GET_REPORT_EXCEL


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zrms_get_report_excel.

DATA : it_zrms_labreq TYPE TABLE OF zrms_labreq,


wa_zrms_labreq TYPE zrms_labreq.

DATA : p_file TYPE string.


*
*DATA : lo_descr TYPE REF TO cl_abap_tabledescr,
* lo_type TYPE REF TO cl_abap_datadescr,
* lo_struct TYPE REF TO cl_abap_structdescr,
* lt_components TYPE cl_abap_structdescr=>component_table,
* wa_components LIKE LINE OF lt_components.

TYPES : BEGIN OF ty_excel ,


reqnum LIKE zrms_labreq-reqnum,
reqdate LIKE zrms_labreq-reqdate,
ini LIKE zrms_labreq-ini,
prod LIKE zrms_labreq-prod,
details LIKE zrms_labreq-details,
qty LIKE zrms_labreq-qty,
test LIKE zrms_labreq-test,
purpose LIKE zrms_labreq-purpose,
stdref LIKE zrms_labreq-stdref,
brvolts LIKE zrms_labreq-brvolts,
bramps LIKE zrms_labreq-bramps,
brops LIKE zrms_labreq-brops,
recdat LIKE zrms_labreq-recdat,
startdate LIKE zrms_labreq-startdate,
compdate LIKE zrms_labreq-compdate,
repnum LIKE zrms_labreq-repnum,
halfshifts LIKE zrms_labreq-halfshifts,
dept LIKE zrms_labreq-dept,
jobnum LIKE zrms_labreq-jobnum,
test_status LIKE zrms_labreq-test_status,
fail_mode LIKE zrms_labreq-fail_mode,
END OF ty_excel.

DATA : it_excel TYPE TABLE OF ty_excel,


wa_excel TYPE ty_excel.

TYPES: BEGIN OF ty_zusr01,


xbname TYPE zusr01-xbname, "User Name in User Master Record
iid TYPE zusr01-iid, "Individual ID
END OF ty_zusr01.
DATA : it_zusr01 TYPE STANDARD TABLE OF ty_zusr01,
wa_zusr01 TYPE ty_zusr01.

TYPES : BEGIN OF ty_header,


name TYPE c LENGTH 30,
END OF ty_header.
DATA: it_header TYPE TABLE OF ty_header.

PARAMETERS : g_file LIKE rlgrap-filename OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR g_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = g_file.

START-OF-SELECTION.
CLEAR p_file.
REFRESH : it_zrms_labreq[] , it_zusr01, it_excel[] , it_header[].

CONCATENATE g_file '.XLS' INTO p_file.

* lo_descr ?= cl_abap_typedescr=>describe_by_data( it_excel ).


* lo_type = lo_descr->get_table_line_type( ).
* lo_struct ?= cl_abap_typedescr=>describe_by_name( lo_type->absolute_name ).
* lt_components = lo_struct->get_components( ).

SELECT * FROM zrms_labreq


INTO TABLE it_zrms_labreq WHERE
flag_trsf NE 1.

REFRESH it_zusr01.
CLEAR wa_zusr01.

IF it_zrms_labreq[] IS NOT INITIAL.

SELECT xbname iid FROM zusr01


INTO TABLE it_zusr01
FOR ALL ENTRIES IN it_zrms_labreq
WHERE iid = it_zrms_labreq-ini.

ENDIF.

SORT it_zusr01 BY xbname iid.

LOOP AT it_zrms_labreq INTO wa_zrms_labreq.


wa_excel-reqnum = wa_zrms_labreq-reqnum.
wa_excel-reqdate = wa_zrms_labreq-reqdate.
READ TABLE it_zusr01 INTO wa_zusr01
WITH KEY iid = wa_zrms_labreq-ini
BINARY SEARCH.

IF sy-subrc = 0.
wa_excel-ini = wa_zusr01-xbname.
ENDIF.
wa_excel-prod = wa_zrms_labreq-prod.
wa_excel-details = wa_zrms_labreq-details.
wa_excel-qty = wa_zrms_labreq-qty.
wa_excel-test = wa_zrms_labreq-test.
wa_excel-purpose = wa_zrms_labreq-purpose.
wa_excel-stdref = wa_zrms_labreq-stdref.
wa_excel-brvolts = wa_zrms_labreq-brvolts.
wa_excel-bramps = wa_zrms_labreq-bramps.
wa_excel-brops = wa_zrms_labreq-brops.
wa_excel-recdat = wa_zrms_labreq-recdat.
wa_excel-startdate = wa_zrms_labreq-startdate.
wa_excel-compdate = wa_zrms_labreq-compdate.
wa_excel-repnum = wa_zrms_labreq-repnum.
wa_excel-halfshifts = wa_zrms_labreq-halfshifts.
wa_excel-dept = wa_zrms_labreq-dept.
wa_excel-jobnum = wa_zrms_labreq-jobnum.
wa_excel-test_status = wa_zrms_labreq-test_status.
wa_excel-fail_mode = wa_zrms_labreq-fail_mode.

APPEND wa_excel TO it_excel.


CLEAR wa_excel.

ENDLOOP.

APPEND 'Request num' TO it_header.


APPEND 'Req Date' TO it_header.
APPEND 'Initiator' TO it_header.
APPEND 'Product' TO it_header.
APPEND 'Product details' TO it_header.
APPEND 'Quantity' TO it_header.
APPEND 'Test' TO it_header.
APPEND 'Purpose' TO it_header.
APPEND 'Standard Referance' TO it_header.
APPEND 'Break-Volts' TO it_header.
APPEND 'Break-Current' TO it_header.
APPEND 'Break-Operations' TO it_header.
APPEND 'Receive Date' TO it_header.
APPEND 'Test Start Date' TO it_header.
APPEND 'Completion Date' TO it_header.
APPEND 'Report Num' TO it_header.
APPEND 'Half Shifts' TO it_header.
APPEND 'Cost Center' TO it_header.
APPEND 'Job Num' TO it_header.
APPEND 'Test Status' TO it_header.
APPEND 'Failure_Mode' TO it_header.

CALL FUNCTION 'GUI_DOWNLOAD'


EXPORTING
bin_filesize = ''
filename = p_file
filetype = 'DAT'
TABLES
data_tab = it_excel
fieldnames = it_header
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
OTHERS = 8.
IF sy-subrc = 0.
SKIP 1.
WRITE :/ '*****File Downloaded Sucsessfully****' COLOR 5.

ENDIF.

Vous aimerez peut-être aussi