1.先建一个“通常”屏幕0100,再建三个子屏幕
其中0100中选择工具条中的Table Control(with Wizard),绘制TAB11和通过向导abstrip创建SUB1
2.在子屏幕0101中绘制table 名称TAB1
3.程序的实现
REPORT ZTEST_Y010.
TABLES: mseg, ekbe, ekko, t024, lfa1,makt.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'SUB1'
CONSTANTS: BEGIN OF C_SUB1,
TAB1 LIKE SY-UCOMM VALUE 'PUSH1',
TAB2 LIKE SY-UCOMM VALUE 'PUSH2',
TAB3 LIKE SY-UCOMM VALUE 'PUSH3',
END OF C_SUB1.
*&SPWIZARD: DATA FOR TABSTRIP 'SUB1'
CONTROLS: SUB1 TYPE TABSTRIP.
DATA: BEGIN OF G_SUB1,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZTEST_Y010',
PRESSED_TAB LIKE SY-UCOMM VALUE C_SUB1-TAB1,
END OF G_SUB1.
DATA: OK_CODE LIKE SY-UCOMM.
DATA Z_Y008A TYPE TABLE OF ZTET_Y008A WITH HEADER LINE.
DATA Z_Y008B TYPE TABLE OF ZTET_Y008B WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE b_title1 .
PARAMETERS: p_bukrs LIKE ekko-bukrs OBLIGATORY DEFAULT 3500 . "公司代码
SELECT-OPTIONS: s_lifnr FOR mseg-lifnr MEMORY ID lif , "供应商编号
s_ebeln FOR mseg-ebeln MEMORY ID bes , "采购订单
s_matnr FOR mseg-matnr MEMORY ID mat . "物料代码
SELECTION-SCREEN END OF BLOCK block1.
*增加内表数据
PERFORM GET_DATA.
* SELECT
* ebeln
* mjahr
* mblnr
* zeile
* bwart
* lgort
* meins
* BUDAT_mkpf
* FROM mseg
* INTO CORRESPONDING FIELDS OF TABLE Z_Y008A
* WHERE EBELN = '3500007055'
* and WERKS = '3500'"p_bukrs'
* and bwart = '101'."排除不是101的行
*
* SELECT ekko~bukrs "工厂
* ekko~ebeln "采购订单编号
* ekko~ekorg "采购组织
* ekko~ekgrp "采购组
* ekko~lifnr "供应商帐户号
* ekpo~ebelp "采购订单行项目
* ekpo~matnr "采购订单行项目物料
* ekbe~BUDAT "过帐日期
* ekbe~menge "入库数量 ?在工作 不具有相应字段
* ekbe~ernam "创建者
* eket~etenr "计划行
* eket~eindt "交货日期
* eket~slfdt "相关交货日期
* eket~wemng "已交货数量
* eket~banfn "采购申请
* FROM ekko "从表里读取数据
* INNER JOIN ekpo ON ekpo~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等
* INNER JOIN ekbe ON ekbe~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等
* INNER JOIN eket ON eket~ebeln = ekko~ebeln "连接MARC表 ,连接条件是PO号相等
* INTO CORRESPONDING FIELDS OF TABLE Z_Y008B "将查询结果放到内表里
* WHERE ekko~bukrs = '3500' " 条件是和查询条件里的值相等
* AND ekko~ebeln = '3500007055'.
*
* SORT Z_Y008B BY banfn .
* DELETE ADJACENT DUPLICATES FROM Z_Y008B COMPARING banfn.
CALL SCREEN 0100.
*&SPWIZARD: OUTPUT MODULE FOR TS 'SUB1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: SETS ACTIVE TAB
MODULE SUB1_ACTIVE_TAB_SET OUTPUT.
SUB1-ACTIVETAB = G_SUB1-PRESSED_TAB.
CASE G_SUB1-PRESSED_TAB.
WHEN C_SUB1-TAB1.
G_SUB1-SUBSCREEN = '0101'.
WHEN C_SUB1-TAB2.
G_SUB1-SUBSCREEN = '0102'.
WHEN C_SUB1-TAB3.
G_SUB1-SUBSCREEN = '0103'.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE.
*&SPWIZARD: INPUT MODULE FOR TS 'SUB1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GETS ACTIVE TAB
MODULE SUB1_ACTIVE_TAB_GET INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN C_SUB1-TAB1.
G_SUB1-PRESSED_TAB = C_SUB1-TAB1.
WHEN C_SUB1-TAB2.
G_SUB1-PRESSED_TAB = C_SUB1-TAB2.
WHEN C_SUB1-TAB3.
G_SUB1-PRESSED_TAB = C_SUB1-TAB3.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE.
***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ZTET_Y008B'
*&SPWIZARD: DEFINITION OF DDIC-TABLE
TABLES: SPFLI.
*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ZTET_Y008B'
TYPES: BEGIN OF T_ZTET_Y008B,
MANDT LIKE SPFLI-MANDT,
CARRID LIKE SPFLI-CARRID,
CONNID LIKE SPFLI-CONNID,
COUNTRYFR LIKE SPFLI-COUNTRYFR,
CITYFROM LIKE SPFLI-CITYFROM,
AIRPFROM LIKE SPFLI-AIRPFROM,
CITYTO LIKE SPFLI-CITYTO,
AIRPTO LIKE SPFLI-AIRPTO,
END OF T_ZTET_Y008B.
*&SPWIZARD:&nbs