已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 作者介绍: 动态选择屏幕、内表 2010 年 5 月 徐峰 中石油集团 SAP 实施开发团队 主要从事海外板块及融合方案的开发工作 2. 业务背景: 对照表维护程序,用于 SAP 主数据,FMIS 主数据维护的对照,由于对照表权限, 操作,功能一样,而且会随着业务的增加,会有新的对照表出现。所以写通用的程序比较 方便以及易于维护。 3. 主要内容: 动态选择屏幕,动态的 SQL 语句,动态 ALV 展示。 对照表维护程序 DEMO Y_TESTXF COD A.首先在 ZFMIS_MAPPING 配置需要维护的对照表 ,必输字段,校验字段。 B.根据选定的对照表,生成相应的选择屏幕。 1.定义选择屏幕时,要定义足够多的屏幕字段。 SELECT-OPTIONS:S_SEL1 FOR (S_NAME1) LOWER CASE, S_SEL2 FOR (S_NAME2) LOWER CASE, S_SEL3 FOR (S_NAME3) LOWER CASE, S_SEL4 FOR (S_NAME4) LOWER CASE, 2.根据 ZFMIS_MAPPING 维护的字段 和数据库表的字段,控制屏幕字段的显示。 1.选取数据库表中的字段 P_TABLE 为要查看的对照表 SELECT * FROM DD03L INTO CORRESPONDING FIELDS OF TABLE T_DD03L WHERE TABNAME = P_TABLE AND AS4LOCAL = A AND ROLLNAME MANDT ORDER BY POSITION ASCENDING. 通过指针 赋给选择屏幕字段特定的值 CONCATENATE S_NAME L_TABIX INTO L_S_NAME. CONDENSE: L_S_NAME NO-GAPS. ASSIGN (L_S_NAME) TO . CONCATENATE T_DD03L-TABNAME - T_DD03L-FIELDNAME INTO . CONDENSE NO-GAPS. 3.对于要显示的屏幕字段,赋给屏幕内表 APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-TEXT T_DD03L- KEYFLAG L_FIELDNAME. APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-OPTI_PUSH T_DD03L- KEYFLAG L_FIELDNAME. APPEND_T_SCREEN S_SEL L_TABIX -LOW T_DD03L-KEYFLAG L_FIELDNAME. 中国石油天然气集团公司 ERP 系统推广项目 动态选择屏幕、内表 Version: 1.0 第 3 页共 13 页 APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-TO_TEXT T_DD03L- KEYFLAG L_FIELDNAME. APPEND_T_SCREEN S_SEL L_TABIX -HIGH . APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-VALU_PUSH T_DD03L- KEYFLAG . APPEND_T_SCREEN 是 ABAP 宏 4. 根据屏幕内表,控制选择屏幕的显示 LOOP AT SCREEN . IF SY-DYNNR = 9001 . READ TABLE T_SCREEN WITH KEY NAME = SCREEN-NAME. IF SY-SUBRC = 0. SCREEN-ACTIVE = 1. IF T_SCREEN-FKEY IS NOT INITIAL. * SCREEN-REQUIRED = 1. ENDIF. ELSE. SCREEN-ACTIVE = 0. SCREEN-REQUIRED = 0. ENDIF. ENDIF. MODIFY SCREEN. ENDLOOP. C.根据选择屏幕的显示,进行动态 SQL 语句的查询。 1.建立动态内表 CALL FUNCTION ZDYNP_CREATE_ITAB EXPORTING I_NAME = P_TABLE * I_STYLE_TABLE = X IMPORTING E_I_TABLE = G_DY_TABLE E_WA = G_DY_LINE. * E_STYLE_FNAME = G_ITAB_NAME. ASSIGN G_DY_TABLE-* TO . 内表 ASSIGN G_DY_LINE-* TO .工作区 2.根据用户的输入,找到 RANGE,给内表 T_SELECT_OPTIONS. LOOP AT T_DD03L. L_TABIX = SY-TABIX. T_SELECT_OPTIONS-FIELD = T_DD03L-FIELDNAME. CONCATENATE S_SEL L_TABIX INTO T_SELECT_OPTIONS-SELNM. CONDENSE T_SELECT_OPTIONS-SELNM NO-GAPS. ASSIGN (T_SELECT_OPTIONS-SELNM) TO . IF NOT IS INITIAL. ASSIGN COMPONENT LOW OF STRUCTURE TO . ASSIGN COMPONENT HIGH OF STRUCTURE TO . IF IS NOT INITIAL OR IS NOT INITIAL. APPEND T_SELECT_OPTIONS. ENDIF. ENDIF. ENDLOOP. 2.根据选择屏幕 RANGE,拼写 SQL,给内表 WHERE_TAB LOOP AT T_SELECT_OPTIONS. L_TABIX = SY-TABIX. CONDENSE L_TABIX NO-GAPS. CLEAR: WHERE_CLAUSE. IF L_TABIX = 1. CONCATENATE T_SELECT_OPTIONS-FIELD IN T_SELECT_OPTIONS-SELNM INTO WHERE_CLAUSE SEPARATED BY SPACE. ELSE. CONCATENATE AND T_SELECT_OPTIONS-FIELD IN T_SELECT_OPTIONS-SELNM INTO WHERE_CLAUSE SEPARATED BY SPACE. ENDIF. APPEND WHERE_CLAUSE TO WHERE_TAB. ENDLOOP. 3.根据 SQL,选取数据给内表 SELECT * FROM (P_TABLE) UP TO 500 ROWS INTO CORRESPONDING FIELDS OF TABLE WHERE (WHERE_TAB). D.动态 ALV 展示 1. 根据数据库的字段,选取要展示 ALV 的 FIELDCAT SELECT FIELDNAME POSITION KEYFLAG ROLLNAME DOMNAME LENG FROM DD03L INTO CORRESPONDING FIELDS OF TABLE GT_FCAT_ITAB WHERE TABNAME = P_TABLE AND AS4LOCAL = A AND ROLLNAME MANDT AND ROLLNAME p1 text * TYPE ANY. * L_TABIX = 1. * L_FIELDNAME = BUKRS. * T_DD03L-KEYFLAG = X. * * CONCATENATE S_NAME L_TABIX INTO L_S_NAME. * CONDENSE: L_S_NAME NO-GAPS. * ASSIGN (L_S_NAME) TO . * CONCATENATE T001 - L_FIELDNAME INTO . * CONDENSE NO-GAPS. * SELECT * FROM DD03L INTO CORRESPONDING FIELDS OF TABLE T_DD03L WHERE TABNAME = P_TABLE AND AS4LOCAL = A AND ROLLNAME MANDT ORDER BY POSITION ASCENDING. LOOP AT T_DD03L. L_TABIX = SY-TABIX. 中国石油天然气集团公司 ERP 系统推广项目 动态选择屏幕、内表 Version: 1.0 第 9 页共 13 页 CONCATENATE S_NAME L_TABIX INTO L_S_NAME. CONDENSE: L_S_NAME NO-GAPS. ASSIGN (L_S_NAME) TO . CONCATENATE T_DD03L-TABNAME - T_DD03L-FIELDNAME INTO . CONDENSE NO-GAPS. APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-TEXT T_DD03L-KEYFLAG L_FIELDNAME. APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-OPTI_PUSH T_DD03L- KEYFLAG L_FIELDNAME. APPEND_T_SCREEN S_SEL L_TABIX -LOW T_DD03L-KEYFLAG L_FIELDNAME. APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-TO_TEXT T_DD03L- KEYFLAG L_FIELDNAME. APPEND_T_SCREEN S_SEL L_TABIX -HIGH . APPEND_T_SCREEN %_S_SEL L_TABIX _%_APP_%-VALU_PUSH T_DD03L-KEYFLAG . ENDLOOP. * ENDFORM. “ SUB_SELECT_PARAMETERS *&-* *& Form MODIFY_SCREEN *&-* * text *-* * p1 text * p1 text * p1 text * TYPE ANY. FIELD-SYMBOLS: TYPE ANY. FIELD-SYMBOLS: TYPE ANY. LOOP AT T_DD03L. L_TABIX = SY-TABIX. T_SELECT_OPTIONS-FIELD = T_DD03L-FIELDNAME. CONCATENATE S_SEL L_TABIX INTO T_SELECT_OPTIONS-SELNM. 中国石油天然气集团公司 ERP 系统推广项目 动态选择屏幕、内表 Version: 1.0 第 11 页共 13 页 CONDENSE T_SELECT_OPTIONS-SELNM NO-GAPS. ASSIGN (T_SELECT_OPTIONS-SELNM) TO . IF NOT IS INITIAL. ASSIGN COMPONENT LOW OF STRUCTURE TO . ASSIGN COMPONENT HIGH OF STRUCTURE TO . IF IS NOT INITIAL OR IS NOT INITIAL. APPEND T_SELECT_OPTIONS. ENDIF. ENDIF. ENDLOOP. ENDFORM. “ GET_RANGE *&-* *& Form SUB_GET_TABLE *&-* * text *-* * P_P_TABLE text *-* FORM SUB_GET_TABLE USING P_TABLE. DATA: L_TABIX(10) TYPE C. G_TABLE_NAME = P_TABLE. CALL FUNCTION ZDYNP_CREATE_ITAB EXPORTING I_NAME = G_TABLE_NAME * I_STYLE_TABLE = X IMPORTING E_I_TABLE = G_DY_TABLE E_WA = G_DY_LINE. * E_STYLE_FNAME = G_ITAB_NAME. G_ITAB_NAME = XYZSTYLEZYX. ASSIGN G_DY_TABLE-* TO . ASSIGN G_DY_LINE-* TO . REFRESH: WHERE_TAB. CLEAR: WHERE_TAB. LOOP AT T_SELECT_OPTIONS. L_TABIX = SY-TABIX. CONDENSE L_TABIX NO-GAPS. CLEAR: WHERE_CLAUSE. IF L_TABIX = 1. CONCATENATE T_SELECT_OPTIONS-FIELD IN T_SELECT_OPTIONS-SELNM INTO WHERE_CLAUSE SEPARATED BY SPACE. ELSE. CONCATENATE AND T_SELECT_OPTIONS-FIELD IN T_SELECT_OPTIONS-SELNM INTO WHERE_CLAUSE SEPARATED BY SPACE. ENDIF. APPEND WHERE_CLAUSE TO WHERE_TAB. ENDLOOP. *&-Select Data into itab-* SELECT * FROM (P_TABLE) UP TO 500 ROWS INTO CORRESPONDING FIELDS OF TABLE WHERE (WHERE_TAB). ENDFORM. “ SUB_GET_TABLE *&-* *& Form OUT_ALV *&-* * text *-* * p1 text * AND ROLLNAME ZZSTATUS ORDER BY POSITION ASCENDING. LOOP AT GT_FCAT_ITAB. SELECT SINGLE DDTEXT FROM DD04T INTO GT_FCAT_ITAB-COLTEXT WHERE ROLLNAME = GT_FCAT_ITAB-ROLLNAME AND DDLANGUAGE = SY-LANGU AND AS4LOCAL = A. GT_FCAT_ITAB-TABNAME = G_ITAB_NAME. GT_FCAT_ITAB-F4AVAILABL = X. GT_FCAT_ITAB-REF_FIELD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年高考化学易错点(26)物质结构与性质(知识点讲解)
- 2023年当代大学生消费状况调查报告
- 电磁场实验指导书
- 内科学(医学高级):消化系统疾病考试题三
- 传染病防治法律课件
- 2024年04月陕西西安音乐学院招考聘用笔试历年(难与易错考点)高频考题后附答案详解
- 2024年04月湖北省疾病预防控制中心招考聘用17人笔试历年(难与易错考点)高频考题后附答案详解
- 2024年04月成都市地方志编纂委员会办公室所属事业单位成都年鉴社(成都方志馆)2024年公开招考1名工作人员笔试历年(难与易错考点)高频考题后附答案详解
- 2024年04月四川省峨眉山市2024年上半年赴成都工程大学考核招考5名事业单位工作人员笔试历年(难与易错考点)高频考题后附答案详解
- 2024年04月北京市化工职业病防治院招考聘用笔试历年(难与易错考点)高频考题后附答案详解
- 工商管理专业酒店实习报告2篇
- 《我变成了一棵树》公开课一等奖创新教学设计
- 钉钉设置任务培训课件
- 2024年湖北省知名中小学教联体联盟中考第一次模拟考试语文试题
- 2024年广东省星海音乐厅招聘招聘历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 智慧高校实验室智能管理解决方案
- 食品安全的法律责任与处罚
- 医疗科技与健康管理的创新与应用实践案例分析报告
- 人教版四年级数学下册第三单元运算定律 大单元作业设计
- 《大数据平台部署与运维》课程标准(含课程思政)
- 住培中医病例讨论-面瘫
评论
0/150
提交评论