微信网站主题,机构网站源码,解析网站咋做的,支付网站认证费用怎么做分录【SAP Abap】记录一次SAP长文本内容通过Web页面完整显示的应用 1、业务背景2、实现效果3、开发代码3.1、拼接html3.2、显示html3.3、ALV导出Excel 1、业务背景
业务在销售订单中#xff0c;通过长文本描述#xff0c;记录了一些生产备注信息#xff0c;如生产标准、客户要求… 【SAP Abap】记录一次SAP长文本内容通过Web页面完整显示的应用 1、业务背景2、实现效果3、开发代码3.1、拼接html3.2、显示html3.3、ALV导出Excel 1、业务背景
业务在销售订单中通过长文本描述记录了一些生产备注信息如生产标准、客户要求等等。要求开发一个报表能够方便查看和导出长文本信息。
2、实现效果
由于ALV列表长文本显示不友好且长度有限制仅能显示128位故考虑双击展示长文本详细内容最终实现效果如下
ALV列表 双击行详情 超链接支持右键下载
3、开发代码
3.1、拼接html
FUNCTION zmmfm056h.
*----------------------------------------------------------------------
**本地接口
* EXPORTING
* REFERENCE(EV_HTML) TYPE STRING
* TABLES
* IT_DATA STRUCTURE ZSMM114
*----------------------------------------------------------------------说明Web页面调试工具https://www.runoob.com/try/try.php?filenametryhtml_tablestypes:begin of ty_str,str(1000),END OF ty_str.TYPES: BEGIN OF ty_url,name TYPE string,url TYPE string,END OF ty_url.DATA: lt_str TYPE TABLE OF ty_str,lt_url TYPE TABLE OF ty_url WITH HEADER LINE.IF it_data[] IS INITIAL.ev_html |!DOCTYPE htmlhtmlheadtitleabap show html/title/headbodyp请输入要展示的数据/p/body/html|.RETURN.ENDIF.SORT it_data[] BY vbeln posnr.ev_html |!DOCTYPE htmlhtmlheadtitle明细数据/title/headbody link#0563C1 vlink#954F72 styleword-wrap:break-word| |h1 styletext-align:center;销售订单生产备注信息/h1| |h4 styletext-align:center;导出人{ sy-uname }nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;导出日期{ sy-datum }/h4|.LOOP AT it_data[] ASSIGNING FIELD-SYMBOL(fs_data).AT NEW vbeln.ev_html ev_html |h3 styletext-align:left;序号{ sy-index }/h3| |table border1 width800 styleborder-collapse:collapse;table-layout:fixed;| | tr stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center| | td width160计划编号/tdtd width160客户参考/tdtd width160CRM下单人员/tdtd width160销售订单类型/tdtd width160销售订单号/td/tr| | tr styletext-align:centertd{ fs_data-bstkd_e }/tdtd{ fs_data-bstnk }/td| | td{ fs_data-zzxdry }/tdtd{ fs_data-auart }/tdtd{ fs_data-vbeln }/td/tr| | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center抬头生产备注/tdtd colspan4{ fs_data-zscbz1 }/td/tr| | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center环保技术要求/tdtd colspan4{ fs_data-zhbjsyq }/td/tr|.IF fs_data-zfiles IS INITIAL.ev_html ev_html | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:17px;text-align:center附件名称及链接/td| | td colspan4[无附件]/td/tr|.ELSE.SPLIT fs_data-zfiles AT || INTO TABLE lt_str.IF lt_str[] IS INITIAL.ev_html ev_html | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:17px;text-align:center附件名称及链接/td| | td colspan4{ fs_data-zfiles }/td/tr|.ELSE.ev_html ev_html | trtd rowspan{ lines( lt_str[] ) } stylefont-family:arial;color:black;font-weight:bold;font-size:17px;text-align:center附件名称及链接/td|.LOOP AT lt_str ASSIGNING FIELD-SYMBOL(fs_str).split fs_str-str at | into data(lstr1) DATA(lstr2).AT FIRST.ev_html ev_html | td colspan4a href{ lstr2 } target_blank relnoopener noreferrer{ lstr1 }/a/td/tr|.CONTINUE.ENDAT.ev_html ev_html | trtd colspan4a href{ lstr2 } target_blank relnoopener noreferrer{ lstr1 }/a/td/tr|.ENDLOOP.ENDIF.ENDIF.ev_html ev_html | /table|.ENDAT.SHIFT fs_data-posnr LEFT DELETING LEADING 0.ev_html ev_html |table border1 width800 styleborder-collapse:collapse;table-layout:fixed;| | tr stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center| | td rowspan5 width60{ fs_data-posnr }/tdtd width130是否按单/tdtd width115物料号/tdtd width160物料描述/td| | td width70订单数量/tdtd width70销售单位/tdtd width70生产工厂/tdtd width120供应链转储订单/td/tr| | tr styletext-align:centertd{ fs_data-ismto }/tdtd{ fs_data-matnr ALPHA out }/tdtd{ fs_data-arktx }/td| | td{ fs_data-kwmeng }/tdtd{ fs_data-vrkme }/tdtd{ fs_data-reswk }/tdtd{ fs_data-ebeln }/td/tr| | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center物料长文本/tdtd colspan6{ fs_data-ltext }/td/tr| | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center行项目生产备注/tdtd colspan6{ fs_data-zscbz2 }/td/tr| | trtd stylefont-family:arial;color:black;font-weight:bold;font-size:16px;text-align:center客户标准号/tdtd colspan6{ fs_data-zkhbzh }/td/tr| |/table|.ENDLOOP.ev_html ev_html |/body/html|.ENDFUNCTION.3.2、显示html
1方式一ABAP对话框显示html本例使用查看不用授权
FORM frm_double_click USING p_row TYPE salv_de_rowp_column TYPE salv_de_column.DATA: lt_data TYPE TABLE OF zsmm114 WITH HEADER LINE.READ TABLE gt_vbak_po INTO DATA(ls_wa) INDEX p_row.读当前行CLEAR: lt_data,lt_data[].IF p_column EQ VBELN. 按订单查询LOOP AT gt_vbak_po ASSIGNING FIELD-SYMBOL(fs_vbak) WHERE vbeln ls_wa-vbeln.lt_data CORRESPONDING #( fs_vbak ).APPEND lt_data.CLEAR lt_data.ENDLOOP.ELSE. 按订单行查询lt_data CORRESPONDING #( ls_wa ).APPEND lt_data.CLEAR lt_data.ENDIF.CHECK lt_data[] IS NOT INITIAL.DATA: lv_html_str TYPE string.CALL FUNCTION ZMMFM056HIMPORTINGev_html lv_html_strTABLESit_data lt_data[].lv_html_str |!DOCTYPE htmlhtmlheadtitleabap show html/title/headbodypHello world /p/body/html|.cl_abap_browsershow_html( html_string lv_html_str context_menu X printing X title 销售订单生产备注信息).ENDFORM.2方法二调用外部浏览器显示html 需要先下载再访问保存文件的时候需要授权。 CALL FUNCTION GUI_DOWNLOADEXPORTINGFILENAME C:\hello.htmlTABLESDATA_TAB T_HTMLEXCEPTIONSFILE_WRITE_ERROR 1NO_BATCH 2GUI_REFUSE_FILETRANSFER 3INVALID_TYPE 4NO_AUTHORITY 5UNKNOWN_ERROR 6HEADER_NOT_ALLOWED 7SEPARATOR_NOT_ALLOWED 8FILESIZE_NOT_ALLOWED 9HEADER_TOO_LONG 10DP_ERROR_CREATE 11DP_ERROR_SEND 12DP_ERROR_WRITE 13UNKNOWN_DP_ERROR 14ACCESS_DENIED 15DP_OUT_OF_MEMORY 16DISK_FULL 17DP_TIMEOUT 18FILE_NOT_FOUND 19DATAPROVIDER_EXCEPTION 20CONTROL_FLUSH_ERROR 21OTHERS 22 .IF SY -SUBRC 0 .MESSAGE ID SY -MSGID TYPE SY -MSGTY NUMBER SY -MSGNOWITH SY -MSGV1 SY -MSGV2 SY -MSGV3 SY -MSGV4 .ENDIF .CALL FUNCTION GUI_RUNEXPORTINGCOMMAND C:\hello.html
* PARAMETER
* CD
* IMPORTING
* RETURNCODE 3.3、ALV导出Excel
FORM frm_export_xls.DATA: lt_vbak_po LIKE gt_vbak_po.CLEAR: lt_vbak_po, lt_vbak_po[].lt_vbak_po[] CORRESPONDING #( gt_vbak_po[] ).LOOP AT lt_vbak_po[] ASSIGNING FIELD-SYMBOL(fs_lt_po).REPLACE ALL OCCURRENCES OF || IN fs_lt_po-zfiles WITH cl_abap_char_utilitiescr_lf.ENDLOOP.DATA: lo_converter TYPE REF TO zcl_excel_converter.创建zcl_excel_converter类CREATE OBJECT lo_converter.TRY .lo_converter-convert(EXPORTINGio_alv gr_tableit_table lt_vbak_po[]i_row_int 1i_column_int 1).CATCH zcx_excel.ENDTRY.选择文件保存路径TRY.DATA:filepath TYPE string VALUE D:.cl_gui_frontend_servicesdirectory_browse(EXPORTINGwindow_title Select path to download EXCEL-fileinitial_folder filepathCHANGINGselected_folder filepathEXCEPTIONScntl_error 1error_no_gui 2not_supported_by_gui 3OTHERS 4).ENDTRY.CHECK sy-subrc IS INITIAL AND filepath IS NOT INITIAL.调用write_file方法导出excello_converter-write_file( i_path |{ filepath \ }销售订单生产备注-{ sy-datum }.xlsx| ).ENDFORM.原创文章转载请注明来源-X档案