ABAP_ALV_例子(采购申请单查询)

原创 2011年08月16日 17:36:28

将代码直接拷贝就可以运行.

 

*&---------------------------------------------------------------------*
*& Report  ZCMH9
*&
*&---------------------------------------------------------------------*
*&  ALV  例子 采购申请单查询
*&
*&---------------------------------------------------------------------*

REPORT  ZCMH9.

TABLES: eban,sscrfields.

DATA:  dyn TYPE smp_dyntxt.

DATA: lt_alv_fieldcat TYPE slis_t_fieldcat_alv,
      ls_alv_fieldcat TYPE slis_fieldcat_alv,
      lv_layout TYPE slis_layout_alv,     " layout
      lv_layout_lvc TYPE lvc_s_layo,      " layout
      gt_fieldcat TYPE lvc_t_fcat,
      gt_out_fcat TYPE lvc_t_fcat,

      gs_data TYPE lvc_s_fcat.

TYPESBEGIN OF typ_eban.
        INCLUDE STRUCTURE eban.
        TYPES: box TYPE char1,
        celltab TYPE lvc_t_styl.
TYPESEND OF typ_eban.

DATA: gt_eban TYPE STANDARD TABLE OF typ_eban,
      gs_eban LIKE LINE OF gt_eban,
      gt_fcat_eban TYPE lvc_t_fcat.

SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME TITLE text-001.

  SELECT-OPTIONS: p_BANFN FOR eban-BANFN .

SELECTION-SCREEN END OF BLOCK blk01.


SELECTION-SCREEN FUNCTION KEY 1.

INITIALIZATION.
  dyn-text = 'PR明细清单'.
  sscrfields-functxt_01 = dyn.


AT SELECTION-SCREEN OUTPUT.


at SELECTION-SCREEN.

START-OF-SELECTION.
  perform sub_alv_diaplay_purchase.



FORM sub_init_layout.
  CLEAR: lv_layout.
  lv_layout-zebra = 'X'.
  lv_layout-colwidth_optimize = 'X'.
  lv_layout-box_fieldname = 'BOX'.
  CLEAR: lv_layout_lvc.
  lv_layout_lvc-zebra = 'X'.
  lv_layout_lvc-cwidth_opt = 'X'.
  lv_layout_lvc-box_fname = 'BOX'.
  lv_layout_lvc-stylefname = 'CELLTAB'.
ENDFORM.                    "sub_init_layout

*&---------------------------------------------------------------------*
*&      Form  sub_alv_diaplay_purchase
*&---------------------------------------------------------------------*
*       显示采购申请
*----------------------------------------------------------------------*
FORM sub_alv_diaplay_purchase.
  PERFORM sub_init_layout.
  PERFORM sub_get_purchase_data.
  PERFORM init_purchase_field.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      is_layout_lvc            = lv_layout_lvc
      it_fieldcat_lvc          = gt_fcat_eban
*     i_callback_pf_status_set = 'PF_STATUS_SET'
      i_callback_user_command  = 'USER_COMMAND'
      i_default                = 'X'
      i_save                   = 'X'
    TABLES
      t_outtab                 = gt_eban
    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.                    "sub_alv_diaplay_material

*&---------------------------------------------------------------------*
*&      Form  sub_get_purchase_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM sub_get_purchase_data.

  DATA: lt_styletab TYPE lvc_t_styl,
        ls_stylerow TYPE lvc_s_styl,
        lv_idx LIKE sy-tabix.

  SELECT *
    FROM eban INTO CORRESPONDING FIELDS OF TABLE gt_eban
    WHERE BANFN IN p_BANFN .

  LOOP AT gt_eban INTO gs_eban.
    CLEAR: ls_stylerow, lt_styletab, lt_styletab[].
    lv_idx = sy-tabix.
    ls_stylerow-fieldname = 'MENGE'.
    ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.
    INSERT ls_stylerow INTO TABLE lt_styletab.

    ls_stylerow-fieldname = 'LFDAT'.
    ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.
    INSERT ls_stylerow INTO TABLE lt_styletab.

    gs_eban-celltab = lt_styletab.

    MODIFY gt_eban INDEX lv_idx FROM gs_eban TRANSPORTING celltab.
  ENDLOOP.

ENDFORM.                    "sub_get_purchase_data

*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->RF_UCOMM     text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM user_command USING rf_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
  DATA: lt_styletab TYPE lvc_t_styl,
        ls_stylerow TYPE lvc_s_styl,
        lv_idx LIKE sy-tabix.
  CASE rf_ucomm.
    WHEN '&IC1'.
      IF rs_selfield-fieldname EQ 'BANFN' AND rs_selfield-value IS NOT INITIAL.
        SET PARAMETER ID 'BAN' FIELD rs_selfield-value.
        CALL TRANSACTION 'ME52N' AND SKIP FIRST SCREEN.

      ENDIF.

  ENDCASE.
ENDFORM.                    "user_command


*&---------------------------------------------------------------------*
*&      Form  init_purchase_field
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM init_purchase_field.
  CLEAR: gt_fcat_eban, gt_fcat_eban[].
  DATA: ls_fcat_eban LIKE LINE OF gt_fcat_eban.

  DEFINE  init_fcat_eban.
    clear ls_fcat_eban.
    ls_fcat_eban-fieldname = &1.
    ls_fcat_eban-scrtext_m = &2.
    ls_fcat_eban-no_zero = 'X'.
    ls_fcat_eban-edit = &3.
    ls_fcat_eban-hotspot = &4.
    append ls_fcat_eban to gt_fcat_eban.
  END-OF-DEFINITION.

  init_fcat_eban 'MATNR' '物料' space space.
  init_fcat_eban 'TXZ01' '物料描述' space space.
  init_fcat_eban 'WERKS' '工厂' space space.
  init_fcat_eban 'LGORT' '库位' space space.
  init_fcat_eban 'BANFN' '采购申请' space 'X'.
  init_fcat_eban 'BNFPO' '采购编号' space space.
  init_fcat_eban 'FLIEF' '固定供应商' space space.
  init_fcat_eban 'BSART' '采购申请凭证类型' space space.
  init_fcat_eban 'BSTYP' '采购凭证类型' space space.

  init_fcat_eban 'STATU' '采购申请处理状态' space space.

  init_fcat_eban 'EKGRP' '采购组' space space.
  init_fcat_eban 'MENGE' '申请数量' 'X' space.
  init_fcat_eban 'MEINS' '单位' space space.
  init_fcat_eban 'BADAT' '需求日期' space space.
  init_fcat_eban 'LFDAT' '交货日期' 'X'  space.
ENDFORM.                    "init_purchase_field

 

PO采购-采购申请单

2014-01-03 purchasing super user -> requisitions-> requisitions 头信息: number :  po_requisition_header...
  • u011287994
  • u011287994
  • 2014年01月03日 15:23
  • 630

SAP ME51N 采购单申请屏幕增强

ME51N 采购单申请屏幕增强: 收藏文档: http://wenku.baidu.com/view/2cf4a6eab8f67c1cfad6b827.html...
  • heng0757
  • heng0757
  • 2012年02月03日 10:47
  • 3710

创建采购申请---BAPI_REQUISITION_CREATE

REPORT  Z_CREATE_PR. DATA: BEGIN OF GT_DATA1 OCCURS 0,             BSART   TYPE STRING, "凭证类型  ...
  • zhongguomao
  • zhongguomao
  • 2013年04月28日 10:24
  • 3932

MAXIMO 采购配置--采购申请、采购订单

1、创建采购申请 转到--采购--采购申请: 2、 变更状态为“已批准”     只有已批准的pr才能创建po。     如在变更状态时报错:“BMXAA3876E - 此用户没有针对PRLIMI...
  • xiouluoyang
  • xiouluoyang
  • 2015年02月09日 16:09
  • 1025

sap开发-采购订单更改历史table

两个table分别是CDHDR(抬头更改)与CDPOS(项目更改)。
  • zhongguomao
  • zhongguomao
  • 2016年05月19日 14:43
  • 2031

采购申请实际创建者

采购申请上有一个创建标示,如果是人工创建的PR则联系人中的创建者就是实际的创建者,创建标示为R; 如果是通过运行MRP后系统创建的PR,则创建者显示的是MRP控制者,创建标示为B。 当创建标示为B...
  • dylan122738
  • dylan122738
  • 2013年08月30日 08:13
  • 742

SAP ERP系统业务优化之采购订单追踪

供应部门按时到料是ERP系统MRP计划的核心要素之一。为此追踪采购订单就变为采购人员的核心工作之一。在实际工作中,采购订单的追踪更多的是通过管理手段来实现,而SAP系统只是提供一些辅助的手段。在这篇文...
  • zhongguomao
  • zhongguomao
  • 2017年08月02日 14:05
  • 610

MES 趣谈

现在新名词太多,而且都缩写,让很多人不容易理解,MES也存在这个情况。 很多企业想了解MES,但是只能看文章或听人讲,总是找不到真切的感觉。 其实,MES并不神秘,你一边逛商场,就可以一边体会了。...
  • feiying008
  • feiying008
  • 2013年12月04日 21:00
  • 974

采购订单历史表

SELECT * FROM EKBE       INTO CORRESPONDING FIELDS OF TABLE LT_EKBE       FOR ALL ENTRIES IN LT_EK...
  • zhongguomao
  • zhongguomao
  • 2016年01月27日 13:36
  • 2195

【SAP】公司代码与采购组织的分配关系

第一种 特定工厂的采购组织plant-specific purchasing organization 将一个工厂分配给一个公司代码,而一个公司代码就分配给一个采购组织,创建采购订单时,输入...
  • zhongguomao
  • zhongguomao
  • 2016年04月01日 10:50
  • 1934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ABAP_ALV_例子(采购申请单查询)
举报原因:
原因补充:

(最多只允许输入30个字)