*&---------------------------------------------------------------------*
*& Report ZMMR00096 采购价差扣款清单
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmmr00096.
*----------------------------------------------------------------------*
* INCLUDE 、 TYPES_POOLS 、 TABLES 引 用 区 *
*----------------------------------------------------------------------*
TABLES : ztmm0096_head, ztmm0096_item ,ztmm0066_item .
*----------------------------------------------------------------------*
* T Y P E S - 结 构 定 义 *
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_report,
mandt TYPE ztmm0096_head-mandt, ""集团
zkknum TYPE ztmm0096_head-zkknum, ""价差扣款单号
bukrs TYPE ztmm0096_head-bukrs, ""公司代码
name1 TYPE ztmm0096_head-name1, ""公司名称
zhjdat TYPE ztmm0096_head-zhjdat, ""核价基准日
zyear TYPE ztmm0096_head-zyear, ""物料凭证的年份
zmonth TYPE ztmm0096_head-zmonth, ""月份
status TYPE ztmm0096_head-status, ""价差扣款状态
zconf_man TYPE ztmm0096_head-zconf_man, ""确认人
del_flag TYPE ztmm0096_head-del_flag, ""删除标记
del_man TYPE ztmm0096_head-del_man, ""删除人
del_date TYPE ztmm0096_head-del_date, ""删除日期
del_time TYPE ztmm0096_head-del_time, ""删除时间
cuser TYPE ztmm0096_head-cuser, ""创建者
cdate TYPE ztmm0096_head-cdate, ""创建日期
ctime TYPE ztmm0096_head-ctime, ""创建时间
uuser TYPE ztmm0096_head-uuser, ""变更者
udate TYPE ztmm0096_head-udate, ""变更日期
utime TYPE ztmm0096_head-utime, ""变更时间
zmark TYPE ztmm0096_head-zmark, ""备注
zkkline TYPE ztmm0096_item-zkkline, ""项次
zzgrid TYPE ztmm0096_item-zzgrid, ""对账单号码
zzline TYPE ztmm0096_item-zzline, ""对账行号
zdtyp TYPE ztmm0096_item-zdtyp, ""对账类型
ebeln TYPE ztmm0096_item-ebeln, ""采购凭证编号
ebelp TYPE ztmm0096_item-ebelp, ""采购凭证的项目编号
ekorg TYPE ztmm0096_item-ekorg, ""采购组织
lifnr TYPE ztmm0096_item-lifnr, ""供应商或债权人的帐号
zflg_js TYPE ztmm0096_item-zflg_js, ""寄售标识
ernam TYPE ztmm0096_item-ernam, ""对账单创建人
erdat TYPE ztmm0096_item-erdat, ""对账单创建日
kpdate TYPE ztmm0096_item-kpdate, ""SAP凭证过账日期
fpdate TYPE ztmm0096_item-fpdate, ""发票日期
matnr TYPE ztmm0096_item-matnr, ""物料编号
maktx TYPE ztmm0096_item-maktx, ""物料描述
mengest TYPE ztmm0096_item-mengest, ""送/退货数量
menge TYPE ztmm0096_item-menge, ""可对账数量
mengehas TYPE ztmm0096_item-mengehas, ""已对账数量
mengeyt TYPE ztmm0096_item-mengeyt, ""验退数量
meins TYPE ztmm0096_item-meins, ""基本计量单位
mwskz TYPE ztmm0096_item-mwskz, ""销售/购买税代码
sqwrbtr TYPE ztmm0096_item-sqwrbtr, ""税前单价
wrbtr TYPE ztmm0096_item-wrbtr, ""税前金额
hswrbtr TYPE ztmm0096_item-hswrbtr, ""含税单价
hsje TYPE ztmm0096_item-hsje, ""含税金额
waers TYPE ztmm0096_item-waers, ""货币码
budat TYPE ztmm0096_item-budat, ""凭证中的过账日期
belnr TYPE ztmm0096_item-belnr, ""物料凭证编号
buzei TYPE ztmm0096_item-buzei, ""物料凭证中的项目
xblnr TYPE ztmm0096_item-xblnr, ""IDN号码
lfbnr TYPE ztmm0096_item-lfbnr, ""参考凭证的凭证号
lfpos TYPE ztmm0096_item-lfpos, ""参考凭证项目
zzbelnr TYPE ztmm0096_item-zzbelnr, ""SAP发票号码
zhj TYPE ztmm0096_item-zhj, ""核价单价
zprc_dif TYPE ztmm0096_item-zprc_dif, ""采购价差
zjecy TYPE ztmm0096_item-zjecy, ""价差金额
zebeln TYPE ztmm0096_item-zebeln, ""扣款采购单号
zebelp TYPE ztmm0096_item-zebelp, ""扣款采购项次
remark TYPE ztmm0096_item-remark, ""备注
message TYPE ztmm0096_item-message, ""消息文本"
END OF ty_report.
*----------------------------------------------------------------------*
* DATA 定义 *
*----------------------------------------------------------------------*
DATA : gt_head TYPE TABLE OF ztmm0096_head,
gs_head TYPE ztmm0096_head,
gt_item TYPE TABLE OF ztmm0096_item,
gs_item TYPE ztmm0096_item,
gt_report TYPE TABLE OF ty_report,
gs_report TYPE ty_report,
counts TYPE i,
i TYPE i.
*----------------------------------------------------------------------*
* ALV 定义
*----------------------------------------------------------------------*
DATA: wa_layout TYPE lvc_s_layo, "layout 布局控制 参考结构 lvc_s_layo
it_fieldcat TYPE lvc_t_fcat, "fieldcat 字段目录 参考结构 LVC_T_FCAT
wa_fieldcat LIKE LINE OF it_fieldcat.
*----------------------------------------------------------------------*
* OO ALV 定义
*----------------------------------------------------------------------*
DATA : gv_container_head TYPE REF TO cl_gui_custom_container, "存放ALV的容器
gv_alv_head TYPE REF TO cl_gui_alv_grid, "ALV的网络
gt_fieldcat_head TYPE lvc_t_fcat, "存放字段目录
gs_layout_head TYPE lvc_s_layo. "布局结构
DATA : gv_container_item TYPE REF TO cl_gui_custom_container, "存放ALV的容器
gv_alv_item TYPE REF TO cl_gui_alv_grid, "ALV的网络
gt_fieldcat_item TYPE lvc_t_fcat, "存放字段目录
gs_layout_item TYPE lvc_s_layo. "布局结构
*----------------------------------------------------------------------*
* 选 择 屏 幕 定 义 块
*----------------------------------------------------------------------*
"STOP 直接跳转到END-OF-SELECTION. (不常用)
"Exit 退出一次,子程序、或者循环
"Return 退出程序块
"复杂选择 SELECT-OPTIONS ,需要TABLES提前声明
"OBLIGATORY 必输
"NO-EXTENSION 隐藏扩展输入
"no INTERVALS 没有范围
"MODIF ID 触发标识
"MATCHCODE OBJECT user_comp 使用SU01自带的搜索帮助
"复选框 "PARAMETERS p_p1 TYPE char1 AS CHECKBOX
"可变长输入文本 ,显示五个长度 PARAMETERS p_pr TYPE string VISIBLE LENGTH 5.
"下拉框 PARAMETERS p_p5 TYPE char5 as LISTBOX VISIBLE LENGTH 10 .
"解释文本 SELECTION-SCREEN COMMENT /1(20) text-001.
* p_cuser-low = sy-uname
* APPEND p_cuser.
*相当于 p_cuser FOR ztmm0096_head-cuser DEFAULT sy-uname 里的 DEFAULT sy-uname
SELECTION-SCREEN BEGIN OF BLOCK text1 WITH FRAME TITLE TEXT-001 .
PARAMETERS:
p_p1 TYPE char1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND flag,
p_p2 TYPE char1 RADIOBUTTON GROUP g1,
p_p3 TYPE char1 RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK text1.
SELECTION-SCREEN BEGIN OF BLOCK text2 WITH FRAME TITLE TEXT-002 . "with FRAME TITLE text-t01
PARAMETERS p_bukrs TYPE ztmm0096_head-bukrs MODIF ID f1 OBLIGATORY. ""公司代码
SELECT-OPTIONS s_zzgrid FOR ztmm0066_item-zzgrid MODIF ID f1 OBLIGATORY. ""对账单号
PARAMETERS p_ekorg TYPE ztmm0096_item-ekorg MODIF ID f1 OBLIGATORY. ""采购组织
SELECT-OPTIONS :
s_zkknum FOR ztmm0096_head-zkknum MODIF ID f2, ""价差扣款单号
s_cuser FOR ztmm0096_head-cuser MODIF ID f2 DEFAULT sy-uname MATCHCODE OBJECT user_comp, "创建者
s_cdate FOR ztmm0096_head-cdate MODIF ID f2 DEFAULT sy-datum. "创建日期
**s_name1 FOR ztmm0096_head-name1, ""名称
*s_zhjdat FOR ztmm0096_head-zhjdat, ""核价基准日
*s_zyear FOR ztmm0096_head-zyear, ""物料凭证的年份
*s_zmonth FOR ztmm0096_head-zmonth, ""月份
*s_status FOR ztmm0096_head-status, ""价差扣款状态
*s_zmark FOR ztmm0096_head-zmark , ""备注
*s_matnr for ztmm0066_item-matnr."物料
SELECTION-SCREEN END OF BLOCK text2.
*----------------------------------------------------------------------*
* 初 始 化 块 *
*----------------------------------------------------------------------*
*该事件在屏幕未显示之前执行,对程式设置值及屏幕元素进行初始化赋值*
INITIALIZATION.
*----------------------------------------------------------------------*
* 选 择 屏 幕 字 段 处 理 块
*----------------------------------------------------------------------*
"screen-name 屏幕名称
"screen-length 长度
"screen-input 是否输入数据
"screen-output 是否只显示
"screen-required 是否要输入 选1是强制输入
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN .
IF p_p1 = 'X'.
IF screen-group1 = 'F2' .
screen-active = 0 . "不活动,相当于隐藏
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
*在字段处添加帮助*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zzgrid-low.
PERFORM frm_search_help_fors_zzgrid USING s_zzgrid-low.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_zzgrid-high.
PERFORM frm_search_help_fors_zzgrid USING s_zzgrid-high.
* "用于响应“BACK”“CANCEL”“EXIT”等事件(不常用)
*AT SELECTION-SCREEN ON EXIT-COMMAND.
* PERFORM frm_exit.
* "框架的触发事件(不常用)
*AT SELECTION-SCREEN ON BLOCK text1.
* IF p_p1 IS NOT INITIAL.
* MESSAGE '你点了p_p1' TYPE 'I'.
* ENDIF.
*----------------------------------------------------------------------*
* 逻 辑 处 理 块 *
*----------------------------------------------------------------------*
START-OF-SELECTION. "开始执行选择,执行按钮后触发
IF p_p1 = 'X' .
PERFORM frm_createdata.
PERFORM frm_layout. "布局
PERFORM frm_fieldcat. "列
PERFORM frm_output. "输出
ENDIF.
IF p_p3 = 'X' .
PERFORM frm_getdata. "取数
PERFORM frm_layout. "布局
PERFORM frm_fieldcat. "列
PERFORM frm_output. "输出
ENDIF.
END-OF-SELECTION. "事件执行完成后,但输出屏幕还未显示之前,一般用于执行结果校验或者ALV显示等等
*----------------------------------------------------------------------*
* 定义宏
*----------------------------------------------------------------------*
DEFINE init_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = &1. "字段
wa_fieldcat-coltext = &2.
wa_fieldcat-fix_column = &3.
wa_fieldcat-hotspot = &4.
wa_fieldcat-key = &5. ""X"
wa_fieldcat-col_pos = &6. "1
* wa_fieldcat-EDIT = &3.
* wa_fieldcat-REF_TABLE = &4.
* wa_fieldcat-REF_FIELD = &5.
* wa_fieldcat-CHECKBOX = &6 .
* wa_fieldcat-DO_SUM = &7 .
* wa_fieldcat-rollname = &8 .
* wa_fieldcat-hotspot = &7 .
APPEND wa_fieldcat TO it_fieldcat.
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*& Form FRM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_getdata .
SELECT
a~mandt ""集团
a~bukrs ""公司代码
a~zzgrid ""对账单号码
a~ekorg ""采购组织
a~lifnr ""供应商或债权人的帐号
a~zflg_js ""寄售标识
a~ernam ""对账单创建人
a~erdat ""对账单创建日
a~kpdate ""SAP凭证过账日期
a~fpdate ""发票日期
a~mwskz ""销售/购买税代码
a~waers ""货币码
a~xblnr ""IDN号码"
b~zzline ""对账行号
b~zdtyp ""对账类型
b~ebeln ""采购凭证编号
b~ebelp ""采购凭证的项目编号
b~matnr ""物料编号
b~maktx ""物料描述
b~mengest ""送/退货数量
b~menge ""可对账数量
b~mengehas ""已对账数量
b~mengeyt ""验退数量
b~meins ""基本计量单位
b~sqwrbtr ""税前单价
b~wrbtr ""税前金额
b~hswrbtr ""含税单价
b~hsje ""含税金额
b~budat ""凭证中的过账日期
b~belnr ""物料凭证编号
b~buzei ""物料凭证中的项目
b~lfbnr ""参考凭证的凭证号
b~lfpos ""参考凭证项目
b~zzbelnr ""SAP发票号码"
FROM ztmm0066_head AS a
INNER JOIN ztmm0066_item AS b
ON a~zzgrid = b~zzgrid
INTO CORRESPONDING FIELDS OF TABLE gt_report
WHERE a~zzgrid IN s_zzgrid AND a~bukrs = p_bukrs .
"if gt_report is NOT INITIAL .
" SELECT * from makt into it_makt for ALL ENTRIES IN gt_report WHERE matnr = itvbak-matnr.
"ENDIF.
* SELECT mandt zzline zdtyp ebeln ebelp matnr zzgrid maktx mengest menge mengehas mengeyt meins sqwrbtr wrbtr hswrbtr hsje budat belnr buzei lfbnr lfpos zzbelnr
* FROM ztmm0066_item INTO CORRESPONDING FIELDS OF TABLE gt_report WHERE zzgrid IN s_zzgrid .
*LOOP AT gt_report.
*read TABLE lt_tab1 with KEY.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_LAYOUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_layout .
wa_layout-cwidth_opt = 'X'. "最适列宽
wa_layout-zebra = 'X'. "隔行显示斑马纹 使ALV表格按斑马线间隔条码方式显示
"wa_layout-grid_title = 'test'.
wa_layout-sel_mode = 'D'.
* wa_layout-excp_fname = 'light'.
wa_layout-stylefname = 'CELLBTN'.
* wa_layout-edit = 'X'.
* wa_layout-box_fname = 'BOX'.
* wa_layout-confirmation_prompt = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_FIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_fieldcat .
init_fieldcat:
'MANDT' '集团'(t01) 'X' '' '' '',
'ZKKNUM' '价差扣款单号'(t02) 'X' '' '' '',
'BUKRS' '公司代码'(t03) 'X' '' '' '',
'NAME1' '公司名称'(t04) 'X' '' '' '',
'ZHJDAT' '核价基准日 '(t05) 'X' '' '' '',
'ZYEAR' '物料凭证的年份 '(t06) 'X' '' '' '',
'ZMONTH' '月份'(t07) 'X' '' '' '',
'STATUS' '价差扣款状态 '(t08) 'X' '' '' '',
'ZCONF_MAN' '确认人 '(t09) 'X' '' '' '',
'DEL_FLAG' '删除标记'(t10) 'X' '' '' '',
'DEL_MAN' '删除人 '(t11) 'X' '' '' '',
'DEL_DATE' '删除日期'(t12) 'X' '' '' '',
'DEL_TIME' '删除时间'(t13) 'X' '' '' '',
'CUSER' '创建者 '(t14) 'X' '' '' '',
'CDATE' '创建日期'(t15) 'X' '' '' '',
'CTIME' '创建时间'(t16) 'X' '' '' '',
'UUSER' '变更者 '(t17) 'X' '' '' '',
'UDATE' '变更日期'(t18) 'X' '' '' '',
'UTIME' '变更时间'(t19) 'X' '' '' '',
'ZMARK' '备注'(t20) 'X' '' '' '',
'ZKKLINE' '项次'(t21) 'X' '' '' '',
'ZZGRID' '对账单号码 '(t22) 'X' '' '' '',
'ZZLINE' '对账行号'(t23) 'X' '' '' '',
'ZDTYP' '对账类型'(t24) 'X' '' '' '',
'EBELN' '采购凭证编号'(t25) 'X' '' '' '',
'EBELP' '采购凭证的项目编号 '(t26) 'X' '' '' '',
'EKORG' '采购组织'(t27) 'X' '' '' '',
'LIFNR' '供应商或债权人的帐号'(t28) 'X' '' '' '',
'ZFLG_JS' '寄售标识'(t29) 'X' '' '' '',
'ERNAM' '对账单创建人'(t30) 'X' '' '' '',
'ERDAT' '对账单创建日'(t31) 'X' '' '' '',
'KPDATE' 'SAP凭证过账日期'(t32) 'X' '' '' '',
'FPDATE' '发票日期'(t33) 'X' '' '' '',
'MATNR' '物料编号'(t34) 'X' '' '' '',
'MAKTX' '物料描述'(t35) 'X' '' '' '',
'MENGEST' '送/退货数量 '(t36) 'X' '' '' '',
'MENGE' '可对账数量 '(t37) 'X' '' '' '',
'MENGEHAS' '已对账数量 '(t38) 'X' '' '' '',
'MENGEYT' '验退数量'(t39) 'X' '' '' '',
'MEINS' '基本计量单位'(t40) 'X' '' '' '',
'MWSKZ' '销售/购买税代码 '(t41) 'X' '' '' '',
'SQWRBTR' '税前单价'(t42) 'X' '' '' '',
'WRBTR' '税前金额'(t43) 'X' '' '' '',
'HSWRBTR' '含税单价'(t44) 'X' '' '' '',
'HSJE' '含税金额'(t45) 'X' '' '' '',
'WAERS' '货币码 '(t46) 'X' '' '' '',
'BUDAT' '凭证中的过账日期'(t47) 'X' '' '' '',
'BELNR' '物料凭证编号'(t48) 'X' '' '' '',
'BUZEI' '物料凭证中的项目'(t49) 'X' '' '' '',
'XBLNR' 'IDN号码'(t50) 'X' '' '' '',
'LFBNR' '参考凭证的凭证号 '(t51) 'X' '' '' '',
'LFPOS' '参考凭证项目 '(t52) 'X' '' '' '',
'ZZBELNR' 'SAP发票号码'(t53) 'X' '' '' '',
'ZHJ' '核价单价'(t54) 'X' '' '' '',
'ZPRC_DIF' '采购价差'(t55) 'X' '' '' '',
'ZJECY' '价差金额'(t56) 'X' '' '' '',
'ZEBELN' '扣款采购单号'(t57) 'X' '' '' '',
'ZEBELP' '扣款采购项次'(t58) 'X' '' '' '',
'REMARK' '备注'(t59) 'X' '' '' '',
'MESSAGE' '消息文本'(t60) 'X' '' '' ''."
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_OUTPUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_output .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout_lvc = wa_layout
it_fieldcat_lvc = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'U'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_report
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SEARCH_HELP_FORS_ZZGRID
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_search_help_fors_zzgrid USING p_fieldname.
TYPES : BEGIN OF ty_value,
zzgrid TYPE ztmm0066_head-zzgrid,
ernam TYPE ztmm0066_head-ernam,
erdat TYPE ztmm0066_head-erdat,
END OF ty_value.
DATA:
lt_value_tab TYPE TABLE OF ty_value,
lt_return TYPE TABLE OF ddshretval,
wa_return TYPE ddshretval.
SELECT zzgrid ernam erdat FROM ztmm0066_head INTO CORRESPONDING FIELDS OF TABLE lt_value_tab UP TO 10 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'ZZGRID'
* PVALKEY = ' '
dynpprog = sy-repid "获取程式
dynpnr = sy-dynnr
* DYNPROFIELD = ' '
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S' " 'C'只有一列
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = lt_value_tab
* FIELD_TAB =
return_tab = lt_return "不指定的话没有返回值
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE lt_return INTO wa_return INDEX 1.
IF sy-subrc = 0 .
p_fieldname = wa_return-fieldval. "把工作区的值赋值给
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CREATEDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_createdata .
"先看ZTMM0066_HEAD有没有数据
SELECT SINGLE zzgrid bukrs ekorg FROM ztmm0066_head INTO CORRESPONDING FIELDS OF gs_report WHERE zzgrid IN s_zzgrid AND bukrs = p_bukrs AND ekorg = p_ekorg."
IF NOT sy-subrc = 0.
MESSAGE TEXT-m01 TYPE 'E' .
ENDIF.
"查看笔数ztmm0096_head
SELECT COUNT(*) INTO ( counts ) FROM ztmm0096_head.
counts = counts + 1.
"插入透明表ztmm0096_head
CLEAR gs_head.
gs_head-mandt = sy-mandt. ""集团
gs_head-zkknum = counts . ""价差扣款单号
gs_head-bukrs = p_bukrs. ""公司代码
gs_head-name1 = ''. ""名称
gs_head-zhjdat = sy-datum. ""核价基准日
gs_head-zyear = ''. ""物料凭证的年份
gs_head-zmonth = ''. ""月份
gs_head-status = 'N'. ""价差扣款状态
gs_head-zconf_man = ''. ""确认人
gs_head-del_flag = ''. ""删除标记
gs_head-del_man = ''. ""删除人
gs_head-del_date = ''. ""删除日期
gs_head-del_time = ''. ""删除时间
gs_head-cuser = sy-uname. ""创建者
gs_head-cdate = sy-datum. ""创建日期
gs_head-ctime = sy-uzeit. ""创建时间
gs_head-uuser = sy-uname. ""变更者
gs_head-udate = sy-datum. ""变更日期
gs_head-utime = sy-uzeit. ""变更时间
gs_head-zmark = ''. ""备注"
INSERT ztmm0096_head FROM gs_head.
SELECT
a~mandt ""集团
a~zzgrid ""对账单号码
a~ekorg ""采购组织
a~lifnr ""供应商或债权人的帐号
a~zflg_js ""寄售标识
a~ernam ""对账单创建人
a~erdat ""对账单创建日
a~kpdate ""SAP凭证过账日期
a~fpdate ""发票日期
a~mwskz ""销售/购买税代码
a~waers ""货币码
a~xblnr ""IDN号码"
b~zzline ""对账行号
b~zdtyp ""对账类型
b~ebeln ""采购凭证编号
b~ebelp ""采购凭证的项目编号
b~matnr ""物料编号
b~maktx ""物料描述
b~mengest ""送/退货数量
b~menge ""可对账数量
b~mengehas ""已对账数量
b~mengeyt ""验退数量
b~meins ""基本计量单位
b~sqwrbtr ""税前单价
b~wrbtr ""税前金额
b~hswrbtr ""含税单价
b~hsje ""含税金额
b~budat ""凭证中的过账日期
b~belnr ""物料凭证编号
b~buzei ""物料凭证中的项目
b~lfbnr ""参考凭证的凭证号
b~lfpos ""参考凭证项目
b~zzbelnr ""SAP发票号码"
FROM ztmm0066_head AS a
INNER JOIN ztmm0066_item AS b
ON a~zzgrid = b~zzgrid
INTO CORRESPONDING FIELDS OF TABLE gt_report
WHERE a~zzgrid IN s_zzgrid AND a~bukrs = p_bukrs .
i = 0.
gs_report-zkknum = counts .
LOOP AT gt_report INTO gs_report .
i = i + 1.
gs_report-zkkline = i .
MODIFY gt_report FROM gs_report INDEX i TRANSPORTING zkkline zkknum.
ENDLOOP .
" BREAK-POINT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_EXIT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_exit .
DATA lv_answer TYPE c.
"选是“J” ,选否“N” ,选取消“A”
CALL FUNCTION 'POPUP_TO_CONFIRM_DATA_LOSS'
EXPORTING
* DEFAULTOPTION = 'J'
titel = '是否保存?'
* START_COLUMN = 25
* START_ROW = 6
* IMPORTING
answer = lv_answer.
IF lv_answer = 'J'.
ENDIF.
ENDFORM.
SAP 采购价差扣款清单
于 2023-07-14 08:58:14 首次发布