從服務器下載文件DOWNLOAD_WEB_OBJECT

原创 2011年01月21日 12:51:00

 *&--------------------------begin--------------------------------------*
FORM DOWNLOAD_EXCEL_TEMPLATE USING FP_OBJID LIKE wwwdatatab-objid
                                   FP_DEST  LIKE sapb-sappfad
                                   FP_DOWN.

   DATA: L_PARA like WWWDATATAB.
   DATA: ls_destination LIKE rlgrap-filename,
         li_rc LIKE sy-subrc.

   FP_DOWN = 'N'.
   SELECT SINGLE WWWDATA~RELID WWWDATA~OBJID
   INTO CORRESPONDING FIELDS OF L_PARA
   FROM WWWDATA
   WHERE WWWDATA~RELID = 'MI'      AND
         WWWDATA~OBJID = FP_OBJID  AND
         WWWDATA~SRTF2 = 0.
   if sy-subrc <> 0.
     MESSAGE TEXT-E12 TYPE 'S' DISPLAY LIKE 'E'.     "The excel template  no existed !
     RETURN.
   endif.
   ls_destination = FP_DEST.
   CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      key         = L_PARA
      destination = ls_destination
    IMPORTING
      rc          = li_rc.
   if li_rc NE 0.
       MESSAGE TEXT-E13 TYPE 'S' DISPLAY LIKE 'E'.     "The excel template download unsuccessfully !
       RETURN.
   endif.
   FP_DOWN = 'Y'.
ENDFORM.    "--DOWNLOAD_EXCEL_TEMPLATE

 

 

 FORM DOWNLOAD_EXCEL_DATA USING FP_DOWN_FILE  LIKE sapb-sappfad.
  data: l_down_save LIKE rlgrap-filename.
  DATA: l_qty like vbap-kwmeng.  "pri_pack-cqty.
  data: l_date_file type c length 25.
  data: l_name      type c length 200,
        l_shipaddr  type c length 200,
        l_address   type c length 200,
        l_lifnr     type c length 50,
        l_charg     type c length 11,
        l_mdesc     type c length 200,  "material desc(EN&ZH)
        l_ntgew     type p decimals 4"like mara-ntgew,   "net wgt
        l_brgew     type p decimals 4"like mara-brgew.   "gross wgt
  data: l_line      type I, l_init type I value 12.   "12表示明細導出開始行
  data: l_maxrow    type I.
  CLEAR: l_date_file.
  WRITE SY-DATUM TO l_date_file YYMMDD.
  CONDENSE l_date_file.
  CONCATENATE 'D:/PACK_' l_date_file+0(2) l_date_file+2(2) l_date_file+4(2INTO l_date_file.
    loop at it_hpack.
        clear: pri_pack, pri_pack[].
*        append lines of it_dpack to pri_pack.
*        delete pri_pack where vbeln <> it_hpack-vbeln.
        loop at it_dpack where vbeln = it_hpack-vbeln and
                               check = 'X'.
            move-corresponding it_dpack to pri_pack.
            append pri_pack.
            clear  pri_pack.
        endloop.
        if pri_pack[] is not initial.
            CREATE OBJECT   appl 'EXCEL.APPLICATION'.
            SET PROPERTY OF appl 'VISIBLE' = 0.
            SET PROPERTY OF appl 'DisplayAlerts' = 0.
            CALL METHOD OF  appl 'WORKBOOKS' = book.
            CALL METHOD OF book 'OPEN'
               EXPORTING #1 = FP_DOWN_FILE.
            CALL METHOD OF  appl  'WORKSHEETS'     = sheet  EXPORTING #1 = 1.
            GET PROPERTY OF appl  'ACTIVESHEET'    = sheet.
            GET PROPERTY OF appl  'ACTIVEWORKBOOK' = book.
            SET PROPERTY OF sheet 'NAME'           = it_hpack-vbeln.
"           導出表頭數據
            CLEAR: l_name, l_address, l_lifnr, l_shipaddr.
            CONCATENATE it_hpack-name1 it_hpack-name2 it_hpack-name3 it_hpack-name4
                   INTO l_name SEPARATED BY SPACE.
            CONCATENATE it_hpack-str_suppl1 it_hpack-str_suppl2 it_hpack-str_suppl3 it_hpack-location
                   INTO l_address SEPARATED BY SPACE.
            PERFORM SET_EXCEL_VALUE USING 2 8 it_hpack-zpdate.    "date
            PERFORM SET_EXCEL_VALUE USING 3 8 it_hpack-vbeln.     "DN
            PERFORM SET_EXCEL_VALUE USING 3 1 it_hpack-zname.     "shipper's name
            CONCATENATE it_hpack-zaddr it_hpack-zaddr2 INTO l_shipaddr SEPARATED BY SPACE.
            PERFORM SET_EXCEL_VALUE USING 4 1 l_shipaddr.     "shipper's address
            IF it_hpack-lifnr is not initial.
                l_lifnr = it_hpack-lifnr.
                CONDENSE l_lifnr.
                PERFORM DATA_ALPHA_CONVERSION_OUT  USING l_lifnr.
                CONCATENATE 'Vendor :' l_lifnr INTO l_lifnr SEPARATED BY SPACE.
            ENDIF.
            PERFORM SET_EXCEL_VALUE USING 5 1 l_lifnr.            "vendor
            PERFORM SET_EXCEL_VALUE USING 8 1 l_name.             "Consignee's Name
            PERFORM SET_EXCEL_VALUE USING 9 1 l_address.          "Consignee's Address
"           導出明細數據
            l_line = l_init.
            DESCRIBE TABLE pri_pack LINES l_maxrow.
            l_maxrow = l_maxrow + l_init.
            l_ntgew  = 0.
            l_brgew  = 0.
            l_qty    = 0.
            loop at pri_pack.
                PERFORM SET_EXCEL_VALUE USING l_line 1 pri_pack-crange.  "Carton No.
                PERFORM SET_EXCEL_VALUE USING l_line 2 pri_pack-groes.   "Dimensions (cm)
                if pri_pack-matnr = 'SAMPLE' or pri_pack-matnr = 'TOOLING'.
                  PERFORM SET_EXCEL_VALUE USING l_line 3 pri_pack-arktx.   "Part Description
                else.
                  CONCATENATE pri_pack-makte pri_pack-maktz INTO l_mdesc SEPARATED BY SPACE.
                  PERFORM SET_EXCEL_VALUE USING l_line 3 l_mdesc. "material desc(EN&ZH)
                endif.
                PERFORM SET_EXCEL_VALUE USING l_line 4  pri_pack-BSTKD.   "PO#
                PERFORM SET_EXCEL_VALUE USING l_line 5  pri_pack-kdmat.   "Cust Code
                PERFORM SET_EXCEL_VALUE USING l_line 6  pri_pack-cqty.    "QUANTITY (PCS)
                PERFORM SET_EXCEL_VALUE USING l_line 7  pri_pack-ntgew.   "Net Weight (KG)
                PERFORM SET_EXCEL_VALUE USING l_line 8  pri_pack-brgew.   "Gross Weight (KG)
                PERFORM SET_EXCEL_VALUE USING l_line 9  pri_pack-vgbel.   "SO#
                PERFORM SET_EXCEL_VALUE USING l_line 10 pri_pack-zbill.   "Invoice
                CONCATENATE '''' pri_pack-charg INTO l_charg.
                PERFORM SET_EXCEL_VALUE USING l_line 11 l_charg.   "Batch Number
                l_ntgew  = l_ntgew + pri_pack-ntgew.
                l_brgew  = l_brgew + pri_pack-brgew.
                l_qty = l_qty + pri_pack-cqty.
                l_line = l_line + 1.
                if l_line = l_maxrow.
                     l_line = l_line + 2.   "為了與明細空二行
                     PERFORM SET_EXCEL_VALUE USING l_line 3 '    TOTAL   PACKAGE:'.
                     PERFORM SET_EXCEL_VALUE USING l_line 4 pri_pack-cnum.
                     PERFORM SET_EXCEL_VALUE USING l_line 5 'CTNS'.
                     l_line = l_line + 1.
                     PERFORM SET_EXCEL_VALUE USING l_line 3 '              TOTAL   QTY:'.
                     PERFORM SET_EXCEL_VALUE USING l_line 4 l_qty.  "it_hpack-zpall.
                     PERFORM SET_EXCEL_VALUE USING l_line 5 'PCS'.   "'PALLETS'
                     l_line = l_line + 1.
                     PERFORM SET_EXCEL_VALUE USING l_line 3 'TOTAL NET WEIGHT:'.
                     PERFORM SET_EXCEL_VALUE USING l_line 4 l_ntgew.
                     PERFORM SET_EXCEL_VALUE USING l_line 5 'KGS'.
                     l_line = l_line + 1.
                     PERFORM SET_EXCEL_VALUE USING l_line 3 'TOTAL GR.  WEIGHT:'.
                     PERFORM SET_EXCEL_VALUE USING l_line 4 l_brgew.
                     PERFORM SET_EXCEL_VALUE USING l_line 5 'KGS'.
                     l_line = l_line + 1.
                     PERFORM SET_EXCEL_VALUE USING l_line 3 '              TOTAL   PCS:'.
                     PERFORM SET_EXCEL_VALUE USING l_line 4 it_hpack-zpall.
                     PERFORM SET_EXCEL_VALUE USING l_line 5 'PALLETS'.
                     l_line = l_line + 3.
                     PERFORM SET_EXCEL_VALUE USING l_line 6 ' 签 收 人:'.
                     l_line = l_line + 2.
                     PERFORM SET_EXCEL_VALUE USING l_line 6 '签收日期:'.
                endif.
            endloop.
            GET PROPERTY OF appl 'ACTIVESHEET' = sheet.
            GET PROPERTY OF appl 'ACTIVEWORKBOOK' = book.
            CLEAR: l_down_save.
            CONCATENATE l_date_file '_' it_hpack-vbeln '.xls' INTO l_down_save.
            CALL METHOD OF book 'SAVEAS'
               EXPORTING #1 = l_down_save       "---'c:/test22.xls'
                         #2 = 1.                "file format
            SET PROPERTY OF appl 'VISIBLE' = 1.
*            CALL METHOD OF sheet 'CLOSE'.  "因為多Screen,以致Excel進程不能結束,
*            CALL METHOD OF book 'CLOSE'.   "所以先顯示導出結果,用戶退出程式方可結束進程
*            CALL METHOD OF appl 'QUIT'.
            FREE OBJECT sheet.
            FREE OBJECT book.
            FREE OBJECT appl.
        endif.
    endloop.
ENDFORM.    "--DOWNLOAD_EXCEL_DATA
  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ABAP文件上传下载 用SMW0

T-CODE: SMW0 在这里只介绍二进制数据,HTML模板的上传也一样。 另外也可以用CBO TABLE管理文件 可以看我另一个博文:CBO TABLE管理文件上传下载 选择 二进制...

OLE- 下载EXCEL

1. 首先要INCLUDEole2incl. .   INCLUDE ole2incl.   DATA :    gs_excel   TYPE ole2_object,    &#...

CBO TABLE管理文件上传下载

首先创建2个表,一个HEAD,一个BODY 这是保存表头信息 这是以2进制形式保存文件数据的表 执行如下代码。 TABLES:ZFILEHEAD, ZFIL...

ABAP发送邮件-带附件

<!-- @font-face {font-family:SimSun} @font-face {font-family:SimSun} @font-face {font-famil...

Struts2学习笔记(十七) 文件下载(File Download)

前面我们刚刚学完文件上传,那么我们就接着来看和文件上传相对应的文件下载吧。对于文件上传而言,文件下载实现起来要简单的多。通常我们可以直接将一个超链接的地址指向我们想要给用户下载的资源即可。但是如果这些...

用jsp实现文件的下载(download.jsp)

------------------------------------------------download.jsp代码如下------------------------------------...

vc++2005下载WEB服务器文件

  • 2009-07-31 11:13
  • 7.96MB
  • 下载

文件上传下载 Upload&Download

文件的上传下载 Upload&Download (一)文件的上传 文件的上传即将本地文件上传到远程服务器端 文件上传的流也需要放到一个表单中 2、文件上传的表单的要求 文件上传的表单需要设置的请求方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)