




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用BAPI,BDC批量创建用户首先是创建一个状态:代码首先声明读取excel数据的变量等DATA:BEGINOFIEXCELOCCURS0.INCLUDESTRUCTUREALSMEX_TABLINE.此表是excel系统表,3个字段,行列值DATA:ENDOFIEXCEL.DATA:LW_FILETYPERLGRAP-FILENAME,RCTYPEI,LT_TABLETYPEFILETABLE,LW_TABLETYPEFILE_TABLE.3个字段,也是excel里显示的3列DATA:BEGINOFWA_USERSOCCURS0,USERNAME(12)TYPEC,PASSWORD(40)TYPEC,LASTNAME(40)TYPEC,TAG,ENDOFWA_USERS.DATAIT_USERSLIKETABLEOFWA_USERSWITHHEADERLINE.PARAMETERSFILETYPELOCALFILEOBLIGATORY.程序:ATSELECTION-SCREENONVALUE-REQUESTFORFILE.PERFORMPRM_FILE.选择文件路径START-OF-SELECTION.PERFORMFRM_EXCEL.点击执行,赋值CALLSCREEN100.跳转主屏幕ATSELECTION-SCREENONVALUE-REQUESTFORFILE.*-*FORMPRM_FILE.选择文件路径CALLMETHODCL_GUI_FRONTEND_SERVICES=FILE_OPEN_DIALOGEXPORTINGWINDOW_TITLE=选择文件FILE_FILTER=XLS模板文件|*.XLSXINITIAL_DIRECTORY=D:CHANGINGFILE_TABLE=LT_TABLE把导入的excel表赋给FILE_TABLERC=RCEXCEPTIONSCNTL_ERROR=1FILE_OPEN_DIALOG_FAILED=2ERROR_NO_GUI=3.CALLMETHODCL_GUI_CFW=FLUSHEXCEPTIONSCNTL_ERROR=1CNTL_SYSTEM_ERROR=2.READTABLELT_TABLEINTOLW_TABLEINDEX1.IFSY-SUBRCEQ0.FILE=LW_TABLE-FILENAME.ENDIF.ENDFORM.*-*FORMFRM_EXCEL. 点击执行,赋值CALLFUNCTIONALSM_EXCEL_TO_INTERNAL_TABLEEXPORTINGFILENAME=FILEI_BEGIN_COL=1开始和结束的行列 I_BEGIN_ROW=1I_END_COL=7I_END_ROW=100TABLESINTERN=IEXCELEXCEPTIONSINCONSISTENT_PARAMETERS=1UPLOAD_OLE=2OTHERS=3.IFSY-SUBRC0.WRITE:/读入文件错误!,FILE.ELSE.一般下面是才是我们关心的问题,循环excel,excel有3列,下面是IEXCEL-COL一列一列的读取,AT END OF ROW当读取一行(3列)后,赋给内表一行LOOPATIEXCEL.CASEIEXCEL-COL.WHEN1.IT_USERS-USERNAME=IEXCEL-VALUE(20).WHEN2.IT_USERS-PASSWORD=IEXCEL-VALUE(20).WHEN3.IT_USERS-LASTNAME=IEXCEL-VALUE(20).ENDCASE.ATENDOFROW.AT END OF也就是一行结束后赋值APPENDIT_USERS.当读取一行(3列)后,赋给内表一行ENDAT.ENDLOOP.ENDIF.ENDFORM.*&-点击按钮执行事件-*MODULEUSER_COMMAND_0100INPUT.CASESY-UCOMM.WHENBAPI.PERFORMZ_BAPI.WHENBDC.PERFORMZ_BDC.WHENBACK.LEAVEPROGRAM.WHENEXIT.LEAVEPROGRAM.WHENPRINT.PERFORMZ_SMARTFORMS.ENDCASE.ENDMODULE.B A P I*BAPI变量DATA:l_bapipwdLIKEbapipwd.密码DATA:l_addressLIKEbapiaddr3.lastname姓氏DATA:l_usernameLIKEBAPIBNAME.用户名DATA:l_logondataLIKEbapilogond.日期此处的return在下面调到他的自带MESSAGE,(提示信息)DATA:l_returnLIKEBAPIRET2OCCURS0WITHHEADERLINE.*DATA:l_return1LIKETABLEOFL_RETURN.如果用系统表里的结构就可以用这句,而不用下面自己声明结构,不过一般必要的自己写结构DATA:BEGINOFWA_MSSAGE,USERNAMETYPEBAPIBNAME-BAPIBNAME, 用户名UTYPETYPEMESSAGE-MSGTY,消息类型MSGTXTYPEMESSAGE-MSGTX,消息文本FLAGSTYPECLENGTH10, 消息灯颜色ENDOFWA_MSSAGE.DATAIT_MSSAGELIKETABLEOFWA_MSSAGEWITHHEADERLINE.FORMZ_BAPI.LOOPATIT_USERSWHERETAG=X.*把前面读取excel的数据赋给这3个字段l_username=IT_USERS-USERNAME.l_bapipwd=IT_USERS-PASSWORD.l_address-LASTNAME=IT_USERS-LASTNAME.address是一个系统结构,而我只需要LASTNAME字段,所以-lastnameCALLFUNCTIONBAPI_USER_CREATEEXPORTINGusername=l_usernamepassword=l_bapipwdaddress=l_addressLOGONDATA=l_logondataTABLESreturn=l_return.LOOPATL_RETURN.IT_MSSAGE-USERNAME=l_username.IT_MSSAGE-UTYPE=L_RETURN-TYPE.l-return是一张消息表IT_MSSAGE-MSGTX=L_RETURN-MESSAGE.APPENDIT_MSSAGE.ENDLOOP.*如果是弹出消息提示,就是下面这串代码,因为我们要用lv来显示消息信息,所以这段代码此处无用APPENDL_RETURNTOIT_MSSAGE.*LOOPATl_return.*如果成功则调用i005(ZBAPI),否则调用自带的消息文本.*MESSAGEi005(ZBAPI)WITHl_return-MESSAGE.*ENDLOOP.ENDLOOP.ENDFORM.*定义窗口定制控制,定义ALV对象DATA:WA_CONTAINERTYPESCRFNAMEVALUELV,LV是屏幕上画出来的LV的名字ALV_GRIDTYPEREFTOCL_GUI_ALV_GRID,WA_CUSTOM_CONTAINERTYPEREFTOCL_GUI_CUSTOM_CONTAINER.DATA:GS_FIELDCATTYPELVC_S_FCAT,GT_FIELDCATTYPELVC_T_FCAT.*- PBO屏幕输出前执行-*MODULESTATUS_0100OUTPUT.*如果窗口还没有创建ALV对象则创建它IFWA_CUSTOM_CONTAINERISINITIAL.CREATEOBJECTWA_CUSTOM_CONTAINEREXPORTINGCONTAINER_NAME=WA_CONTAINER.屏幕上LV名字,在声明中已给初始值CREATEOBJECTALV_GRIDEXPORTINGI_PARENT=WA_CUSTOM_CONTAINER.PERFORMFRM_FIELDCAT.调用自定义LV显示列表ENDIF.CALLMETHODALV_GRID-SET_TABLE_FOR_FIRST_DISPLAYCHANGINGIT_OUTTAB=IT_MSSAGEIT_FIELDCATALOG=GT_FIELDCAT.CLEARIT_MSSAGE.ENDMODULE.*-自定义LV显示-*FORMFRM_FIELDCAT.GS_FIELDCAT-COL_POS=1.GS_FIELDCAT-FIELDNAME=USERNAME.GS_FIELDCAT-OUTPUTLEN=24.GS_FIELDCAT-COLTEXT=用户.APPENDGS_FIELDCATTOGT_FIELDCAT.GS_FIELDCAT-COL_POS=2.GS_FIELDCAT-FIELDNAME=UTYPE.GS_FIELDCAT-OUTPUTLEN=20.GS_FIELDCAT-COLTEXT=消息类型.APPENDGS_FIELDCATTOGT_FIELDCAT.GS_FIELDCAT-COL_POS=3.GS_FIELDCAT-FIELDNAME=MSGTX.GS_FIELDCAT-OUTPUTLEN=80.GS_FIELDCAT-COLTEXT=消息.APPENDGS_FIELDCATTOGT_FIELDCAT.GS_FIELDCAT-COL_POS=4.GS_FIELDCAT-FIELDNAME=FLAGS.GS_FIELDCAT-OUTPUTLEN=10.GS_FIELDCAT-COLTEXT=备注.APPENDGS_FIELDCATTOGT_FIELDCAT.ENDFORM.B D C*BDC批量FORMZ_BDC.LOOPATIT_USERS.IFIT_USERS-TAGEQX.CLEAR:IT_BDCDATA,IT_BDCDATA.performbdc_dynprousingSAPLSUU50050.performbdc_fieldusingBDC_CURSORUSR02-BNAME.performbdc_fieldusingBDC_OKCODE=CREA.performbdc_fieldusingUSR02-BNAMEIT_USERS-USERNAME.performbdc_dynprousingSAPLSUU50100.performbdc_fieldusingBDC_OKCODE=UPD.performbdc_fieldusingBDC_CURSORADDR3_DATA-NAME_LAST.performbdc_fieldusingADDR3_DATA-NAME_LASTIT_USERS-LASTNAME.*performbdc_fieldusingADDR3_DATA-LANGU_P*record-LANGU_P_003.performbdc_fieldusingADDR3_DATA-DEFLT_COMMzh.performbdc_dynprousingSAPLSUU50100.performbdc_fieldusingBDC_OKCODE=UPD.performbdc_fieldusingBDC_CURSORG_PASSWORD2.performbdc_fieldusingUSLOGOND-USTYP.performbdc_fieldusingG_PASSWORD1IT_USERS-PASSWORD.performbdc_fieldusingG_PASSWORD2IT_USERS-PASSWORD.performbdc_transactionusingSU01.PERFORMFRM_MESSAGE.放IF里,代表只有选中才会赋值ENDIF.ENDLOOP.ENDFORM.*-Startnewscreen -FORMBDC_DYNPROUSINGPROGRAMDYNPRO.CLEARIT_BDCDATA.IT_BDCDATA-PROGRAM=PROGRAM.BDC模块库IT_BDCDATA-DYNPRO=DYNPRO.BDC屏幕号码IT_BDCDATA-DYNBEGIN=X.APPENDIT_BDCDATA.ENDFORM.*-Insertfield -FORMBDC_FIELDUSINGFNAMFVAL.DATANODATA.IFFVALNODATA.CLEARIT_BDCDATA.IT_IT_BDCDATA系统结构IT_BDCDATA-FNAM=FNAM.FNAM字段名IT_BDCDATA-FVAL=FVAL.字段值APPENDIT_BDCDATA.ENDIF.ENDFORM.FORMBDC_TRANSACTIONUSINGtcode.REFRESHmesstab.CALLTRANSACTIONtcodeUSINGIT_BDCDATAMODEN如果是N,则代表点击按钮时直接保存,不然会跳su01界面去UPDATESMESSAGESINTOmesstab.ENDFORM.*&-FormFRM_MESSAGE-FORMFRM_MESSAGE.DATAL_MSTRING(248).INCLUDE.导入灯包TABLEST100.LOOPATmesstab.SELECTSINGLE*FROMT100WHERESPRSL=messtab-MSGSPRAANDARBGB=messtab-MSGIDANDMSGNR=messtab-MSGNR.IFSY-SUBRC=0.L_MSTRING=T100-TEXT.IFL_MSTRINGCS&1.REPLACE&1WITHmesstab-MSGV1INTOL_MSTRING.REPLACE&2WITHmesstab-MSGV2INTOL_MSTRING.REPLACE&3WITHmesstab-MSGV3INTOL_MSTRING.REPLACE&4WITHmesstab-MSGV4INTOL_MSTRING.ELSE.REPLACE&WITHmesstab-MSGV1INTOL_MSTRING.REPLACE&WITHmesstab-MSGV2INTOL_MSTRING.REPLACE&WITHmesstab-MSGV3INTOL_MSTRING.REPLACE&WITHmesstab-MSGV4INTOL_MSTRING.ENDIF.CONDENSEL_MSTRING.IT_MSSAGE-USERNAME=IT_USERS-USERNAME.IT_MSSAGE-UTYPE=messtab-MSGTYP.IT_MSSAGE-MSGTX=l_mstring.IFIT_MSSAGE-UTYPE=S.颜色信息IT_MSSAGE-FLAGS=ICON_GREEN_LIGHT.ELSE.IT_MSSAGE-FLAGS=ICON_RED_LIGHT.ENDIF.APPENDit_mssage.ENDIF.ENDLOOP.ENDFORM.FRM_MESSAGE下面是做smartforms的打印信息必须加一个表头 就是第一行列名:首先在SMARTFORM 全局定义-类型 这个TAB页下定义个TYPES,结构跟要取的内表的结构一致.TYPES:BEGINOFMY_TYPE,USERNAME(12)TYPEC,PASSWORD(40)TYPEC,LASTNAME(40)TYPEC,TAG,ENDOFMY_TYPE.然后在 全局定义-全局数据 这个TAB页下定义一个内表和工作区,如:最后在 全局定义-初始化 这个TAB页下写下面的代码:DATA:FIELD(50).FIELD-SYMBOLS:TYPEANY.FIELD=(ZHE_PROGRAM2)IT_USERS.ZXXXXX为程序名,OUTPUT为程序里内表ASSIGN(F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陕西省宝鸡市眉县高三语文第一学期期末联考试题
- 双方联合研发项目合作中技术成果保密及利益共享协议
- 2025年影像医学影像诊断与分析模拟测试答案及解析
- 2025年临终关怀临终关怀技能理论与实践考核答案及解析
- 2025年全科医学医疗团队合作协同诊疗方案设计与实施模拟试卷答案及解析
- 2025年呼吸内科呼吸道疾病诊断治疗综合测试卷答案及解析
- 2025年急救护理中心危重病人监测与干预考核答案及解析
- 2025年法医学尸体解剖的程序要点考试卷答案及解析
- 2025年肿瘤内科肿瘤化疗常见药物使用答案及解析
- 2025年临床药学药物相互作用及不良反应模拟考试卷答案及解析
- 医学信息学课件
- 加工番茄栽培技术及病虫害防治
- 数据可视化课程建设经验交流陈为课件
- 二级减速器计算说明书
- 厨房设备施工方案
- 《比热容》说课-完整版课件
- 北京市各县区乡镇行政村村庄村名明细
- 各种轴载换算计算方法
- (高职)《会展策划》(第三版)ppt课件(完整版)
- 商超类企业抖音代运营方案(综合)
- 海上保险法课堂笔记(国航上课版)
评论
0/150
提交评论