ABAP学习(28):HTML内容生成
ABAP生成HTML
使用类:cl_wd_html_writer,实现html内容生成。
注意:add_style方法生成的元素有问题,建议使用add_attribute,name='style' value='border:1px;padding:5px;font:"Microsoft YaHei"'
示例:
"一般使用字符串拼接生成html,容易出錯,不方便檢查 "使用if_wd_html_writer,生成html,更加方便檢查 FORM f_create_html. DATA:lo_html TYPE REF TO if_wd_html_writer. DATA:lo_exception TYPE REF TO cx_root. DATA:lv_msg TYPE string. "生成對象 lo_html = cl_wd_html_writer=>new_writer( ). * "方法使用很簡單 * lo_html->start_element( tag = 'html' ). "生成 <html> * lo_html->add_attribute( name = 'name' value = 'val' ). "生成<標籤 name = 'val'> * lo_html->add_class( name = 'class1' ). "生成<標籤 class = 'class1'> * lo_html->add_style( name = 'border' value ='1px' ). "生成<標籤 styles="border:1px"> * lo_html->end_element( tag = 'html' ). "生成</html> * lo_html->empty_element( tag = 'br' ). "生成<br/> * lo_html->add_text( text = 'content text' ). "添加標籤文本<標籤>content text</標籤> * "返回生成的html * lv_html = lo_html->get_html( ). *<html> *<head> * <meta charset="utf-8"> * <meta name="viewport" content="width=device-width, initial-scale=1"> * <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> * <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> * <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> * <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script> * <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> *</head> * *<body> *<div class="container"> * <ul class="nav nav-pills"> * <li class="nav-item"> * <a class="nav-link active" href="ztom_html1.htm">首頁</a> * </li> * <li class="nav-item"> * <a class="nav-link" href="ztom_html2.htm">Page2</a> * </li> * </ul> *</div> *</body> *</html> TRY . "生成上述html,有start_element必須有end_element lo_html->start_element( 'html' )->start_element( 'head' )->start_element( 'meta' )->add_attribute( name = 'charset' value = 'utf-8' )->end_element( 'meta' )->start_element( 'meta' )->add_attribute( name = 'name' value = 'viewport' )->add_attribute( name = 'content' value = 'width=device-width, initial-scale=1' )->end_element( 'meta' )->start_element( 'link' )->add_attribute( name = 'rel' value = 'stylesheet' )->add_attribute( name = 'href' value = 'https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css' )->end_element( 'link' )->start_element( 'script' )->add_attribute( name = 'src' value = 'https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js' )->end_element( 'script' )->start_element( 'script' )->add_attribute( name = 'src' value = 'https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js' )->end_element( 'script' )->start_element( 'script' )->add_attribute( name = 'src' value = 'https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js' )->end_element( 'script' )->start_element( 'script' )->add_attribute( name = 'src' value = 'https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js' )->end_element( 'script' )->end_element( 'head' )->start_element( 'body' )->start_element( 'div' )->add_class( name = 'container' )->start_element( 'ul' )->add_class( name = 'nav nav-pills' )->start_element( 'li' )->add_class( name = 'nav-item' )->start_element( 'a' )->add_class( name = 'nav-link active' )->add_attribute( name = 'href' value = 'https://www.csdn.net' )->add_text( text = 'CSDN' )->end_element( 'a' )->end_element( 'li' )->start_element( 'li' )->add_class( name = 'nav-item' )->start_element( 'a' )->add_class( name = 'nav-link active' )->add_attribute( name = 'href' value = 'https://www.baidu.com' )->add_text( text = '百度' )->end_element( 'a' )->end_element( 'li' )->end_element( 'ul' )->end_element( 'div' )->start_element( 'table' )->add_attribute( name = 'border' value = '1' )->add_attribute( name = 'style' value = 'border-collapse:collapse;text-align:right;font-family:"Arial";font-size:10.5px;padding:0px 5px' )->start_element( tag = 'tr' )->add_attribute( name = 'style' value = 'background-color:#82CAFA' )->start_element( tag = 'th' )->add_attribute( name = 'style' value = 'width:120px;text-align:center;' )->add_text( text = 'DN建立日期' )->end_element( tag = 'th' )->start_element( tag = 'th' )->add_attribute( name = 'style' value = 'width:120px;text-align:center;' )->add_attribute( name = 'colspan' value = '2' )->add_text( text = '2021-DEC' )->end_element( tag = 'th' )->end_element( tag = 'tr' )->start_element( tag = 'tr' )->add_attribute( name = 'background-color' value = '#82CAFA' )->start_element( tag = 'th' )->add_attribute( name = 'style' value = 'width:120px;text-align:center;' )->add_text( text = '2021-Apr' )->end_element( tag = 'th' )->start_element( tag = 'th' )->add_attribute( name = 'style' value = 'width:120px;text-align:center;' )->add_text( text = 'AMT' )->end_element( tag = 'th' )->start_element( tag = 'th' )->add_attribute( name = 'style' value = 'width:120px;text-align:center;' )->add_text( text = 'QTY' )->end_element( tag = 'th' )->end_element( tag = 'tr' )->end_element( tag = 'table' )->end_element( 'body' )->end_element( 'html' ) . lv_html = lo_html->get_html( ). CATCH cx_root INTO lo_exception. lv_msg = lo_exception->if_message~get_text( ). WRITE:/ lv_msg. ENDTRY. ENDFORM.
本文来自博客园,作者:渔歌晚唱,转载请注明原文链接:https://www.cnblogs.com/tangToms/p/16025435.html