首页 > 其他分享 >跨公司预制发票及过账自动处理

跨公司预制发票及过账自动处理

时间:2025-01-17 18:31:25浏览次数:3  
标签:sy &--------------------------------------------------------------------- PE

*&---------------------------------------------------------------------*
*& Report ZFIR0054
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zfir0054.
TABLES:t001,isellist,lfa1,ekko.
TYPE-POOLS:slis,icon.
TABLES:sscrfields,icon,rlgrap..
DATA:gt_fieldcat TYPE lvc_t_fcat,
     gw_fieldcat TYPE lvc_s_fcat,
     gv_repid    TYPE sy-repid,
     gs_layout   TYPE lvc_s_layo.
DATA:lth_functxt TYPE smp_dyntxt.
DATA:gv_budat TYPE budat.
DATA:gr_budat TYPE RANGE OF mkpf-budat.

TYPES:BEGIN OF tys_out,
        bapi_mtype TYPE bapi_mtype,
        bapi_msg   TYPE bapi_msg,
        status     TYPE char10,
        bukrs      TYPE bukrs,
        bsart      TYPE ekko-bsart,
        mjahr      TYPE mjahr,
        monat      TYPE monat,
        lifnr      TYPE lifnr,
        budat      TYPE budat,
        ebeln      TYPE ebeln,
        ebelp      TYPE ebelp,
        matnr      TYPE matnr,
        erfmg      TYPE mseg-erfmg,
        wrbtr      TYPE ekbe-wrbtr,
        bstme      TYPE mseg-bstme,
        menge      TYPE menge_d,
        meins      TYPE meins,
        mwskz      TYPE mwskz,
        waers      TYPE waers,
        webre      TYPE ekpo-webre,
        zterm      TYPE ekko-zterm,
        mblnr      TYPE mblnr,
        zeile      TYPE mseg-zeile,
        re_belnr   TYPE re_belnr,
        belnr      TYPE belnr_d,
        datum      TYPE datum,
        uzeit      TYPE uzeit,
        uname      TYPE uname,
        sel(1),
      END OF tys_out.
DATA:gt_out TYPE TABLE OF tys_out.
SELECTION-SCREEN:BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-001.
  PARAMETERS:p1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND uex,
             p2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN:END OF BLOCK b2.

SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-002.
  PARAMETERS:p_bukrs TYPE t001-bukrs OBLIGATORY DEFAULT '2300'.
  PARAMETERS:p_ymonth TYPE isellist-month OBLIGATORY DEFAULT sy-datum+0(6).
  SELECT-OPTIONS:s_lifnr FOR lfa1-lifnr,
                 s_ebeln FOR ekko-ebeln.
SELECTION-SCREEN:END OF BLOCK b1.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ymonth.
  PERFORM frm_ymonth_helpf4.


START-OF-SELECTION.
  PERFORM frm_initial_data.
  IF p1 = 'X'.
    PERFORM frm_get_data.
  ELSEIF p2 = 'X'.
    PERFORM frm_get_rzdata.
  ENDIF.

  IF sy-batch =  'X'.
    PERFORM frm_create_invoice.
  ELSE.
    PERFORM frm_display_alv.
  ENDIF.

*&---------------------------------------------------------------------*
*& Form FRM_ymonth_HELPF4
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_ymonth_helpf4 .
  CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
    EXPORTING
      actual_month   = sy-datum+0(6)
*     FACTORY_CALENDAR                 = ' '
*     HOLIDAY_CALENDAR                 = ' '
*     LANGUAGE       = SY-LANGU
*     START_COLUMN   = 8
*     START_ROW      = 5
    IMPORTING
      selected_month = p_ymonth
*     RETURN_CODE    =
*   EXCEPTIONS
*     FACTORY_CALENDAR_NOT_FOUND       = 1
*     HOLIDAY_CALENDAR_NOT_FOUND       = 2
*     MONTH_NOT_FOUND                  = 3
*     OTHERS         = 4
    .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_alv .
  DATA:g_repid TYPE sy-repid.
  g_repid = sy-repid.
  "g_layout-zebra             = 'X' .
  gs_layout-zebra = 'X'.
  gs_layout-cwidth_opt = 'X'.
  gs_layout-box_fname = 'SEL'.
  CLEAR  gt_fieldcat[].
  PERFORM frm_generate_field_catalogu.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'SET_PF'
      i_callback_user_command  = 'USER_COM'
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fieldcat
    TABLES
      t_outtab                 = gt_out
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_PF
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM set_pf USING  extab TYPE slis_t_extab.
  REFRESH extab.
  IF p2 = 'X'.
    APPEND '&CREATE' TO extab.
  ENDIF.
  SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING extab.
ENDFORM.                    "SET_PF
*&---------------------------------------------------------------------*
*&      Form  user_com
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM user_com USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.
  DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
  DATA: gd_repid LIKE sy-repid,
        ref_grid TYPE REF TO cl_gui_alv_grid.
  DATA:lv_answer.

  IF ref_grid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_grid = ref_grid.
  ENDIF.
  IF NOT ref_grid IS INITIAL.
    CALL METHOD ref_grid->check_changed_data.
  ENDIF.

  CASE r_ucomm.
    WHEN '&BACK' OR '&EXI

标签:sy,&---------------------------------------------------------------------,PE
From: https://blog.csdn.net/twins622/article/details/145175932

相关文章

  • Python扫描枪读取发票数据导入Excel
    财务需要一个扫描枪扫描发票文件,并将主要信息录入Excel的功能。文件中sheet表的列名称,依次为:发票编号、发票编码、日期、金额、工号、扫描日期。扫描的时候,Excel文件需要关闭,否则会报错。importopenpyxlimportdatetimedefwrite_line_excel(text):iftext=='':......
  • 翔云发票查验接口、防范税务风险
    ‌发票查验的主要作用包括保障财务数据真实准确、防范税务风险、维护企业经济利益以及保障国家税收安全‌。‌保障财务数据真实准确‌是发票查验的重要作用之一。发票是经济业务发生的原始凭证,记录了交易的关键信息。通过查验发票,可以确保财务信息的真实性,从而为......
  • 发票功能页
    发票功能页从基础库版本2.16.1起,该功能页已经废弃,可以直接使用wx.chooseInvoice实现对应的功能;点击functional-page-navigator也将不再进入功能页,直接进入发票选择页。文档发票功能页用于展示用户的发票列表,用户可以选择其中的发票。自基础库版本 2.14.1 开始支持。调用......
  • 发票抬头功能页
    发票抬头功能页从基础库版本2.16.1起,该功能页已经废弃,可以直接使用wx.chooseInvoiceTitle实现对应的功能;点击functional-page-navigator也将不再进入功能页,直接进入发票抬头选择页。文档发票抬头功能页用于展示用户的发票抬头列表,用户可以选择其中的发票抬头。自基础库版......
  • octave作为matlab的有效替代,预制参数放置
    octave小巧,免费,无需考虑许可证的问题。但是使用和matlab有点小的区别,例如有些包需要显式加载,还有做图引擎的选择,原来使用的qt挺好,也许是系统升级,也许是软件升级,画图出现问题。虽然也找到了解决办法,就是每次都执行下graphics_toolkit('fltk'),但是对每一次运行脚本时,要不就在脚......
  • 关于QFramework UIKit和ResKit生成的UI预制体打包后报错Failed to Create Res. Not Fi
     使用UIKit创建UIPrefb后打包发布后提示FailedtoCreateRes.NotFindByResSearchKeys:AssetName:basepanelBundleName:TypeName:UnityEngine.GameObject,找不到所需资源。下方如图1-1的报错。图1-1问题原因:一开始以为是没有按照教程所说的流程来创建。按照教程所说......
  • Easy发票查验软件新增“铁路电子发票明细“表,全量、批量提取铁路电子发票信息
    铁路电子发票实行后,售票和退票的费用均可开具铁路电子发票,但两类业务的税率有所不同:售票税率为9%,退票税率为6%。由于铁路电子发票票面未显示税率和税额,给使用带来了一定不便。针对这一问题,Easy发票查验软件新增了“铁路电子发票明细”功能,可全量、批量提取发票信息至明细表中,包......
  • 文字识别接口应用场景解析-身份证识别、发票识别API、车牌识别
    在快节奏的工作与生活环境中,如何提高企业工作效率、提升用户体验成为了人们追求的共同目标。针对市场发展需求,一种将任意场景图片中的文字转换为可编辑文本的文字识别技术出现在大众视野。翔云人工智能开放平台通过不断的技术创新,基于深度学习算法与自主ocr核心技术,提供了......
  • SAP:关于创建销售订单-交货/拣配-审批信贷-过账的接口
    关于本来要分几步做的接口业务强制要求集成到一步的那些抽象需求已知该接口要有几次调用中间出错要保存错误消息,不然哪一步出错都不知道。所以要建一个消息表,组件接口调用的唯一标识销售订单号交货单号过账状态标记(E/W/S或者整个1-9记录哪一步出错)消息点击查看代码D......
  • PDF电子发票怎么合并在一起,免费在线教学
    在日常生活和工作中,我们常常需要处理多个PDF格式的发票。这些文件可能来自不同的商家或服务,而合并它们成为一个文档,不仅方便查阅,还能帮助我们更好地管理财务。今天,我将为大家提供一份简单易懂的教程,教你如何免费合并多个PDF发票,轻松实现文档整合。为什么需要合并PDF发票?合并......