当前位置: 首页 > news >正文

详细介绍:SAP FICO发出商品报表分享

一、报表逻辑

二、报表界面

三、报表代码

*&---------------------------------------------------------------------*
*& 程序名: ZRPFI_021
*&
*&---------------------------------------------------------------------*
*& 创建者(公司)/日期:
*& 工具描述:
*& 1.发出商品报表
*& 2.
*&---------------------------------------------------------------------*
*& 版本/修改者(公司)/日期//修改描述
*&
*&
*&---------------------------------------------------------------------*


REPORT ZRPFI_021.


INCLUDE ZRPFI_021_TOP.

INCLUDE ZRPFI_021_LCL .

INCLUDE ZRPFI_021_F01 .

AT SELECTION-SCREEN OUTPUT.
PERFORM FRM_CHG_SCRN.


AT SELECTION-SCREEN.
"权限检查
* DATA: LV_MESSAGE TYPE STRING.
* AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
* ID 'BUKRS' FIELD PA_BUKRS.
* IF SY-SUBRC <> 0.
* LV_MESSAGE = '没有' && PA_BUKRS && '公司代码权限!'.
* MESSAGE LV_MESSAGE TYPE 'E'.
* ENDIF.

START-OF-SELECTION.

PERFORM FRM_CHECK_INPUT.

CASE 'X'.
WHEN PA_EXE.
PERFORM FRM_AUTHORITY USING '10'.
PERFORM FRM_GET_DATA_EXE.
WHEN OTHERS.
PERFORM FRM_AUTHORITY USING '03'.
PERFORM FRM_GET_DATA_REVNSRH.
ENDCASE.
PERFORM FRM_SHOW_ALV.

*&---------------------------------------------------------------------*
*& 包含 ZRPFI_021_TOP
*&---------------------------------------------------------------------*

TABLES:ACDOCA.

SELECTION-SCREEN:BEGIN OF BLOCK B01 WITH FRAME.
PARAMETERS:PA_BUKRS TYPE ACDOCA-RBUKRS OBLIGATORY .
SELECT-OPTIONS :SO_WERKS FOR ACDOCA-WERKS.
PARAMETERS:PA_GJAHR TYPE ACDOCA-GJAHR OBLIGATORY,
PA_POPER TYPE ACDOCA-POPER OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK B01 .


SELECTION-SCREEN:BEGIN OF BLOCK B02 WITH FRAME.
PARAMETERS:PA_EXE TYPE C RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND G1,
PA_REV TYPE C RADIOBUTTON GROUP G1,
PA_SRH TYPE C RADIOBUTTON GROUP G1.

SELECTION-SCREEN:END OF BLOCK B02 .


DATA:BEGIN OF GS_OUT,
STATUS TYPE C LENGTH 20, "红绿灯
MSG(100) TYPE C.
INCLUDE STRUCTURE ZTFI021 .
DATA: END OF GS_OUT.

DATA:GT_OUT LIKE TABLE OF GS_OUT,
GV_FIRSTDATE TYPE SY-DATUM,
GV_LASTDATE TYPE SY-DATUM, "输入期间最后一天
GV_NEXTDATE TYPE SY-DATUM. "输入期间最后一天+1


DATA: GR_TABLE TYPE REF TO CL_SALV_TABLE,
GR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,
GR_COLUMN TYPE REF TO CL_SALV_COLUMN_TABLE,
GR_DISPLAY TYPE REF TO CL_SALV_DISPLAY_SETTINGS,
GR_LAYOUT TYPE REF TO CL_SALV_LAYOUT.

*&---------------------------------------------------------------------*
*& 包含 ZRPFI_021_LCL
*&---------------------------------------------------------------------*

CLASS L_CL_HANDLE_EVENTS DEFINITION.
PUBLIC SECTION.
METHODS: ON_USER_COMMAND FOR EVENT ADDED_FUNCTION OF CL_SALV_EVENTS_TABLE
IMPORTING E_SALV_FUNCTION.

METHODS: ON_CLICK FOR EVENT LINK_CLICK OF CL_SALV_EVENTS_TABLE
IMPORTING ROW COLUMN.
ENDCLASS.

CLASS L_CL_HANDLE_EVENTS IMPLEMENTATION.
METHOD ON_USER_COMMAND.
PERFORM HANDLE_USER_COMMAND USING E_SALV_FUNCTION.
ENDMETHOD.

METHOD ON_CLICK.
PERFORM HANDLE_ON_CLICK USING ROW COLUMN.
ENDMETHOD.
ENDCLASS.
*&---------------------------------------------------------------------*
*& Form HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> E_SALV_FUNCTION
*&---------------------------------------------------------------------*
FORM HANDLE_USER_COMMAND USING E_SALV_FUNCTION.

CASE E_SALV_FUNCTION.
WHEN 'ZPOST'.
PERFORM FRM_CHECK_PERIOD.

CHECK SY-SUBRC EQ 0.

PERFORM FRM_ZPOST.

WHEN 'ZREV'.

PERFORM FRM_ZREVERSE.

ENDCASE.

GR_TABLE->REFRESH( ).


ENDFORM.
*&---------------------------------------------------------------------*
*& Form HANDLE_ON_CLICK
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> ROW
*& --> COLUMN
*&---------------------------------------------------------------------*
FORM HANDLE_ON_CLICK USING P_ROW
P_COLUMN.

READ TABLE GT_OUT INTO GS_OUT INDEX P_ROW.
IF SY-SUBRC EQ 0.

IF P_COLUMN EQ 'VBELN' AND GS_OUT-VBELN IS NOT INITIAL.
SET PARAMETER ID 'VL' FIELD GS_OUT-VBELN.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDIF.

IF P_COLUMN EQ 'ZZXPZ' AND GS_OUT-ZZXPZ IS NOT INITIAL.
SET PARAMETER ID 'BLN' FIELD GS_OUT-ZZXPZ.
SET PARAMETER ID 'BUK' FIELD GS_OUT-BUKRS.
SET PARAMETER ID 'GJR' FIELD GS_OUT-ZZXPZND.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.

IF P_COLUMN EQ 'ZFXPZ' AND GS_OUT-ZFXPZ IS NOT INITIAL.
SET PARAMETER ID 'BLN' FIELD GS_OUT-ZFXPZ.
SET PARAMETER ID 'BUK' FIELD GS_OUT-BUKRS.
SET PARAMETER ID 'GJR' FIELD GS_OUT-ZFXPZND.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.

ENDIF.



ENDFORM.

*&---------------------------------------------------------------------*
*& 包括 ZRPFI_021_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_INPUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_check_input .

DATA:lv_last TYPE sy-datum, "上个月最后一天
lv_now TYPE sy-datum,
lv_date TYPE sy-datum. "本月第一天

DATA:lv_msg TYPE string.

IF pa_srh IS INITIAL .

lv_now+0(6) = sy-datum+0(6).
lv_now+6(2) = '01'.

lv_last = lv_now - 1.

IF NOT ( ( pa_poper EQ lv_last+4(2) AND pa_gjahr EQ lv_last+0(4) ) OR
( pa_poper EQ lv_now+4(2) AND pa_gjahr EQ lv_now+0(4) ) ).

MESSAGE '“执行”按钮只允许的年度期间为实际操作当月或上月,其他月份请勾选“查询”按钮查询'
TYPE 'S' DISPLAY LIKE 'E'.
STOP.

ENDIF.

IF pa_rev IS NOT INITIAL."冲销只检查区间
REFRESH:so_werks.
RETURN.
ENDIF.

SELECT SINGLE * FROM ztfi021 INTO @DATA(lt_ztfi021)
WHERE zbukrs = @pa_bukrs
AND zgjahr = @pa_gjahr
AND zpoper = @pa_poper
AND zdelete = ''.
IF sy-subrc EQ 0.

CLEAR:lv_msg .
CONCATENATE '公司代码:' pa_bukrs ' 年度:' pa_gjahr ' 期间:'
pa_poper '数据已存在,请查询或者冲销后重新执行'
INTO lv_msg.

MESSAGE lv_msg TYPE 'S' DISPLAY LIKE 'E'.
STOP.

ENDIF.

lv_date = pa_gjahr && pa_poper+1(2) && '01'.

CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = lv_date
IMPORTING
last_day_of_month = gv_lastdate
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.

gv_nextdate = gv_lastdate + 1.

gv_firstdate = gv_lastdate+0(6) && '01'.
ENDIF.



REFRESH:gt_out.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA_EXE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_data_exe .

RANGES:ra_vstel FOR likp-vstel.

SELECT a~vstel AS low,
'EQ' AS option,
'I' AS sign
FROM tvswz AS a
INNER JOIN t001w AS b ON a~werks = b~werks
INNER JOIN t001k AS c ON b~bwkey = c~bwkey
WHERE bukrs = @pa_bukrs
INTO CORRESPONDING FIELDS OF TABLE @ra_vstel.

IF ra_vstel[] IS INITIAL.
MESSAGE '无符合条件数据'
TYPE 'S' DISPLAY LIKE 'E'.
STOP.
ENDIF.

SELECT a~vbeln,a~posnr,
b~lfart,
b~wadat_ist FROM lips AS a
INNER JOIN likp AS b ON a~vbeln = b~vbeln
WHERE b~gbstk IN ( 'A','B' )
AND b~vstel IN @ra_vstel
AND wbstk = 'C'
AND wadat_ist LE @gv_lastdate

UNION

SELECT vgbel AS vbeln,
vgpos AS posnr,
b~lfart,
b~wadat_ist FROM vbrp AS a
INNER JOIN likp AS b ON a~vgbel = b~vbeln
WHERE gbstk_ana = 'A'
AND b~vstel IN @ra_vstel
AND wadat_ist LE @gv_lastdate

http://www.jsqmd.com/news/293529/

相关文章:

  • 2026年合肥地区MNS2.0配电柜品牌排名,哪家口碑好值得选?
  • 2026年活性炭过滤器厂家排名,杭州超滤实业有限公司靠谱吗?
  • 盘点山东地区专业的碳钢真空波纹管生产厂排名
  • 2026年实力强的GEO优化公司Top10,引领行业发展潮流
  • 盘点普联成基本信息,看这家食品级塑料包装企业实力几何
  • 说说2026年口碑好的全平台代运营公司排名情况
  • 人工智能应用-机器视觉:AI 鉴伪 08.虚假图片鉴别
  • 基于PLC控制的物料自动检测与分拣系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于PLC的自动化立体仓储系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 【Spring全家桶】-一文弄懂Spring框架
  • 【AI应用开发工程师】-带你弄懂Skills如何省 Token?
  • 专科生必看!9个降AIGC工具推荐,高效解决AI识别问题
  • 导师严选8个AI论文平台,继续教育学生轻松搞定毕业论文!
  • 汽车贴膜优选2026:揭秘靠谱店铺名单,车衣改色/隐形车衣/沈北贴膜/贴车衣/沈北车衣/改色膜,汽车贴膜连锁中心哪个好
  • 什么是网络割接 - 指南
  • 2025年索具优选:成套索具品牌榜来袭!捆绑索具/防割吊带/引纸绳/钢锭吊具/钢丝绳/抛缆绳,索具生产商哪里有卖
  • 星辰与道钉:一则关于“AI元人文”构想转折时刻的纪实
  • WebUploader在网页中实现文件上传下载有哪些解决方案?
  • 百度免费上传组件在网页文件上传下载中有哪些应用方案?
  • 使用vue-cli构建网页时,文件上传下载有哪些推荐方案?
  • 百度WebUploader如何助力网页文件上传下载的解决方案?
  • 跨平台CKEDITOR粘贴WORD为何在Linux系统下失效?
  • 国产化CKEDITOR插件如何解决WORD导入兼容问题?
  • DeepSeek + Dify:零成本打造私有化 AI 知识库(下)
  • 蛋白质质谱鉴定前样品制备注意事项
  • 第 168 场双周赛Q1——3722. 反转后字典序最小的字符串
  • 深入解析:第1章 Shell 脚本入门:从 “Hello World“ 到自动化执行的完整路径
  • 工业触摸屏:电阻式触摸屏详解
  • 桨叶干燥机评测2026:耐用性佳的厂家产品盘点,喷雾干燥机/桨叶干燥机/干燥机/闪蒸干燥机,桨叶干燥机定制厂家推荐排行
  • 2026年河北热门橡胶制品定制生产厂排名,哪家更值得选?