[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 sflight
    INTO CORRESPONDING FIELDS OF TABLE lt_sflight
    UP 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'
     EXPORTING
       field_nr          = sy-tabix
       text              = w_head-text
       fgcolor           = 'black'
       bgcolor           = 'green'
      TABLES
        header            = t_header.

    " 调用函数,将内部表转换为HTML布局
    CALL FUNCTION 'WWW_ITAB_TO_HTML_LAYOUT'
      EXPORTING
       field_nr        = sy-tabix
       size            = '3'
       fgcolor         = 'black'
      TABLES
        fields          = t_fields.
  ENDLOOP.

  " 设置显示的标题
  wa_header-text = 'Flights Details'.
  wa_header-font = 'Arial'.
  wa_header-size = '2'.

  " 准备HTML内容
  " 清空HTML表,然后调用函数将内部表转换为HTML
  REFRESH t_html.

  CALL FUNCTION 'WWW_ITAB_TO_HTML'
   EXPORTING
     table_header           = wa_header
   TABLES
     html                   = t_html
     fields                 = t_fields
     row_header             = t_header
     itable                 = lt_sflight.

  " 下载HTML到前端
  " 调用函数,将生成的HTML保存为文件并下载
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename                        = 'C:\Users\HP\Desktop\Flights.html'
    TABLES
      data_tab                        = t_html
    EXCEPTIONS
      file_write_error                = 1
      no_batch                        = 2
      gui_refuse_filetransfer         = 3
      invalid_type                    = 4
      no_authority                    = 5
      unknown_error                   = 6
      header_not_allowed              = 7
      separator_not_allowed           = 8
      filesize_not_allowed            = 9
      header_too_long                 = 10
      dp_error_create                 = 11
      dp_error_send                   = 12
      dp_error_write                  = 13
      unknown_dp_error                = 14
      access_denied                   = 15
      dp_out_of_memory                = 16
      disk_full                       = 17
      dp_timeout                      = 18
      file_not_found                  = 19
      dataprovider_exception          = 20
      control_flush_error             = 21
      OTHERS                          = 22.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  " 在前端显示HTML文件
  " 调用方法,打开HTML文件
  CALL METHOD cl_gui_frontend_services=>execute
    EXPORTING
      document               = 'C:\Users\HP\Desktop\Flights.html'
      operation              = 'OPEN'
    EXCEPTIONS
      cntl_error             = 1
      error_no_gui           = 2
      bad_parameter          = 3
      file_not_found         = 4
      path_not_found         = 5
      file_extension_unknown = 6
      error_execute_failed   = 7
      synchronous_failed     = 8
      not_supported_by_gui   = 9
      others                 = 10.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《算法SM4》题目

单项选择题 我国商用密码算法SM4迭代结构是&#xff08;&#xff09;。 A.平衡Fesitel网络结构 B.非平衡Fesitel网络结构 C.SP结构 D.MD结构 正确答案B 多项选择题 SM4分组密码算法轮函数中的T置换&#xff0c;包括的运算有&#xff08;&#xff09;。 A.非线性变换 …

深度学习革新音乐转录

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Flink2.0未来趋势中需要注意的一些问题

手机打字&#xff0c;篇幅不长&#xff0c;主要讲一下FFA中关于Flink2.0的未来趋势&#xff0c;直接看重点。 Flink Forward Asia 2024主会场有一场关于Flink2.0的演讲&#xff0c;很精彩&#xff0c;官方也发布了一些关于Flink2.0的展望和要解决的问题。 1.0时代和2.0时代避免…

EasyPlayer.js播放器Web播放H.265要兼顾哪些方面?

在数字化时代&#xff0c;流媒体技术已经成为信息传播和娱乐消费的重要方式。随着互联网技术的飞速发展和移动设备的普及&#xff0c;流媒体服务正在重塑我们的生活和工作方式。从视频点播、在线直播到音乐流媒体&#xff0c;流媒体技术的广泛应用不仅改变了内容的分发和消费模…

在 Solana 上实现 SOL 转账及构建支付分配器

与以太坊不同&#xff0c;在以太坊中&#xff0c;钱包通过 msg.value 指定交易的一部分并“推送” ETH 到合约&#xff0c;而 Solana 程序则是从钱包“拉取” Solana。 因此&#xff0c;没有“可支付”函数或“msg.value”这样的概念。 下面我们创建了一个新的 anchor 项目&a…

灵活接入第三方接口,解析第三方json数据,返回我们想要的json格式

需求&#xff1a;我想接入任意第三方http 接口&#xff08;暂不考虑鉴权问题&#xff09;、接口返回任意json数据。 1、要求返回的json数据通过我的R< T > 返回。 2、我的R< T > 里面包含参数 data&#xff0c;code&#xff0c;msg&#xff0c;success标识。 3、…

ExcelVBA编程输出ColorIndex与对应颜色色谱

标题 ExcelVBA编程输出ColorIndex与对应颜色色谱 正文 解决问题编程输出ColorIndex与对应色谱共56&#xff0c;打算分4纵列输出&#xff0c;标题是ColorIndex,Color,Name 1. 解释VBA中的ColorIndex属性 在VBA&#xff08;Visual Basic for Applications&#xff09;中&#xff…

【常微分方程讲义1.1】方程的种类发展与完备

方程在数学历史中不断发展&#xff0c;逐步趋于完备。从最初的简单代数方程到包含函数、算子甚至泛函的更复杂方程&#xff0c;数学家通过不断的扩展和深化&#xff0c;逐渐建立起更为丰富和多元的方程类型体系。方程的种类之所以不断演变&#xff0c;部分是因为解决实际问题的…

Unity 组件学习记录:Aspect Ratio Fitter

概述 Aspect Ratio Fitter是 Unity 中的一个组件&#xff0c;用于控制 UI 元素&#xff08;如Image、RawImage等&#xff09;的宽高比。它在处理不同屏幕分辨率和尺寸时非常有用&#xff0c;可以确保 UI 元素按照预期的比例进行显示。当添加到一个 UI 对象上时&#xff0c;Aspe…

数智读书笔记系列010 生命3.0:人工智能时代 人类的进化与重生

书名&#xff1a;生命3.0 生命3.0&#xff1a;人工智能时代,人类的进化与重生 著者&#xff1a;&#xff3b;美&#xff3d;迈克斯•泰格马克 迈克斯・泰格马克 教育背景与职业 教育背景&#xff1a;迈克斯・泰格马克毕业于麻省理工学院&#xff0c;获物理学博士学位。职业经…

校园点餐订餐外卖跑腿Java源码

简介&#xff1a; 一个非常实用的校园外卖系统&#xff0c;基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化&#xff0c;提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合&am…

JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)

目录 JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能&#xff0c;JS中排序算法的使用详解&#xff08;附实际应用代码&#xff09; 一、为什么要使用Array.sort() 二、Array.sort() 的使用与技巧 1、基础语法 2、返回值 3、…

20241219解决荣品PRO-RK3566开发板适配gc2093摄像头之后通过HDMI输出的时候无法录像的问题

20241219解决荣品PRO-RK3566开发板适配gc2093摄像头之后通过HDMI输出的时候无法录像的问题 2024/12/19 19:37 使用荣品PRO-RK3566开发板配套的百度网盘中的SDK&#xff1a;rk-android13-20240713.tgz默认编译出来的IMG固件。 刷机之后&#xff0c;gc2093可以拍照&#xff0c;最…

ubuntu16.04ros-用海龟机器人仿真循线系统

下载安装sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi sudo apt-get install ros-kinetic-rocon-*echo "source /opt/ros/kinetic/setup.bash…

YOLOv8目标检测(六)_封装API接口

YOLOv8目标检测(一)_检测流程梳理&#xff1a;YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集&#xff1a;YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型&#xff1a;YOLOv8目标检测(三)_训…

中后台管理信息系统:Axure12套高效原型设计框架模板全解析

中后台管理信息系统作为企业内部管理的核心支撑&#xff0c;其设计与实现对于提升企业的运营效率与决策能力具有至关重要的作用。为了满足多样化的中后台管理系统开发需求&#xff0c;一套全面、灵活的原型设计方案显得尤为重要。本文将深入探讨中后台管理信息系统通用原型方案…

uniapp使用腾讯地图接口的时候提示此key每秒请求量已达到上限或者提示此key每日调用量已达到上限问题解决

要在创建的key上添加配额 点击配额之后进入分配页面&#xff0c;分配完之后刷新uniapp就可以调用成功了。

【一篇搞定配置】如何在Ubuntu上配置单机/伪分布式Hadoop

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

利用Python爬虫实现数据收集与挖掘

Python爬虫是一种自动化程序&#xff0c;可以模拟浏览器行为&#xff0c;自动地从互联网上抓取、分析和收集数据。Python爬虫通常使用requests、selenium等库来发送HTTP请求&#xff0c;获取网页内容&#xff0c;并使用BeautifulSoup、lxml等库来解析网页&#xff0c;提取所需的…

语音识别失败 chrome下获取浏览器录音功能,因为安全性问题,需要在localhost或127.0.0.1或https下才能获取权限

环境&#xff1a; Win10专业版 谷歌浏览器 版本 131.0.6778.140&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 问题描述&#xff1a; 局域网web语音识别出现识别失败 chrome控制台出现下获取浏览器录音功能&#xff0c;因为安全性问题&#xff0c;需要在…