SELECTION-SCREEN BEGIN OF BLOCK 100 WITH FRAME TITLE text-000.
PARAMETERS : p_file LIKE rlgrap-filename . "yükleme için yerel dosya
SELECTION-SCREEN END OF BLOCK 100 .
DATA it_pprop TYPE pprop OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF gt_0021 OCCURS 0 ,
* pernr LIKE p0001-pernr , "per no
werks LIKE pa0001-werks , "per alanı
persg LIKE pa0001-persg , "çalışan grubu
persk LIKE pa0001-persk , "çalışan alt grubu
ort01 LIKE pa0006-ort01 , "kent
btrtl LIKE pa0001-btrtl , "alt alan
nachn LIKE pa0002-nachn , "soyad
vorna LIKE pa0002-vorna , "ad
gbdat LIKE pa0002-gbdat , "doğum tarihi
schkz LIKE pa0007-schkz , "çalışma program kuralı
trfgb LIKE pa0008-trfgb , "bölge
zlsch LIKE pa0009-zlsch , "ödeme biçimi
massn LIKE pa0000-massn , "işlemler dizisi türü
anssa LIKE pa0006-anssa , "adres kayıt türü
betrg LIKE pa0015-betrg , "ücret türü tutarı
lgart LIKE pa0015-lgart , "ücret türü
anred LIKE pa0002-anred , "hitap biçimi anahtarı
begda LIKE pa0009-begda , "giriş tarihi
END OF gt_0021 .
DATA : BEGIN OF gt_output OCCURS 0 ,
* pernr LIKE p0001-pernr , "per no
werks LIKE pa0001-werks , "per alanı
persg LIKE pa0001-persg , "çalışan grubu
persk LIKE pa0001-persk , "çalışan alt grubu
ort01 LIKE pa0006-ort01 , "kent
btrtl LIKE pa0001-btrtl , "alt alan
nachn LIKE pa0002-nachn , "soyad
vorna LIKE pa0002-vorna , "ad
gbdat LIKE pa0002-gbdat , "doğum tarihi
schkz LIKE pa0007-schkz , "çalışma program kuralı
trfgb LIKE pa0008-trfgb , "bölge
zlsch LIKE pa0009-zlsch , "ödeme biçimi
massn LIKE pa0000-massn , "işlemler dizisi türü
anssa LIKE pa0006-anssa , "adres kayıt türü
betrg LIKE pa0015-betrg , "ücret türü tutarı
lgart LIKE pa0015-lgart , "ücret türü
anred LIKE pa0002-anred , "hitap biçimi anahtarı
begda LIKE pa0009-begda , "giriş tarihi
retrn(150) TYPE c ,
mark ,
icon(4) ,
END OF gt_output.
DATA : return LIKE bapireturn1 ,
key LIKE bapipakey ,
nocommit LIKE bapi_stand-no_commit.
DATA : gt_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE ,
gs_fcat LIKE gt_fcat ,
gs_layout TYPE slis_layout_alv .
INITIALIZATION .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_filename .
START-OF-SELECTION .
PERFORM get_data_from_excel .
PERFORM create_alv .
*END-OF-SELECTION .
*&---------------------------------------------------------------------*
*& form gui
*&---------------------------------------------------------------------*
FORM gui USING gt_gui .
SET PF-STATUS 'GUI' .
ENDFORM . "gui
*&---------------------------------------------------------------------*
*& Form command
*&---------------------------------------------------------------------*
FORM command USING r_ucom LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
ENDFORM . "command
*&---------------------------------------------------------------------*
*& form get_filename
*&---------------------------------------------------------------------*
FORM get_filename .
*
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
*
ENDFORM. " get_filename
*&---------------------------------------------------------------------*
*& form get_data_from_excel
*&---------------------------------------------------------------------*
FORM get_data_from_excel .
*
DATA : raw TYPE truxs_t_text_data .
*
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = 'X'
i_line_header = 'X'
i_tab_raw_data = raw
i_filename = p_file
TABLES
i_tab_converted_data = gt_output[] "gt_0021
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE 'Excel dosyası okunamadı.. Açık olmadığından emin olunuz.'
TYPE 'S'.
EXIT.
ELSE .
PERFORM set_excel_batch .
ENDIF.
ENDFORM. " get_data_from_excel
*&---------------------------------------------------------------------*
*& form set_excel_batch
*&---------------------------------------------------------------------*
FORM set_excel_batch .
LOOP AT gt_0021.
MOVE : gt_0021-werks to gt_output-werks,
gt_0021-persg to gt_output-persg,
gt_0021-persk to gt_output-persk,
gt_0021-ort01 to gt_output-ort01,
gt_0021-btrtl to gt_output-btrtl,
gt_0021-nachn to gt_output-nachn,
gt_0021-vorna to gt_output-vorna,
gt_0021-gbdat to gt_output-gbdat,
gt_0021-schkz to gt_output-schkz,
gt_0021-trfgb to gt_output-trfgb,
gt_0021-zlsch to gt_output-zlsch,
gt_0021-massn to gt_output-massn,
gt_0021-anssa to gt_output-anssa,
gt_0021-betrg to gt_output-betrg,
gt_0021-lgart to gt_output-lgart,
gt_0021-anred to gt_output-anred,
gt_0021-begda to gt_output-begda.
* APPEND gt_0021 TO gt_output.
* CLEAR gt_0021.
ENDLOOP .
ENDFORM. " set_excel_batch
*&---------------------------------------------------------------------*
*& form create_alv
*&---------------------------------------------------------------------*
FORM create_alv .
IF p_file IS NOT INITIAL .
PERFORM create_layout .
PERFORM create_fcat USING 'GT_OUTPUT' .
PERFORM display_alv .
ELSE .
MESSAGE 'Excel dosyası seçiniz!' TYPE 'S' .
ENDIF.
ENDFORM. " create_alv
*&---------------------------------------------------------------------*
*& form create_layout
*&---------------------------------------------------------------------*
FORM create_layout .
*
gs_layout-box_fieldname = 'MARK' . "seçim ekranı ."
gs_layout-info_fieldname = 'LINE_COLOR' .
*
ENDFORM. " create_layout
*&---------------------------------------------------------------------*
*& form create_fcat
*&---------------------------------------------------------------------*
FORM create_fcat USING tabname.
*concatenate tabname '[]' into tabname.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = tabname"'GT_OUTPUT'
i_inclname = sy-repid
i_client_never_display = 'X'
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = gt_fcat[].
*
PERFORM modify_fieldcatalog_text
USING:
* 'ICON' 'Durum' 'Durum' ,
'WERKS' 'Per.A.' 'Personel Alanı' ,
'PERSG' 'Ç.Grubu' 'Çalışan Grubu' ,
'PERSK' 'Ç.A.Grubu' 'Çalışan Alt Grubu' ,
'ORT01' 'Kent' 'Kent' ,
'BTRTL' 'A.Alan' 'Alt Alan' ,
'NACHN' 'Soy' 'Soyadı' ,
'VORNA' 'Ad' 'Adı' ,
'GBDAT' 'D.T.' 'Doğum Tarihi' ,
'SCHKZ' 'Ç.P.K' 'Çalışma Program Kuralı' ,
'TRFGB' 'Bolge' 'Bölge' ,
'ZLSCH' 'O.B' 'Ödeme Biçimi' ,
'MASSN' 'I.D.T' 'İşlemler Dizisi Türü' ,
'ANSSA' 'A.K.T' 'Adres Kayıt Türü' ,
'BETRG' 'U.T.T' 'Ücret Tutarı Türü' ,
'LGART' 'U.T' 'Ücret Türü' ,
'ANRED' 'H.B.A' 'Hitap Biçimi Anahtarı' ,
'BEGDA' 'C.T' 'Çıkış Tarihi'.
* 'RETRN' 'Sonuç' 'Sonuç' .
PERFORM modify_fieldcatalog
USING: 'MARK' 'NO_OUT' 'X' .
* 'PERNR' 'HOTSPOT' 'X' .
ENDFORM. " create_fcat
*&---------------------------------------------------------------------*
*& form modify_fieldcatalog_text
*&---------------------------------------------------------------------*
FORM modify_fieldcatalog_text USING fieldname text l_text.
PERFORM modify_fieldcatalog
USING: fieldname 'SELTEXT_L' l_text ,
fieldname 'SELTEXT_S' text ,
fieldname 'SELTEXT_M' text ,
fieldname 'REPTEXT_DDIC' text .
ENDFORM. "modify_fieldcatalog_text
*&---------------------------------------------------------------------*
*& Form modify_fieldcatalog
*&---------------------------------------------------------------------*
FORM modify_fieldcatalog USING fieldname target value.
DATA: lv_fieldname(30).
FIELD-SYMBOLS: <field> TYPE any.
READ TABLE gt_fcat INTO gs_fcat WITH KEY fieldname = fieldname .
CHECK sy-subrc = 0.
CONCATENATE 'GS_FCAT-' target INTO lv_fieldname .
ASSIGN (lv_fieldname) TO <field> .
<field> = value.
MODIFY gt_fcat FROM gs_fcat INDEX sy-tabix .
CLEAR gs_fcat .
ENDFORM. " modify_fieldcatalog
*&---------------------------------------------------------------------*
*& form diplay_alv
*&---------------------------------------------------------------------*
FORM display_alv .
*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid "programızın global ismi
i_callback_pf_status_set = 'GUI'
i_callback_user_command = 'COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fcat[]
TABLES
t_outtab = gt_output[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
*
ENDFORM. "display_alv