ZSD019发票号码查询报表

47 篇文章 0 订阅
来吧,一起写的。SD发票号码查询表报。做个记录:
  1. *&---------------------------------------------------------------------*  
  2. *& Report  ZSD019  
  3. *&---------------------------------------------------------------------*  
  4. * Author  : Jasson.Lee  
  5. * Date    : 2011.12.15  
  6. * Purpose : 发票号码登记  
  7. * Modi Log: 2011.12.15  Jasson.Lee Create  
  8. * Modi Log:  
  9. * Modi Log:  
  10. * Modi Log:  
  11. *----------------------------------------------------------------------  
  12. REPORT  zsd019.  
  13. TABLES: vbrk.  
  14. TYPE-POOLS: slis.  
  15. *--------------------------------  
  16. * Selection Screen  
  17. *--------------------------------  
  18. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.  
  19. SELECT-OPTIONS:  
  20.   s_org FOR vbrk-vkorg,  "销售组织  
  21.   s_date FOR vbrk-erdat. "记录的创建日期  
  22. SELECTION-SCREEN END OF BLOCK b1.  
  23.   
  24. *****************************************************************************  
  25. DATA: g_status TYPE slis_formname VALUE 'STANDARD_02'.        "加工具栏  
  26.   
  27. DATA:  
  28.       i_fieldcat_alv    TYPE slis_t_fieldcat_alv,  
  29.       i_fieldcat        TYPE slis_fieldcat_alv,  
  30.       i_layout          TYPE slis_layout_alv,  
  31.       i_events          TYPE slis_t_event,  
  32.       w_events          LIKE LINE OF i_events,  
  33.       i_list_comments   TYPE slis_t_listheader,  
  34.       w_list_comments   LIKE LINE OF i_list_comments,  
  35.       gt_sort           TYPE slis_t_sortinfo_alv,  
  36.       w_repid           LIKE sy-repid.  
  37.   
  38. DATA:  
  39.       w_loop        TYPE sy-tabix,  
  40.       sy_title(50)  TYPE c VALUE '              发票号码登记',  
  41.       sy_date(50)   TYPE c,  
  42.       netwr_sum     TYPE netwr_ak.  
  43.   
  44. DATA: BEGIN OF i_tab2 OCCURS 0,  
  45.         fkdat    LIKE vbrk-fkdat, "凭证日期  
  46.         kunrg    LIKE vbrk-kunrg, "送达方  
  47.         vbeln    LIKE vbrk-vbeln, "编号  
  48.         netwr    LIKE vbrk-netwr, "凭证货币中销售订单的净值  
  49.         waerk    LIKE vbrk-waerk, "SD凭证货币  
  50.         beizhu(50)    TYPE c, "备注  
  51.        END OF i_tab2.  
  52.   
  53. DATA scount(8).  
  54. DATA :rcount LIKE sy-tabix.  
  55. DATA lstr(20).  
  56. *--------------------------------  
  57. * Initialization  
  58. *--------------------------------  
  59. INITIALIZATION.  
  60. *--------------------------------  
  61. * At Selection Screen PBO  
  62. *--------------------------------  
  63. AT SELECTION-SCREEN OUTPUT.  
  64. *--------------------------------  
  65. * Start of Selection  
  66. *--------------------------------  
  67. START-OF-SELECTION.  
  68.   PERFORM get_data.  
  69.   PERFORM process_data.  
  70.   PERFORM cal_data.  
  71.   PERFORM events_build.  
  72. *  PERFORM sort_build CHANGING gt_sort.  
  73.   PERFORM layout_build.  
  74.   PERFORM fields_build.  
  75.   PERFORM display_data.  
  76.   
  77. END-OF-SELECTION.  
  78. *--------------------------------  
  79. * Top of Page  
  80. *--------------------------------  
  81. TOP-OF-PAGE.  
  82. *&---------------------------------------------------------------------*  
  83. *&      Form  get_data  
  84. *&---------------------------------------------------------------------*  
  85. FORM get_data.  
  86.   
  87.   SELECT  k~fkdat  k~kunrg k~vbeln k~netwr k~waerk  
  88.     INTO CORRESPONDING FIELDS OF TABLE i_tab2  
  89.     FROM vbrk AS k  
  90.     WHERE k~vkorg IN s_org  
  91.     AND   k~erdat IN s_date  
  92.     AND  k~vbtyp  NOT IN ('U','5','6').  
  93.   
  94.   IF i_tab2[] IS INITIAL .  
  95.     MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.  
  96.     LEAVE LIST-PROCESSING .  
  97.   ENDIF.  
  98.   
  99. ENDFORM.                    "get_data  
  100. *&---------------------------------------------------------------------*  
  101. *&      Form  process_data  
  102. *&---------------------------------------------------------------------*  
  103. FORM process_data.  
  104.   
  105. ENDFORM.                    "process_data  
  106. *&---------------------------------------------------------------------*  
  107. *&      Form  CAL_DATA  
  108. *&---------------------------------------------------------------------*  
  109. FORM cal_data .  
  110.   DESCRIBE TABLE i_tab2 LINES rcount.  
  111. *  scount = rcount.  
  112. *  CONCATENATE '符合条件的记录数:' scount INTO lstr.  
  113.   CONCATENATE  sy-datum+0(4) '年' sy-datum+4(2) '月' sy-datum+6(2) '日'   INTO sy_date.  
  114.   
  115.   IF i_tab2[] IS INITIAL .  
  116.     MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.  
  117.     LEAVE LIST-PROCESSING .  
  118.   ENDIF.  
  119. ENDFORM.                    " CAL_DATA  
  120. *&---------------------------------------------------------------------*  
  121. *&      Form  EVENTS_BUILD  
  122. *&---------------------------------------------------------------------*  
  123. FORM events_build .  
  124.   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'  
  125.     EXPORTING  
  126.       i_list_type = 0  
  127.     IMPORTING  
  128.       et_events   = i_events.  
  129.   
  130.   READ TABLE i_events  WITH KEY name = 'TOP_OF_PAGE'  INTO w_events.  
  131.   IF sy-subrc = 0.  
  132.     MOVE 'ALV_TOP_OF_PAGE' TO w_events-form.  
  133.     MODIFY i_events FROM w_events INDEX sy-tabix.  
  134.   ENDIF.  
  135.   
  136.   READ TABLE i_events  WITH KEY name = 'END_OF_LIST'  INTO w_events.  
  137.   IF sy-subrc = 0.  
  138.     MOVE 'ALV_END_OF_LIST' TO w_events-form.  
  139.     MODIFY i_events FROM w_events INDEX sy-tabix.  
  140.   ENDIF.  
  141.   
  142.   READ TABLE i_events WITH KEY name = 'USER_COMMAND'   INTO w_events.  
  143.   IF sy-subrc = 0.  
  144.     MOVE 'USER_COMMAND' TO w_events-form.  
  145.     MODIFY i_events FROM w_events INDEX sy-tabix.  
  146.   ENDIF.  
  147.   
  148. ENDFORM.                    " EVENTS_BUILD  
  149. *&---------------------------------------------------------------------*  
  150. *&      Form  layout_sort_build  
  151. *&---------------------------------------------------------------------*  
  152. FORM sort_build CHANGING lt_sort TYPE slis_t_sortinfo_alv.  
  153.   DATA ls_sort TYPE slis_sortinfo_alv.  
  154. * Key  
  155.   CLEAR ls_sort.  
  156.   ls_sort-fieldname = 'WAERK'."币别  
  157.   ls_sort-spos = 1.  
  158.   ls_sort-up = 'X'.  
  159.   ls_sort-subtot = 'X'.  
  160.   APPEND ls_sort TO lt_sort.  
  161. ENDFORM. " LAYOUT_sort_build  
  162. *&--------------------------------------------------------------------*  
  163. *&      Form  ALV_END_OF_LIST  
  164. *&--------------------------------------------------------------------*  
  165. FORM alv_top_of_page.  
  166.   
  167.   CLEAR: i_list_comments.  
  168.   w_list_comments-typ = 'H'.  
  169.   w_list_comments-key = ''.  
  170.   w_list_comments-info = sy_title.  
  171.   APPEND w_list_comments TO i_list_comments.  
  172.   CLEAR w_list_comments.  
  173.   
  174.   w_list_comments-typ = 'H'.  
  175.   w_list_comments-key = ''.  
  176.   w_list_comments-info = ''.  
  177.   APPEND w_list_comments TO i_list_comments.  
  178.   CLEAR w_list_comments.  
  179.   
  180.   w_list_comments-typ = 'H'.  
  181.   w_list_comments-key = ''.  
  182.   w_list_comments-info = sy_date.  
  183.   APPEND w_list_comments TO i_list_comments.  
  184.   CLEAR w_list_comments.  
  185.   
  186.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'  
  187.     EXPORTING  
  188.       it_list_commentary = i_list_comments  
  189.       i_end_of_list_grid = 'X'.  
  190. ENDFORM.                    "ALV_TOP_OF_PAGE  
  191. *&--------------------------------------------------------------------*  
  192. *&      Form  ALV_END_OF_LIST  
  193. *&--------------------------------------------------------------------*  
  194. FORM alv_end_of_list.  
  195.   CLEAR: i_list_comments.  
  196.   w_list_comments-typ = 'H'.  
  197.   w_list_comments-key = ''.  
  198.   w_list_comments-info = lstr.  
  199.   APPEND w_list_comments TO i_list_comments.  
  200.   CLEAR w_list_comments.  
  201.   
  202.   w_list_comments-typ = 'S'.  
  203.   w_list_comments-key = ''.  
  204.   w_list_comments-info = '    报表开发者:IT部          重新开发日期:2011/12/15 '.  
  205.   APPEND w_list_comments TO i_list_comments.  
  206.   CLEAR w_list_comments.  
  207.   
  208.   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'  
  209.     EXPORTING  
  210.       it_list_commentary = i_list_comments  
  211.       i_end_of_list_grid = 'X'.  
  212. ENDFORM.                    "ALV_END_OF_LIST  
  213. *&---------------------------------------------------------------------*  
  214. *&      Form  LAYOUT_BUILD  
  215. *&---------------------------------------------------------------------*  
  216. FORM layout_build .  
  217.   i_layout-zebra                = 'X' .         " 显示界面成色带交替  
  218.   i_layout-detail_popup         = 'X'.          "弹出详细信息窗口  
  219.   i_layout-info_fieldname       = 'COLOR'.      "颜色值  
  220. *  I_LAYOUT-COLWIDTH_OPTIMIZE   = 'X'.          "优化列宽选项  
  221.   i_layout-detail_initial_lines = 'X'.  
  222.   i_layout-detail_titlebar      = '发票号码登记'.  
  223.   i_layout-no_colhead           =' '.  
  224. *  I_LAYOUT-BOX_FIELDNAME       = 'BOX' .       " 指明复选框  
  225.   w_repid = sy-repid.  
  226. ENDFORM.                    " LAYOUT_BUILD  
  227. *&---------------------------------------------------------------------*  
  228. *&      Form  DISPLAY_DATA  
  229. *&---------------------------------------------------------------------*  
  230. FORM display_data .  
  231. *   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'  
  232.   CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'  
  233.     EXPORTING  
  234.       i_callback_user_command  = 'USER_COMMAND'           "用户触发事件  
  235.       i_callback_pf_status_set = g_status                 "调用用户事件和按钮事件  
  236.       i_callback_program       = w_repid                  "当前程序  
  237.       is_layout                = i_layout                 "子函数layout_build填充的格式定义  
  238.       it_fieldcat              = i_fieldcat_alv[]         "子函数fields填充的各列  
  239.       it_events                = i_events[]  
  240.       it_sort                  = gt_sort[]  
  241.       i_save                   = 'A'                      "保存变式  
  242.     TABLES  
  243.       t_outtab                 = i_tab2.                  "假设数据都在itab内表中  
  244.   
  245. ENDFORM.                    " DISPLAY_DATA  
  246. *-----------------------------------------------------------------------  
  247. *    FORM PF_STATUS_SET   加工具栏  
  248. *-----------------------------------------------------------------------  
  249. FORM standard_02 USING  extab TYPE slis_t_extab.  
  250.   SET PF-STATUS 'STD' EXCLUDING extab.  
  251. ENDFORM.                    "STANDARD_02  
  252. *&---------------------------------------------------------------------*  
  253. *&      Form  USER_COMMAND  
  254. *&---------------------------------------------------------------------*  
  255. FORM user_command  USING i_ucomm LIKE sy-ucomm  
  256.                          selfield TYPE slis_selfield.  
  257.   CASE i_ucomm.  
  258.     WHEN '&IC1'.  
  259.       CASE selfield-sel_tab_field.  
  260.         WHEN 'I_TAB2-VBELN'.  
  261.           SET PARAMETER ID 'VF' FIELD selfield-value.  
  262.           CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN..  
  263.       ENDCASE.  
  264.     WHEN OTHERS.  
  265.   ENDCASE.  
  266.   
  267. ENDFORM.                    "callback_ucomm  
  268. *&---------------------------------------------------------------------*  
  269. *&      Form  FIELDS_BUILD  
  270. *&---------------------------------------------------------------------*  
  271. FORM fields_build .  
  272.   
  273.   DATA tmp_pos TYPE i.  
  274.   REFRESH i_fieldcat_alv.  
  275.   CLEAR   i_fieldcat.  
  276.   
  277.   tmp_pos = tmp_pos + 1.  
  278.   i_fieldcat-col_pos = tmp_pos.  
  279.   i_fieldcat-fieldname = 'FKDAT'.  
  280.   i_fieldcat-seltext_l = '凭证日期'.  
  281.   i_fieldcat-outputlen = 10.  
  282.   APPEND i_fieldcat TO i_fieldcat_alv.  
  283.   CLEAR i_fieldcat.  
  284.   
  285.   tmp_pos = tmp_pos + 1.  
  286.   i_fieldcat-col_pos = tmp_pos.  
  287.   i_fieldcat-fieldname = 'KUNRG'.  
  288.   i_fieldcat-seltext_l = '送达方'.  
  289.   i_fieldcat-outputlen = 10.  
  290.   APPEND i_fieldcat TO i_fieldcat_alv.  
  291.   CLEAR i_fieldcat.  
  292.   
  293.   tmp_pos = tmp_pos + 1.  
  294.   i_fieldcat-col_pos = tmp_pos.  
  295.   i_fieldcat-fieldname = 'VBELN'.  
  296.   i_fieldcat-seltext_l = 'INVOICE'.  
  297.   i_fieldcat-outputlen = 10.  
  298.   i_fieldcat-no_zero   = 'X'.  
  299.   APPEND i_fieldcat TO i_fieldcat_alv.  
  300.   CLEAR i_fieldcat.  
  301.   
  302.   tmp_pos = tmp_pos + 1.  
  303.   i_fieldcat-col_pos = tmp_pos.  
  304.   i_fieldcat-fieldname = 'NETWR'.  
  305.   i_fieldcat-seltext_l = '金额'.  
  306.   i_fieldcat-outputlen = 15.  
  307.   i_fieldcat-no_zero   = 'X'.  
  308.   i_fieldcat-qfieldname = 'WAERK'.  
  309.   i_fieldcat-do_sum = 'X'.  
  310.   APPEND i_fieldcat TO i_fieldcat_alv.  
  311.   CLEAR i_fieldcat.  
  312.   
  313.   tmp_pos = tmp_pos + 1.  
  314.   i_fieldcat-col_pos = tmp_pos.  
  315.   i_fieldcat-fieldname = 'WAERK'.  
  316.   i_fieldcat-seltext_l = '币别'.  
  317.   i_fieldcat-outputlen = 5.  
  318.   i_fieldcat-no_zero   = 'X'.  
  319.   APPEND i_fieldcat TO i_fieldcat_alv.  
  320.   CLEAR i_fieldcat.  
  321.   
  322.   tmp_pos = tmp_pos + 1.  
  323.   i_fieldcat-col_pos = tmp_pos.  
  324.   i_fieldcat-fieldname = 'BEIZHU'.  
  325.   i_fieldcat-seltext_l = '备注'.  
  326.   i_fieldcat-outputlen = 5.  
  327.   i_fieldcat-no_zero   = 'X'.  
  328.   APPEND i_fieldcat TO i_fieldcat_alv.  
  329.   CLEAR i_fieldcat.  
  330.   
  331. ENDFORM.                    " FIELDS_BUILD  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值