SAP _ Enterprise Blog

jeffersonchen

My Links

Blog Stats

Cached @ 2025/4/26 15:54:56Control ASP.skins_mtclean_controls_blogstats_ascx

留言簿(25)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/26 15:54:56Control ASP.skins_mtclean_controls_singlecolumn_ascx

SAP 报表制作示例

* Title       : Stock Query Report                                     *
* Date Created: 21 mar 2005                                       *
* Requested By: Ulrike (Novasoft)                                      *
* Created By  : mara   (Novasoft)                                      *
* Description : For the Replenishment Process, the user need to know   *
*               the current available stock. The report should shows   *
*               the Article, Vendor, Vendor Article Number, Description*
*               , Color, Dimension/Size, Available Stock, Booked Stock,*
*               Quality Inspection Stock, Blocked Stock, Total and Site*
*               . The Selection Screen should be for:                  *
*               1. Article                                             *
*               2. Site                                                *
*                                                                      *
*----------------------------------------------------------------------*
* Modification Log                                                     *
*----------------------------------------------------------------------*
* 01 Date        :                                                     *
*    Changed by  :                                                     *
*    Transport No:                                                     *
*    Description :                                                     *
*                                                                      *
************************************************************************

REPORT ZSC_STOCK_00     LINE-COUNT 65            "定义报表的基本格式,宽度、长度、文件头
                       LINE-SIZE  200
                       NO STANDARD PAGE HEADING
                       .

************************************************************************
* Tables
************************************************************************
tables:mara,t001w.                  "程序所要引用的表   
type-pools:slis.     "标准格式  定义一个包含的包
data: i_cat type slis_t_fieldcat_alv.     "定义一个标准的结构 

data:GS_LAYOUT   TYPE SLIS_LAYOUT_ALV.
data:gt_fieldcat type lvc_t_fcat,
     wa_fieldcat like line of gt_fieldcat.
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
       sap_grid TYPE REF TO cl_gui_alv_grid .

data: save_code like sy-tcode ,OK_key like sy-tcode,rds type i.
*定义按钮 SAVE、OK,定义变量  rds
************************************************************************
* TYPES
************************************************************************
* Sales Requirement Totals Record & Purchasing Info Record
TYPES: BEGIN OF t_vbbs,
         matnr LIKE vbbs-matnr,
         werks LIKE vbbs-werks,
         mbdat LIKE vbbs-mbdat,
         lgort LIKE vbbs-lgort,
         charg LIKE vbbs-charg,
         vbtyp LIKE vbbs-vbtyp,
         bdart LIKE vbbs-bdart,
         plart LIKE vbbs-plart,
         omeng LIKE vbbs-omeng,
         meins LIKE vbbs-meins,
      END OF t_vbbs.
* 定义类型  t_vbbs, 注 对于定义类型可以从系统表中直接引用表中的字段定义

* Current Stock & Purchasing Info Record
TYPES: BEGIN OF t_mard,
         matnr LIKE mard-matnr,
         werks LIKE mard-werks,
         labst LIKE mard-labst,
         insme LIKE mard-insme,
         speme LIKE mard-speme,
       END OF t_mard.
* 定义类型  t_mard

* Article Text
TYPES: BEGIN OF t_makt,
         matnr LIKE makt-matnr,
         spras LIKE makt-spras,
         maktx LIKE makt-maktx,
       END OF t_makt.
* 定义类型  t_makt

* Article Master.
TYPES: BEGIN OF t_mara,
         matnr    LIKE mara-matnr,
         meins    LIKE mara-meins,
         groes    LIKE mara-groes,
         satnr    LIKE mara-satnr,
         attyp    LIKE mara-attyp,
         mstae    like mara-mstae,
       END OF t_mara.
* 定义类型  t_mara

* Open PO Stock
TYPES: BEGIN OF t_mdbs,
         eblen LIKE mdbs-ebeln,
         ebelp LIKE mdbs-ebelp,
         etenr LIKE mdbs-etenr,
         pstyp LIKE mdbs-pstyp,
         matnr LIKE mdbs-matnr,
         werks LIKE mdbs-werks,
         menge LIKE mdbs-menge,
         wemng LIKE mdbs-wemng,
         retpo LIKE mdbs-retpo,
       END OF t_mdbs.
* 定义类型  t_mdbs

* Output
TYPES: BEGIN OF t_output,
         matnr LIKE mard-matnr,
         werks LIKE mard-werks,
         labst LIKE vbbe-omeng,
         omeng LIKE vbbe-omeng,
         insme LIKE vbbe-omeng,
         speme LIKE vbbe-omeng,
         menge like vbbe-omeng,
         total LIKE vbbe-omeng,
         groes LIKE mara-groes,
       END OF t_output .
* 定义类型  t_output

data: BEGIN OF gates occurs 0,
         matnr LIKE mard-matnr,
         labst LIKE vbbe-omeng,
         werks LIKE mard-werks,
         avail LIKE vbbe-omeng,
         omeng LIKE vbbe-omeng,
         insme LIKE vbbe-omeng,
         speme LIKE vbbe-omeng,
         menge like vbbe-omeng,
         total LIKE vbbe-omeng,
         groes LIKE mara-groes,
         maktx LIKE makt-maktx,
       END OF gates.
* 定义类型  gates

types:begin of i_vbaps ,
      vbeln like vbap-vbeln,
      POSNR like vbap-POSNR,
      matnr like vbap-matnr,
      werks like vbap-werks,
      wmeng like vbep-wmeng,
      bmeng like vbep-bmeng,
      erdat like vbap-erdat,
      edatu like vbep-edatu,
      kzwi6 like vbap-kzwi6,
     end of i_vbaps.
* 定义类型  i_vbaps

types:begin of i_VAPMAs,
      vbeln like VAPMA-vbeln,
      posnr like VAPMA-posnr,
      end of i_VAPMAs.
* 定义类型  i_vapmas

************************************************************************
* INTERNAL TABLES
************************************************************************
data: i_vbap type standard table of i_vbaps ,  "用类型 i_vbaps 定义 i_vbap
      get_sorder type standard table of i_vbaps, "用类型 i_vbaps 定义 get_sorder
      i_VAPMA type standard table of i_VAPMAs with header line.  "用类型 i_vapmas 定义 ivapma


************************************************************************
* data
************************************************************************

DATA:
* Sales Requirement Total Records
  i_vbbs   TYPE STANDARD TABLE OF   t_vbbs   WITH HEADER LINE,
* Current Stock
  i_mard   TYPE STANDARD TABLE OF   t_mard   WITH HEADER LINE,
  i_mards   TYPE STANDARD TABLE OF   t_mard   WITH HEADER LINE,
* Article Master
  i_mara   TYPE STANDARD TABLE OF   t_mara   WITH HEADER LINE,
  i_maras   TYPE STANDARD TABLE OF   t_mara   WITH HEADER LINE,
* Article Text
  i_makt   TYPE STANDARD TABLE OF   t_makt   WITH HEADER LINE,
* Open PO
  i_mdbs   TYPE STANDARD TABLE OF   t_mdbs   WITH HEADER LINE,
* Output
  i_output TYPE STANDARD TABLE OF   t_output WITH HEADER LINE.


************************************************************************
* CONSTANTS
************************************************************************
CONSTANTS:
  c_order  LIKE vbbs-vbtyp  VALUE 'C',
  c_delv   LIKE vbbs-vbtyp  VALUE 'J'.
* 定义变量并赋值
************************************************************************
* MACROS  类说明
************************************************************************
class lcl_isl definition.
  public section.
    methods on_dbclick for event double_click
            of cl_gui_alv_grid importing e_row.
endclass.
*---------------------------------------------------------------------*
*       CLASS lcl_isl IMPLEMENTATION  类定义
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
class lcl_isl implementation.
  method on_dbclick.
    data:i_vbapp type i_vbaps.
    read table i_vbap into i_vbapp index e_row-index.
    if sy-subrc = 0.
      Set parameter id 'AUN' field i_vbapp-vbeln.
      call transaction 'VA03' and skip first screen.
    endif.
  endmethod.

endclass.
data: sap_dbclick type ref to lcl_isl.   "定义一个类变量

************************************************************************
* SELECTION SCREEN
************************************************************************
* Block B01, 'Stock Query'   "建立查询屏幕
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.
SELECT-OPTIONS:
*   Article
  s_matnr  FOR mara-matnr  OBLIGATORY,
*   plant
  s_werks  FOR t001w-werks OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b01.

************************************************************************
* AT SELECTION-SCREEN
************************************************************************
*AT SELECTION-SCREEN ON s_matnr.
** Validate Article Number
*  PERFORM f_validate_article_number.
*
*AT SELECTION-SCREEN ON s_werks.
** Validate Site
*  PERFORM f_validate_site.

************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION .
  create object sap_dbclick.
* Get article Details
  perform get_article.
* Get Current Stock.
  PERFORM f_get_current_stock.
* Get Sales Requirement
  PERFORM f_get_sales_requirement.
** Get Open PO Quantity.
  PERFORM f_get_open_po_quantity.
** Calculate Stock
  PERFORM f_calculate_stock.
** Get Article Text.
  PERFORM f_get_article_text.
END-OF-SELECTION .
************************************************************************
* END-OF-SELECTION
************************************************************************

  SORT i_output.
* Write the report.
  PERFORM f_write_report.

*---------------------------------------------------------------------*
*       FORM get_article                                              *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
form get_article.
    SELECT matnr
             meins
             groes
             satnr
             attyp
             mstae
        INTO TABLE i_mara
        FROM mara
       WHERE  matnr IN s_matnr.

  SORT i_mara BY matnr.
  DELETE ADJACENT DUPLICATES FROM i_mara
         COMPARING matnr.
*  i_mara_3[] = i_mara[].
endform.
*&---------------------------------------------------------------------*
*&      Form  f_get_current_stock
*&---------------------------------------------------------------------*
*       Get current stock
*----------------------------------------------------------------------*
FORM f_get_current_stock.
  CLEAR: i_mard, i_mard[].
  CLEAR: i_mards, i_mards[].
  CLEAR: i_mard, i_mard[].

  CHECK NOT i_mara[] IS INITIAL.
* Get the stock
*<=yjiang start
  SELECT matnr
         werks
         labst
         insme
         speme
    INTO TABLE i_mards
    FROM mard
     FOR ALL ENTRIES IN i_mara
   WHERE mard~matnr eq i_mara-matnr
     AND werks IN s_werks.

  sort i_mards by werks matnr .
  loop at i_mards .
      i_mard-matnr = i_mards-matnr.
      i_mard-werks = i_mards-werks.
      i_mard-labst = i_mards-labst.
      i_mard-insme = i_mards-insme.
      i_mard-speme = i_mards-speme.
      collect i_mard.
  endloop.
  refresh i_mards.
endform.

*&---------------------------------------------------------------------*
*&      Form  f_get_sales_requirement
*&---------------------------------------------------------------------*
*       Get Sales Requirement
*----------------------------------------------------------------------*
FORM f_get_sales_requirement.
  CLEAR: i_vbbs, i_vbbs[].

  CHECK NOT i_mara[] IS INITIAL.

* Get Sales Requirement Total Records
  SELECT matnr
         werks
         mbdat
         lgort
         charg
         vbtyp
         bdart
         plart
         omeng
         meins
    INTO TABLE i_vbbs
    FROM vbbs
     FOR ALL ENTRIES IN i_mara
   WHERE matnr EQ i_mara-matnr
     AND werks IN s_werks
     AND ( vbtyp EQ c_order
      OR   vbtyp EQ c_delv )
     AND omeng GT 0.


ENDFORM.                    " f_get_sales_requirement

*&---------------------------------------------------------------------*
*&      Form  f_get_open_po_quantity
*&---------------------------------------------------------------------*
*       Get the Open PO Quantity
*----------------------------------------------------------------------*
FORM f_get_open_po_quantity.
  CLEAR: i_mdbs, i_mdbs[].
* Output list must exist.
*  CHECK NOT i_output[] IS INITIAL.
  CHECK NOT i_mara[] IS INITIAL.


* Get the Open PO Quantity
  SELECT ebeln
         ebelp
         etenr
         pstyp
         matnr
         werks
         menge
         wemng
         retpo
    INTO TABLE i_mdbs
    FROM mdbs
     FOR ALL ENTRIES IN i_mara
   WHERE matnr EQ i_mara-matnr
     AND werks IN s_werks
     AND bstyp EQ 'F'     "Purchase Order
     AND loekz EQ space
     AND elikz EQ space
     AND wepos EQ 'X'.
ENDFORM.                    " f_get_open_po_quantity

*&---------------------------------------------------------------------*
*&      Form  f_calculate_stock
*&---------------------------------------------------------------------*
*       Calcuate Total stock
*----------------------------------------------------------------------*
FORM f_calculate_stock.
*  data lv_menge   LIKE vbbe-omeng.
  CLEAR: i_output.

  SORT i_mara BY matnr.
  CLEAR i_mard.
  loop at i_mard  .
    clear i_mara.
    READ TABLE i_mara WITH KEY matnr = i_mard-matnr
                      BINARY SEARCH.

    MOVE:
      i_mard-matnr  TO i_output-matnr,
      i_mard-werks  TO i_output-werks,
      i_mard-labst  TO i_output-labst,
      i_mard-insme  TO i_output-insme,
      i_mard-speme  TO i_output-speme.
*      i_eina-netpr  to i_output-netpr.
    i_output-total = i_mard-labst +
                     i_mard-insme +
                     i_mard-speme.
    COLLECT i_output.
    CLEAR: i_mard, i_output.
  ENDLOOP.   "I_MARD
  refresh i_mard.
* Sales Requirement Total Records.
  CLEAR: i_vbbs, i_output.
  LOOP AT i_vbbs.

    MOVE:

      i_vbbs-matnr  TO i_output-matnr,
      i_vbbs-werks  TO i_output-werks,
      i_vbbs-omeng  TO i_output-omeng.
    COLLECT i_output.
    CLEAR: i_vbbs, i_output.
  ENDLOOP.   "I_VBBS
  refresh i_vbbs.
* Sales Requirement Individual Records

  CLEAR: i_mdbs.
  LOOP AT i_mdbs .
    IF i_mdbs-retpo = 'X'.
      i_mdbs-menge = i_mdbs-menge * -1.
    ENDIF.
    MOVE:
      i_mdbs-matnr  TO i_output-matnr,
      i_mdbs-werks  TO i_output-werks,
      i_mdbs-menge  TO i_output-menge.

    COLLECT i_output.
    CLEAR: i_mdbs, i_output.

  ENDLOOP.   "I_MDBS
  refresh i_mdbs.
ENDFORM.                    " f_calculate_stock


*&---------------------------------------------------------------------*
*&      Form  f_get_article_text
*&---------------------------------------------------------------------*
*       Get Article Text
*----------------------------------------------------------------------*
FORM f_get_article_text.
  CLEAR: i_makt, i_makt[].

  CHECK NOT i_mara[] IS INITIAL.
* Get Article Descriptions.
  SELECT matnr
         spras
         maktx
    INTO TABLE i_makt
    FROM makt
     FOR ALL ENTRIES IN i_mara
   WHERE matnr EQ i_mara-matnr
     AND spras EQ sy-langu.

ENDFORM.                    " f_get_article_text

*&---------------------------------------------------------------------*
*&      Form  f_write_report
*&---------------------------------------------------------------------*
*       Write Report
*----------------------------------------------------------------------*
FORM f_write_report.
  DATA:
    lv_avail   LIKE s094-gsbest.
  CLEAR i_output.
  LOOP AT i_output.
*   Get Article text.

    CLEAR i_makt.
    READ TABLE i_makt WITH KEY matnr = i_output-matnr
                      BINARY SEARCH.

    lv_avail = i_output-labst - i_output-omeng.

    move :
                i_output-werks to gates-werks,
                I_output-labst to gates-labst,
                lv_avail       to gates-avail,
                i_output-omeng to gates-omeng,
                i_output-insme to gates-insme,
                i_output-speme to gates-speme,
                i_output-menge to gates-menge,
                i_output-total to gates-total,
                i_output-matnr to gates-matnr,
                i_makt-maktx   to gates-maktx,
                i_output-groes to gates-groes.
    append gates.
    CLEAR i_output.
  ENDLOOP.   "I_OUTPUT
  refresh i_output.
  IF sy-subrc NE 0.
    perform messages.
  ELSE.
    perform write_for_grid.
  ENDIF.
ENDFORM.                    " f_write_report

*************************************
*form messages
************************************
form messages.

  call function 'POPUP_WITH_WARNING'
       EXPORTING
            TEXTLINE1 = 'no select date,please set again!'.
  if sy-subrc eq 0.
    stop.
  endif.
endform.

*********************************************
*form write_date
********************************************
form write_for_grid.
  data : lv_pgm like sy-repid.
  lv_pgm = sy-repid.
  perform f_generate_field_catalogu using i_cat[].
  gs_layout-f2code = '&ETA'.
  gs_layout-zebra = 'X'.
  call function 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        i_callback_program             = lv_pgm
        i_bypassing_buffer         = 'X'
        i_grid_title               = 'material query stock'
        I_SAVE                     = 'U'
*         IS_LAYOUT               = GS_LAYOUT
        i_callback_user_command        = 'PROCESS_USER_COMMAND'
        it_fieldcat                = i_cat[]
        i_default                  = 'X'
    tables
        t_outtab                   = gates
    exceptions
       program_error               = 1
       other                       = 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.
*************************************
*form process_user_command
*************************************
form process_user_command using in_ucomm like sy-ucomm
                                 in_selfield type slis_selfield.
  if in_selfield-fieldname cs 'menge' . "no receipt po
    read table gates  index in_selfield-tabindex .
    check sy-subrc = 0.
    check gates-menge > 0.
    submit RM06EM00 with em_matnr = gates-matnr
                 with em_werks = gates-werks
*                      with datum in sptag
                 with listu = 'BEST'
                 with selpa = 'WE101'
         and return.
*"obtain no issue sale order quantity
  elseif in_selfield-fieldname cs 'OMENG' .
    read table gates  index in_selfield-tabindex .
    check sy-subrc = 0.
    check gates-omeng > 0.
    refresh:get_sorder,i_vbap.
****not created issue order of sale order
**obtain all sales order for the article
      select vbeln posnr
        into table i_VAPMA
        from VAPMA
        where matnr = gates-matnr and
              werks = gates-werks .
*incomplete so and delivery order
      select vbap~vbeln vbap~POSNR vbap~MATNR VBAP~werks vbep~wmeng
             vbep~bmeng  vbap~ERDAT vbep~edatu VBAP~kzwi6
              into table  i_vbap
              from vbap inner join vbup
              on vbap~vbeln = vbup~vbeln and
                 vbap~posnr = vbup~posnr
              join vbep
              on vbap~vbeln = vbep~vbeln and
                 vbap~posnr = vbep~posnr
               for all entries in i_vapma
               where vbap~vbeln = i_vapma-vbeln  and
                     vbap~posnr = i_vapma-posnr  and
                     vbup~GBSTA ne 'C' AND
                     ( vbep~bmeng > 0 or vbep~wmeng  > 0 ) and
                    vbap~PSTYV = 'TAN' .


      select vbap~vbeln vbap~POSNR vbap~MATNR VBAP~werks vbep~wmeng
          vbep~bmeng vbap~ERDAT vbep~edatu VBAP~kzwi6
           appending table  i_vbap
               from vbap inner join vbfa
               on vbap~vbeln = vbfa~vbelv
               and vbap~posnr = vbfa~posnv
               join vbuk
               on vbfa~vbeln = vbuk~vbeln
               join vbep
               on vbap~vbeln = vbep~vbeln and
                  vbap~posnr = vbep~posnr
                for all entries in i_vapma
                where vbap~vbeln = i_vapma-vbeln  and
                      vbap~posnr = i_vapma-posnr  and
                      vbfa~VBTYP_N = 'J' and
                      vbuk~WBSTK ne 'C' AND
                      ( vbep~bmeng > 0 or vbep~wmeng  > 0 ) and
                   vbap~PSTYV = 'TAN'  .

    sort i_vbap by vbeln posnr erdat edatu.
    delete adjacent duplicates from i_vbap.
*       sort get_sorder by vbeln posnr erdat edatu.
*       delete adjacent duplicates from get_sorder.
    clear rds.
    describe table i_vbap lines rds .
    if rds > 0 .
      call screen 100.
    endif.
  endif.

endform.

************************************
*end form process_user_command
************************************

*************************************
*form f_generate_field_catalogu
*************************************
form f_generate_field_catalogu using pi_cat type slis_t_fieldcat_alv .

  DATA: lwa_fieldcat TYPE slis_fieldcat_alv.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 1.
  lwa_fieldcat-fieldname         = 'WERKS'.
  lwa_fieldcat-seltext_l         = 'PLANT'(h01).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 2.
  lwa_fieldcat-fieldname         = 'LABST'.
  lwa_fieldcat-seltext_l         = 'Unrestrict'(h02).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 3.
  lwa_fieldcat-fieldname         = 'AVAIL'.
  lwa_fieldcat-seltext_l         = 'AVAIL'(h03).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 4.
  lwa_fieldcat-fieldname         = 'OMENG'.
  lwa_fieldcat-seltext_l         = 'Order num'(h04).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 5.
  lwa_fieldcat-fieldname         = 'INSME'.
  lwa_fieldcat-seltext_l         = 'Qual num'(h05).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 6.
  lwa_fieldcat-fieldname         = 'SPEME'.
  lwa_fieldcat-seltext_l         = 'Block num'(h06).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 7.
  lwa_fieldcat-fieldname         = 'MENGE'.
  lwa_fieldcat-seltext_l         = 'Po num'(h07).
  append lwa_fieldcat to pi_cat.

  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 8.
  lwa_fieldcat-fieldname         = 'TOTAL'.
  lwa_fieldcat-seltext_l         = 'TOTAL stoc'(h08).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 9.
  lwa_fieldcat-fieldname         = 'MATNR'.
  lwa_fieldcat-seltext_l         = 'Material no'(h09).
  append lwa_fieldcat to pi_cat.
  clear lwa_fieldcat.
  lwa_fieldcat-col_pos           = 10.
  lwa_fieldcat-fieldname         = 'MAKTX'.
  lwa_fieldcat-seltext_l         = 'MAKTX'(h10).
  append lwa_fieldcat to pi_cat.
*  clear lwa_fieldcat.
*  lwa_fieldcat-col_pos           = 11.
*  lwa_fieldcat-fieldname         = 'GROES'.
*  lwa_fieldcat-seltext_l         = 'GROES'(h11).
*  append lwa_fieldcat to pi_cat.

endform.   "f_generate_field_catalogu
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'OPENSALES'.
  SET TITLEBAR 'ORDERS'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  create_objects  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE create_objects OUTPUT.
    create object g_custom_container
      exporting container_name = 'MY_CONTROL_AREA' .
    create object sap_grid
      exporting i_parent = g_custom_container.

ENDMODULE.                 " create_objects  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  TRANSFER_date  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE TRANSFER_date OUTPUT.
    if gt_fieldcat is initial.
      perform set_fields.
    endif.
    call method sap_grid->set_table_for_first_display
                        changing it_outtab =  i_vbap "get_sorder "
                                 it_fieldcatalog = gt_fieldcat .
    set handler sap_dbclick->on_dbclick for sap_grid.

ENDMODULE.                 " TRANSFER_date  OUTPUT
*---------------------------------------------------------------------*
*       FORM set_fields                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
form set_fields.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'VBELN'.
  wa_fieldcat-coltext = 'ORDER NUMBER'.
  wa_fieldcat-seltext = 'ORDER NUMBER'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'POSNR'.
  wa_fieldcat-coltext = 'ITEM NO'.
  wa_fieldcat-seltext = 'ITEM NO'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'MATNR'.
  wa_fieldcat-coltext = 'MATERIAL NO'.
  wa_fieldcat-seltext = 'MATERIAL NO'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'WERKS'.
  wa_fieldcat-coltext = 'PLANT'.
  wa_fieldcat-seltext = 'PLANT'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'WMENG'.
  wa_fieldcat-coltext = 'ORDER QTY'.
  wa_fieldcat-seltext = 'ORDER QTY'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'BMENG'.
  wa_fieldcat-coltext = 'DELIVERY QTY'.
  wa_fieldcat-seltext = 'DELIVERY QTY'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'ERDAT'.
  wa_fieldcat-coltext = 'ORDER DATE'.
  wa_fieldcat-seltext = 'ORDER DATE'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'EDATU'.
  wa_fieldcat-coltext = 'DELIVERY DATE'.
  wa_fieldcat-seltext = 'DELIVERY DATE'.
  append wa_fieldcat to gt_fieldcat.
  clear wa_fieldcat.
  wa_fieldcat-fieldname = 'KZWI6'.
  wa_fieldcat-coltext = 'SALE SUM'.
  wa_fieldcat-seltext = 'SALE SUM'.
  append wa_fieldcat to gt_fieldcat.
endform.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  save_code = ok_key.
  clear ok_key.
  case save_code.
    when 'BACK'.
*        CALL METHOD g_custom_container->free.
*        call method sap_grid->free.
      CALL METHOD g_custom_container->free.

      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      CALL METHOD g_custom_container->free.
      LEAVE TO SCREEN 0.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT


posted on 2006-10-12 11:36 jeffersonchen 阅读(1053) 评论(0)  编辑 收藏

Feedback

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]