如何建立应付暂估明细查询
应付暂估的明细查询还是很麻烦的一件事情,系统本身并不提供相关功能。其开发源代码如下:
REPORT ZRFI0950.
***********************************************************************
* TABLES
***********************************************************************
tables:
bkpf,
kna1, "客户账户
knb1, "公司代码
knc1, "会计年度
bsid. "凭证日期
***********************************************************************
* ALV ABOUT
***********************************************************************
type-pools:
slis.
DATA: i_events TYPE slis_t_event WITH HEADER LINE,
i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
i_listcomm TYPE slis_t_listheader WITH HEADER LINE,
i_layout TYPE slis_layout_alv.
***********************************************************************
* GLOBAL VARIABLES
***********************************************************************
data: begin of gt_detail occurs 0, " 暂估入库列表
hkont like bsis-hkont, " 科目号
belnr like bsis-belnr, " 凭证编号
buzei like bsis-buzei, " 凭证行项目
shkzg like bsis-shkzg, " 借贷标识
budat like bsis-budat, " 过帐日期
dmbtr like bsis-dmbtr, " 发生金额
ebeln like bseg-ebeln, " 采购凭证
lifnr like ekko-lifnr, " 供应商号
lname LIKE lfa1-name1,
dnume type i, " 帐龄
end of gt_detail,
BEGIN OF gt_out OCCURS 0,
id type i, " 序号
lifnr LIKE ekko-lifnr, "供应商号
lname like lfa1-name1, "供应商名
ncdat like bsis-dmbtr, "年初余额
qmdat like bsis-dmbtr, "期末余额
qjone like bsis-dmbtr, "0-90天
qjtwo like bsis-dmbtr, "91-180
qjthr like bsis-dmbtr, "181-270
qjfou like bsis-dmbtr, "271-360
qjfiv like bsis-dmbtr, ">360
END OF gt_out.
data: gt_ebeln LIKE STANDARD TABLE OF gt_detail WITH HEADER LINE,
wa_lname LIKE lfa1-name1.
***********************************************************************
* INTERNAL TABLES AND WORK AREAS
***********************************************************************
selection-screen begin of block count with frame title text-001.
parameters: p_budat like bsis-budat obligatory default sy-datum.
selection-screen end of block count.
***********************************************************************
* EVENT
***********************************************************************
start-of-selection.
perform get_data.
perform process_data.
end-of-selection.
perform data_output.
***======>>>>>> End of main program <<<<<<======***
************************************************************************
* FORM 子程序
************************************************************************
form get_data.
select a~hkont a~belnr a~buzei a~shkzg a~budat a~dmbtr b~txt50
from bsis as a join GL_ACCT_CA_TEXT as b on a~hkont = b~SAKNR
into CORRESPONDING FIELDS OF table gt_detail
where hkont = '2202980000'
and budat <= p_budat.
select a~hkont a~belnr a~buzei a~shkzg a~budat a~dmbtr b~txt50
from bsas as a join GL_ACCT_CA_TEXT as b on a~hkont = b~SAKNR
appending CORRESPONDING FIELDS OF table gt_detail
where hkont = '2202980000'
and budat <= p_budat.
endform.
form process_data.
data year(4) type n VALUE '0000'.
year = p_budat+0(4) - 1.
loop at gt_detail.
if gt_detail-shkzg = 'S'.
gt_detail-dmbtr = 0 - gt_detail-dmbtr.
endif.
select single ebeln from bseg
into gt_detail-ebeln
where belnr = gt_detail-belnr
and buzei = gt_detail-buzei
and gjahr = gt_detail-budat+0(4).
select single lifnr from ekko
into gt_detail-lifnr
where ebeln = gt_detail-ebeln.
gt_detail-dnume = p_budat - gt_detail-budat.
gt_out-lifnr = gt_detail-lifnr.
IF gt_detail-budat+0(4) <= year.
gt_out-ncdat = gt_detail-dmbtr.
ENDIF.
gt_out-qmdat = gt_detail-dmbtr.
if gt_detail-dnume <= 90.
gt_out-qjone = gt_detail-dmbtr.
elseif gt_detail-dnume <= 180.
gt_out-qjtwo = gt_detail-dmbtr.
elseif gt_detail-dnume <= 270.
gt_out-qjthr = gt_detail-dmbtr.
elseif gt_detail-dmbtr <= 360.
gt_out-qjfou = gt_detail-dmbtr.
else.
gt_out-qjfiv = gt_detail-dmbtr.
endif.
COLLECT gt_out.
CLEAR gt_out.
modify gt_detail.
clear gt_detail.
endloop.
sort gt_out by lifnr.
loop at gt_out.
gt_out-id = sy-tabix.
SELECT SINGLE NAME1 FROM LFA1
INTO GT_OUT-LNAME
WHERE LIFNR = GT_OUT-LIFNR.
MODIFY gt_out.
clear gt_out.
ENDLOOP.
endform.
FORM data_output.
PERFORM events_build.
PERFORM layout_build.
PERFORM fields_build.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_save = ''
i_callback_user_command = 'USER_COMMAND'
is_layout = i_layout
it_events = i_events[]
it_fieldcat = i_fieldcat[]
TABLES
t_outtab = gt_out.
ENDFORM. "data_output
FORM events_build .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events[].
READ TABLE i_events WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
i_events-form = 'ALV_TOP_OF_PAGE'.
MODIFY i_events INDEX sy-tabix.
ENDIF.
ENDFORM. "events_build
*&---------------------------------------------------------------------*
*& Form alv_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_top_of_page.
DATA itoc(10) TYPE c.
DATA: lv_temp(60).
CLEAR: i_listcomm,i_listcomm[].
i_listcomm-typ = 'H'.
i_listcomm-key = ''.
i_listcomm-info = '材料暂估表'.
APPEND i_listcomm.
CLEAR i_listcomm.
i_listcomm-typ = 'S'.
lv_temp = '编制单位:'.
APPEND i_listcomm.
CLEAR i_listcomm.
i_listcomm-typ = 'S'.
CONCATENATE '查询时间: ' p_budat+0(4) '年' p_budat+4(2) '月' p_budat+6(2) '日'
INTO lv_temp.
i_listcomm-info = lv_temp.
APPEND i_listcomm.
CLEAR i_listcomm.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_listcomm[].
ENDFORM. "alv_top_of_page
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM layout_build .
i_layout-zebra = 'X'.
i_layout-detail_popup = 'X'.
i_layout-no_vline = ''.
i_layout-colwidth_optimize = 'X'.
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = '物料暂估明细'.
ENDFORM. " layout_build
* alv ??
FORM fields_build.
i_fieldcat-key = 'X'.
PERFORM alv_field_column USING 'ID' '序号'.
i_fieldcat-key = 'X'.
PERFORM alv_field_column USING 'LIFNR' '供应商号'.
i_fieldcat-key = 'X'.
PERFORM alv_field_column USING 'LNAME' '供应商名称'.
i_fieldcat-key = 'X'.
PERFORM alv_field_column USING 'NCDAT' '年初余额'.
i_fieldcat-key = 'X'.
PERFORM alv_field_column USING 'QMDAT' '期末余额'.
PERFORM alv_field_column USING 'QJONE' '0-90天'.
PERFORM alv_field_column USING 'QJTWO' '91-180天'.
PERFORM alv_field_column USING 'QJTHR' '181-270天'.
PERFORM alv_field_column USING 'QJFOU' '271-360天'.
PERFORM alv_field_column USING 'QJFIV' '大于360天'.
ENDFORM. "fields_build
*&---------------------------------------------------------------------*
*& Form alv_field_column
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_FIELDNAME) text
* -->VALUE(P_SELTEXT_L) text
*----------------------------------------------------------------------*
FORM alv_field_column USING value(p_fieldname)
value(p_seltext_l).
i_fieldcat-fieldname = p_fieldname.
i_fieldcat-seltext_l = p_seltext_l.
IF p_fieldname+0(2) CP 'QJ' OR p_fieldname+0(2) CP 'NC' OR p_fieldname+0(2) = 'QM'.
i_fieldcat-edit_mask = '==Z001'.
ENDIF.
APPEND i_fieldcat.
CLEAR i_fieldcat.
ENDFORM. "alv_field_column
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
if rs_selfield-fieldname = 'LIFNR'. "供应商.
CLEAR gt_ebeln[].
PERFORM data_reapp using rs_selfield-value.
perform data_outputb.
endif.
ENDCASE.
ENDFORM.
form data_reapp using lifnr.
SELECT single name1 from lfa1 into wa_lname.
loop at gt_detail where lifnr = lifnr.
select single aedat from ekko into gt_ebeln-budat WHERE ebeln = gt_detail-ebeln.
gt_ebeln-lifnr = lifnr.
gt_ebeln-lname = wa_lname.
gt_ebeln-ebeln = gt_detail-ebeln.
gt_ebeln-dmbtr = gt_detail-dmbtr.
COLLECT gt_ebeln.
CLEAR: gt_detail, gt_ebeln.
ENDLOOP.
sort gt_ebeln by ebeln.
endform.
FORM data_outputb.
CLEAR: i_layout,i_events[],i_fieldcat[].
PERFORM events_buildb.
PERFORM layout_buildb.
PERFORM fields_buildb.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_save = ''
i_callback_user_command = 'USER_COMMANDB'
is_layout = i_layout
it_events = i_events[]
it_fieldcat = i_fieldcat[]
TABLES
t_outtab = gt_ebeln.
ENDFORM. "data_output
FORM events_buildb .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events[].
READ TABLE i_events WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
i_events-form = 'ALV_TOP_OF_PAGEB'.
MODIFY i_events INDEX sy-tabix.
ENDIF.
ENDFORM. "events_build
*&---------------------------------------------------------------------*
*& Form alv_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_top_of_pageb.
DATA itoc(10) TYPE c.
DATA: lv_temp(60).
CLEAR: i_listcomm,i_listcomm[].
i_listcomm-typ = 'H'.
i_listcomm-key = ''.
i_listcomm-info = '材料暂估表-供应商明细'.
APPEND i_listcomm.
CLEAR i_listcomm.
i_listcomm-typ = 'S'.
lv_temp = '编制单位:'.
APPEND i_listcomm.
CLEAR i_listcomm.
i_listcomm-typ = 'S'.
CONCATENATE '供应商:' wa_lname '. 查询时间: ' p_budat+0(4) '年' p_budat+4(2) '月' p_budat+6(2) '日'
INTO lv_temp.
i_listcomm-info = lv_temp.
APPEND i_listcomm.
CLEAR i_listcomm.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_listcomm[].
ENDFORM. "alv_top_of_page
*&---------------------------------------------------------------------*
*& Form layout_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM layout_buildb .
i_layout-zebra = 'X'.
i_layout-detail_popup = 'X'.
i_layout-no_vline = ''.
i_layout-colwidth_optimize = 'X'.
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = '采购凭证明细'.
ENDFORM. " layout_build
* alv ??
FORM fields_buildb.
PERFORM alv_field_columnb USING 'LIFNR' '供应商'.
PERFORM alv_field_columnb USING 'LNAME' '供应名称'.
PERFORM alv_field_columnb USING 'EBELN' '采购凭证'.
PERFORM alv_field_columnb USING 'BUDAT' '订单创建时间'.
PERFORM alv_field_columnb USING 'DMBTR' '采购成交金额'.
ENDFORM. "fields_build
*&---------------------------------------------------------------------*
*& Form alv_field_column
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_FIELDNAME) text
* -->VALUE(P_SELTEXT_L) text
*----------------------------------------------------------------------*
FORM alv_field_columnb USING value(p_fieldname)
value(p_seltext_l).
i_fieldcat-fieldname = p_fieldname.
i_fieldcat-seltext_l = p_seltext_l.
IF p_fieldname+0(2) CP 'DM'.
i_fieldcat-edit_mask = '==Z001'.
ENDIF.
APPEND i_fieldcat.
CLEAR i_fieldcat.
ENDFORM. "alv_field_column
FORM user_commandb USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
if rs_selfield-fieldname = 'EBELN'. "供应商.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
endif.
ENDCASE.
ENDFORM.
如何建立应付暂估明细查询相关推荐
- SAP License:如何建立应付暂估明细查询
应付暂估的明细查询还是很麻烦的一件事情,系统本身并不提供相关功能.其开发源代码如下: *-----------------------* * Report ZRFI0950 * Created By ...
- 应付暂估及在途物资科目用法解析
1.GR/IR 科目是什么? 首先我们来看一个最简单,最理想化的采购商品或原材料的情况. 采购100元的商品或者原材料,付给供应商100元现金. 会计分录: 借:商品/原材料 100 贷:现金 ...
- NetSuite应付暂估报表
上海疫情防控升级到了足不出户的程度,看了很多视频.文字,大家给上海加油!在这种大事件中,无他法,仅能做到照顾好家人,不抱怨,积极文字,以身作则而已.身修而家园清净,守沪太平. 今天的题目是个古早的话题 ...
- SAP 应付暂估分科目核算
在SAP 实施项目中,对于应付暂估科目通常会要求做一个区分,比如按服务,材料,或公司间等不同的需求进行区分.但在SAP 的标准功能中,WRX 的事务是不能区分的,那这里需要进行增强. 增强的方式有两种 ...
- oracle应付暂估怎么清理,暂估成本录入和处理详细说明以及实例
暂估成本是指采购系统所购存货已入库,但发票未到或未报销时入库单上的估算成本:当已报销后,需进行成本处理.暂估入库成本处理分以下情况:月初回冲单到回冲单到补差一般常使用的方法是单到回冲.有个视频的教程会 ...
- 金蝶云·星空——应付暂估冲回模式下存货对账
业务流程: 应付管理系统启用暂估应付冲回模式,入库单审核自动生成暂估应付单,到票暂估应付下推财务应付单,自动生成暂估红冲单,财务应付和暂估应付跨期差异生成入库调整单: 月末暂估月初一次冲回记账凭证: ...
- 六、鼎捷T100采购应付之应付暂估管理篇
文章目录 一.暂估简介 1.1 暂估核算 1.2 暂估冲销 二.基础数据设置 2.1 基础数据简介 2.2 应付账务类型维护作业 2.3 应付账款类别依账套设置作业 2.4 发票类型维护作业 2.5 ...
- SAP FICO 应付暂估账龄表【报表界面展示、程序代码仅作参考,不保证一定可以运行】
报表展示 源代码 ZFIR302 *&---------------------------------------------------------------------* *& ...
- GR/IR和暂估入库设计思路的简单对比
GR/IR和暂估入库设计思路的简单对比[@more@] 从建立采购单->入库->发票校验实际上会有各种情况,下面简单描述下GR/IR科目的使用. GR/IR科目 相关Tcode:OBYP| ...
最新文章
- Linuxshell之高级Shell脚本编程-创建函数
- 【已解决】navigateTo:fail page “/pages/.../...“ is not found
- sudo spctl --master-disable_量大从优批发--阳离子聚丙烯酰胺--用于生活污水、
- R-Tree空间索引算法的研究历程和最新进展分析
- 并不对劲的noip2018
- CVE-2021-34527: Windows Print Spooler 蠕虫级远程代码执行漏洞
- 如何用JavaScript搭建神经网络?90分钟免费课程,上手可操作丨教程
- 导出数据报ORA-39002: 操作无效 ORA-39070: 无法打开日志文件。 ORA-39087: 目录名 DUMP_DIR 无效...
- Python基于 ImageAI 模块实践 idenprof数据集识别预测分析
- Makefile教程(这一篇足够从入门到放弃!!!)
- c语言 多核优化,【模型工具】一种对SWMM5的多核优化
- mysql--学生表
- 固态加装机械计算机不显示,win10不显示机械硬盘怎么办_win10加装机械硬盘不显示的解决方法...
- 如何用手机APP实现PLC远程监控
- 基于Quartz.net 的任务调度平台Weiz.TaskManager
- 2022 最值得学习的编程语言:Python 高人气,Ruby 薪水最优渥
- MATLAB反三角函数arcsecx, arccscx, arctanx, arccotx, arcsinx, arccosx绘图表示
- DEVONthink + Notion 搭建一个完美的知识管理体系
- 微信小程序getuserinfo废弃
- 大数据与海量数据的区别