当前位置: 首页 > news >正文

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

从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.lryc.cn/news/506705.html

相关文章:

  • LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库
  • 使用C语言连接MySQL
  • PyTorch 2.0 以下版本中设置默认使用 GPU 的方法
  • 信号槽【QT】
  • 【UE5 C++课程系列笔记】10——动态单播/多播的基本使用
  • 点击展示大图预览
  • 【C++】分书问题:深入解析、回溯法高级应用与理论拓展
  • java开发入门学习五-流程控制
  • 【FFmpeg 教程 一】截图
  • 北邮,成电计算机考研怎么选?
  • 深入了解京东API接口:如何高效获取商品详情与SKU信息
  • C++常见内存泄漏案例分析以及解决方案
  • [LeetCode-Python版]206. 反转链表(迭代+递归两种解法)
  • 70 mysql 中事务的隔离级别
  • C语言二叉树
  • 智能工厂的设计软件 三种处理单元(NPU/GPU/CPU)及其在深度学习框架中的作用 之1
  • iOS swift开发系列--如何给swiftui内容视图添加背景图片显示
  • jmeter后端监视器
  • 服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例
  • 面试题整理4----lvs,nginx,haproxy区别和使用场景
  • iOS - 超好用的隐私清单修复脚本(持续更新)
  • html <a>设置发送邮件链接、打电话链接 <a href=“mailto:></a> <a href=“tel:></a>
  • clickhouse-副本和分片
  • 2009 ~ 2019 年 408【计算机网络】大题解析
  • vue2使用render,js中写html
  • 如何有效划分服务器磁盘空间?具体的步骤和流程
  • labelme标签批量转换数据集json_to_dataset
  • Fisco-Bcos-java-SDK 利用java与fisco-Bcos区块链上的智能合约交互(以HelloWorld为例)
  • OpenHarmony-3.HDF Display子系统(6)
  • Nginx中Server块配置的详细解析