Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to upload notepad file into an internal table in alv?

former_member809080
Participant
0 Kudos

How to upload excel file into an internal table in alv? I used 'GUI_UPLOAD' FM and gave the filetype as 'ASC', has_field_separator = 'X' and giving a dump. Please help.


TYPES: BEGIN OF st_final,

pos TYPE string ,
seri TYPE string,
num TYPE string,
limit TYPE string,
ifsc TYPE string,
num1 TYPE string,
pri_lim TYPE string,
jnl_num TYPE string,
date TYPE string,
num2 TYPE string,
vendor TYPE string,
neft TYPE string,
num3 TYPE string,

END OF st_final.

data: wa_final TYPE st_final,
it_final TYPE TABLE OF st_final,
dd_filename TYPE rlgrap-filename ,
dd_string(100) TYPE c .

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.


* PARAMETERS: p_path TYPE rlgrap-filename.


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Users\Deepak\OneDrive\Desktop\YES.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = it_final

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.
* Implement suitable error handling here
ENDIF.

* dd_filename = p_path.

* open DATASET dd_filename for output in TEXT MODE ENCODING DEFAULT.

LOOP at it_final INTO wa_final.

CONCATENATE
wa_final-pos
wa_final-seri
wa_final-num
wa_final-limit
wa_final-ifsc
wa_final-num1
wa_final-pri_lim
wa_final-jnl_num
wa_final-date
wa_final-num2
wa_final-vendor
wa_final-neft
wa_final-num3 INTO dd_string SEPARATED BY '' .

APPEND WA_FINAL TO IT_FINAL.


* INTO dd_string SEPARATED BY ''.

* TRANSFER dd_string to dd_filename.
ENDLOOP.





* CLOSE DATASET dd_filename.

WA_FIELDCAT-col_pos = '1'.
WA_FIELDCAT-fieldname = 'POS'.
WA_FIELDCAT-seltext_l = 'POSITION'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '2'.
WA_FIELDCAT-fieldname = 'SERI'.
WA_FIELDCAT-seltext_l = 'SERIES'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '3'.
WA_FIELDCAT-fieldname = 'NUM'.
WA_FIELDCAT-seltext_l = 'NUMBER'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '4'.
WA_FIELDCAT-fieldname = 'LIMIT'.
WA_FIELDCAT-seltext_l = 'PVT. LIMIT'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '5'.
WA_FIELDCAT-fieldname = 'IFSC'.
WA_FIELDCAT-seltext_l = 'IFSC'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.



WA_FIELDCAT-col_pos = '6'.
WA_FIELDCAT-fieldname = 'NUM1'.
WA_FIELDCAT-seltext_l = 'NUMBER1'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '7'.
WA_FIELDCAT-fieldname = 'PRI_LIM'.
WA_FIELDCAT-seltext_l = 'PVT. LIMITED'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '8'.
WA_FIELDCAT-fieldname = 'JNL_NUM'.
WA_FIELDCAT-seltext_l = 'JNL_NUM'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '9'.
WA_FIELDCAT-fieldname = 'DATE'.
WA_FIELDCAT-seltext_l = 'DATE'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '10'.
WA_FIELDCAT-fieldname = 'NUM2'.
WA_FIELDCAT-seltext_l = 'NUMBER2'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '11'.
WA_FIELDCAT-fieldname = 'VENDOR'.
WA_FIELDCAT-seltext_l = 'VENDOR'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '12'.
WA_FIELDCAT-fieldname = 'NEFT'.
WA_FIELDCAT-seltext_l = 'NEFT PAYMENT'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '13'.
WA_FIELDCAT-fieldname = 'NUM3'.
WA_FIELDCAT-seltext_l = 'NUMBER3'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


* if sy-subrc = 0 .
* MESSAGE 'DATA GOT UPLOAD SUCCESSFUL' TYPE 'I'.
*      ENDIF.
1 ACCEPTED SOLUTION

Rajasekhar_Dina
Participant
0 Kudos

Hello,

Your code is dumping because you are looping on internal table it_final and appending into the same internal table.

[Infinite loop, so the dump].

Try change it to append to another internal table it_final2.

It will work!

10 REPLIES 10

Rajasekhar_Dina
Participant
0 Kudos

Hello,

Your code is dumping because you are looping on internal table it_final and appending into the same internal table.

[Infinite loop, so the dump].

Try change it to append to another internal table it_final2.

It will work!

0 Kudos

Dear Sir ,

once check this code.


TYPES: BEGIN OF st_final,

pos TYPE string ,
seri TYPE string,
num TYPE string,
limit TYPE string,
ifsc TYPE string,
num1 TYPE string,
pri_lim TYPE string,
jnl_num TYPE string,
date TYPE string,
num2 TYPE string,
vendor TYPE string,
neft TYPE string,
num3 TYPE string,

END OF st_final.

data: wa_final TYPE st_final,
it_final TYPE TABLE OF st_final,
dd_filename TYPE rlgrap-filename ,
dd_string(100) TYPE c .

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Users\Deepak\OneDrive\Desktop\YES.TXT'
FILETYPE = 'DAT'
HAS_FIELD_SEPARATOR = 'X'

tables
data_tab = it_final

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
.
LOOP at it_final INTO wa_final.

CONCATENATE
wa_final-pos
wa_final-seri
wa_final-num
wa_final-limit
wa_final-ifsc
wa_final-num1
wa_final-pri_lim
wa_final-jnl_num
wa_final-date
wa_final-num2
wa_final-vendor
wa_final-neft
wa_final-num3
INTO dd_string SEPARATED BY '' .
ENDLOOP.

WA_FIELDCAT-col_pos = '1'.
WA_FIELDCAT-fieldname = 'POS'.
WA_FIELDCAT-seltext_l = 'POSITION'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '2'.
WA_FIELDCAT-fieldname = 'SERI'.
WA_FIELDCAT-seltext_l = 'SERIES'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '3'.
WA_FIELDCAT-fieldname = 'NUM'.
WA_FIELDCAT-seltext_l = 'NUMBER'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '4'.
WA_FIELDCAT-fieldname = 'LIMIT'.
WA_FIELDCAT-seltext_l = 'PVT. LIMIT'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '5'.
WA_FIELDCAT-fieldname = 'IFSC'.
WA_FIELDCAT-seltext_l = 'IFSC'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.



WA_FIELDCAT-col_pos = '6'.
WA_FIELDCAT-fieldname = 'NUM1'.
WA_FIELDCAT-seltext_l = 'NUMBER1'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '7'.
WA_FIELDCAT-fieldname = 'PRI_LIM'.
WA_FIELDCAT-seltext_l = 'PVT. LIMITED'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '8'.
WA_FIELDCAT-fieldname = 'JNL_NUM'.
WA_FIELDCAT-seltext_l = 'JNL_NUM'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '9'.
WA_FIELDCAT-fieldname = 'DATE'.
WA_FIELDCAT-seltext_l = 'DATE'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '10'.
WA_FIELDCAT-fieldname = 'NUM2'.
WA_FIELDCAT-seltext_l = 'NUMBER2'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '11'.
WA_FIELDCAT-fieldname = 'VENDOR'.
WA_FIELDCAT-seltext_l = 'VENDOR'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '12'.
WA_FIELDCAT-fieldname = 'NEFT'.
WA_FIELDCAT-seltext_l = 'NEFT PAYMENT'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.


WA_FIELDCAT-col_pos = '13'.
WA_FIELDCAT-fieldname = 'NUM3'.
WA_FIELDCAT-seltext_l = 'NUMBER3'.
WA_FIELDCAT-tabname = 'IT_FINAL'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
when i am clicking on f8 my profram can not run.

Sandra_Rossi
Active Contributor

Your post has wrong format, only the last ABAP line is well formatted.

Maybe Ctrl+Shift+V (paste unformatted) will help you to not mess-up the SAP forum editor.

Sandra_Rossi
Active Contributor
0 Kudos

This will just do an endless loop, I guess there's no need to explain why 😉

LOOP at it_final INTO wa_final.
  ...
  APPEND WA_FINAL TO it_final.
ENDLOOP.

Rajasekhar_Dina
Participant
0 Kudos

Hello,

Place break-points in your code to see how the statements are executing.

As I said, looping on a internal table IT_FINAL and appending into the same will never ever come to an end.[Infinite loop]

If your intension is to write contents of it_final, check if it has records and then write to the screen.

Your code is incomplete. [You are trying to populate field catalog, but not calling the FM to display the ALV]

0 Kudos

dear sir

i use break-points and i see data is not uploaded in my internal table.

what i am change in my code for upload a notepad data in internal table.

Rajasekhar_Dina
Participant
0 Kudos

Hello, if you can share your text file content, I can check and tell you what is happening.

I tried with text file , it worked.

0 Kudos

yes sir ,

i can share you my text file.

i want to display a data from my text file into alv format with the help of coding (se38).

yes.txt

Rajasekhar_Dina
Participant
0 Kudos

Hello,

Here is the program code. Please use debug to see how the statements are getting executed and data getting processed.

REPORT ytest_raja.

TYPES: BEGIN OF st_final,

pos TYPE string,
seri TYPE string,
num TYPE string,
limit TYPE string,
ifsc TYPE string,
num1 TYPE string,
pri_lim TYPE string,
jnl_num TYPE string,
date TYPE string,
num2 TYPE string,
vendor TYPE string,
neft TYPE string,
num3 TYPE string,

END OF st_final.

DATA: wa_final TYPE st_final,
it_final TYPE TABLE OF st_final,
wa_final2 TYPE st_final,
it_final2 TYPE TABLE OF st_final,
dd_filename TYPE rlgrap-filename,
dd_string(100) TYPE c.

DATA: wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE slis_t_fieldcat_alv.


CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Users\eiv3kor\Desktop\2060653-yes.txt'
filetype = 'ASC'
has_field_separator = 'X'
read_by_line = 'X'
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
data_tab = it_final
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.
* Implement suitable error handling here
ENDIF.

IF NOT it_final[] IS INITIAL.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-fieldname = 'POS'.
wa_fieldcat-seltext_l = 'POSITION'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '2'.
wa_fieldcat-fieldname = 'SERI'.
wa_fieldcat-seltext_l = 'SERIES'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '3'.
wa_fieldcat-fieldname = 'NUM'.
wa_fieldcat-seltext_l = 'NUMBER'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '4'.
wa_fieldcat-fieldname = 'LIMIT'.
wa_fieldcat-seltext_l = 'PVT. LIMIT'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '5'.
wa_fieldcat-fieldname = 'IFSC'.
wa_fieldcat-seltext_l = 'IFSC'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.



wa_fieldcat-col_pos = '6'.
wa_fieldcat-fieldname = 'NUM1'.
wa_fieldcat-seltext_l = 'NUMBER1'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '7'.
wa_fieldcat-fieldname = 'PRI_LIM'.
wa_fieldcat-seltext_l = 'PVT. LIMITED'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '8'.
wa_fieldcat-fieldname = 'JNL_NUM'.
wa_fieldcat-seltext_l = 'JNL_NUM'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '9'.
wa_fieldcat-fieldname = 'DATE'.
wa_fieldcat-seltext_l = 'DATE'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '10'.
wa_fieldcat-fieldname = 'NUM2'.
wa_fieldcat-seltext_l = 'NUMBER2'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '11'.
wa_fieldcat-fieldname = 'VENDOR'.
wa_fieldcat-seltext_l = 'VENDOR'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '12'.
wa_fieldcat-fieldname = 'NEFT'.
wa_fieldcat-seltext_l = 'NEFT PAYMENT'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.


wa_fieldcat-col_pos = '13'.
wa_fieldcat-fieldname = 'NUM3'.
wa_fieldcat-seltext_l = 'NUMBER3'.
wa_fieldcat-tabname = 'IT_FINAL'.

APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.

* Populate records from it_final into it_final2
LOOP AT it_final INTO wa_final.
CLEAR wa_final2.
SPLIT wa_final-pos AT ','
INTO
wa_final2-pos
wa_final2-seri
wa_final2-num
wa_final2-limit
wa_final2-ifsc
wa_final2-num1
wa_final2-pri_lim
wa_final2-jnl_num
wa_final2-date
wa_final2-num2
wa_final2-vendor
wa_final2-neft
wa_final2-num3.

APPEND wa_final2 TO it_final2.
ENDLOOP.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_final2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDIF.


END-OF-SELECTION.
IF NOT it_final2[] IS INITIAL.
MESSAGE 'DATA GOT UPLOAD SUCCESSFUL' TYPE 'I'.
ENDIF.output.jpg

0 Kudos

Dear sir ,

Thanks for helping me

have a great day sir