用chatGPT写一个ALV报表,采用多种方式实现

ChatGPT是OpenAI基于GPT-3.5模型开发的对话式AI系统,能进行流畅的对话、理解语境、多语言支持。文章展示了如何使用ChatGPT编写ALV报表,包括传统函数方式和面向对象的方式,展示了ChatGPT在编程辅助上的应用。
摘要由CSDN通过智能技术生成

序言

2015年12月,OpenAI公司于美国旧金山成立。OpenAI最初成立旨在实现DeepMind 和Google无法做到的一切。它将作为一个非营利组织运营,致力于使先进人工智能的好处民主化,并承诺发布其研究成果,并开源其所有技术。

具体来说,ChatGPT是由GPT-3.5 模型提供的支持,GPT(Generative Pre-trained Transformer,生成式预训练变换器) 是一种基于互联网可用数据训练的文本生成深度学习模型。

对于ChatGPT是什么这个问题,OpenAI 公司CEO Sam Altman在一篇推文中做了这样的比喻:ChatGPT 看起来像个百科全书,能够回答连续的问题、生成文本摘要、翻译文档、对信息分类、写代码等,它也会承认错误、质疑不正确的前提并拒绝不恰当的请求。

到底,ChatGPT写出的SQL代码什么水平?

目前的ChatGPT还只能帮程序员完善思考,但不能替代程序员思考。程序员无需惊慌被替代

ChatGPT的长处

1、天然流通的对话:ChatGPT经过对海量对话数据的学习,具有天然流通的对话才能,能够与用户进行传神的天然言语交互。

2、能够了解语境:ChatGPT能够了解语境,不只能依据上下文生成答复,还能辨认当时对话的主题,更好地满意用户需求。

3、多言语支撑:ChatGPT支撑多种言语,能够用于跨言语交互,协助用户处理跨言语沟通的问题。
 

用chatGPT写一个alv报表

看看chatGPT是怎么实现的(使用了传统的函数GRID的方式)

完整的代码如下:

REPORT z_alv_report.

* 定义内部表和工作区
TABLES: scarr.
DATA: it_scarr TYPE STANDARD TABLE OF scarr,
      wa_scarr LIKE LINE OF it_scarr.

* 选择 SCARR 表中的数据
SELECT *
  FROM scarr
  INTO TABLE it_scarr.

* 调用函数模块来设置字段目录
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_program_name = sy-repid
    i_internal_tabname = 'SCARR'
  CHANGING
    ct_fieldcat = fieldcatalog[].

* 初始化 REUSE_ALV_GRID_DISPLAY 参数
CLEAR alv_layout.
alv_layout-colwidth_optimize = 'X'.

* 调用函数模块来显示 ALV 报表
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program = sy-repid
    is_layout          = alv_layout
  TABLES
    t_outtab           = it_scarr.

 写一个OO ALV报表

使用类的方式实现

 完整的代码如下

REPORT z_oo_alv_report.

* 定义类和对象
CLASS lcl_app DEFINITION.
  PUBLIC SECTION.
    TYPES:
      BEGIN OF ty_scarr,
        carrid TYPE scarr-carrid,
        carrname TYPE scarr-carrname,
        currcode TYPE scarr-currcode,
      END OF ty_scarr,
      tty_scarr TYPE STANDARD TABLE OF ty_scarr WITH KEY carrid.

    DATA:
      mt_scarr TYPE tty_scarr,
      mo_alv   TYPE REF TO cl_salv_table.
      
    METHODS:
      constructor,
      get_data,
      display_report.
ENDCLASS.

CLASS lcl_app IMPLEMENTATION.
  METHOD constructor.
    CREATE OBJECT mo_alv.
  ENDMETHOD.

  METHOD get_data.
    SELECT carrid carrname currcode
      FROM scarr
      INTO CORRESPONDING FIELDS OF TABLE mt_scarr.
  ENDMETHOD.

  METHOD display_report.
    FIELD-SYMBOLS:
      <lt_columns> TYPE cl_salv_columns_table.

    mo_alv->get_functions( )->set_all( abap_true ).

    mo_alv->set_screen_status(
      pfstatus = 'STATUS'
      report  = sy-repid
      set_functions = mo_alv->get_functions( ) ).

    mo_alv->get_columns( )->set_optimize( abap_true ).

    ASSIGN mo_alv->get_columns( )->get_column( 'CARRID' ) TO <lt_columns>.
    <lt_columns>-r_column->set_long_text( 'Airline Code' ).

    ASSIGN mo_alv->get_columns( )->get_column( 'CARRNAME' ) TO <lt_columns>.
    <lt_columns>-r_column->set_long_text( 'Airline Name' ).

    ASSIGN mo_alv->get_columns( )->get_column( 'CURRCODE' ) TO <lt_columns>.
    <lt_columns>-r_column->set_long_text( 'Currency Code' ).

    mo_alv->set_data( mt_scarr ).
    mo_alv->display( ).
  ENDMETHOD.
ENDCLASS.

* 创建对象并调用方法来执行报表
DATA: lo_app TYPE REF TO lcl_app.

CREATE OBJECT lo_app.
lo_app->get_data( ).
lo_app->display_report( ).

ALV简介

ALV报表是ABAP最重要的报表工具,其英文全称Abap list viewer,其输入结果以行和列展示,集成的功能有排序,求和,过滤,列求和,隐藏等,输出的格式也有EXCEL,水晶报表,CSV文件等,然后展现的方式有简单list,连续等级list,树等。
在SAP的开发中,可能有50%是ALV的开发,所以对ALV的掌握很重要。

The SAP List Viewer is a generic tool that outputs data in a table form (rows and columns), with integrated functions to manipulate output (sort, totals, filter, column order, hide, etc.) and export it (Excel, Crystal report, CSV files, etc.) It is also possible to make ALV editable via ALV control.

ALV name comes from “ABAP List Viewer”, as named initially because it was only available in ABAP. It is now a more general concept, which is available in java too (since 7.1).

ALV tool proposes 3 display types (schemes are taken from the SAP Library - An Overview of ALV Tools) and in several technologies:

 

Technologies:
List
Control Framework
In SAP release 4.5b was introduced the Control Framework. A control was made available for ALVs, known as ALV grid. It can be used in 3 ways:
Direct use of control
Function module wrapper. It may be used in full screen mode, which means that the buttons are displayed in the application toolbar, and also in popup mode.
Object-oriented wrapper, since basis 6.40. Full screen and popup are also available.

Web Dynpro
Web Dynpro for ABAP
Web Dynpro for java (since NetWeaver 7.10)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值