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

ops/2024/12/21 2:21:27/

从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/ops/143637.html

相关文章

中阳科技的量化交易模型:从理论到实践的全面探索

在当今金融市场中&#xff0c;量化交易已经成为不可忽视的投资方式。中阳科技凭借先进的算法模型和技术能力&#xff0c;率先在这一领域取得突破&#xff0c;为投资者提供更高效、更智能的交易解决方案。本文将从量化交易模型的核心特点、技术支持和市场应用等方面&#xff0c;…

Docker 容器中启用 SSH 服务

在 Docker 容器中运行 SSH 服务需要一些调整&#xff0c;因为 Docker 容器通常使用 init 系统而不是完整的 systemd。以下是配置 SSH 服务在 Docker Ubuntu 容器中运行的步骤&#xff1a; 1. 安装 SSH 服务 如果还未安装 OpenSSH&#xff0c;请先安装&#xff1a; apt update…

微软 Phi-4:小型模型的推理能力大突破

在人工智能领域&#xff0c;语言模型的发展日新月异。微软作为行业的重要参与者&#xff0c;一直致力于推动语言模型技术的进步。近日&#xff0c;微软推出了最新的小型语言模型 Phi-4&#xff0c;这款模型以其卓越的复杂推理能力和在数学领域的出色表现&#xff0c;引起了广泛…

IEC 101/104 中为什么我们需要单点和双点信号

REDISANT 提供互联网与物联网开发测试套件 # 互联网与中间件&#xff1a; Redis AssistantZooKeeper AssistantKafka AssistantRocketMQ AssistantRabbitMQ AssistantPulsar AssistantHBase AssistantNoSql AssistantEtcd AssistantGarnet Assistant 工业与物联网&#xff1…

CTF知识集-SQL注入

开头可能会用到的提醒 如果空格被过滤&#xff0c;/**/ %0b(tab) %09(tab) %0d(回车) %0a(换行) %0c(换页) 语句中 or 和 || 为同种意思 测试有几位可以用order by [几位] 来测试&#xff0c;如果没报错说明位数包含&#xff0c;如果报错说明位数不包含 union select被过滤…

C++熟悉篇——类和对象1

类和对象1 一、成员函数二、对象复制三、私有成员 一、成员函数 工程化编写 我们需要遵从常规的书写规范&#xff0c;把类定义和类实现分别写在头文件和原文件中。 在 Time.h 文件中&#xff0c;内容如下&#xff1a; #ifndef __MYTIME__ #define __MYTIME__class Time{ pu…

记一MySQL连接速度慢的问题

某一个程序启动速度超级慢&#xff0c;查看日志得知是是在Init DruidDataSource ~ {dataSource-1} inited 这一段耗时最长&#xff0c;这一段是Druid 数据源初始化&#xff0c;进行连接的创建等&#xff0c;使用mysql命令行连接发现连接超级慢&#xff0c;可见是在创建连接的时…

人工智能增强的音频和聊天协作服务

论文标题&#xff1a;AI-enabled Audio and Chat Collaboration Services 中文标题&#xff1a;人工智能增强的音频和聊天协作服务 作者信息&#xff1a; Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…