2008年8月15日 星期五

欄位宣告

1.首先基本需知道簡單型態
  C Character
  I Integer
  F Floating Point Number
  X Byte
  P Packet Number
  N Numeric Text
  D Date (YYYMMDD)
  T Time (HHMMSS)

基本變數
  Element Data :單一變數
  Work Area (在這簡稱wa) 多欄變數
  Internal Table (在這簡稱為itab) 多行多列變數


2.結構宣告欄位(wa)或是表格(itab)的宣告
是程式將資料庫內的資料抓取暫時存放處
下面舉三個例子

************************************************************************
* Working Area & Internal Tables    *
************************************************************************
*宣告一個單一變數
DATA: Z_TABIX LIKE SY-TABIX.

*宣告一個wa
DATA: BEGIN OF W_EKKO,
C1 TYPE C,
C2 TYPE C,
   END OF W_EKKO.

*宣告一個itab
DATA: BEGIN OF I_EKKO OCCURS 0,
   ZYEAR(4)  TYPE C,
   ZMONTH(2) TYPE C,
   EBELN LIKE EKKO-EBELN,
       BSTYP LIKE EKKO-BSTYP,
       BSART LIKE EKKO-BSART,
       AEDAT LIKE EKKO-AEDAT,
       EKGRP LIKE EKKO-EKGRP,
   END OF I_EKKO.


3.接下來宣告輸入畫面的宣告
分為Parameter(單值) 與Select-options(區間)的宣告
以下為一個Parameter與一個Select-options的範例

************************************************************************
* SELECT-OPTIONS / PARAMETERS   *
************************************************************************
*轉檔路徑與監管編碼
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME.
*PARAMETER:  P_DATE  LIKE EKKO-AEDAT OBLIGATORY,
*     P_EKGRP LIKE EKKO-EKGRP.
SELECT-OPTIONS: S_DATE FOR EKKO-AEDAT(6),
    S_EKGRP FOR EKKO-EKGRP.
SELECT-OPTIONS: S_DATES FOR SY-DATUM NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK BK1.

2008年8月4日 星期一

程式框架


*&---------------------------------------------------------------------*
*& Report  ZTEST001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZTEST001.
************************************************************************
* SAP TABLES *
************************************************************************
TABLES:
************************************************************************
* TYPES and TYPE-POOLS *
************************************************************************
TYPE-POOLS: SLIS.


************************************************************************
* Working Area & Internal Tables    *
************************************************************************
*GW_RPT--output report
************************************************************************
* Include   *
************************************************************************
************************************************************************
* Selection Screen *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
*PARAMETERS: P_GJAHR LIKE SY-DATUM(4) OBLIGATORY.
SELECT-OPTIONS:
*  S_WERKS FOR MCHB-WERKS OBLIGATORY DEFAULT '1000'. "Plant
SELECTION-SCREEN END OF BLOCK B1.
************************************************************************
* Initialization    *
************************************************************************
INITIALIZATION.
************************************************************************
* AT SELECTION-SCREEN Event     *
************************************************************************
AT SELECTION-SCREEN OUTPUT.
**********************************************
AT SELECTION-SCREEN.


************************************************************************
* At User Command   *
************************************************************************
AT USER-COMMAND.
************************************************************************
* Start of Selection    *
************************************************************************
START-OF-SELECTION.
************************************************************************
* END-OF-SELECTION Event    *
************************************************************************
END-OF-SELECTION.