Estimado...
No me queda muy claro tu problema cuando dices :
1. Lo que debo implementar es una pantalla donde pueda copiar los datos de un excel ---> Te refieres a importar desde un archivo excel o hacer copy paste ??
Si tu respuesta es importar los datos desde un archivo excel...la respuesta es utilizar un ALV ... recuerda que puedes utilizar OLE comunicarte con excel desde ABAP.
Para mayor informacion revisa este link :
http://www.abap.es/centro_OLE_Excel.htmlAqui te voy a pegar un ejemplo que encontre hace un tiempo...lo puedes modificar para que en lugar de mostrar lo datos leidos los envie a un ALV..Si necesitas mas ayuda avisame.
Aqui va Programa ejemplo para subir archivo excel
REPORT YTEST .
types: begin of ttab ,
fld1(30) type c,
fld2(30) type c,
fld3(30) type c,
fld4(30) type c,
fld5(30) type c,
end of ttab.
data: itab type table of ttab with header line.
selection-screen skip 1.
parameters: p_file type localfile default'C:\test.txt'.
selection-screen skip 1.
at selection-screen on value-request for p_file.
call function 'KD_GET_FILENAME_ON_F4'
exporting
static = 'X'
changing
file_name = p_file.
start-of-selection.
clear itab. refresh itab.
perform upload_data.
loop at itab.
write:/ itab-fld1, itab-fld2, itab-fld3, itab-fld4, itab-fld5.
endloop.
************************************************************************
* Upload_Data
************************************************************************
form upload_data.
data: file type rlgrap-filename.
data: xcel type table of alsmex_tabline with header line.
file = p_file.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = file
i_begin_col = '1'
i_begin_row = '1'
i_end_col = '200'
i_end_row = '5000'
tables
intern = xcel
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
loop at xcel.
case xcel-col.
when '0001'.
itab-fld1 = xcel-value.
when '0002'.
itab-fld2 = xcel-value.
when '0003'.
itab-fld3 = xcel-value.
when '0004'.
itab-fld4 = xcel-value.
when '0005'.
itab-fld5 = xcel-value.
endcase.
at end of row.
append itab.
clear itab.
endat.
endloop.
endform.
Subir archivo de tipo CSV
type-POOLs TRUXS.
data ld_filename type string.
data : rawdata type TRUXS_T_TEXT_DATA.
ld_filename = DXFILE-FILENAME.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = ld_filename
FILETYPE = 'ASC'
TABLES
DATA_TAB = rawdata
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
exit.
ENDIF.
data ls_rawdata like LINE OF rawdata.
loop at rawdata into ls_rawdata.
if sy-tabix = 1. "borrar header
delete rawdata.
exit.
endif.
ENDLOOP.
CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = ';'
I_TAB_RAW_DATA = rawdata
TABLES
I_TAB_CONVERTED_DATA = gt_data
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
TEXT_CONVERT_XLS_TO_SAP
DATA : l_i_tab_raw_data TYPE truxs_t_text_data.
* Read data from Excel shet
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_tab_raw_data = l_i_tab_raw_data
i_filename = p_file
TABLES
i_tab_converted_data = gt_data
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.