订单的结算日期

*&---------------------------------------------------------------------*
*& Report  ZPRD_STATUS
*&---------------------------------------------------------------------*
REPORT  ZPRD_STATUS No Standard Page Heading.
Tables: aufk, afpo, bsis.
type-pools: slis.                      " ALV
*ALV data declarations
*
data: i_fieldcat_alv type slis_t_fieldcat_alv,
      i_fieldcat     type slis_fieldcat_alv,
      i_layout       type slis_layout_alv,             " ALV 的格式
      t_header       type slis_t_listheader,
      w_repid        like sy-repid,
      wa_header      type slis_listheader,
      t_line         like wa_header-info,
      color TYPE slis_t_specialcol_alv with header line.
*
Constants: c_null_date(8value '00000000', c_hkont(10value '5001500001'.
** ALV Grid Structure Declaration
Databegin of st_record,
  werks  like  bseg-werks,             " 工廠
  aufnr  like  aufk-aufnr,             " 生產單號
  auart  like  aufk-auart,             " 訂單類型
  ernam  like  aufk-ernam,             " 創建用戶
  erdat  like  aufk-erdat,             " 創建日期
  aenam  like  aufk-aenam,             " 更新用戶
  aedat  like  aufk-aedat,             " 更新日期
  idat2  like  aufk-idat2,             " TECO Date
  posnr  like  afpo-posnr,             " 行號
  ltrmi  like  afpo-ltrmi,             " 交貨日期  DLV/PDLV
  psmng  like  afpo-psmng,             " 訂單項數量
  wemng  like  afpo-wemng,             " 已交數量
  budat  like  bsis-budat,             " 結算日期
  belnr  like  bsis-belnr,             " Settlement FI Doc

end of st_record.
*
Data: wa_record like st_record,
      it_record like st_record occurs 0.
*
DEFINE add_field.
  I_FIELDCAT-TABNAME      = 'IT_RECORD'.
  I_FIELDCAT-FIELDNAME    = &1.
  I_FIELDCAT-SELTEXT_M    = &2.
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
END-OF-DEFINITION.
*
SELECTION-SCREEN BEGIN OF BLOCK ZB1 WITH FRAME TITLE text-100.
PARAMETER: p_werks LIKE bseg-werks DEFAULT '1101' OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_aufnr for aufk-aufnr.          " 生產訂單編號
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_erdat for aufk-erdat.          " 創建日期
*PARAMETER: p_dlv(01) type c default 'X'.
*SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_idat2 for aufk-idat2.          " TECO日期
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK ZB1.
*
initialization.
*
start-of-selection.
Perform Proc_1000.                     " 加入資料
* ALV
Perform Build_FieldCatalog.
Perform Build_Layout.
Perform Display_ALV_Report.
* Perform Proc_2000.                     " 顯示資料
* End Of Main Program

Form Proc_1000.
*
select * from aufk
  join afpo on aufk~aufnr = afpo~aufnr
  into corresponding fields of wa_record
  where aufk~werks =  p_werks and
        aufk~aufnr in p_aufnr and
        aufk~erdat in p_erdat and
        aufk~idat2 in p_idat2 and
        afpo~posnr = '1'.
  append wa_record to it_record.
endselect.
* Filter DLV/PDLV 日期
*If p_dlv <> 'X'.
*  Delete it_record where ltrmi in p_erdat.
*endif.
loop at it_record into wa_record.
* 加入結算文件 SA
  select single budat belnr into (wa_record-budat, wa_record-belnr)
    from bsis
    where hkont = c_hkont and werks = p_werks and blart = 'SA' and aufnr = wa_record-aufnr.
  modify it_record from wa_record.
endloop.
Endform.

Form Proc_2000.
data: l_counter type i value 0.
Loop at it_record into wa_record Where Not ( idat2 = c_null_date and ltrmi = c_null_date ).
  l_counter = l_counter + 1.
  write: / l_counter,
  wa_record-werks, wa_record-aufnr, wa_record-auart, wa_record-ernam, wa_record-erdat,
  wa_record-aenam, wa_record-aedat, wa_record-idat2, wa_record-ltrmi.
Endloop.

Endform.

FORM DISPLAY_ALV_REPORT.
Data: l_repid like sy-repid.
  L_REPID = SY-REPID.
  CALL Function 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     = w_repid
      i_callback_top_of_page = 'TOP_OF_PAGE'     " Top Of Page 丙`
      i_save                 = 'X'
      is_layout              = i_layout
      it_fieldcat            = i_fieldcat_alv[]
    TABLES
      t_outtab               = IT_RECORD.        " 内表数据

  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.                    " DISPLAY_ALV_REPORT
*
FORM BUILD_FIELDCATALOG.                         " 表格 Heading 描述
ADD_FIELD  'WERKS'  TEXT-102.
ADD_FIELD  'AUFNR'  TEXT-103.
ADD_FIELD  'AUART'  TEXT-104.
ADD_FIELD  'ERNAM'  TEXT-105.
ADD_FIELD  'ERDAT'  TEXT-106.
ADD_FIELD  'AENAM'  TEXT-107.
ADD_FIELD  'AEDAT'  TEXT-108.
ADD_FIELD  'IDAT2'  TEXT-109.
ADD_FIELD  'LTRMI'  TEXT-110.
ADD_FIELD  'PSMNG'  TEXT-120.
ADD_FIELD  'WEMNG'  TEXT-122.
ADD_FIELD  'BUDAT'  TEXT-123.
ADD_FIELD  'BELNR'  TEXT-124.
Endform.
*
FORM BUILD_LAYOUT.
  w_repid = sy-repid.                  " 当前程序
  i_layout-zebra = 'X'.                " 颜色交替显示
  i_layout-detail_popup = 'X'.         " 详细信息窗口
  i_layout-f2code = '&ETA'.            " 双击
  i_layout-no_vline = ' '.             " 無列间隔线
  i_layout-colwidth_optimize = 'X'.    " 优化列宽
  i_layout-coltab_fieldname = 'COLOR'.
  i_layout-detail_initial_lines = 'X'.
  i_layout-detail_titlebar      = '详细内容'.        "设置弹出窗口的标##
ENDFORM.                    " BUILD_LAYOUT
*
FORM TOP_OF_PAGE.
DATA: L_CNT type I.
  CLEAR: WA_HEADER, T_HEADER.
  WA_HEADER-TYP  = 'H'.
  WA_HEADER-INFO = '生产单状态'.
  APPEND WA_HEADER TO T_HEADER.
*
  CLEAR WA_HEADER.
  WA_HEADER-INFO = SY-UNAME.
  WA_HEADER-TYP  = 'S'.
  WA_HEADER-KEY  = '使用者:'.
  APPEND WA_HEADER TO T_HEADER.
*
  Describe table IT_RECORD lines L_CNT.
  CLEAR WA_HEADER.
  WA_HEADER-INFO = L_CNT.
  WA_HEADER-TYP  = 'S'.
  WA_HEADER-KEY  = '笔数:'.
  APPEND WA_HEADER TO T_HEADER.
*
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = T_HEADER.
ENDFORM.                    " BUILD_TOP

*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值