




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中國(guó)石油天然氣集團(tuán)公司ERP系統(tǒng)推廣項(xiàng)目動(dòng)態(tài)選擇屏幕、內(nèi)表動(dòng)態(tài)選擇屏幕、內(nèi)表2010年5月1. 作者介紹: 徐峰 中石油集團(tuán)SAP實(shí)施開發(fā)團(tuán)隊(duì) 主要從事海外板塊及融合方案的開發(fā)工作2. 業(yè)務(wù)背景: 對(duì)照表維護(hù)程序,用于SAP 主數(shù)據(jù),F(xiàn)MIS 主數(shù)據(jù)維護(hù)的對(duì)照,由于對(duì)照表權(quán)限,操作,功能一樣,而且會(huì)隨著業(yè)務(wù)的增加,會(huì)有新的對(duì)照表出現(xiàn)。所以寫通用的程序比較方便以及易于維護(hù)。3. 主要內(nèi)容: 動(dòng)態(tài)選擇屏幕,動(dòng)態(tài)的SQL語句,動(dòng)態(tài)ALV展示。u 對(duì)照表維護(hù)程序DEMO Y_TESTXF COD A.首先在ZFMIS_MAPPING 配置需要維護(hù)的對(duì)照表,必輸字段,校驗(yàn)字段。B.根據(jù)選定的對(duì)照表,生成相應(yīng)的選擇屏幕。 1.定義選擇屏幕時(shí),要定義足夠多的屏幕字段。 SELECT-OPTIONS:S_SEL1FOR(S_NAME1)LOWERCASE, S_SEL2FOR(S_NAME2)LOWERCASE, S_SEL3FOR(S_NAME3)LOWERCASE, S_SEL4FOR(S_NAME4)LOWERCASE, 2.根據(jù)ZFMIS_MAPPING 維護(hù)的字段 和數(shù)據(jù)庫表的字段,控制屏幕字段的顯示。 1.選取數(shù)據(jù)庫表中的字段P_TABLE為要查看的對(duì)照表SELECT*FROMDD03LINTOCORRESPONDINGFIELDSOFTABLET_DD03LWHERETABNAME=P_TABLEANDAS4LOCAL=A ANDROLLNAMEANDROLLNAMEMANDTORDERBYPOSITIONASCENDING.通過指針 賦給選擇屏幕字段特定的值CONCATENATES_NAMEL_TABIXINTOL_S_NAME.CONDENSE:L_S_NAMENO-GAPS.ASSIGN(L_S_NAME)TO.CONCATENATET_DD03L-TABNAME-T_DD03L-FIELDNAMEINTO. CONDENSENO-GAPS. 3.對(duì)于要顯示的屏幕字段,賦給屏幕內(nèi)表 APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-TEXTT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-OPTI_PUSHT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREENS_SELL_TABIX-LOWT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-TO_TEXTT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREENS_SELL_TABIX-HIGH.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-VALU_PUSHT_DD03L-KEYFLAG. APPEND_T_SCREEN 是 ABAP 宏4. 根據(jù)屏幕內(nèi)表,控制選擇屏幕的顯示LOOPATSCREEN.IFSY-DYNNR=9001.READTABLET_SCREENWITHKEYNAME=SCREEN-NAME.IFSY-SUBRC=0.SCREEN-ACTIVE=1.IFT_SCREEN-FKEYISNOTINITIAL.*SCREEN-REQUIRED=1.ENDIF.ELSE.SCREEN-ACTIVE=0.SCREEN-REQUIRED=0.ENDIF.ENDIF.MODIFYSCREEN.ENDLOOP. C.根據(jù)選擇屏幕的顯示,進(jìn)行動(dòng)態(tài)SQL語句的查詢。 1.建立動(dòng)態(tài)內(nèi)表 CALLFUNCTIONZDYNP_CREATE_ITAB EXPORTINGI_NAME= P_TABLE *I_STYLE_TABLE=XIMPORTINGE_I_TABLE=G_DY_TABLEE_WA=G_DY_LINE.*E_STYLE_FNAME=G_ITAB_NAME. ASSIGNG_DY_TABLE-*TO. 內(nèi)表 ASSIGNG_DY_LINE-*TO.工作區(qū)2.根據(jù)用戶的輸入,找到RANGE,給內(nèi)表T_SELECT_OPTIONS.LOOPATT_DD03L.L_TABIX=SY-TABIX.T_SELECT_OPTIONS-FIELD=T_DD03L-FIELDNAME.CONCATENATES_SELL_TABIXINTOT_SELECT_OPTIONS-SELNM.CONDENSET_SELECT_OPTIONS-SELNMNO-GAPS.ASSIGN(T_SELECT_OPTIONS-SELNM)TO.IFNOTISINITIAL.ASSIGNCOMPONENTLOWOFSTRUCTURETO.ASSIGNCOMPONENTHIGHOFSTRUCTURETO.IFISNOTINITIALORISNOTINITIAL.APPENDT_SELECT_OPTIONS.ENDIF.ENDIF.ENDLOOP. 2.根據(jù)選擇屏幕RANGE,拼寫SQL,給內(nèi)表WHERE_TAB LOOPATT_SELECT_OPTIONS. L_TABIX=SY-TABIX. CONDENSEL_TABIXNO-GAPS. CLEAR:WHERE_CLAUSE. IFL_TABIX=1. CONCATENATET_SELECT_OPTIONS-FIELDINT_SELECT_OPTIONS-SELNMINTOWHERE_CLAUSESEPARATEDBYSPACE. ELSE. CONCATENATEANDT_SELECT_OPTIONS-FIELDINT_SELECT_OPTIONS-SELNMINTOWHERE_CLAUSESEPARATEDBYSPACE. ENDIF. APPENDWHERE_CLAUSETOWHERE_TAB. ENDLOOP.3.根據(jù)SQL,選取數(shù)據(jù)給內(nèi)表 SELECT*FROM(P_TABLE)UPTO500ROWSINTOCORRESPONDINGFIELDSOFTABLEWHERE(WHERE_TAB).D.動(dòng)態(tài)ALV 展示 1. 根據(jù)數(shù)據(jù)庫的字段,選取要展示ALV的FIELDCAT SELECTFIELDNAMEPOSITIONKEYFLAGROLLNAMEDOMNAMELENGFROMDD03LINTOCORRESPONDINGFIELDSOFTABLEGT_FCAT_ITABWHERETABNAME=P_TABLEANDAS4LOCAL=AANDROLLNAMEANDROLLNAMEMANDTANDROLLNAMEZZSTATUSORDERBYPOSITIONASCENDING. LOOPATGT_FCAT_ITAB. SELECTSINGLEDDTEXTFROMDD04TINTOGT_FCAT_ITAB-COLTEXTWHEREROLLNAME=GT_FCAT_ITAB-ROLLNAMEANDDDLANGUAGE=SY-LANGU ANDAS4LOCAL=A. GT_FCAT_ITAB-TABNAME=G_ITAB_NAME. GT_FCAT_ITAB-F4AVAILABL=X. GT_FCAT_ITAB-REF_FIELD=GT_FCAT_ITAB-FIELDNAME. GT_FCAT_ITAB-REF_TABLE=P_TABLE. GT_FCAT_ITAB-EDIT=X. MODIFYGT_FCAT_ITAB. APPENDGT_FCAT_ITABtoGIT_FIELDCAT. CLEARGT_FCAT_ITAB.ENDLOOP. 2. 展示ALV 通過內(nèi)表 GIT_FIELDCAT 進(jìn)行ALV 展示附錄代碼:*&-*&ReportY_TESTXF*&*&-*&*&*&-*REPORTY_TESTXF.TYPE-POOLS:VRM,SLIS.*&-*DEFINEAPPEND_T_SCREEN.CONCATENATE&1&2&3INTOT_SCREEN-NAME.CONDENSET_SCREEN-NAMENO-GAPS.T_SCREEN-FKEY=&4.T_SCREEN-FIELDNAME=&5.IFNOTT_SCREEN-FKEYISINITIAL.T_SCREEN-INTENSIFIED=1.ENDIF.APPENDT_SCREEN.END-OF-DEFINITION.DATA:BEGINOFT_SCREENOCCURS0,NAMELIKESCREEN-NAME,FKEYTYPEC,INTENSIFIEDTYPEC,FIELDNAMETYPEFIELDNAME,ENDOFT_SCREEN.DATA:T_DD03LTYPESTANDARDTABLEOFDD03LWITHHEADERLINE.DATA:G_DY_TABLETYPEREFTODATA,DynamicInternalTableDataObjectG_DY_LINETYPEREFTODATA,DynamicInternalTableworkareaG_ITAB_NAMETYPELVC_FNAME,DynamicInternalTableNameG_TABLE_NAMETYPECHAR30.DynamicTableName*&-DynamicOpenSQLWhereConditions-*DATA:WHERE_TAB(100)OCCURS1WITHHEADERLINE,WHERE_CLAUSE(100)TYPEC.FIELD-SYMBOLS:TYPESTANDARDTABLE,TYPESTANDARDTABLE,.DATA:S_NAME1(40)TYPECVALUESY-DATUM,S_NAME2(40)TYPECVALUESY-DATUM,S_NAME3(40)TYPECVALUESY-DATUM,S_NAME4(40)TYPECVALUESY-DATUM,S_NAME5(40)TYPECVALUESY-DATUM,S_NAME6(40)TYPECVALUESY-DATUM,S_NAME7(40)TYPECVALUESY-DATUM,S_NAME8(40)TYPECVALUESY-DATUM,S_NAME9(40)TYPECVALUESY-DATUM,S_NAME10(40)TYPECVALUESY-DATUM,S_NAME11(40)TYPECVALUESY-DATUM,S_NAME12(40)TYPECVALUESY-DATUM,S_NAME13(40)TYPECVALUESY-DATUM,S_NAME14(40)TYPECVALUESY-DATUM,S_NAME15(40)TYPECVALUESY-DATUM,S_NAME16(40)TYPECVALUESY-DATUM,S_NAME17(40)TYPECVALUESY-DATUM,S_NAME18(40)TYPECVALUESY-DATUM,S_NAME19(40)TYPECVALUESY-DATUM,S_NAME40(40)TYPECVALUESY-DATUM,S_NAME21(40)TYPECVALUESY-DATUM,S_NAME22(40)TYPECVALUESY-DATUM,S_NAME23(40)TYPECVALUESY-DATUM,S_NAME24(40)TYPECVALUESY-DATUM,S_NAME25(40)TYPECVALUESY-DATUM,S_NAME26(40)TYPECVALUESY-DATUM,S_NAME27(40)TYPECVALUESY-DATUM,S_NAME28(40)TYPECVALUESY-DATUM,S_NAME29(40)TYPECVALUESY-DATUM,S_NAME30(40)TYPECVALUESY-DATUM,S_NAME31(40)TYPECVALUESY-DATUM,S_NAME32(40)TYPECVALUESY-DATUM,S_NAME33(40)TYPECVALUESY-DATUM,S_NAME34(40)TYPECVALUESY-DATUM,S_NAME35(40)TYPECVALUESY-DATUM,S_NAME36(40)TYPECVALUESY-DATUM,S_NAME37(40)TYPECVALUESY-DATUM,S_NAME38(40)TYPECVALUESY-DATUM,S_NAME39(40)TYPECVALUESY-DATUM,S_NAME20(40)TYPECVALUESY-DATUM,S_NAME41(40)TYPECVALUESY-DATUM,S_NAME42(40)TYPECVALUESY-DATUM,S_NAME43(40)TYPECVALUESY-DATUM,S_NAME44(40)TYPECVALUESY-DATUM,S_NAME45(40)TYPECVALUESY-DATUM,S_NAME46(40)TYPECVALUESY-DATUM,S_NAME47(40)TYPECVALUESY-DATUM,S_NAME48(40)TYPECVALUESY-DATUM,S_NAME49(40)TYPECVALUESY-DATUM,S_NAME50(40)TYPECVALUESY-DATUM.*DATA:T_DD03LTYPESTANDARDTABLEOFDD03LWITHHEADERLINE.DATA:BEGINOFT_SELECT_OPTIONSOCCURS0,FIELD(40)TYPEC,SELNM(100)TYPEC,ENDOFT_SELECT_OPTIONS.SELECTION-SCREENBEGINOFSCREEN9001ASWINDOW.SELECTION-SCREENBEGINOFBLOCKSEL1WITHFRAMETITLETEXT-H02.SELECT-OPTIONS:S_SEL1FOR(S_NAME1)LOWERCASE,S_SEL2FOR(S_NAME2)LOWERCASE,S_SEL3FOR(S_NAME3)LOWERCASE,S_SEL4FOR(S_NAME4)LOWERCASE,S_SEL5FOR(S_NAME5)LOWERCASE,S_SEL6FOR(S_NAME6)LOWERCASE,S_SEL7FOR(S_NAME7)LOWERCASE,S_SEL8FOR(S_NAME8)LOWERCASE,S_SEL9FOR(S_NAME9)LOWERCASE,S_SEL10FOR(S_NAME10)LOWERCASE,S_SEL11FOR(S_NAME11)LOWERCASE,S_SEL12FOR(S_NAME12)LOWERCASE,S_SEL13FOR(S_NAME13)LOWERCASE,S_SEL14FOR(S_NAME14)LOWERCASE,S_SEL15FOR(S_NAME15)LOWERCASE,S_SEL16FOR(S_NAME16)LOWERCASE,S_SEL17FOR(S_NAME17)LOWERCASE,S_SEL18FOR(S_NAME18)LOWERCASE,S_SEL19FOR(S_NAME19)LOWERCASE,S_SEL20FOR(S_NAME20)LOWERCASE,S_SEL21FOR(S_NAME21)LOWERCASE,S_SEL22FOR(S_NAME22)LOWERCASE,S_SEL23FOR(S_NAME23)LOWERCASE,S_SEL24FOR(S_NAME24)LOWERCASE,S_SEL25FOR(S_NAME25)LOWERCASE,S_SEL26FOR(S_NAME26)LOWERCASE,S_SEL27FOR(S_NAME27)LOWERCASE,S_SEL28FOR(S_NAME28)LOWERCASE,S_SEL29FOR(S_NAME29)LOWERCASE,S_SEL30FOR(S_NAME30)LOWERCASE,S_SEL31FOR(S_NAME31)LOWERCASE,S_SEL32FOR(S_NAME32)LOWERCASE,S_SEL33FOR(S_NAME33)LOWERCASE,S_SEL34FOR(S_NAME34)LOWERCASE,S_SEL35FOR(S_NAME35)LOWERCASE,S_SEL36FOR(S_NAME36)LOWERCASE,S_SEL37FOR(S_NAME37)LOWERCASE,S_SEL38FOR(S_NAME38)LOWERCASE,S_SEL39FOR(S_NAME39)LOWERCASE,S_SEL40FOR(S_NAME40)LOWERCASE,S_SEL41FOR(S_NAME41)LOWERCASE,S_SEL42FOR(S_NAME42)LOWERCASE,S_SEL43FOR(S_NAME43)LOWERCASE,S_SEL44FOR(S_NAME44)LOWERCASE,S_SEL45FOR(S_NAME45)LOWERCASE,S_SEL46FOR(S_NAME46)LOWERCASE,S_SEL47FOR(S_NAME47)LOWERCASE,S_SEL48FOR(S_NAME48)LOWERCASE,S_SEL49FOR(S_NAME49)LOWERCASE,S_SEL50FOR(S_NAME50)LOWERCASE.*SELECTION-SCREENENDOFBLOCKSEL2.SELECTION-SCREENENDOFBLOCKSEL1.SELECTION-SCREENENDOFSCREEN9001.SELECTION-SCREENBEGINOFBLOCKB1WITHFRAMETITLETEXT-H01.PARAMETERS:P_TABLETYPETABNAMEASLISTBOXVISIBLELENGTH20OBLIGATORY.SELECTION-SCREENENDOFBLOCKB1.ATSELECTION-SCREENOUTPUT.PERFORMSUB_INIT_SELECT.PERFORMSUB_SELECT_PARAMETERS.PERFORMMODIFY_SCREEN.START-OF-SELECTION.CALLSELECTION-SCREEN9001STARTINGAT105ENDINGAT9040.IFSY-SUBRC=4.STOP.ENDIF.PERFORMGET_RANGE.*-GetDynamictablestructureanddata-*PERFORMSUB_GET_TABLEUSINGP_TABLE.PERFORMOUT_ALV.*&-*&FormSUB_SELECT_PARAMETERS*&-*text*-*-p1text*-p2text*-*FORMSUB_SELECT_PARAMETERS.DATA:L_TABIX(10)TYPEC,L_FIELDNAMETYPESTRING.DATA:L_S_NAME(20)TYPEC.FIELD-SYMBOLS:TYPEANY.*L_TABIX=1.*L_FIELDNAME=BUKRS.*T_DD03L-KEYFLAG=X.*CONCATENATES_NAMEL_TABIXINTOL_S_NAME.*CONDENSE:L_S_NAMENO-GAPS.*ASSIGN(L_S_NAME)TO.*CONCATENATET001-L_FIELDNAMEINTO.*CONDENSENO-GAPS.*SELECT*FROMDD03LINTOCORRESPONDINGFIELDSOFTABLET_DD03LWHERETABNAME=P_TABLEANDAS4LOCAL=AANDROLLNAMEANDROLLNAMEMANDTORDERBYPOSITIONASCENDING.LOOPATT_DD03L.L_TABIX=SY-TABIX.CONCATENATES_NAMEL_TABIXINTOL_S_NAME.CONDENSE:L_S_NAMENO-GAPS.ASSIGN(L_S_NAME)TO.CONCATENATET_DD03L-TABNAME-T_DD03L-FIELDNAMEINTO.CONDENSENO-GAPS.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-TEXTT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-OPTI_PUSHT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREENS_SELL_TABIX-LOWT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-TO_TEXTT_DD03L-KEYFLAGL_FIELDNAME.APPEND_T_SCREENS_SELL_TABIX-HIGH.APPEND_T_SCREEN%_S_SELL_TABIX_%_APP_%-VALU_PUSHT_DD03L-KEYFLAG.ENDLOOP.*ENDFORM.SUB_SELECT_PARAMETERS*&-*&FormMODIFY_SCREEN*&-*text*-*-p1text*p1text*p1text*-p2text*-*FORMGET_RANGE.DATA:L_TABIX(10)TYPEC.FIELD-SYMBOLS:TYPEANY.FIELD-SYMBOLS:TYPEANY.FIELD-SYMBOLS:TYPEANY.LOOPATT_DD03L.L_TABIX=SY-TABIX.T_SELECT_OPTIONS-FIELD=T_DD03L-FIELDNAME.CONCATENATES_SELL_TABIXINTOT_SELECT_OPTIONS-SELNM.CONDENSET_SELECT_OPTIONS-SELNMNO-GAPS.ASSIGN(T_SELECT_OPTIONS-SELNM)TO.IFNOTISINITIAL.ASSIGNCOMPONENTLOWOFSTRUCTURETO.ASSIGNCOMPONENTHIGHOFSTRUCTURETO.IFISNOTINITIALORISNOTINITIAL.APPENDT_SELECT_OPTIONS.ENDIF.ENDIF.ENDLOOP.ENDFORM.GET_RANGE*&-*&FormSUB_GET_TABLE*&-*text*-*-P_P_TABLEtext*-*FORMSUB_GET_TAB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機(jī)食品連鎖超市項(xiàng)目可行性報(bào)告
- 可行性研究報(bào)告編寫
- 化妝品與日用化學(xué)品制造業(yè)作業(yè)指導(dǎo)書
- 季度工作進(jìn)展計(jì)劃及部署方案
- 新媒體運(yùn)營(yíng)實(shí)踐與優(yōu)化指南
- 農(nóng)業(yè)項(xiàng)目資金申請(qǐng)手冊(cè)
- 外科復(fù)習(xí)題復(fù)習(xí)試題及答案
- 三農(nóng)村基本公共服務(wù)均等化實(shí)施方案
- 項(xiàng)目進(jìn)度匯報(bào)及下一步計(jì)劃演講詞
- 農(nóng)村人居環(huán)境整治法律法規(guī)指南
- GB/T 95-2002平墊圈C級(jí)
- 護(hù)理人際關(guān)系倫理
- GB 19377-2003天然草地退化、沙化、鹽漬化的分級(jí)指標(biāo)
- 中國(guó)隧道及地下工程修建技術(shù)PPT
- 不良事件魚骨圖分析
- 三角形章起始課-展示課件
- 有限空間作業(yè)審批表范本
- 超市便利店日常工作檢查記錄表
- 細(xì)支氣管肺泡癌的影像診斷(61頁)
- X射線的物理學(xué)基礎(chǔ)-
- 財(cái)務(wù)英語英漢對(duì)照表
評(píng)論
0/150
提交評(píng)論