Chinaunix首页 | 论坛 | 博客
  • 博客访问: 684462
  • 博文数量: 194
  • 博客积分: 7067
  • 博客等级: 少将
  • 技术积分: 2008
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-09 14:48
个人简介

我很好

文章分类

全部博文(194)

文章存档

2019年(1)

2018年(1)

2017年(3)

2015年(2)

2012年(2)

2011年(1)

2010年(27)

2009年(15)

2008年(142)

分类: WINDOWS

2009-02-12 15:48:10

  *&---------------------------------------------------------------------*
*& Report  ZTEST_NYJ3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest_nyj3.
*----------------------------------------------------------------------*
*       CLASS lcl_report DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_report DEFINITION.
  PUBLIC SECTION.
    DATA: t_data   TYPE STANDARD TABLE OF ZPPMJ_ORDER,  " Output dat
          r_carrid TYPE RANGE OF ZPPMJ_ORDER-MATNO.    " Select Option
    METHODS:
      get_data,
      generate_output.
ENDCLASS.                    "lcl_report DEFINITION

DATA: lo_report TYPE REF TO lcl_report.
DATA: w_carrid TYPE ZPPMJ_ORDER-MATNO.

** Selection Screen
SELECTION-SCREENBEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
SELECT-OPTIONS: s_carrid FOR w_carrid.
SELECTION-SCREENEND   OF BLOCK blk1.

** Initialization
INITIALIZATION.
  aaa = 'Selection Criteria'.
* object for the report
  CREATE OBJECT lo_report.
* generate output
  lo_report->generate_output( ).
** Start of Selection
START-OF-SELECTION.
* Get data
  lo_report->r_carrid = s_carrid[].
  lo_report->get_data( ).
*----------------------------------------------------------------------*
* Local Class Implementation
*----------------------------------------------------------------------*
CLASS lcl_report IMPLEMENTATION.
  METHOD get_data.
    SELECT * FROM ZPPMJ_ORDER
           INTO  TABLE me->t_data
           WHERE MATNO IN s_carrid.
    IF sy-dbcnt IS INITIAL.
      MESSAGE s398(00WITH 'No data selected'.
    ENDIF.
    EXPORT data = me->t_data TO MEMORY ID sy-cprog.
  ENDMETHOD.                    "get_data

  METHOD generate_output.
    DATA: lo_dock TYPE REF TO cl_gui_docking_container,
          lo_cont TYPE REF TO cl_gui_container,
          lt_fcat             TYPE lvc_t_fcat,
          gr_grid_d1001        TYPE REF TO cl_gui_alv_grid.
    IMPORT data = me->t_data FROM MEMORY ID sy-cprog.
    FREE MEMORY ID sy-cprog.
    CHECK me->t_data IS NOT INITIAL.
    CHECK lo_dock IS INITIAL.
    CREATE OBJECT lo_dock
      EXPORTING
        repid = sy-cprog
        dynnr = sy-dynnr
        ratio = 80
        side  = cl_gui_docking_container=>dock_at_bottom
        name  = 'DOCK_CONT'.
    IF sy-subrc <> 0.
      MESSAGE 'Error in the Docking control' TYPE 'S'.
    ENDIF.
    CHECK gr_grid_d1001 IS INITIAL.
    lo_cont ?= lo_dock.
    CREATE OBJECT gr_grid_d1001
      EXPORTING
        i_parent = lo_cont.

    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
        i_buffer_active        = space
        i_structure_name       = 'ZPPMJ_ORDER'
        i_client_never_display = 'X'
        i_bypassing_buffer     = space
      CHANGING
        ct_fieldcat            = lt_fcat
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.

    CALL METHOD gr_grid_d1001->set_table_for_first_display
      EXPORTING
        i_buffer_active    = space
        i_bypassing_buffer = space
      CHANGING
        it_outtab          = me->t_data
        it_fieldcatalog    = lt_fcat.
  ENDMETHOD.                    "generate_output
ENDCLASS.                    "lcl_report IMPLEMENTATION
阅读(910) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~