[SAP ABAP] 将内表数据转换为HTML格式

server/2024/12/17 20:02:17/

从sflight数据库表中检索航班信息,并将这些信息转换成HTML格式,然后下载或显示在前端

开发步骤

① 自定义一个数据类型 ty_sflight 来存储航班信息

② 声明内表和工作区变量,用于存储表头、字段、HTML内容和航班详细信息以及创建字段目录lt_fcat

③ 从sflight数据库表中选择数据并存储在lt_sflight内表中

④ 填充字段目录lt_fcat,并为每个字段设置描述

⑤ 循环遍历字段目录lt_fcat,为每个字段设置HTML表头和属性

提示Tips

WWW_ITAB_TO_HTML_HEADERS函数用于填充列标题

WWW_ITAB_TO_HTML_LAYOUT函数用于填充列单元格属性

⑥ 设置HTML显示的标题,并准备HTML内容,调用WWW_ITAB_TO_HTML函数,将内部表转换为HTML格式

提示Tips

WWW_ITAB_TO_HTML函数用于将内表数据转换为HTML

⑦ 将生成的HTML保存为文件,并尝试下载或在前端显示

激活并运行程序,效果如下图所示:

完整代码如下所示:

REPORT z437_test_2024.* 自定义数据类型
TYPES:BEGIN OF ty_sflight,carrid TYPE s_carr_id,         " 航线代码connid TYPE s_conn_id,         " 航班连接编号fldate TYPE s_date,            " 航班日期price  TYPE s_price,           " 航空运费currency TYPE s_currcode,      " 航班的本地货币
END OF ty_sflight.DATA: t_header TYPE STANDARD TABLE OF w3head WITH HEADER LINE,   " Header表头t_fields TYPE STANDARD TABLE OF w3fields WITH HEADER LINE, " Fields字段t_html TYPE STANDARD TABLE OF w3html,                      " Html内容wa_header TYPE w3head,w_head TYPE w3head.DATA: lt_sflight TYPE TABLE OF ty_sflight,      " Flights Details航班详细信息lt_fcat TYPE lvc_t_fcat WITH HEADER LINE. " Fieldcatalog字段目录*----------------------------------------------------------------------*
*  DESC: START-OF-SELECTION 事件
*----------------------------------------------------------------------*
START-OF-SELECTION." 从sflight表中选择最多10条数据记录SELECT * FROM sflightINTO CORRESPONDING FIELDS OF TABLE lt_sflightUP TO 10 ROWS.*----------------------------------------------------------------------*
*  DESC: END-OF-SELECTION 事件
*----------------------------------------------------------------------*
END-OF-SELECTION." 填充字段目录" 创建字段目录的循环,为每个字段设置描述lt_fcat-coltext = 'Airline Code'.APPEND lt_fcat.lt_fcat-coltext = 'Connection Number'.APPEND lt_fcat.lt_fcat-coltext = 'Flight date'.APPEND lt_fcat.lt_fcat-coltext = 'Airfare'.APPEND lt_fcat.lt_fcat-coltext = 'Currency'.APPEND lt_fcat." 填充表头和属性" 循环遍历字段目录,为每个字段设置表头和属性LOOP AT lt_fcat.w_head-text = lt_fcat-coltext." 调用函数,将内部表转换为HTML表头CALL FUNCTION 'WWW_ITAB_TO_HTML_HEADERS'EXPORTINGfield_nr          = sy-tabixtext              = w_head-textfgcolor           = 'black'bgcolor           = 'green'TABLESheader            = t_header." 调用函数,将内部表转换为HTML布局CALL FUNCTION 'WWW_ITAB_TO_HTML_LAYOUT'EXPORTINGfield_nr        = sy-tabixsize            = '3'fgcolor         = 'black'TABLESfields          = t_fields.ENDLOOP." 设置显示的标题wa_header-text = 'Flights Details'.wa_header-font = 'Arial'.wa_header-size = '2'." 准备HTML内容" 清空HTML表,然后调用函数将内部表转换为HTMLREFRESH t_html.CALL FUNCTION 'WWW_ITAB_TO_HTML'EXPORTINGtable_header           = wa_headerTABLEShtml                   = t_htmlfields                 = t_fieldsrow_header             = t_headeritable                 = lt_sflight." 下载HTML到前端" 调用函数,将生成的HTML保存为文件并下载CALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGfilename                        = 'C:\Users\HP\Desktop\Flights.html'TABLESdata_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." 在前端显示HTML文件" 调用方法,打开HTML文件CALL METHOD cl_gui_frontend_services=>executeEXPORTINGdocument               = 'C:\Users\HP\Desktop\Flights.html'operation              = 'OPEN'EXCEPTIONScntl_error             = 1error_no_gui           = 2bad_parameter          = 3file_not_found         = 4path_not_found         = 5file_extension_unknown = 6error_execute_failed   = 7synchronous_failed     = 8not_supported_by_gui   = 9others                 = 10.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.

http://www.ppmy.cn/server/150986.html

相关文章

万字总结Python 设计模式:21种模式实际应用

设计模式是软件开发中的原则&#xff0c;它们提供了解决特定问题的通用解决方案。在 Python 中&#xff0c;由于其动态语言特性&#xff0c;设计模式不仅易于实现&#xff0c;还可以根据具体需求进行灵活调整。本篇文章将从传统的 创建型模式、结构型模式 和 行为型模式 出发&a…

GeoWave实现简单的时空范围查询(HBase数据库)

前言 上一篇文章中利用GeoWave导入矢量数据到HBase/Accumulo数据库-CSDN博客&#xff0c;我介绍了如何利用GeoWave导入数据到HBase/Accumulo数据库中&#xff0c;本文&#xff0c;我将介绍如何使用GeoWave实现简单的时空范围查询。 代码 HBaseRequiredOptions hBaseRequiredO…

Python常用库介绍系列

在Python的广阔世界里&#xff0c;丰富的库如同璀璨的宝石&#xff0c;为开发者提供了强大的工具。本系列文章将深入介绍Python常用库。从强大的时间处理库datetime到科学计算领域的神器——NumPy库&#xff0c;从优雅的数据分析库Pandas到实用的高效的自动化操作库pyautogui。…

centos7使用haproxy+keepalived搭建负载均衡调度器--yum方式

一、实验规划 node1&#xff1a;haproxykeepalived IP地址&#xff1a;192.168.200.111(主) node2&#xff1a;haproxykeepalived IP地址&#xff1a;192.168.200.111(从) nginx1&#xff1a;nginx IP地址&#xff1a;192.168.200.113 nginx2&#xff1a;nginx IP地址&#x…

11.python文件

文章目录 Python 文件 I/O 总结1. **打印到屏幕**2. **读取键盘输入**3. **打开和关闭文件**3.1 open() 函数3.2 close() 方法 4. **文件读写操作**4.1 write() 方法4.2 read() 方法4.3 readline() 方法4.4 readlines() 方法4.5 seek() 和 tell() 方法 5. **文件重命名和删除**…

docker redis 详细教程

1. 拉取镜像 docker pull redis 2. 创建数据存储目录 cd /home/ mkdir redis cd redis mkdir data mkdir log mkdir conf 3.创建容器并且运行 docker run \ -p 6379:6379 \ --name redis \ -v /home/redis/data:/data \ -d redis 参考链接 史上最详细Docker安装Redis &am…

如何通过编译器标志增强移动应用的安全性

作为一名 Android 或 iOS 开发者&#xff0c;您可能已经熟悉一些常见的安全开发最佳实践&#xff0c;比如验证外部输入、合理管理内存以及避免使用弱加密算法。然而&#xff0c;即便是最精心编写的代码&#xff0c;也可能包含一些 bug&#xff0c;其中一些可能会导致可被利用的…

Java学习Day08——泛型

1. 泛型的理解和好处 1.1 使用传统方法的问题 1. 不能对加入到集合 ArrayList中的数据类型进行约束(不安全) 2. 遍历的时候&#xff0c;需要进行类型转换,如果集合中的数据量较大&#xff0c;对效率有影响 1.2 泛型的好处 1. 编译时&#xff0c;检查添加元素的类型&…