sap项目实例.docx
- 文档编号:6368497
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:13
- 大小:18.65KB
sap项目实例.docx
《sap项目实例.docx》由会员分享,可在线阅读,更多相关《sap项目实例.docx(13页珍藏版)》请在冰豆网上搜索。
sap项目实例
*----------------------------------------------------------------------*
* Program ID :
ZZREPO51
* Create :
2004/01/20
* Author :
XXXX
* System :
成績表
* Description :
選択条件なし、ヘッダスクロール
* Type :
Report
* Version :
0.1
* Modified By :
XXXX 2004/01/20
* 新規作成
*----------------------------------------------------------------------*
REPORT YFX18100U_01 NO STANDARD PAGE HEADING
LINE-SIZE 150
LINE-COUNT 60.
*----------------------------------------------------------------------*
* タイプの宣言
*----------------------------------------------------------------------*
TYPES:
BEGIN OF I_YFTSUBT_P,
FLG TYPE C,
BUKRS TYPE T001-BUKRS,
YFSUBCOD TYPE YFTSUBCODET-YFSUBCOD,
SAKNR TYPE YFTSUBCODET-SAKNR,
YFSUBCODT TYPE YFTSUBCODET-YFSUBCODT,
MANDT TYPE T001-MANDT,
YGINSDATE TYPE YFTSUBCODET-YGINSDATE,
YGINSTIME TYPE YFTSUBCODET-YGINSTIME,
YGINSUSER TYPE YFTSUBCODET-YGINSUSER,
YGINSPROG TYPE YFTSUBCODET-YGINSPROG,
YGUPDDATE TYPE YFTSUBCODET-YGUPDDATE,
YGUPDTIME TYPE YFTSUBCODET-YGUPDTIME,
YGUPDUSER TYPE YFTSUBCODET-YGUPDUSER,
YGUPDPROG TYPE YFTSUBCODET-YGUPDPROG,
END OF I_YFTSUBT_P.
*----------------------------------------------------------------------*
* 構造/内部テーブルの宣言
*----------------------------------------------------------------------*
DATA I_YFTSUBT TYPE TABLE OF I_YFTSUBT_P.
DATA WA_YFTSUBT TYPE I_YFTSUBT_P.
DATA I_YFTSUBT_WRK2 TYPE I_YFTSUBT_P.
DATA WRK TYPE YFTSUBCODET.
*----------------------------------------------------------------------*
* 変数の宣言
*----------------------------------------------------------------------*
DATA G_BUKRS TYPE T001-BUKRS.
DATA G_YFSUB TYPE YFTSUBCODET-YFSUBCOD.
DATA G_SAKNR TYPE YFTSUBCODET-SAKNR.
DATA G_YFSUBT TYPE YFTSUBCODET-YFSUBCODT.
DATA G_BUKRS_S TYPE T001-BUKRS.
*DATA G_SAKNR TYPE SHB1-SAKNR.
DATA G_YFTSUBT_WRK TYPE I.
DATA G_KTOPL TYPE T001-KTOPL.
DATA G_TXT50 TYPE SKAT-TXT50.
DATA G_ANSWER TYPE C.
DATA G_DIAGNOSETEXT1(100) TYPE C.
DATA G_DIAGNOSETEXT2(50) TYPE C.
DATA G_TEXT TYPE C.
DATA G_LINES TYPE I.
DATA G_COUNT TYPE I.
*----------------------------------------------------------------------*
* 定数の宣言
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* 選択画面の宣言
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK A01 WITH FRAME TITLE TEXT-T01.
SELECT-OPTIONS:
S_BUKRS FOR G_BUKRS OBLIGATORY.
SELECT-OPTIONS:
S_YFSUB FOR G_YFSUB OBLIGATORY.
SELECT-OPTIONS:
S_SAKNR FOR G_SAKNR MATCHCODE OBJECT SAKO.
SELECT-OPTIONS:
S_YFSUBT FOR G_YFSUBT.
SELECTION-SCREEN END OF BLOCK A01.
SELECTION-SCREEN BEGIN OF BLOCK A02 WITH FRAME TITLE TEXT-T02.
PARAMETERS:
RB_01 RADIOBUTTON GROUP AA DEFAULT 'X'.
PARAMETERS:
RB_02 RADIOBUTTON GROUP AA.
PARAMETERS:
RB_03 RADIOBUTTON GROUP AA.
PARAMETERS:
RB_04 RADIOBUTTON GROUP AA.
SELECTION-SCREEN END OF BLOCK A02.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(60) TEXT-T03.
SELECTION-SCREEN END OF LINE.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM FRM_CHECK_RB_03. " 登録検査
PERFORM FRM_CHECK_DATA.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FRM_SELECT.
*----------------------------------------------------------------------*
* TOP-OF-PAGE
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_RB_03
*&---------------------------------------------------------------------*
* 登録検査
*----------------------------------------------------------------------*
FORM FRM_CHECK_RB_03 .
IF RB_03 = 'X'.
PERFORM FRM_CHECK_LOGON. "複数件入力されている場合,エラーメッセージ
PERFORM FRM_CHECK_Z. "全部の項目 SIGN が "I" OPTION が "EQ" 以外の値が入っている場合エラーメッセージ
PERFORM FRM_CHECK_K. "内部テーブル( S_BUKRS )AND( S_YFSUBT )の項目 LOW が空白の場合,エラーメッセージ
ENDIF.
ENDFORM. " FRM_CHECK_RB_03
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_LOGON
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_CHECK_LOGON .
IF ( S_BUKRS-HIGH IS NOT INITIAL
OR S_YFSUB-HIGH IS NOT INITIAL
OR S_SAKNR-HIGH IS NOT INITIAL
OR S_YFSUBT-HIGH IS NOT INITIAL ).
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '031'.
ENDIF.
ENDFORM. " FRM_CHECK_LOGON
*&---------------------------------------------------------------------*
*& Form FRM_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_SCREEN .
*
* DATA L_SUM TYPE I.
* IF S_BUKRS IS NOT INITIAL.
* L_SUM = L_SUM + 1.
* ENDIF.
* IF S_YFSUB IS NOT INITIAL.
* L_SUM = L_SUM + 1.
* ENDIF.
* IF S_SAKNR IS NOT INITIAL.
* L_SUM = L_SUM + 1.
* ENDIF.
* IF S_YFSUBT IS NOT INITIAL.
* L_SUM = L_SUM + 1.
* ENDIF.
* IF L_SUM > 1.
* IF SY-SUBRC = 0.
* MESSAGE E031(YGA01) ."TYPE I NUMBER 031
* LEAVE LIST-PROCESSING.
* ENDIF.
* ENDIF.
ENDFORM. " FRM_SCREEN
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_Z
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_CHECK_Z .
IF S_YFSUB IS NOT INITIAL.
IF S_YFSUB-SIGN NE 'I' OR S_YFSUB-OPTION NE 'EQ'.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '033'.
ENDIF.
ENDIF.
IF S_BUKRS IS NOT INITIAL.
IF S_BUKRS-SIGN NE 'I' OR S_BUKRS-OPTION NE 'EQ'.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '033'.
ENDIF.
ENDIF.
IF S_SAKNR IS NOT INITIAL.
IF S_SAKNR-SIGN NE 'I' OR S_SAKNR-OPTION NE 'EQ'.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '033'.
ENDIF.
ENDIF.
IF S_YFSUBT IS NOT INITIAL.
IF S_YFSUBT-SIGN NE 'I' OR S_YFSUBT-OPTION NE 'EQ'.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '033'.
ENDIF.
ENDIF.
ENDFORM. " FRM_CHECK_Z
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_K
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_CHECK_K .
IF S_BUKRS-LOW IS INITIAL.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '000'.
ENDIF.
IF S_YFSUBT-LOW IS INITIAL.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '000'.
ENDIF.
ENDFORM. " FRM_CHECK_K
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_CHECK_DATA .
* I_YFTSUBT-SAKNR MATCH CODE.
PERFORM FRM_CHECK_BUKR. "S_BUKRS,T001 を参照し,チェック,存在しないとエラーメッセージ
* PERFORM FRM_CHECK_SAKNR. "S_SAKNR,SHB1 を参照し,チェック,存在しないとエラーメッセージ
ENDFORM. " FRM_CHECK_DATA
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_BUKR
*&---------------------------------------------------------------------*
FORM FRM_CHECK_BUKR.
SELECT SINGLE BUKRS
FROM T001
INTO G_BUKRS_S
WHERE BUKRS IN S_BUKRS.
IF SY-SUBRC <> 0.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '000'.
ENDIF.
ENDFORM. " FRM_CHECK_BUKR
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_SAKNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_CHECK_SAKNR.
SELECT SINGLE SAKNR
FROM SKB1
INTO G_SAKNR
WHERE SAKNR IN S_SAKNR.
IF SY-SUBRC <> 0.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '000'.
ENDIF.
ENDFORM. " FRM_CHECK_SAKNR
*&---------------------------------------------------------------------*
*& Form FRM_SELECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_SELECT .
SELECT BUKRS
YFSUBCOD
SAKNR
YFSUBCODT
FROM YFTSUBCODET
INTO CORRESPONDING FIELDS OF TABLE I_YFTSUBT
WHERE BUKRS IN S_BUKRS
AND YFSUBCOD IN S_YFSUB
AND SAKNR IN S_SAKNR
AND YFSUBCODT IN S_YFSUBT.
LOOP AT I_YFTSUBT INTO WA_YFTSUBT.
PERFORM FRM_DATA_CHECK. "&1,&2,&4
PERFORM FRM_DATA_CHECK1. "&3
IF G_YFTSUBT_WRK > 1.
MESSAGE ID 'YGA01' TYPE 'I' NUMBER '012'.
ENDIF.
* SORT I_YFTSUBT BY BUKRS
*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sap 项目 实例