ABAP 下载资料到.TXT文档

本文介绍了一个使用ABAP编程语言实现的批量数据导出至TXT文件的方法。通过定义特定的数据类型和结构,文章详细展示了如何将数据库中的记录格式化并下载到TXT文档中,包括设置文件编码、处理数据字段以及错误异常的捕捉。

下载至.TXT文档代码:

FORM EDI_DOWNLOAD .
  DATA : DOWN_F(312) TYPE C OCCURS 0 WITH HEADER LINE,
         ABAP_LIST LIKE ABAPLIST OCCURS 1,
         LIST_INDEX TYPE I,
         MSG_STR TYPE STRING .
  DATA : FILENAME TYPE  STRING.
  FILENAME = P_FILE .

  LOOP AT GT_DN_GI_DOWN .
    CONDENSE :
*   Modifyed by william 20060510
    GT_DN_GI_DOWN-COMPANY_NUMBER NO-GAPS,
    GT_DN_GI_DOWN-COMPANY_NAME NO-GAPS,
    GT_DN_GI_DOWN-UBKNT_EX   NO-GAPS,
    GT_DN_GI_DOWN-RECEIVE_FIRST_NUMBER NO-GAPS,
    GT_DN_GI_DOWN-ZBNKN_EX   NO-GAPS,
*   End Mod
    GT_DN_GI_DOWN-NAME1   NO-GAPS,  "收款單位名稱
    GT_DN_GI_DOWN-ACCEPT_FIRST_NUMBER  NO-GAPS,
    GT_DN_GI_DOWN-BANKA_R NO-GAPS,
    GT_DN_GI_DOWN-UPLINE  NO-GAPS,
    GT_DN_GI_DOWN-COUNTER_NUMBER  NO-GAPS,
    GT_DN_GI_DOWN-ACCEPT_INPUT  NO-GAPS,
    GT_DN_GI_DOWN-RBETR   NO-GAPS,
    GT_DN_GI_DOWN-CURRENY  NO-GAPS,
    GT_DN_GI_DOWN-UTILITY NO-GAPS.
*   Modifyed by william 20060510
*   CONCATENATE GT_DN_GI_DOWN-UBKNT
*               GT_DN_GI_DOWN-ZBNKN
    CONCATENATE GT_DN_GI_DOWN-COMPANY_NUMBER
                GT_DN_GI_DOWN-COMPANY_NAME
                GT_DN_GI_DOWN-UBKNT_EX
                GT_DN_GI_DOWN-RECEIVE_FIRST_NUMBER
                GT_DN_GI_DOWN-ZBNKN_EX
*   End Mod
                GT_DN_GI_DOWN-NAME1    "收款單位名稱
                GT_DN_GI_DOWN-ACCEPT_FIRST_NUMBER
                GT_DN_GI_DOWN-BANKA_R
                GT_DN_GI_DOWN-UPLINE
                GT_DN_GI_DOWN-COUNTER_NUMBER
                GT_DN_GI_DOWN-ACCEPT_INPUT
                GT_DN_GI_DOWN-RBETR
                GT_DN_GI_DOWN-CURRENY
                GT_DN_GI_DOWN-UTILITY
                INTO DOWN_F SEPARATED BY '|'“将以上字段的内容用"|"隔开放至DOWN_F这个312字节的字符串中

    APPEND DOWN_F .
*    ZBNKN_EX LIKE REGUH-KOINH ,"供應商收款帳號 Enhancement
*    UBKNT_EX LIKE T012K-REFZL ,"我們的銀行帳號 Enhancement
*    UBKNT LIKE REGUH-UBKNT,  "付款帳戶
*    ZBNKN LIKE REGUH-ZBNKN,  "收款帳號
*    BANKA LIKE BNKA-BANKA ,  "收款開戶行名稱
*    RBETR LIKE REGUH-RBETR,  "金額(绝对值)
*    UTILITY TYPE  CHAR4   ,  "用途(货款)
*    UPLINE TYPE  NUMC5    ,  "收款行聯行號 (00000)
*    NAME1 LIKE ADRC-NAME1 ,  "收款單位名稱
  ENDLOOP .
  IF NOT DOWN_F[] IS INITIAL.
    CASE DOWN_MODE . "下载模式是放在所选路径下的.TXT文档中
      WHEN 'X' .
        CALL FUNCTION 'WS_DOWNLOAD'
         EXPORTING
           CODEPAGE                = FILE_ENCODING
           FILENAME                = P_FILE
*            filetype                = 'ASC'
*            trunc_trailing_blanks   = 'X'
         TABLES
           DATA_TAB                = DOWN_F
         EXCEPTIONS
           FILE_OPEN_ERROR         = 1
           FILE_WRITE_ERROR        = 2
           INVALID_FILESIZE        = 3
           INVALID_TYPE            = 4
           NO_BATCH                = 5
           UNKNOWN_ERROR           = 6
           INVALID_TABLE_WIDTH     = 7
           GUI_REFUSE_FILETRANSFER = 8
           CUSTOMER_ERROR          = 9
           NO_AUTHORITY            = 10
           OTHERS                  = 11.
      WHEN SPACE .
*        CALL FUNCTION 'LIST_TO_ASCI'
*           EXPORTING
*                LIST_INDEX         = LIST_INDEX
*           TABLES
*                LISTASCI           = DOWN_F
*                LISTOBJECT         = ABAP_LIST
*           EXCEPTIONS
*                LIST_INDEX_INVALID = 1
*                OTHERS             = 2.
*       IF SY-SUBRC <> 0.
*         Clear MSG_STR . MSG_STR = 'error in convert ASCII' .
*         MESSAGE MSG_STR TYPE 'E' .
*       ENDIF.
*
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            CODEPAGE                = FILE_ENCODING
            FILENAME                = FILENAME
            FILETYPE                = 'ASC'
            TRUNC_TRAILING_BLANKS   = 'X'
          TABLES
            DATA_TAB                = DOWN_F
          EXCEPTIONS
            FILE_OPEN_ERROR         = 1
            FILE_WRITE_ERROR        = 2
            INVALID_FILESIZE        = 3
            INVALID_TYPE            = 4
            NO_BATCH                = 5
            UNKNOWN_ERROR           = 6
            INVALID_TABLE_WIDTH     = 7
            GUI_REFUSE_FILETRANSFER = 8
            CUSTOMER_ERROR          = 9
            NO_AUTHORITY            = 10
            OTHERS                  = 11.
      WHEN OTHERS .
    ENDCASE.
    IF SY-SUBRC =  0 .
      MESSAGE TEXT-004 TYPE 'S' .
    ENDIF.
  ENDIF.

ENDFORM.                    "EDI_DOWNLOAD

 

初始化下载模式:

FORM INITIAL_MODE .
* 取數為:特殊標定為空的數據
  MODE = SPACE .
  FILE_ENCODING = '8400' .
  DOWN_MODE = SPACE . "選擇簡體中文的WINDOWS環境: SPACE
  "選擇繁體中文的WINDOWS環境: 'X'
*  DOWN_MODE = 'X' .

ENDFORM.

 

 

FICO:相关银行的表:BNKA,REGUH,T012K,V_T012《视图》

 

转载于:https://www.cnblogs.com/aBaoRong/archive/2012/06/15/2550311.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值