分享

sap 数据传输的EXCEL-OLE

 yqw205 2015-11-17
 
*&---------------------------------------------------------------------*
*& Report  ZKRIS_OLE4_SDN_DL_CLIPBOARD
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report  zkris_ole4_sdn_dl_clipboard.

include ole2incl.
.
dataw_cell1 type ole2_object,
w_cell2 type ole2_object.

*--- Ole data Declarations
datah_excel type ole2_object" Excel object
h_mapl type ole2_object" list of workbooks
h_map type ole2_object" workbook
h_zl type ole2_object" cell
h_f type ole2_object" font
gs_interior type ole2_object" Pattern
worksheet type ole2_object,
h_cell type ole2_object,
h_cell1 type ole2_object,
range type ole2_object,
h_sheet2 type ole2_object,
h_sheet3 type ole2_object,
gs_font type ole2_object,
flg_stop(1type c.

*********************************************************************
** Internal table Declaration
*********************************************************************

databegin of t_excel occurs 0,

vkorg(20type c"Sales Org

vbtyp(20type c"Document Category

auart(20type c"Document Type

ernam(20type c"Created By

vbeln(20type c"Document Number

posnr(20type c"Item Number

erdat(20type c"Created Date

vdatu(20type c"Header Requested Delivery Date

reqdat(20type c"Request date

condat(20type c"Confirm date

lifsk(20type c"Header Block

txt30(30type c"Order User Status Description

lifsp(20type c"Line Block

dispo(20type c"MRP Controller

dsnam(20type c"MRP Controller Description

vmsta(20type c"Material Sales Status

kunnr(20type c"Sold To

cname(35type c"Sold To Name

regio(20type c"State

cufd(10type c"CUD

bstnk(20type c"PO#

bsark(20type c"Ordering Method

matnr(20type c"Material

maktx(35type c"Material Description

t200(20type c,                                            "T200

vtext(20type c"T200 Description

matkl(20type c"Material Group

zzbomind(7type c"BOM Indicator

ostat(20type c"Order Status

cmgst(20type c"CRD

inco1(20type c"Incoterms

oqty(20type c"Order Quantity

pqty(20type c"Open Quantity

unit(20type c"UOM

onet(20type c"Order Value

pnet(20type c"Open Value

curr(20type c"Currency key

so_bezei like tvkbt-bezei,"Sales Office

sg_bezei like tvgrt-bezei,"Sales Group

bname(20type c"Ordering Party

contact(20type c"Contact Name

telf1(20type c"Contact telf1

reqqty(20type c"Item Request qty

reqval(20type c"Item Request value

conqty(20type c"Item Confirm qty

conval(20type c"Item Confirm value

zzrev(02type c"Revenue recognition acceptance

bezei(20type c"Revenue recognition text

vgbel(20type c"Reference Order for RETURNS

0008text(255type c"Internal Order Comment Text

end of t_excel.

datat_excel_bckord like t_excel occurs with header line,
t_excel_bcklog like t_excel occurs with header line,
t_excel_blkord like t_excel occurs with header line.

typesdata1(1500type c,
ty type table of data1.

datait type ty with header line,
it_2 type ty with header line,
it_3 type ty with header line,

rec type sy-tfill,
deli(1type c,
l_amt(18type c.
databegin of hex,
tab type x,
end of hex.

field-symbols<fs> .

constants cns_09(2type value 09.

assign deli to <fs> type 'X'.
hex-tab cns_09.
<fs> hex-tab.

data gv_sheet_name(20type .

*----------------------------------------------------------------------*
* M A C R O Declaration
*----------------------------------------------------------------------*
define ole_check_error.
  if &1 ne 0.
    message e001(zzwith &1.
    exit.
  endif.
end-of-definition.

t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.
t_excel_bckord-vkorg 'ABC'.
t_excel_bckord-vbtyp 'DEF'.
t_excel_bckord-auart 'GHI'.
t_excel_bckord-ernam 'JKL'.
t_excel_bckord-vbeln 'MNO'.
t_excel_bckord-0008text 'XYZ'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC1'.
t_excel_bckord-vbtyp 'DEF1'.
t_excel_bckord-auart 'GHI1'.
t_excel_bckord-ernam 'JKL1'.
t_excel_bckord-vbeln 'MNO1'.
t_excel_bckord-0008text 'XYZ1'.
append t_excel_bckord.

t_excel_bckord-vkorg 'ABC2'.
t_excel_bckord-vbtyp 'DEF2'.
t_excel_bckord-auart 'GHI2'.
t_excel_bckord-ernam 'JKL2'.
t_excel_bckord-vbeln 'MNO2'.
t_excel_bckord-0008text 'XYZ2'.
append t_excel_bckord.


t_excel_bcklog-vkorg 'ABC'.
t_excel_bcklog-vbtyp 'DEF'.
t_excel_bcklog-auart 'GHI'.
t_excel_bcklog-ernam 'JKL'.
t_excel_bcklog-vbeln 'MNO'.
t_excel_bcklog-0008text 'XYZ'.
append t_excel_bcklog.

t_excel_bcklog-vkorg 'ABC1'.
t_excel_bcklog-vbtyp 'DEF1'.
t_excel_bcklog-auart 'GHI1'.
t_excel_bcklog-ernam 'JKL1'.
t_excel_bcklog-vbeln 'MNO1'.
t_excel_bcklog-0008text 'XYZ1'.
append t_excel_bcklog.

t_excel_bcklog-vkorg 'ABC2'.
t_excel_bcklog-vbtyp 'DEF2'.
t_excel_bcklog-auart 'GHI2'.
t_excel_bcklog-ernam 'JKL2'.
t_excel_bcklog-vbeln 'MNO2'.
t_excel_bcklog-0008text 'XYZ2'.
append t_excel_bcklog.

t_excel_bcklog-vkorg 'ABC3'.
t_excel_bcklog-vbtyp 'DEF3'..
t_excel_bcklog-auart 'GHI3'.
t_excel_bcklog-ernam 'JKL3'.
t_excel_bcklog-vbeln 'MNO3'.
t_excel_bcklog-0008text 'XYZ3'.
append t_excel_bcklog.


t_excel_blkord-vkorg 'ABC'.
t_excel_blkord-vbtyp 'DEF'.
t_excel_blkord-auart 'GHI'.
t_excel_blkord-ernam 'JKL'.
t_excel_blkord-vbeln 'MNO'.
t_excel_blkord-0008text 'XYZ'.
append t_excel_blkord.

t_excel_blkord-vkorg 'ABC1'.
t_excel_blkord-vbtyp 'DEF1'.
t_excel_blkord-auart 'GHI1'.
t_excel_blkord-ernam 'JKL1'.
t_excel_blkord-vbeln 'MNO1'.
t_excel_blkord-0008text 'XYZ1'.
append t_excel_blkord.

t_excel_blkord-vkorg 'ABC2'.
t_excel_blkord-vbtyp 'DEF2'.
t_excel_blkord-auart 'GHI2'.
t_excel_blkord-ernam 'JKL2'.
t_excel_blkord-vbeln 'MNO2'.
t_excel_blkord-0008text 'XYZ2'.
append t_excel_blkord.

t_excel_blkord-vkorg 'ABC3'.
t_excel_blkord-vbtyp 'DEF3'..
t_excel_blkord-auart 'GHI3'.
t_excel_blkord-ernam 'JKL3'.
t_excel_blkord-vbeln 'MNO3'.
t_excel_blkord-0008text 'XYZ3'.
append t_excel_blkord.

t_excel_blkord-vkorg 'ABC4'.
t_excel_blkord-vbtyp 'DEF4'..
t_excel_blkord-auart 'GHI4'.
t_excel_blkord-ernam 'JKL4'.
t_excel_blkord-vbeln 'MNO4'.
t_excel_blkord-0008text 'XYZ4'.
append t_excel_blkord.


loop at t_excel_bckord.
  concatenate
  t_excel_bckord-vkorg

  t_excel_bckord-vbtyp

  t_excel_bckord-auart

  t_excel_bckord-ernam

  t_excel_bckord-vbeln

  t_excel_bckord-posnr

  t_excel_bckord-erdat

  t_excel_bckord-vdatu

  t_excel_bckord-reqdat

  t_excel_bckord-condat

  t_excel_bckord-lifsk

  t_excel_bckord-txt30

  t_excel_bckord-lifsp

  t_excel_bckord-dispo

  t_excel_bckord-dsnam

  t_excel_bckord-vmsta

  t_excel_bckord-kunnr

  t_excel_bckord-cname

  t_excel_bckord-regio

  t_excel_bckord-cufd

  t_excel_bckord-bstnk

  t_excel_bckord-bsark

  t_excel_bckord-matnr

  t_excel_bckord-maktx

  t_excel_bckord-t200

  t_excel_bckord-vtext

  t_excel_bckord-matkl

  t_excel_bckord-zzbomind

  t_excel_bckord-ostat

  t_excel_bckord-cmgst

  t_excel_bckord-inco1

  t_excel_bckord-oqty

  t_excel_bckord-pqty

  t_excel_bckord-unit

  t_excel_bckord-onet

  t_excel_bckord-pnet

  t_excel_bckord-curr

  t_excel_bckord-so_bezei

  t_excel_bckord-sg_bezei

  t_excel_bckord-bname

  t_excel_bckord-contact

  t_excel_bckord-telf1

  t_excel_bckord-reqqty

  t_excel_bckord-reqval

  t_excel_bckord-conqty

  t_excel_bckord-conval

  t_excel_bckord-zzrev

  t_excel_bckord-bezei

  t_excel_bckord-vgbel

  t_excel_bckord-0008text

  into it
  separated by deli.

  append it.
  clear it.
endloop.


loop at t_excel_bcklog.
  concatenate
  t_excel_bcklog-vkorg

  t_excel_bcklog-vbtyp

  t_excel_bcklog-auart

  t_excel_bcklog-ernam

  t_excel_bcklog-vbeln

  t_excel_bcklog-posnr

  t_excel_bcklog-erdat

  t_excel_bcklog-vdatu

  t_excel_bcklog-reqdat

  t_excel_bcklog-condat

  t_excel_bcklog-lifsk

  t_excel_bcklog-txt30

  t_excel_bcklog-lifsp

  t_excel_bcklog-dispo

  t_excel_bcklog-dsnam

  t_excel_bcklog-vmsta

  t_excel_bcklog-kunnr

  t_excel_bcklog-cname

  t_excel_bcklog-regio

  t_excel_bcklog-cufd

  t_excel_bcklog-bstnk

  t_excel_bcklog-bsark

  t_excel_bcklog-matnr

  t_excel_bcklog-maktx

  t_excel_bcklog-t200

  t_excel_bcklog-vtext

  t_excel_bcklog-matkl

  t_excel_bcklog-zzbomind

  t_excel_bcklog-ostat

  t_excel_bcklog-cmgst

  t_excel_bcklog-inco1

  t_excel_bcklog-oqty

  t_excel_bcklog-pqty

  t_excel_bcklog-unit

  t_excel_bcklog-onet

  t_excel_bcklog-pnet

  t_excel_bcklog-curr

  t_excel_bcklog-so_bezei

  t_excel_bcklog-sg_bezei

  t_excel_bcklog-bname

  t_excel_bcklog-contact

  t_excel_bcklog-telf1

  t_excel_bcklog-reqqty

  t_excel_bcklog-reqval

  t_excel_bcklog-conqty

  t_excel_bcklog-conval

  t_excel_bcklog-zzrev

  t_excel_bcklog-bezei

  t_excel_bcklog-vgbel

  t_excel_bcklog-0008text

  into it_2
  separated by deli.

  append it_2.
  clear it_2.
endloop.


loop at t_excel_blkord.
  concatenate
  t_excel_blkord-vkorg

  t_excel_blkord-vbtyp

  t_excel_blkord-auart

  t_excel_blkord-ernam

  t_excel_blkord-vbeln

  t_excel_blkord-posnr

  t_excel_blkord-erdat

  t_excel_blkord-vdatu

  t_excel_blkord-reqdat

  t_excel_blkord-condat

  t_excel_blkord-lifsk

  t_excel_blkord-txt30

  t_excel_blkord-lifsp

  t_excel_blkord-dispo

  t_excel_blkord-dsnam

  t_excel_blkord-vmsta

  t_excel_blkord-kunnr

  t_excel_blkord-cname

  t_excel_blkord-regio

  t_excel_blkord-cufd

  t_excel_blkord-bstnk

  t_excel_blkord-bsark

  t_excel_blkord-matnr

  t_excel_blkord-maktx

  t_excel_blkord-t200

  t_excel_blkord-vtext

  t_excel_blkord-matkl

  t_excel_blkord-zzbomind

  t_excel_blkord-ostat

  t_excel_blkord-cmgst

  t_excel_blkord-inco1

  t_excel_blkord-oqty

  t_excel_blkord-pqty

  t_excel_blkord-unit

  t_excel_blkord-onet

  t_excel_blkord-pnet

  t_excel_blkord-curr

  t_excel_blkord-so_bezei

  t_excel_blkord-sg_bezei

  t_excel_blkord-bname

  t_excel_blkord-contact

  t_excel_blkord-telf1

  t_excel_blkord-reqqty

  t_excel_blkord-reqval

  t_excel_blkord-conqty

  t_excel_blkord-conval

  t_excel_blkord-zzrev

  t_excel_blkord-bezei

  t_excel_blkord-vgbel

  t_excel_blkord-0008text

  into it_3
  separated by deli.

  append it_3.
  clear it_3.
endloop.



if h_excel-header space or h_excel-handle -1.
* start Excel
  create object h_excel 'EXCEL.APPLICATION'.
endif.

* PERFORM err_hdl.

*--- get list of workbooks, initially empty
call method of h_excel 'Workbooks' h_mapl.
* PERFORM err_hdl.
set property of h_excel 'Visible' 1.

* add a new workbook
call method of h_mapl 'Add' h_map.
* PERFORM err_hdl.
*GV_SHEET_NAME = '1st SHEET'.

gv_sheet_name 'Back Orders'.



get property of h_excel 'ACTIVESHEET' worksheet.
set property of worksheet 'Name' gv_sheet_name .


*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' w_cell1
  exporting
    #1 1
    #2 1.
call method of h_excel 'Cells' w_cell2
  exporting
    #1 1
    #2 50.
call method of h_excel 'Range' h_cell
  exporting
    #1 w_cell1
    #2 w_cell2.
*CALL METHOD OF gs_cells 'Select' .
get property of h_cell 'Font' gs_font .
set property of gs_font 'Bold' .


data l_rc type i.
call method cl_gui_frontend_services=>clipboard_export
  importing
    data                 it[]
  changing
    rc                   l_rc
  exceptions
    cntl_error           1
    error_no_gui         2
    not_supported_by_gui 3
    others               4.

*CALL METHOD OF h_excel 'Cells' = w_cell1
*  EXPORTING
*    #1 = 1
*    #2 = 1.
*
*CALL METHOD OF h_excel 'Cells' = w_cell2
*  EXPORTING
*    #1 = 1
*    #2 = 1.
** PERFORM err_hdl.

*CALL METHOD OF h_excel 'Range' = range
*  EXPORTING
*    #1 = w_cell1
*    #2 = w_cell2.

*CALL METHOD OF range 'Select'.
* PERFORM err_hdl.
call method of worksheet 'Paste'.
* PERFORM err_hdl.

* CALL METHOD OF h_excel 'QUIT'.

*GV_SHEET_NAME = '2ND SHEET'.
gv_sheet_name 'Backlog'.


get property of h_excel 'Sheets' h_sheet2 .

call method of h_sheet2 'Add' h_map.
set property of h_map 'Name' gv_sheet_name .
get property of h_excel 'ACTIVESHEET' worksheet.


*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' w_cell1
  exporting
    #1 1
    #2 1.
call method of h_excel 'Cells' w_cell2
  exporting
    #1 1
    #2 50.
call method of h_excel 'Range' h_cell
  exporting
    #1 w_cell1
    #2 w_cell2.
get property of h_cell 'Font' gs_font .
set property of gs_font 'Bold' .

call method cl_gui_frontend_services=>clipboard_export
  importing
    data                 it_2[]
  changing
    rc                   l_rc
  exceptions
    cntl_error           1
    error_no_gui         2
    not_supported_by_gui 3
    others               4.

call method of h_excel 'Cells' w_cell1
  exporting
    #1 1
    #2 1.

call method of h_excel 'Cells' w_cell2
  exporting
    #1 1
    #2 1.
* PERFORM err_hdl.

call method of h_excel 'Range' range
  exporting
    #1 w_cell1
    #2 w_cell2.

call method of range 'Select'.
* PERFORM err_hdl.
call method of worksheet 'Paste'.



*GV_SHEET_NAME = '3rd SHEET'.
gv_sheet_name 'Blocked Orders'.

get property of h_excel 'Sheets' h_sheet3 .

call method of h_sheet3 'Add' h_map.
set property of h_map 'Name' gv_sheet_name .
get property of h_excel 'ACTIVESHEET' worksheet.


*--Formatting the area of additional data 1 and doing the BOLD
call method of h_excel 'Cells' w_cell1
  exporting
    #1 1
    #2 1.
call method of h_excel 'Cells' w_cell2
  exporting
    #1 1
    #2 50.
call method of h_excel 'Range' h_cell
  exporting
    #1 w_cell1
    #2 w_cell2.
get property of h_cell 'Font' gs_font .
set property of gs_font 'Bold' .

call method cl_gui_frontend_services=>clipboard_export
  importing
    data                 it_3[]
  changing
    rc                   l_rc
  exceptions
    cntl_error           1
    error_no_gui         2
    not_supported_by_gui 3
    others               4.

call method of h_excel 'Cells' w_cell1
  exporting
    #1 1
    #2 1.

call method of h_excel 'Cells' w_cell2
  exporting
    #1 1
    #2 1.
* PERFORM err_hdl.

call method of h_excel 'Range' range
  exporting
    #1 w_cell1
    #2 w_cell2.

call method of range 'Select'.
* PERFORM err_hdl.
call method of worksheet 'Paste'.


*--- disconnect from Excel
free object h_zl.
free object h_mapl.
free object h_map.
free object h_excel.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约