Advertisement
Guest User

Untitled

a guest
Jul 10th, 2019
433
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 6.36 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Include Z_HEL_CSV_EXO_TOP                                 Report Z_HEL_CSV_EXO
  3. *&
  4. *&---------------------------------------------------------------------*
  5.  
  6. REPORT z_hel_csv_exo.
  7.  
  8. PARAMETERS : p_file  TYPE localfile.
  9.  
  10. *&---------------------------------------------------------------------*
  11. * indicateurs
  12. *----------------------------------------------------------------------*
  13. DATA : flat_store(1)  TYPE n. "indicateur de stockage dans la base de données
  14. DATA : flat_upload(1) TYPE n. "indicateur de chargement du fichier locale
  15.  
  16.  
  17. TYPES : BEGIN OF record,
  18.          zmant             TYPE MANDT,
  19.          znumcmd           TYPE ebeln,
  20.          zpostcmd          TYPE ebelp,
  21.          znumart           TYPE matnr,
  22.          zdesart           TYPE maktx,
  23.          zquantite         TYPE BB_MENGE,
  24.          znumclint         TYPE kunnr,
  25.          znomclient        TYPE name1,
  26.          zrue              TYPE stras,
  27.          zcodpostale       TYPE pstl2,
  28.          zville            TYPE ort01_gp,
  29.   END OF record.
  30.  
  31. DATA : itab TYPE record OCCURS 0 WITH HEADER LINE. "internal table to copy data from csv
  32.  
  33.  
  34. TYPES: BEGIN OF ttab,
  35. rec(1000) TYPE c,
  36. END OF ttab.
  37.  
  38. DATA: itab2 TYPE TABLE OF ttab WITH HEADER LINE.
  39.  
  40. DATA: file_str TYPE string.
  41.  
  42.  
  43. *&---------------------------------------------------------------------*
  44. * ALV Declarations
  45. *----------------------------------------------------------------------*
  46. "Internal Table
  47. DATA :
  48.       Z_INT_TB_ZHEL1 TYPE STANDARD TABLE OF zhelcommande.
  49.  
  50. * Types Pools
  51. TYPE-POOLS:
  52.    slis.
  53.  
  54. * Types
  55. TYPES:
  56.    t_fieldcat         TYPE slis_fieldcat_alv,
  57.    t_events           TYPE slis_alv_event,
  58.    t_layout           TYPE slis_layout_alv.
  59.  
  60. * Workareas
  61. DATA:
  62.    w_fieldcat         TYPE t_fieldcat,
  63.    w_events           TYPE t_events,
  64.    w_layout           TYPE t_layout.
  65.  
  66. * Internal Tables
  67. DATA:
  68.    i_fieldcat         TYPE STANDARD TABLE OF t_fieldcat,
  69.    i_events           TYPE STANDARD TABLE OF t_events.
  70.  
  71.  
  72.  
  73. FORM traitement.
  74.   IF p_file CP '*.csv'.
  75.     flat_upload = 1.
  76.     MESSAGE text-001 TYPE 'I' DISPLAY LIKE 'I'.
  77. *    message e
  78.   ELSEIF p_file CP ''.
  79.     MESSAGE text-002 TYPE 'I' DISPLAY LIKE 'E'.
  80.   ELSE.
  81.     MESSAGE text-003 TYPE 'I' DISPLAY LIKE 'W'.
  82.   ENDIF.
  83. ENDFORM.
  84.  
  85.  
  86. FORM uploadcsvfile.
  87.   CALL FUNCTION 'GUI_UPLOAD'
  88.     EXPORTING
  89.       filename                = file_str
  90.     TABLES
  91.       data_tab                = itab2
  92.     EXCEPTIONS
  93.       file_open_error         = 1
  94.       file_read_error         = 2
  95.       no_batch                = 3
  96.       gui_refuse_filetransfer = 4
  97.       invalid_type            = 5
  98.       no_authority            = 6
  99.       unknown_error           = 7
  100.       bad_data_format         = 8
  101.       header_not_allowed      = 9
  102.       separator_not_allowed   = 10
  103.       header_too_long         = 11
  104.       unknown_dp_error        = 12
  105.       access_denied           = 13
  106.       dp_out_of_memory        = 14
  107.       disk_full               = 15
  108.       dp_timeout              = 16
  109.       OTHERS                  = 17.
  110. ENDFORM.
  111.  
  112. FORM readcsvfile.
  113.   LOOP AT itab2.
  114.     SPLIT itab2-rec    AT ';'
  115.           INTO itab-znumcmd
  116.                itab-zpostcmd
  117.                itab-znumart
  118.                itab-zdesart
  119.                itab-zquantite
  120.                itab-znumclint
  121.                itab-znomclient
  122.                itab-zrue
  123.                itab-zcodpostale
  124.                itab-zville.
  125.     APPEND itab.
  126.     PERFORM storerow.
  127.     CLEAR itab.
  128.   ENDLOOP.
  129.  
  130. ENDFORM.
  131.  
  132. FORM storerow.
  133.   INSERT INTO zhelcommande VALUES itab .
  134.   IF sy-subrc <> 0 .
  135.     flat_store = 0.
  136.   ELSE.
  137.     flat_store = 1.
  138.   ENDIF.
  139. ENDFORM.
  140.  
  141.  
  142. FORM showinalv.
  143.   IF flat_store = 0 .
  144.     WRITE : / 'Erreur : les données n’ont pu être sauvegardées'.
  145.   ELSE.
  146.     SELECT * FROM zhelcommande INTO TABLE z_int_tb_zhel1.
  147.     PERFORM build_fieldcatlog.
  148.     PERFORM build_events.
  149.     PERFORM build_layout.
  150.     PERFORM list_display.
  151.   ENDIF.
  152. ENDFORM.
  153.  
  154.  
  155.  
  156. FORM build_fieldcatlog .
  157.  
  158.   CLEAR:w_fieldcat,i_fieldcat[].
  159.  
  160.   PERFORM build_fcatalog USING:
  161.            'MANDT'       'I_T001'   'MANDT',
  162.            'ZNUMCMD'     'I_T001'   'ZNUMCMD',
  163.            'ZPOSTCMD'    'I_T001'   'ZPOSTCMD',
  164.            'ZPOSTCMD'    'I_T001'   'ZPOSTCMD',
  165.            'ZQUANTITE'   'I_T001'   'ZQUANTITE',
  166.            'ZNUMCLINT'   'I_T001'   'ZNUMCLINT',
  167.            'ZNOMCLIENT'  'I_T001'   'ZNOMCLIENT',
  168.            'ZRUE'        'I_T001'   'ZRUE',
  169.            'ZCODPOSTALE' 'I_T001'   'ZCODPOSTALE',
  170.            'ZVILLE'      'I_T001'   'ZVILLE'.
  171. ENDFORM.
  172.  
  173. FORM build_fcatalog USING l_field l_tab l_text.
  174.  
  175.   w_fieldcat-fieldname      = l_field.
  176.   w_fieldcat-tabname        = l_tab.
  177.   w_fieldcat-seltext_m      = l_text.
  178.  
  179.   APPEND w_fieldcat TO i_fieldcat.
  180.   CLEAR w_fieldcat.
  181.  
  182. ENDFORM.
  183.  
  184.  
  185. FORM build_events.
  186.  
  187.   CLEAR : w_events, i_events[].
  188.  
  189.   w_events-name = 'TOP_OF_PAGE'."Event Name
  190.   w_events-form = 'TOP_OF_PAGE'."Callback event subroutine
  191.  
  192.   APPEND w_events TO i_events.
  193.   CLEAR  w_events.
  194.  
  195. ENDFORM.
  196.  
  197.  
  198. FORM build_layout .
  199.  
  200.   w_layout-colwidth_optimize = 'X'.
  201.   w_layout-zebra             = 'X'.
  202.  
  203. ENDFORM.
  204.  
  205.  
  206. FORM list_display .
  207.   DATA: l_program TYPE sy-repid.
  208.  
  209.   l_program = sy-repid.
  210.  
  211.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  212.     EXPORTING
  213.       i_callback_program = l_program
  214.       is_layout          = w_layout
  215.       it_fieldcat        = i_fieldcat
  216.       it_events          = i_events
  217.     TABLES
  218.       t_outtab           = z_int_tb_zhel1
  219.     EXCEPTIONS
  220.       program_error      = 1
  221.       OTHERS             = 2.
  222.   IF sy-subrc <> 0.
  223.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  224.             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  225.   ENDIF.
  226. ENDFORM.
  227.  
  228.  
  229. FORM top_of_page.
  230.   DATA :
  231.    li_header TYPE slis_t_listheader,
  232.    w_header  LIKE LINE OF li_header.
  233.   DATA:
  234.         l_date TYPE char10.
  235.   WRITE sy-datum TO l_date.
  236.   w_header-typ  = 'H'.
  237.   CONCATENATE sy-repid ':' 'From Date' l_date INTO w_header-info SEPARATED BY space.
  238.   APPEND w_header TO li_header.
  239.   CLEAR w_header.
  240.  
  241.   w_header-typ  = 'S'.
  242.   w_header-info = sy-title.
  243.   APPEND w_header TO li_header.
  244.   CLEAR w_header.
  245.  
  246.   w_header-typ  = 'A'.
  247.   w_header-info = sy-uname.
  248.   APPEND w_header TO li_header.
  249.   CLEAR w_header.
  250.  
  251.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  252.     EXPORTING
  253.       it_list_commentary = li_header.
  254.  
  255. ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement