ABAP导入导出粘贴板
ABAP将相同结构的A表数据COPY到B表中

ABAP将相同结构的A表数据COPY到B表中主要就是动态内表PARAMETERS: p_tabf TYPE dd02l-tabname, "原表名称p_tabt TYPE dd02l-tabname. "备份表名称DATA: it_tabf TYPE lvc_t_fcat,it_tabt TYPE lvc_t_fcat.DATA: it_tabfc TYPE lvc_t_fcat,it_tabtc TYPE lvc_t_fcat.DATA: lcx_error TYPE REF TO cx_root.DATA: dy_table TYPE REF TO data,dy_line TYPE REF TO data.FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE.* <dyn_wa>,* <dyn_field>.FIELD-SYMBOLS: <fs_tab> LIKE lvc_s_fcat.CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'EXPORTINGi_client_never_display = ''i_structure_name = p_tabfCHANGINGct_fieldcat = it_tabfEXCEPTIONSinconsistent_interface = 1program_error = 2OTHERS = 3.CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'EXPORTINGi_client_never_display = ''i_structure_name = p_tabtCHANGINGct_fieldcat = it_tabtEXCEPTIONSinconsistent_interface = 1program_error = 2OTHERS = 3.it_tabfc = it_tabf.it_tabtc = it_tabt.LOOP AT it_tabfc ASSIGNING <fs_tab>.CLEAR: <fs_tab>-ref_table.ENDLOOP.LOOP AT it_tabtc ASSIGNING <fs_tab>.CLEAR: <fs_tab>-ref_table.ENDLOOP.IF it_tabfc <> it_tabtc.MESSAGE '复制的原表与⽬的表结构不⼀致,请确认' TYPE 'S' DISPLAY LIKE 'E'.EXIT.ENDIF.CALL METHOD cl_alv_table_create=>create_dynamic_tableEXPORTINGit_fieldcatalog = it_tabf* I_LENGTH_IN_BYTE = 'X'IMPORTINGep_table = dy_table.ASSIGN dy_table->* TO <dyn_table>.SELECT * INTO TABLE <dyn_table> FROM (p_tabf) .IF sy-subrc = 0.TRY.DELETE FROM (p_tabt). "清除TO表中所有数据INSERT (p_tabt) FROM TABLE <dyn_table>.CATCH cx_sy_open_sql_db INTO lcx_error.ENDTRY.IF sy-subrc = 0.COMMIT WORK.MESSAGE '数据备份成功' TYPE 'S'.ELSE.ROLLBACK WORK.MESSAGE '数据备份失败,请重试' TYPE 'S' DISPLAY LIKE 'E'.ENDIF.ENDIF.。
ABAP_EXCEL导出数据

使用EXCEL导出数据要完成使用EXCEL导出数据,基本分为两布:1 建立excel模版2 在程序中整理要输出的数据,并完成最终的输出1 建立excel模版1.1 在本地建立一个excel设置模版的格式,在本例中,模版格式如下:1.2 使用Tcode:OROA,将模版导入SAP系统1.2.1 输入Tcode:OROA注:其他字段可以不填1.2.2 导入模版1.2.2.1 导入模版Create——>standard.doc.types ——> table template1.2.2.2 选择要导入的模版1.2.2.3 输入模版信息——描述和语言1.2.2.5 导入模版之后,在屏幕左上角会添加模版2. 程序中整理数据,并调用模版输出2.1 整理数据,并调用屏幕SELECT * FROM zlhjtestINTO CORRESPONDING FIELDS OF TABLE l_itab_stu. CALL SCREEN0100.2.2 输出屏幕2.2.1 输出屏幕之前,调用模版SET PF-STATUS 'STAN1'.PERFORM create_basic_objects USING'''''''' document_name. PERFORM output_to_excel.2.2.2 输出屏幕之后,根据用户选择做出反应实现这些功能的的代码,如下:REPORT zlhjtest_abavn.TYPE-POOLS:slis,vrm,soi.TYPES:BEGIN OF l_hh,BSART LIKE T161-BSART,batxt TYPE t161t-batxt,END OF l_hh.DATA: ok_code TYPE sy-ucomm,save_ok TYPE sy-ucomm.DATA: flag TYPE c,initialized TYPE c,item_url(256) TYPE c,app TYPE vrm_id,excel(80) VALUE'Excel.Sheet',v_title1(60) TYPE c VALUE'制作人:李红娟'.DATA: rangeitem TYPE soi_range_item,ranges TYPE soi_range_list.DATA: excel_input TYPE soi_generic_table,excel_input_wa TYPE soi_generic_item.DATA: document_type(80) TYPE c,container TYPE REF TO cl_gui_custom_container,control TYPE REF TO i_oi_container_control,document TYPE REF TO i_oi_document_proxy,spreadshee TYPE REF TO i_oi_spreadsheet,error TYPE REF TO i_oi_error,errors TYPE REF TO i_oi_errorOCCURS0WITH HEADER LINE. DATA: l_itab_stu TYPE TABLE OF t161t,l_wa_stu TYPE t161t.CONSTANTS:document_name(30) VALUE'学生信息表', "inplace VALUE'X'.1. 选择数据SELECT * FROM zlhjtestINTO CORRESPONDING FIELDS OF TABLE l_itab_stu.2 调用输出屏幕CALL SCREEN0100.*******************下面是子程序******************************&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_0100 OUTPUT.SET PF-STATUS 'STAN1'.PERFORM create_basic_objects USING'''''''' document_name. PERFORM output_to_excel.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Form create_basic_objects*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_0130 text* -->P_0131 text* -->P_0132 text* -->P_0133 text* -->P_DOCUMENT_NAME text*----------------------------------------------------------------------*FORM create_basic_objects USING p_app_namep_classnamep_classtypep_obj_keyp_docname.DATA: l_app_name(200).CHECK initialized IS INITIAL.CALL METHODc_oi_container_control_creator=>get_container_controlIMPORTINGcontrol = controlerror = error.CALL METHOD error->raise_messageEXPORTINGtype = 'E'.CREATE OBJECT containerEXPORTINGcontainer_name = 'CONTAINER_NAME'. "输入屏幕0100的"容器“元素名IF p_app_name IS INITIAL.l_app_name = 'TEST1'.ELSE.l_app_name = p_app_name.ENDIF.CALL METHOD control->init_controlEXPORTINGr3_application_name = l_app_nameinplace_enabled = inplaceinplace_scroll_documents = 'X'"parent = containerregister_on_close_event = 'X'register_on_custom_event = 'X'no_flush = 'X'IMPORTINGerror = errors.APPEND errors.* save error object in collectionAPPEND errors.CLEAR item_url.DATA: bds_instance TYPE REF TO cl_bds_document_set. DATA: doc_signature TYPE sbdst_signature,wa_doc_signature LIKE LINE OF doc_signature,doc_components TYPE sbdst_components,doc_uris TYPE sbdst_uri,wa_doc_uris LIKE LINE OF doc_uris.*以下三个值为Tcode:OAOR里面新建模板文件的参数********************************DATA:doc_classname TYPE sbdst_classname VALUE'PICTURES', doc_classtype TYPE sbdst_classtype VALUE'OT',doc_object_key TYPE sbdst_object_keyVALUE'ZLHJEXCELTEMPLATE'."定义对象的key wa_doc_signature-prop_name = 'DESCRIPTION'.app = 'excel'.IF app = 'excel'.document_type = excel.wa_doc_signature-prop_value = p_docname.ELSE.ENDIF.APPEND wa_doc_signature TO doc_signature.CREATE OBJECT bds_instance.CALL METHOD bds_instance->get_infoEXPORTINGclassname = doc_classnameclasstype = doc_classtypeobject_key = doc_object_keyCHANGINGcomponents = doc_componentssignature = doc_signature.CALL METHOD bds_instance->get_with_urlEXPORTINGclassname = doc_classnameclasstype = doc_classtypeobject_key = doc_object_keyCHANGINGuris = doc_urissignature = doc_signature.FREE bds_instance.READ TABLE doc_uris INTO wa_doc_uris INDEX1.item_url = wa_doc_uris-uri.* ask the SAP DOI container for a i_oi_document_proxy for Excel CALL METHOD control->get_document_proxyEXPORTINGdocument_type = document_typeno_flush = 'X'IMPORTINGdocument_proxy = documenterror = errors.APPEND errors.* open a document saved in business document service. CALL METHOD document->open_documentEXPORTINGopen_inplace = inplacedocument_url = item_url.DATA: has TYPE i.CALL METHOD document->has_spreadsheet_interface EXPORTINGno_flush = ''IMPORTINGis_available = haserror = errors.APPEND errors.CALL METHOD document->get_spreadsheet_interface EXPORTINGno_flush = ' 'IMPORTINGsheet_interface = spreadsheeterror = errors.APPEND errors.* Activate sheet 1CALL METHOD spreadsheet->select_sheetEXPORTINGname = '表整理'* NO_FLUSH = ' 'IMPORTINGerror = errors.APPEND errors.LOOP AT errors.CALL METHOD errors->raise_messageEXPORTINGtype = 'E'.ENDLOOP.FREE errors.initialized = 'X'.ENDFORM. " create_basic_objects*&---------------------------------------------------------------------* *& Form output_to_excel*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM output_to_excel .perform fill_cell using21 v_title1.DATA: num TYPE i.num = 5.LOOP AT l_itab_stu INTO l_wa_stu .PERFORM fill_cell USING num 1 num .PERFORM fill_cell USING num 2 l_wa_stu-SPRAS .PERFORM fill_cell USING num 3 l_wa_stu-BSART.PERFORM fill_cell USING num 4 l_wa_stu-batxt.* PERFORM fill_cell USING num 2 l_wa_stu-sno .* PERFORM fill_cell USING num 3 l_wa_stu-sname. * PERFORM fill_cell USING num 4 l_wa_stu-ssex.num = num + 1.ENDLOOP.ENDFORM. " output_to_excel*&---------------------------------------------------------------------* *& Form fill_cell*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * -->P_2 text* -->P_1 text* -->P_V_TITLE1 text*----------------------------------------------------------------------* FORM fill_cell USING i j value.DATA: columns_number TYPE i,rows_number TYPE i.columns_number = 1.rows_number = 1.CALL METHOD spreadsheet->insert_range_dimEXPORTINGname = 'cell'no_flush = 'X'top = ileft = jrows = rows_numbercolumns = columns_numberIMPORTINGerror = errors.APPEND errors.REFRESH: ranges, excel_input.rangeitem-name = 'cell'.rangeitem-columns = 1.rangeitem-rows = 1.APPEND rangeitem TO ranges.excel_input_wa-column = 1.excel_input_wa-row = 1.excel_input_wa-value = value.APPEND excel_input_wa TO excel_input.* set dataCALL METHOD spreadsheet->set_ranges_dataEXPORTINGranges = rangescontents = excel_inputno_flush = 'X'IMPORTINGerror = errors.APPEND errors.CALL METHOD spreadsheet->fit_widestEXPORTINGname = spaceno_flush = 'X'.REFRESH: ranges, excel_input.ENDFORM. " fill_cell*&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------*MODULE user_command_0100 INPUT.flag = 'X'.save_ok = ok_code.CLEAR ok_code.CASE save_ok.WHEN'&F12'OR'&F15'. "'STOP' .IF NOT document IS INITIAL.CALL METHOD document->close_document.FREE document.ENDIF.IF NOT control IS INITIAL.CALL METHOD control->destroy_control.FREE control.ENDIF.LEAVE PROGRAM.WHEN'&F03'. "'BACK' .IF NOT document IS INITIAL.CALL METHOD document->close_document.FREE document.ENDIF.IF NOT control IS INITIAL.CALL METHOD control->destroy_control.FREE control.ENDIF.SET SCREEN0. " quit the program"set screen 1000.ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT。
SAP系统快捷复制、粘贴、替换操作技巧

SAP系统快捷复制、粘贴、替换操作技巧一、“快捷剪切和粘贴”功能的设置通过“定制本地布局”完成“快捷剪切和粘贴”功能的设置。
该功能的主要作用:1. 快捷复制。
在SAP系统中,直接按住鼠标左键、拖动选中(从左往右、从右往左都可以)要复制的内容,即可完成复制,复制的内容可以粘贴到系统内或者系统外。
2. 快捷粘贴。
首先,在要粘贴的位置前端左击一下鼠标左键,输入框颜色变深;然后,点击一下鼠标右键,即可完成粘贴,同样,被粘贴的内容来自系统内、外都可以。
完成“快捷剪切和粘贴”功能设置后,在单击鼠标右键时,将不再出现右上图所示的提示,而是快速完成粘贴。
二、应用实例(一)快捷复制以复制订单号为例:如下图所示,在未启用“快捷剪切和粘贴”功能时,我们需要先将光标定位到输入框的左侧或右侧;然后,长按鼠标左键并拖动以选中订单号;最后,Ctrl+C组合键完成复制,如下组图所示。
当按第一部分所述启用了“快捷剪切和粘贴”功能,那么,长按鼠标左键并拖动的过程中,就同时完成了对订单号的复制,即快捷复制,拖动操作从左往右或从右往左都可以,此时,将不再出现灰色区域标记(灰色表示选中),如下组图所示。
通过“快捷复制”操作得到的内容,可以粘贴到系统内相应位置或者系统外,如Word文档、Excel表格。
(二)快捷粘贴接着“快捷复制”的操作继续:此时,“快捷剪切和粘贴”功能已启用,计划将刚才复制的订单号粘贴到车辆竣工验收界面的“工单号”输入框中,以完成车辆竣工验收操作。
具体操作是:将光标定位到“工单号”输入框中,输入框区域颜色由浅变深,单击鼠标右键完成粘贴操作,即快捷粘贴,如下组图所示。
若此时没有启用“快捷剪切和粘贴”功能,单击鼠标右键将出现下图所示提示,无法进行粘贴,还需通过Ctrl+V组合键来完成粘贴操作。
被用于“快捷粘贴”操作的内容,可以是来自系统内的数据内容,也可以是系统外的数据内容。
(三)快捷替换实际操作中,当我们计划在某一输入框中输入相应值时,常会遇到目标输入框中已经有一个值存在,保守操作是先把原来的值删除、清空(Delete或Backspace),再用直接输入或者快捷粘贴的方式完成新值的输入。
VBA的文件导入导出技巧

VBA的文件导入导出技巧VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序的编程语言,它可以帮助我们更高效地处理数据和自动化各种操作。
在Excel等应用程序中,VBA的文件导入导出技巧可以帮助我们快速读取和保存数据,提高工作效率。
在本文中,我们将介绍一些常用的VBA文件导入导出技巧,帮助您更好地运用VBA处理数据。
1. 文件导入文件导入是指将外部文件中的数据导入到Excel中。
在VBA中,我们可以使用Workbooks.Open方法打开外部文件,并使用Workbooks对象的OpenText方法或QueryTables方法将数据导入到Excel工作簿中。
例如,我们可以使用以下代码将一个文本文件导入到Excel中:```vbaSub ImportTextFile()Dim FilePath As StringDim wb As WorkbookFilePath = "C:\Data\TextFile.txt"Set wb = Workbooks.Open(FilePath)' 使用OpenText方法导入数据With wb.Sheets(1).QueryTables.Add(Connection:="TEXT;" & FilePath, _Destination:=wb.Sheets(1).Range("A1")).TextFileStartRow = 1.TextFileParseType = xlDelimited.TextFileCommaDelimiter = True.RefreshEnd With' 关闭外部文件wb.Close FalseSet wb = NothingEnd Sub```上述代码首先使用Workbooks.Open方法打开文本文件,然后使用QueryTables.Add方法将文本文件数据导入到Excel的第一个工作表中,最后关闭外部文件。
abapexcel模板数据导入的2种方法

abapexcel模板数据导⼊的2种⽅法1.通过:CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' 处理TYPES :BEGIN OF tecl_data,werks TYPE ztmm_location-werks, "⼯⼚lgort_1 TYPE ztmm_location-lgort_1, "⼀级库位lgort_d2 TYPE ztmm_location-lgort_d2, "⼆级库位描述lgort_d3 TYPE ztmm_location-lgort_d3, "三级库位描述lgort_shl TYPE ztmm_location-lgort_shl, "损耗率‰active TYPE ztmm_location-active, "是否激活lgort_d1 TYPE ztmm_location-lgort_d1, "⼀级库位描述END OF tecl_data.DATA lt_read TYPE TABLE OF ztmm_location .DATA lw_read TYPE tecl_data.DATA lw_read1 TYPE ztmm_location .DATA: lw_flag TYPE i ,lw_pxag TYPE i.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGfilename = p_filei_begin_col = '1'i_begin_row = '2'i_end_col = '20'i_end_row = '9999'TABLESintern = gt_excel[]EXCEPTIONSinconsistent_parameters = 1s_file_ole = 2OTHERS = 3.IF sy-subrc <> 0.MESSAGE s000(zfi01) WITH '⽂件打开失败!' DISPLAY LIKE 'E'.LEAVE LIST-PROCESSING.ENDIF.FIELD-SYMBOLS <fs_value>.FIELD-SYMBOLS <fs_excel> LIKE gt_excel.SORT gt_excel BY row col.LOOP AT gt_excel ASSIGNING <fs_excel>.ASSIGN COMPONENT <fs_excel>-col OF STRUCTURE lw_read TO <fs_value>.<fs_value> = <fs_excel>-value.AT END OF row.IF lw_read-lgort_1 IS NOT INITIAL .SELECT SINGLE lgobeFROM t001lINTO lw_read-lgort_d1WHERE werks = lw_read-werksAND lgort = lw_read-lgort_1.ENDIF .TRANSLATE lw_read-active TO UPPER CASE.MOVE-CORRESPONDING lw_read TO lw_read1 .APPEND lw_read1 TO lt_read .CLEAR lw_read .CLEAR lw_read .ENDAT.ENDLOOP.SORT lt_read BY werks lgort_1 lgort_d2 lgort_d3.DELETE ADJACENT DUPLICATES FROM lt_read COMPARING ALL FIELDS .IF lt_read IS NOT INITIAL .MODIFY ztmm_location FROM TABLE lt_read .IF sy-subrc = 0 .WRITE:'数据导⼊成功'.ENDIF .ENDIF .2. 通过:CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' 处理TYPES : BEGIN OF typ_excel,werks TYPE marc-werks,matnr TYPE mara-matnr,zcpxl TYPE ztsd_cpxl-zcpxl,msg TYPE bapi_msg,"消息END OF typ_excel.DATA :gt_excel TYPE TABLE OF typ_excel,gw_excel TYPE typ_excel.CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'EXPORTING* I_FIELD_SEPERATOR =i_line_header = 'X' "X表⽰带抬头⾏的EXCEL的抬头⾏不传进内表,否则EXCEL不要带抬头 i_tab_raw_data = i_raw " WORK TABLEi_filename = p_fileTABLESi_tab_converted_data = gt_excel "ACTUAL DATAEXCEPTIONSconversion_failed = 1OTHERS = 2.IF sy-subrc <> 0.MESSAGE '⽆法上载数据,请检查EXCEL⽂件' TYPE 'S' DISPLAY LIKE 'E'.STOP.ENDIF.。
ABAP将excel导出导入到文件夹中

Code listing for: Z00HRJ_IMPORT_Z00HRTWSSIGN Description: 通过EXCEL文件夹导入Z00HRTSIG表*&---------------------------------------------------------------------**& Report Z00HRJ_IMPORT_Z00HRTWSSIGN*&*&------------------------------------------------------------------- ------------------------------------------------------------------* REPORT Z00HRJ_IMPORT_Z00HRTWSSIGN.DATA: GS_PATH TYPE STRING,GS_FILE TYPE STRING,P_EXPORT TYPE STRING,P_FILE LIKE RLGRAP-FILENAME,OK_CODE LIKE SY-TCODE.TYPES:BEGIN OF TYP_SIGN,MANDT TYPE CHAR3,ZNO TYPE CHAR10,SIGN TYPE NUM2,OTYPE TYPE CHAR2,SPERNR TYPE NUM8,GPERNR TYPE NUM8,ZJZBSID TYPE NUM8,BEGDA TYPE DATS,ENDDA TYPE DATS,UPDDA TYPE DATS,END OF TYP_SIGN.TYPES:BEGIN OF TYP_ZB,MANDT TYPE CHAR3,ZNO TYPE CHAR10,SIGN TYPE CHAR2,OTYPE TYPE CHAR2,SPERNR TYPE NUM8,GPERNR TYPE NUM8,BEGDA TYPE CHAR8,ENDDA TYPE CHAR8,UPDDA TYPE CHAR8,END OF TYP_ZB.DATA: GT_SIGN TYPE TABLE OF TYP_ZB WITH HEADER LINE,GWA_SIGN TYPE TYP_ZB,WA_ZBSIGN TYPE Z00HRTSIGN,IT_ZBSIGN TYPE TABLE OF Z00HRTSIGN,WA_JZSIGN TYPE TYP_SIGN,IT_JZSIGN TYPE TABLE OF TYP_SIGN.DATA: C_QB,P_WSBH(2),R_BACKUP TYPE C VALUE 'X',R_JZBS TYPE C ,R_UPDATE TYPE C,R_EXPORT TYPE C,R_DELETE TYPE C.INITIALIZATION.START-OF-SELECTION.CALL SCREEN 100.*&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS_100'.SET TITLEBAR '0100_TITLE'.LOOP AT SCREEN.IF R_BACKUP EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_UPDATE EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') OR( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_DELETE EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') OR( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004')OR ( SCREEN-NAME EQ 'P_WSBH' OR SCREEN-NAME EQ 'T-002') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_JZBS EQ 'X' AND ( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003' OR ( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_EXPORT EQ 'X' AND ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001' OR ( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.MODIFY SCREEN.ENDLOOP.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE USER_COMMAND_0100 INPUT.DATA: L_WSBH TYPE CHAR2,LT_SIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.CASE OK_CODE.WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.LEAVE PROGRAM.WHEN 'DRSIGN'.CLEAR OK_CODE.IF C_QB IS INITIAL AND R_DELETE IS INITIAL.IF P_WSBH IS INITIAL.MESSAGE '请填写编号' TYPE 'E'.ENDIF.ENDIF.IF R_JZBS EQ 'X'.IF P_FILE IS INITIAL.MESSAGE '请填写路径' TYPE 'E'.ENDIF.PERFORM FRM_IMPORT_Z00HRTSIGN.ELSEIF R_UPDATE EQ 'X'.PERFORM FRM_UPDATE_99991231.ELSEIF R_EXPORT EQ 'X'.IF P_EXPORT IS INITIAL.MESSAGE '请填写路径' TYPE 'E'.ENDIF.PERFORM FRM_EXPROT_Z00HRTSIGN.ELSEIF R_BACKUP EQ 'X'.IF C_QB EQ ''.SELECT * FROM Z00HRTSIGN INTO TABLE LT_SIGN WHERE SIGN EQ P_WSBH .IF SY-SUBRC EQ 0.INSERT Z00HRTSIGNBF FROM TABLE LT_SIGN ACCEPTING DUPLICATE KEYS.COMMIT WORK.ENDIF.ELSE.SELECT Z00HRJWSBH INTO L_WSBH FROM Z00HRTBMDY.SELECT * FROM Z00HRTSIGN INTO TABLE LT_SIGN WHERE SIGN EQ L_WSBH.IF SY-SUBRC EQ 0.INSERT Z00HRTSIGNBF FROM TABLE LT_SIGN ACCEPTING DUPLICATE KEYS.CLEAR L_WSBH.CLEAR:LT_SIGN[].ENDIF.ENDSELECT.ENDIF.ELSEIF R_DELETE EQ 'X'.DELETE FROM Z00HRTSIGN WHERE GPERNR EQ '' OR SPERNR EQ ''.IF SY-SUBRC EQ 0.COMMIT WORK.ELSE.MESSAGE '删除失败' TYPE 'E'.ENDIF.ENDIF.MESSAGE '执行完成' TYPE 'S'.WHEN OTHERS.ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------**& Form FRM_PROCESS_Z00HRTSIGN*&---------------------------------------------------------------------** text 导入Z00HRTSIGN表*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_IMPORT_Z00HRTSIGN .DATA: Z_COUNT TYPE I.DATA:ZFILE_TABLE TYPE TABLE OF SDOKPATH WITH HEADER LINE.DATA:ZDIR_TABLE TYPE TABLE OF SDOKPATH WITH HEADER LINE.CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'EXPORTINGDIRECTORY = P_FILEFILTER = '*.XLS'IMPORTINGFILE_COUNT = Z_COUNT* DIR_COUNT =TABLESFILE_TABLE = ZFILE_TABLE[]DIR_TABLE = ZDIR_TABLE[]EXCEPTIONSCNTL_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0 .MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ELSEIF ZFILE_TABLE[] IS INITIAL.DATA: P_FILEJ(129) TYPE C.CONCATENATE P_FILE '\' INTO P_FILE.CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'EXPORTINGDIRECTORY = P_FILEFILTER = '*.XLS'IMPORTINGFILE_COUNT = Z_COUNT* DIR_COUNT =TABLESFILE_TABLE = ZFILE_TABLE[]DIR_TABLE = ZDIR_TABLE[]EXCEPTIONSCNTL_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0 .MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ENDIF.ENDIF.IF ZFILE_TABLE[] IS NOT INITIAL.DATA:PATHNAME(255) TYPE C.DATA:ZTYPE(5) TYPE C.* DATA:P_FILE LIKE RLGRAP-FILENAME.LOOP AT ZFILE_TABLE.SPLIT ZFILE_TABLE-PATHNAME AT '.' INTO: PATHNAME ZTYPE .CONCATENATE P_FILE '\' ZFILE_TABLE-PATHNAME INTO P_FILE.PERFORM FRM_UPDATE_Z00HRTSIGN USING P_FILE.* CALL FUNCTION 'GUI_EXEC'* EXPORTING* COMMAND = 'TASKKILL'* PARAMETER = 'EXCEL.EXE'** IMPORTING** RETURNCODE =.* WAIT UP TO 10 SECONDS.* SUBMIT Z00HRJ_IMPORT_FILE WITH P_FILE = P_FILE AND RETURN.ENDLOOP.ELSE.MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ENDIF.ENDFORM. " FRM_PROCESS_Z00HRTSIGN*&---------------------------------------------------------------------**& Module F4_FILE INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_FILE INPUT.DATA: TMP_FOLDER(255).CALL FUNCTION 'TMP_GUI_BROWSE_FOR_FOLDER'EXPORTINGWINDOW_TITLE = '请选择要上传文档所存储的文件夹'IMPORTINGSELECTED_FOLDER = TMP_FOLDER .IF SY-SUBRC = 0.P_FILE = TMP_FOLDER.ENDIF.ENDMODULE. " F4_FILE INPUT*&---------------------------------------------------------------------**& Form FRM_UPDATE_Z00HRTSIGN*&---------------------------------------------------------------------** text 更新Z00HRTSIGN表*----------------------------------------------------------------------** -->P_P_FILE2 text*----------------------------------------------------------------------*FORM FRM_UPDATE_Z00HRTSIGN USING U_FILE .DATA: L_TIMES TYPE I,LEN_ZNO TYPE I,L_INTER_DATA TYPE DATS.FIELD-SYMBOLS <DYN_FIELD>.DATA: IT_EXCEL TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGFILENAME = U_FILEI_BEGIN_COL = 1I_BEGIN_ROW = 1I_END_COL = 10I_END_ROW = 9999TABLESINTERN = IT_EXCELEXCEPTIONSINCONSISTENT_PARAMETERS = 1UPLOAD_OLE = 2OTHERS = 3.IF SY-SUBRC <> 0.MESSAGE '导入excel报错' TYPE 'E'.ENDIF.SORT IT_EXCEL BY ROW COL.LOOP AT IT_EXCEL.ASSIGN COMPONENT IT_EXCEL-COL OF STRUCTURE WA_JZSIGN TO <DYN_FIELD>.CHECK SY-SUBRC EQ 0.<DYN_FIELD> = IT_EXCEL-VALUE.AT END OF ROW.APPEND WA_JZSIGN TO IT_JZSIGN.CLEAR WA_JZSIGN.ENDAT.ENDLOOP.LOOP AT IT_JZSIGN INTO WA_JZSIGN.IF WA_JZSIGN-BEGDA EQ '0'.CLEAR WA_JZSIGN-BEGDA.ENDIF.IF WA_JZSIGN-ENDDA EQ '0'.CLEAR WA_JZSIGN-ENDDA.ENDIF.IF WA_JZSIGN-UPDDA EQ '0'.CLEAR WA_JZSIGN-UPDDA.ENDIF.* UPDATE Z00HRTSIGN SET ENDDA = '99991231' WHERE SPERNR = WA_JZSIGN-SPERNR."将对象更新结束日期是99991231* COMMIT WORK.MOVE-CORRESPONDING WA_JZSIGN TO WA_ZBSIGN.CLEAR WA_ZBSIGN-SPERNR.LEN_ZNO = STRLEN( WA_ZBSIGN-ZNO ).IF LEN_ZNO LE 10.L_TIMES = 10 - LEN_ZNO.DO L_TIMES TIMES.CONCATENATE '0' WA_ZBSIGN-ZNO INTO WA_ZBSIGN-ZNO.ENDDO.ENDIF.CONCATENATE 'JZ' WA_ZBSIGN-ZNO+2 INTO WA_ZBSIGN-ZNO.WA_ZBSIGN-SPERNR = WA_JZSIGN-ZJZBSID.WA_ZBSIGN-ENDDA = '88881231'."将集中部署对象更新结束日期是88881231APPEND WA_ZBSIGN TO IT_ZBSIGN.CLEAR:WA_ZBSIGN,WA_JZSIGN,LEN_ZNO,L_TIMES.ENDLOOP.MODIFY Z00HRTSIGN FROM TABLE IT_ZBSIGN.COMMIT WORK.MESSAGE '执行完成' TYPE 'S'.ENDFORM. " FRM_UPDATE_Z00HRTSIGN*&---------------------------------------------------------------------**& Form FRM_UPDATE_99991231*&---------------------------------------------------------------------** text 将Z00HRTSIGN结束日期更新99991231*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_UPDATE_99991231 .DATA: LT_SIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.DO.SELECT * FROM Z00HRTSIGNINTO TABLE LT_SIGN UP TO 5000 ROWSWHERE ENDDA NE '99991231' AND ENDDA NE '88881231' AND SIGN EQ P_WSBH.IF SY-SUBRC NE 0.EXIT.ENDIF.LOOP AT LT_SIGN.LT_SIGN-ENDDA = '99991231'.MODIFY LT_SIGN.ENDLOOP.UPDATE Z00HRTSIGN FROM TABLE LT_SIGN.COMMIT WORK.ENDDO.ENDFORM. " FRM_UPDATE_99991231*&---------------------------------------------------------------------**& Module F4_WSBH INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_WSBH INPUT.DATA: XDYNPFIELDS TYPE TABLE OF DYNPREAD WITH HEADER LINE,LT_WSBH TYPE TABLE OF Z00HRTBMDY WITH HEADER LINE,SELECTED_TABLE TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.SELECT * FROM Z00HRTBMDY INTO TABLE LT_WSBH.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD = 'Z00HRJWSBH'DYNPPROG = SY-CPROGDYNPNR = SY-DYNNRDYNPROFIELD = 'P_WSBH'STEPL = SY-STEPLWINDOW_TITLE = '选择网省代码'VALUE_ORG = 'S'TABLESRETURN_TAB = SELECTED_TABLEVALUE_TAB = LT_WSBHEXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC EQ 0.P_WSBH = SELECTED_TABLE-FIELDVAL.ELSE.MESSAGE 'error' TYPE 'E'.ENDIF.REFRESH XDYNPFIELDS.CLEAR XDYNPFIELDS.XDYNPFIELDS-FIELDNAME = 'P_WSBH'.XDYNPFIELDS-FIELDVALUE = P_WSBH.XDYNPFIELDS-FIELDINP = 'X'.APPEND XDYNPFIELDS.CALL FUNCTION 'DYNP_VALUES_UPDATE'EXPORTINGDYNAME = SY-REPIDDYNUMB = SY-DYNNRTABLESDYNPFIELDS = XDYNPFIELDSEXCEPTIONSINVALID_ABAPWORKAREA = 1INVALID_DYNPROFIELD = 2INVALID_DYNPRONAME = 3INVALID_DYNPRONUMMER = 4INVALID_REQUEST = 5NO_FIELDDESCRIPTION = 6UNDEFIND_ERROR = 7OTHERS = 8.ENDMODULE. " F4_WSBH INPUT*&---------------------------------------------------------------------**& Form FRM_EXPROT_Z00HRTSIGN*&---------------------------------------------------------------------** text 导出Z00HRTSIGN表*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_EXPROT_Z00HRTSIGN .DATA: LV_FILE LIKE RLGRAP-FILENAME,LV_NAME(200) TYPE C,LV_NUM(4) TYPE N,LV_FLAG TYPE C,LV_NEXT TYPE I VALUE '1',LV_TABIX TYPE I,LT_DOWN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE,LWA_SIGN TYPE Z00HRTSIGN,LT_Z00HRTSIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.SELECT * FROM Z00HRTSIGN INTO TABLE LT_Z00HRTSIGN WHERE SIGN EQ P_WSBH AND ENDDA EQ '99991231'.IF SY-SUBRC NE 0.MESSAGE '没有查询到数据' TYPE 'E'.ENDIF.LOOP AT LT_Z00HRTSIGN INTO LWA_SIGN.CLEAR:LT_DOWN,LV_FLAG.LV_TABIX = LV_TABIX + 1.LV_NEXT = LV_NEXT + 1.IF LV_TABIX < 9000.READ TABLE LT_Z00HRTSIGN INDEX LV_NEXT.IF SY-SUBRC NE 0.LV_FLAG = 'X'.ENDIF.ELSE.LV_FLAG = 'X'.ENDIF.APPEND LWA_SIGN TO GT_SIGN.CLEAR LWA_SIGN.IF LV_FLAG EQ 'X'.LV_FILE = P_EXPORT.LV_NUM = LV_NUM + 1.CONCATENATE LV_FILE 'ZB-Z00HRTSIGN-' LV_NUM '.XLS' INTO LV_FILE. * REPLACE FIRST OCCURRENCE OF '.XLS' IN LV_FILE WITH LV_NAME. CALL FUNCTION 'WS_DOWNLOAD'EXPORTINGFILENAME = LV_FILEFILETYPE = 'DAT'TABLESDATA_TAB = GT_SIGN[]EXCEPTIONSFILE_OPEN_ERROR = 1FILE_WRITE_ERROR = 2INVALID_FILESIZE = 3INVALID_TYPE = 4NO_BATCH = 5UNKNOWN_ERROR = 6INVALID_TABLE_WIDTH = 7GUI_REFUSE_FILETRANSFER = 8CUSTOMER_ERROR = 9NO_AUTHORITY = 10OTHERS = 11.IF SY-SUBRC = 0.MESSAGE '下载完毕' TYPE 'S'.ELSEIF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.CLEAR:LV_TABIX,GT_SIGN[].ENDIF.ENDLOOP.MESSAGE '执行结束' TYPE 'S'.ENDFORM. " FRM_EXPROT_Z00HRTSIGN*&---------------------------------------------------------------------**& Module F4_EXPORT INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_EXPORT INPUT.CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOGEXPORTINGWINDOW_TITLE = '请选择文件保存路径:'FILE_FILTER = '*.xls|*.XLS'PROMPT_ON_OVERWRITE = ' 'CHANGINGFILENAME = GS_FILEPATH = P_EXPORTFULLPATH = GS_PATH.ENDMODULE. " F4_EXPORT INPUT*GUI Texts*----------------------------------------------------------。
SAP 三种批量导入方法
在SAP项目实施时主要有三种批量导入方法:LSMW,CATT,BDC第一种:LSMW-----Legacy System Migration Workbench.The LSM Workbench is an R/3 based tool that support when transferring data from non-SAP systems to SAP R/3.T-code: LSMW第二种: CATTCATT(computer aided test tool) screen recor d, system will not create program.T-code: SCAT第三种: BDCFor batch input or change, system will cre ate program, and you can change the program.T-code: SHDBBDC导入Batch Input是一种数据批量输入SAP系统的辅助程序,SAP系统的资料、格式可以通过Batch Input录入SAP系统Batch Input的机制是模拟事务处理将数据录入R/3系统Batch Input类似SAP的CATT,控制性更好,处理能力更强1、首先我们需要把需要批导入事务的操作步骤记录下来,可以用T-CODE“SHDB”来记录。
在COMMAND LINE中输入“SHDB”。
2、进入TRANSACTION RECORDER界面3、点“NEW RECORDER”创建一个记录,现在以修改订单为例,键入记录名“ZAMAO”,输入事务代码“VA02”,然后“START RECORDING”。
4、下面的任务就是记录下修改订单的操作步骤。
5、填入订单号码,按确定6、现在来增加一下订单的PO DATE。
7、填入“,点“保存”。
8、这样就完成了一个最最简单的BDC录取工作,录完之后会出现系统运行的操作的跟踪,包括程序号,屏幕号,字段名,值等等,下面的任务是根据这些写到程序里面以完成SAP自动跑订单修改的这一动作。
VBA中的数据导入与导出操作指南
VBA中的数据导入与导出操作指南数据是任何项目或业务的核心,数据的导入和导出操作是许多业务流程中必不可少的步骤。
在VBA中,我们可以利用其强大的功能来实现数据导入和导出的自动化操作。
本文将为您提供一份VBA中的数据导入与导出操作指南,帮助您掌握这些基本而又实用的技巧。
一、数据导入1. 从文本文件导入数据在VBA中,我们可以使用Open语句来打开文本文件,并使用Input函数逐行读取其中的数据。
下面是一个简单的示例:```vbaSub ImportDataFromTextFile()Dim FilePath As StringDim FileContent As StringDim LineArray() As StringDim i As IntegerFilePath = "C:\Path\To\Your\File.txt"Open FilePath For Input As #1FileContent = Input$(LOF(1), 1)Close #1LineArray() = Split(FileContent, vbCrLf)For i = LBound(LineArray()) To UBound(LineArray()) Debug.Print LineArray(i)Next iEnd Sub```在这个示例中,我们将文本文件的路径存储在FilePath 变量中。
然后使用Open语句打开该文件并使用Input函数将文件内容读取到FileContent变量中。
最后,我们使用Split函数将FileContent按行分割,并通过循环遍历打印每一行。
2. 从Excel文件导入数据如果您需要从Excel文件中导入数据,可以使用Workbook对象的Open方法打开文件,然后使用Worksheets属性访问工作表。
下面是一个示例:```vbaSub ImportDataFromExcelFile()Dim FilePath As StringDim wb As WorkbookDim ws As WorksheetDim LastRow As LongDim i As LongFilePath = "C:\Path\To\Your\File.xlsx"Set wb = Workbooks.Open(FilePath)Set ws = wb.Worksheets("Sheet1")LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row For i = 1 To LastRowDebug.Print ws.Cells(i, 1).ValueNext iwb.Close SaveChanges:=FalseEnd Sub```在这个示例中,我们首先将Excel文件的路径存储在FilePath变量中。
SAPABAP如何将内表与EXCEL导入、导出
SAPABAP如何将内表与EXCEL导入、导出将内表的数据导出到EXCELREPORT ZTEST08.DATA: BEGIN OF MY_DATA,MANDT LIKE USR02-MANDT,BNAME LIKE USR02-BNAME,ERDAT LIKE USR02-ERDAT,LTIME LIKE USR02-LTIME,END OF MY_DATA.DATA: IT_DATA LIKE MY_DATA OCCURS 0.SELECT USR02~MANDT USR02~BNAME USR02~ERDAT USR02~LTIMEAPPENDING TABLE IT_DATAFROM USR02UP to 100 rows.*排序SORT IT_DATA BY BNAME.INCLUDE OLE2INCL. "定义OLE变量DATA: EXCEL TYPE OLE2_OBJECT,SHEET TYPE OLE2_OBJECT,CELL TYPE OLE2_OBJECT,WORKBOOK TYPE OLE2_OBJECT,XLSNAME TYPE STRING VALUE 'C:\sap_usr02.xls',LINE TYPE I VALUE 0. "行号CREATE OBJECT EXCEL 'EXCEL.APPLICATION'."启动ExcelIF SY-SUBRC NE 0.WRITE: / '启动Excel失败。
'.STOP.ENDIF.CALL METHOD OF EXCEL 'WORKBOOKS' = WORKBOOK.SET PROPERTY OF EXCEL 'VISIBLE' = 1. "使excel 可视SET PROPERTY OF EXCEL 'SHEETSINNEWWORKBOOK' = 1. "如果是读取excel文件中的内容则是直接打开工作簿第一页CALL METHOD OF WORKBOOK 'ADD'. "例如:CALL METHOD OF EXCEL 'WORKSHEETS' = SHEET EXPORTING #1 = 1.LOOP AT IT_DATA INTO MY_DATA.LINE = LINE + 1. "Excel 中行号从1开始CALL METHOD OF EXCEL 'CELLS' = CELL EXPORTING #1 = LINE #2 = 1. "指定单元格,SET PROPERTY OF CELL 'VALUE' = MY_DATA-MANDT. "写入值CALL METHOD OF EXCEL 'CELLS' = CELL EXPORTING #1 = LINE #2 = 2. "指定单元格,SET PROPERTY OF CELL 'VALUE' = MY_DATA-BNAME. "写入值CALL METHOD OF EXCEL 'CELLS' = CELL EXPORTING #1 =LINE #2 = 3. "指定单元格,SET PROPERTY OF CELL 'VALUE' = MY_DATA-ERDAT. "写入值CALL METHOD OF EXCEL 'CELLS' = CELL EXPORTING #1 = LINE #2 = 4. "指定单元格,SET PROPERTY OF CELL 'VALUE' = MY_DATA-LTIME. "写入值ENDLOOP.GET PROPERTY OF EXCEL 'ACTIVESHEET' = SHEET. "激活工作簿GET PROPERTY OF EXCEL 'ACTIVEWORKBOOK' = WORKBOOK. "激活工作区CALL METHOD OF WORKBOOK 'SAVEAS' EXPORTING #1 = XLSNAME #2 = 1. "将excel文件保存CALL METHOD OF WORKBOOK 'CLOSE'. "关闭工作区CALL METHOD OF EXCEL 'QUIT'. "退出excel*WRITE:/ XLSNAME,'DONE'. "退出成功,输出doneFREE OBJECT SHEET. "释放操作FREE OBJECT WORKBOOK.FREE OBJECT EXCEL.上传的EXCEL给内表赋值这个EXCEL上载直接读取行和列,并把行和列对应的值赋给内表。
如何将SAP数据导入导出和迁移(LSMW)
±êÌ⣺ÈçºÎ½«£Ó£Á£ÐÊý¾Ýµ¼Èëµ¼³öºÍÇ¨ÒÆ£¨£Ì£Ó£Í£×£©1Â¥ zdm_1227 ·¢±íÓÚ£º2008-1-2 13:02:33You may be wondering if you can transport certain SAP objects, and if possible, how? Here are tips for diferent objects:1 LSMWThere are 2 ways for transporting LSMW data from a system to another.1.1 Export/importThis method gives you the opportunity to select the subprojects or objects you want to transfer. Hence you don¡¯t transfer the object a colleague might have created and that should stay in development system.LSMW -> Extras -> Export project1.2 Transport requestWith this method, you can transport a LSMW project in full (you can not select the objects you want). With this method, the project will be transported as any other SAP object in a transport order.LSMW -> Extras -> Create change request2 Program variantsIf you have several program variants in a development system that you want to transport, use the following method to transport them:Execute program RSTRANSP (via se38) and inform the program and/or variant names (you can transport variant of several programs in one shot).3 LayoutIn some transactions, one can save layout of the screen (sort, filter, ¡- criteria). These layouts can be transported:In the required transaction, when your layouts have been saved, go to Settings -> Layout -> Layout Management. Select the desired layouts and go to Layout -> Transport¡- There you can add your layouts in existing TO or create a new one.4 DB dataIn some unusual cases, you might have to transport data of a SAP table.Go to transaction SE16, select your entries and go to Table entry -> Transport entries. It¡¯s only possible for some tables¡-If you cannot do it that way, you have to create a Workbench transport order with transaction SE10. When created, click on it, go in menu Request/task -> Object list -> Display object list. Go in modification mode and add a new line with:PgmID = R3TRObj = TABUObject name = Name of your tableDouble-click on the created line and, depending on your need, put ¡®*¡¯ in the key field or double-click on it and select the key you need to transport.5 QueriesQueries, datasets and user groups can be exported/imported between the systems thanks to the program RSAQR3TR (see help online).6 Standard textsStandard texts used in SAPScript (created with transaction SO10) can be included in transport orders. You have to create a Workbench transport order with transaction SE10. When created, click on it, go in menu Request/task -> Object list -> Display object list. Go in modification mode and add a new line with:PgmID = R3TRObj = TEXTObject name = TEXT,,ST,Example : R3TR / TEXT / TEXT,YMM_MEDRUCK_MAIN_16_EC,ST,FYou can also copy a Sapscript object (like standard text) with the program RSTXCPFS. DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在ABAP中的CLASS :CL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出,分别是:CLIPBOARD_EXPORT和CLIPBOARD_IMPORT。
CLIPBOARD_EXPORT是将一个内表的内容导入到剪贴板中,示例程序如下:
DATA rc TYPE i.
DATA:BEGIN OF itab OCCURS 0,
line(200) TYPE c ,
END OF itab.
itab-line = 'This is a test for abap'.
APPEND itab.
CALL METHOD cl_gui_frontend_services=>clipboard_export
IMPORTING
data = itab[]
CHANGING
rc = rc
* EXCEPTIONS
* CNTL_ERROR = 1
* ERROR_NO_GUI = 2
* NOT_SUPPORTED_BY_GUI = 3
* others = 4
.
IF sy-subrc<> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLIPBOARD_IMPORT是将剪贴板中的内容导入到一个定义好的内表当中,示例程序如下:
DATA rc TYPE i.
DATA:BEGIN OF itab OCCURS 0,
line(200) TYPE c ,
END OF itab.
CALL METHOD cl_gui_frontend_services=>clipboard_import
IMPORTING
DATA = itab[]
LENGTH = rc
* EXCEPTIONS
* CNTL_ERROR = 1
* ERROR_NO_GUI = 2
* NOT_SUPPORTED_BY_GUI = 3
* others = 4
.
IF sy-subrc<> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
write:'Total:' ,rc,' lines'.
loop at itab.
write / itab-line.
endloop.。