防伪税控文本接口_第1页
防伪税控文本接口_第2页
防伪税控文本接口_第3页
防伪税控文本接口_第4页
防伪税控文本接口_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*-* * PROJECT NAME: * PROGRAM TITLE: 防伪税控接口 * PROGRAM ID/NAME: * AUTHORS NAME: * VERSION: 1.0 *-* * DESCRIPTION: *-* * CHANGE HISTORY *-* * Changed by xxxxxxxx * On xxxxxxxx * Description of the changes: * #1. * #2. * #. *- REPORT Z NO STANDARD PAGE HEADING MESSAGE-ID ZSDA LINE-SIZE 255 line-count 6

2、5. *- * INCLUDES *- INCLUDE: , . *- * TYPE-POOLS *- TYPE-POOLS: slis. ALV *- * TABLES *- TABLES: vbrk, Billing Document: Header Data vbrp, Billing Document: Item Data vbfa, 销售凭证流 vbak, 销售凭证:抬头数据 vbap, 销售凭证:项目数据 vbpa, 销售凭证:合作伙伴 vbpa3, 一次性客户的税编码 konv, vbrk-knumv konp, konv-knumh lips, SD document: Del

3、ivery: Item data bkpf. TABLES: kna1, General Data in Customer Master knvv, Customer Master Sales Data knvp, Customer Master Partner Functions knbk, Customer Master (Bank Details bnka. Bank master record TABLES: adrc, Addresses (Business Address Services adrct, adr2. Telephone Numbers (Business Addre

4、ss Services TABLES: mara, t006a. Assign Internal to Language-Dependent Unit TABLES: zsd014u, 金税接口用户权限分配表 zsd014o, 从SAP导出数据记录表 zsd014i. 从SAP导入数据记录表 *- * Global data define *- * 内表定义 *- * 发票抬头备注、客户名称、客户地址、客户银行 *- DATA: BEGIN OF gt_document OCCURS 0, vbeln LIKE vbrk-vbeln, 发票号 fkart LIKE vbrk-fkart, 发票

5、类型 fkdat LIKE vbrk-fkdat, 出具发票日期 kunrg LIKE vbrk-kunrg, 付款方(客户 knumv LIKE vbrk-knumv, konv-knumv, zuonr LIKE vbrk-zuonr, 金税发票号 sfakn LIKE vbrk-sfakn, 取消的发票号 * fksto LIKE vbrk-fksto, 该发票被取消标志 zuonr1(10 TYPE C, 对应正数发票 zuonr2(8 TYPE C, 号码 posnr LIKE vbrp-posnr, matnr LIKE vbrp-matnr, arktx LIKE vbrp-ar

6、ktx, 销售订单项目短文本(物料描述 vrkme LIKE vbrp-vrkme, 销售单位 fkimg LIKE vbrp-fkimg, 开票数量 price(8 TYPE P decimals 7, 单价(不含税 netwr/fkimg netwr LIKE vbrp-netwr, 金额(不含税 trate TYPE P decimals 2, 税率 mwsbp/netwr mwsbp LIKE vbrp-mwsbp, 税额 tolwr LIKE vbrp-netwr, 总价值 netwr+mwsbp text(160 TYPE C, 备注 vbelv LIKE vbfa-vbelv,

7、vbeln+posnrvbelv+posnv 发票与销售订单的对应 posnv LIKE vbfa-posnv, bukrs LIKE vbrk-bukrs, 公司代码,不同的公司适用不同风格的发票 END OF gt_document. DATA: BEGIN OF gt_customer OCCURS 0, kunnr LIKE kna1-kunnr, name1 LIKE kna1-name1, 客户名称 name2 LIKE kna1-name2, 客户名称 name(70 TYPE C, 客户名称=name1+name2 导出到金税使用 name3(20 TYPE C, 客户名称=n

8、ame1(20 Alv 显示时使用 ktokd LIKE kna1-ktokd, 客户帐户组/判断是否为一次性客户 * stras LIKE kna1-stras, 客户地址(门牌号 街道 street LIKE adrc-street, 客户地址-街道 house_num1 LIKE adrc-house_num1, 客户地址-门牌号 addr(70 TYPE C, 客户地址(街道 门牌号 telf1 LIKE kna1-telf1, 电话 stcd1 LIKE kna1-stcd1, 税号1(纳税人识别号 bankl LIKE knbk-bankl, 客户开户银行代码 banka LIKE

9、 bnka-banka, 银行名称 * bankn LIKE knbk-bankn, 客户账号 bankn LIKE bnka-stras, 银行街道实际存放客户账号 END OF gt_customer. DATA: BEGIN OF gt_output OCCURS 0. INCLUDE STRUCTURE gt_document. INCLUDE STRUCTURE gt_customer. DATA: sel_flag TYPE C, 选择框 dc_flag TYPE C, 已导出到文本标识 ht_flag TYPE C. 已回填标识 DATA: END OF gt_output. D

10、ATA: BEGIN OF gt_input OCCURS 0, sel_flag TYPE C, 选择框 jinsh1(10 TYPE C, jinsh2(8 TYPE C, vbeln(10 TYPE C, belnr LIKE bkpf-belnr, flag TYPE C, 回填结果状态标志 message(60 TYPE C, END OF gt_input. DATA: gt_zsd014o LIKE zsd014o OCCURS 0 WITH HEADER LINE, gt_zsd014i LIKE zsd014i OCCURS 0 WITH HEADER LINE. DATA:

11、 gt_bdcdata LIKE BDCDATA OCCURS 0 WITH HEADER LINE, gt_bdcmsg LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. *- * 常量定义 *- CONSTANTS: C_AUTH_QUERY LIKE zsd014u-zauth VALUE 1, C_AUTH_TRANS LIKE zsd014u-zauth VALUE 2. CONSTANTS: C_CANCEL_ZUONR1 LIKE vbrk-zuonr VALUE x, C_CANCEL_ZUONR2 LIKE vbrk-zuonr VALUE

12、 X, C_LENTH_ZUONR TYPE I VALUE 18. CONSTANTS: C_TEXT_SEPARATE(2 TYPE C VALUE n, C_TEXT_ID LIKE THEAD-TDID VALUE 0002, C_TEXT_OBJECT LIKE THEAD-TDOBJECT VALUE VBBK. CONSTANTS: g_object LIKE inri-object VALUE ZMIGSD014, Number range g_nr_01 LIKE inri-nrrangenr VALUE 01, 导出编号区间 g_nr_02 LIKE inri-nrrang

13、enr VALUE 02. 导入编号区间 DATA: g_number(10 TYPE C, Number range g_create_time LIKE sy-uzeit. DATA: g_flag_download_chk TYPE C, g_flag_upload_chk TYPE C, g_flag_write_chk TYPE C. *- * 全局变量定义 *- DATA: g_authorization LIKE zsd014u-zauth. DATA: g_filename LIKE rlgrap-filename. *- * Data parameters for alv r

14、eport use *- * Screen 2000 DATA: ok_code LIKE sy-ucomm. DATA: g_container TYPE scrfname VALUE G_CONTAINER, g_custom_container TYPE REF TO cl_gui_custom_container, g_alv_grid TYPE REF TO cl_gui_alv_grid, gw_layout TYPE lvc_s_layo, gw_fieldcat TYPE lvc_s_fcat, gt_fieldcat TYPE lvc_t_fcat. * Screen 300

15、0 DATA: g_container2 TYPE scrfname VALUE G_CONTAINER2, g_custom_container2 TYPE REF TO cl_gui_custom_container, g_alv_grid2 TYPE REF TO cl_gui_alv_grid, gw_layout2 TYPE lvc_s_layo, gw_fieldcat2 TYPE lvc_s_fcat, gt_fieldcat2 TYPE lvc_t_fcat. *= * SELECTION-SCREEN *= * Billing document number SELECTIO

16、N-SCREEN BEGIN OF BLOCK BLOCK0 WITH FRAME TITLE TEXT-006. * 导出 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. PARAMETERS: rb_out RADIOBUTTON GROUP g1. SELECTION-SCREEN COMMENT 3(20 text-007. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.

17、 PARAMETERS : p_bukrs LIKE vbrk-bukrs MEMORY ID BUK. SELECT-OPTIONS: s_fkart FOR vbrk-fkart, s_vbeln FOR vbrk-vbeln, s_kunrg FOR vbrk-kunrg, s_fkdat FOR vbrk-fkdat, s_zuonr FOR vbrk-zuonr. SELECTION-SCREEN SKIP 1. PARAMETERS: rb_ykp RADIOBUTTON GROUP g2. PARAMETERS: rb_wkp RADIOBUTTON GROUP g2 DEFAU

18、LT X. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 4. PARAMETERS: rb_1 RADIOBUTTON GROUP g3. SELECTION-SCREEN COMMENT 6(20 text-002. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 4. PARAMETERS: rb_2 RADIOBUTTON GROUP g3. SELECTION-SCREEN COMMENT

19、 6(20 text-003. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 4. PARAMETERS: rb_3 RADIOBUTTON GROUP g3. SELECTION-SCREEN COMMENT 6(20 text-004. SELECTION-SCREEN END OF LINE. PARAMETERS: rb_all RADIOBUTTON GROUP g2. SELECTION-SCREEN END OF BLOCK BLOCK1. * 导入

20、SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN POSITION 1. PARAMETERS: rb_in RADIOBUTTON GROUP g1. SELECTION-SCREEN COMMENT 3(20 text-008. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN BEGIN OF BLOCK BLOCK2 WITH FRAME TITLE TEXT-005. PARAMETERS: p_bukrs2 LIKE bkpf-bukrs, p_gjahr2 LIKE bkpf-gjahr,

21、 p_fname2 LIKE rlgrap-filename. SELECTION-SCREEN END OF BLOCK BLOCK2. SELECTION-SCREEN END OF BLOCK BLOCK0. *- * INITIALIZATION *- INITIALIZATION. PERFORM frm_initial. *- * AT SELECTION-SCREEN *- AT SELECTION-SCREEN. *- * AT SELECTION-SCREEN ON VALUE-REQUEST *- AT SELECTION-SCREEN ON VALUE-REQUEST F

22、OR p_fname2. CALL FUNCTION WS_FILENAME_GET EXPORTING def_path = C: mask = ,Text Files,*.txt;*.prn,All Files,*.*. title = Select File IMPORTING filename = p_fname2 EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 others = 5. IF sy-subrc NE 0 AND sy-subrc NE 3 AND p_fnam

23、e2 NE space. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *= * MAIN PROGRAM *= *- * START-OF-SELECTION *- START-OF-SELECTION. SELECT SINGLE * FROM zsd014u WHERE uname = sy-uname. IF sy-subrc NE 0. MESSAGE S001. ELSE. IF rb_out NE SPACE. g_authori

24、zation = zsd014u-zauth. PERFORM frm_get_billing_document. PERFORM frm_set_output_data. PERFORM frm_set_alv_para. SORT gt_output BY vbeln posnr. CALL SCREEN 2000. ELSE. PERFORM frm_upload CHANGING g_flag_upload_chk. IF g_flag_upload_chk EQ SPACE. PERFORM frm_set_alv_para2. * SORT gt_input BY CALL SCR

25、EEN 3000. ENDIF. ENDIF. ENDIF. *- * END-OF-SELECTION *- END-OF-SELECTION. *&-* *& Form frm_initial *&-* * text *-* * - p1 text * p1 text * - p2 t NGU NAME = l_name OBJECT = C_TEXT_OBJECT * ARCHIVE_HANDLE = * LOCAL_CAT = * IMPORTING * HEADER = TABLES LINES = lt_tline EXCEPTIONS ID = 1 LANGUAGE = 2 NA

26、ME = 3 NOT_FOUND = 4 OBJECT = 5 REFERENCE_CHECK = 6 WRONG_ACCESS_TO_ARCHIVE = 7 OTHERS = 8 . IF sy-subrc = 0. LOOP AT lt_tline. l_index2 = l_index2 + 1. IF l_index2 = 1. IF l_text EQ SPACE. gt_document-text = lt_tline-tdline. ELSE. 负数发票备注第一行为特定文本 CONCATENATE l_text lt_tline-tdline INTO gt_document-t

27、ext SEPARATED BY C_TEXT_SEPARATE. ENDIF. ELSE. CONCATENATE gt_document-text lt_tline-tdline INTO gt_document-text SEPARATED BY C_TEXT_SEPARATE. ENDIF. ENDLOOP. ELSE. IF l_text NE SPACE. gt_document-text = l_text. ENDIF. ENDIF. MOVE gt_document-kunrg TO gt_customer-kunnr. COLLECT gt_customer. MODIFY

28、gt_document INDEX l_index1. ENDLOOP. * 得到客户数据 LOOP AT gt_customer. SELECT SINGLE * FROM kna1 WHERE kunnr = gt_customer-kunnr. IF sy-subrc = 0. IF kna1-ktokd NE Z006. 非一次性客户 MOVE-CORRESPONDING kna1 TO gt_customer. * 名称 CONCATENATE gt_customer-name1 gt_customer-name2 INTO gt_customer-name. gt_customer

29、-name3 = gt_customer-name1(20. * 地址 SELECT SINGLE * FROM adrc WHERE addrnumber = kna1-adrnr AND date_from = sy-datum. IF sy-subrc = 0. gt_customer-street = adrc-street. gt_customer-house_num1 = adrc-house_num1. CONCATENATE gt_customer-street gt_customer-house_num1 INTO gt_customer-addr. ENDIF. * 银行

30、SELECT * FROM knbk UP TO 1 ROWS WHERE kunnr = gt_customer-kunnr. ENDSELECT. IF sy-subrc = 0. gt_customer-bankl = knbk-bankl. * gt_customer-bankn = knbk-bankn. * 银行名称 SELECT SINGLE * FROM bnka WHERE banks = knbk-banks AND bankl = knbk-bankl. IF sy-subrc = 0. gt_customer-banka = bnka-banka. gt_custome

31、r-bankn = bnka-stras. ENDIF. ENDIF. ELSE. 一次性客户,客户数据要联系凭证数据设置 gt_customer-ktokd = Z006. ENDIF. ENDIF. MODIFY gt_customer. ENDLOOP. ENDFORM. frm_get_billing_document *&-* *& Form frm_set_output_data *&-* * text *-* * - p1 text * p1 text * set_table_for_first_display EXPORTING * i_structure_name = is_

32、layout = gw_layout CHANGING it_outtab = gt_output it_fieldcatalog = gt_fieldcat. ELSE. CALL METHOD g_alv_grid-refresh_table_display. ENDIF. ENDMODULE. STATUS_2000 OUTPUT *&-* *& Module USER_COMMAND_2000 INPUT *&-* * text *-* MODULE USER_COMMAND_2000 INPUT. * OK_CODE = SY-UCOMM. * CALL METHOD cl_gui_

33、cfw=dispatch. CASE ok_code. WHEN EXIT. CLEAR ok_code. PERFORM frm_free_alv_control. LEAVE TO SCREEN 0. WHEN ALLS. CLEAR ok_code. PERFORM frm_select_all_2000. WHEN ALLN. CLEAR ok_code. PERFORM frm_unselect_2000. WHEN EXPO. CLEAR ok_code. CALL METHOD g_alv_grid-check_changed_data. PERFORM frm_check_do

34、wnload_data CHANGING g_flag_download_chk. IF g_flag_download_chk EQ SPACE. PERFORM frm_download. ENDIF. WHEN OTHERS. CLEAR ok_code. CALL METHOD g_alv_grid-check_changed_data. ENDCASE. ENDMODULE. USER_COMMAND_2000 INPUT *&-* *& Form frm_free_alv_control *&-* * text *-* * - p1 text * free EXCEPTIONS others = 1. * IF sy-subrc NE 0. * CALL FUN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论