Abap 的主要工作。

一。 报表的开发。
二。单据的打印。
三。数据的开发
*&---------------------------------------------------------------------*
*& Report  YLWY001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  YLWY001.
*WRITE 'MY 003 PROGAM'.
*data wa like spfli.
*WRITE:    10 'MAN',40 'CONNECT', 60 'COUNTRY CODE',80 'START CITY',100 'START PORT'.
*          uline.
*          Select * into wa from spfli.
*WRITE:  / WA-Carrid under 'MAN',
*          WA-Connid under 'CONNECT',
*          WA-Countryfr under 'COUNTRY CODE',
*          WA-cityfrom UNDER 'START CITY',
*          WA-airpfrom UNDER 'START PORT'.
*          endselect.
*      data mytb_spfli type table of spfli with  header line.
*      select * into table mytb_spfli from spfli package size 5.
*       *loop at mytb_spfli.
*       *write: / mytb_spfli-carrid, mytb_spfli-cityfrom,mytb_spfli-airpfrom.
*       *endloop.
*       *uline.
*       *endselect.
*       *data:begin of arcd,
*       *      carrid type spfli-carrid,
*       *      connid type spfli-connid,
*       * end of arcd.
*       * data arcd1 like arcd.
*      * select spfli~carrid spfli~connid into arcd1 from spfli
*       * inner join sflight on spfli~carrid = sflight~carrid up to 10 rows.
*       * write : / arcd1-carrid,arcd1-connid.
*       * endselect.

Tables spfli.
skip .
uline at /(106).
format color col_heading.
write :  / sy-vline,(15) 'man',sy-vline,(15) 'connect',sy-vline, (15) 'code',sy-vline, (15) 'start',
          sy-vline,(30) 'start port',sy-vline.
          uline at /(106).
 format color off.
    select * from spfli.
    write: / sy-vline,(15) spfli-carrid,sy-vline,(15) spfli-connid,sy-vline,(15) spfli-countryfr,
    sy-vline,(15) spfli-cityfrom,sy-vline,(30) spfli-airpfrom,sy-vline.
    uline at /(106).
    endselect.
write '*5'.
  write /.
  start-of-selection.
  write 'please click'.
  format hotspot on color 6 inverse on.
  write 'hot'.
  format hotspot off color off.
  at line-selection.
  write ' welcome'.

ABAP 报表求和统计功能实现方法
在写abap 的过程中,可能需要统计,求和等
那么如何实现呢?
其实在loop ... endloop 中间,有个AT <LEVEL>,<…>,ENDAT循环. 其中的<LEVEL>包括: FRIST, LAST, NEW , END OF.这些可以用来进行内表中按某个字段进行分组统计.
FIRST 内 表的第一行
 LAST 内 表的最后一 行
NEW <f> 行组 的开头,与 字段 <f> 和 <f> 剩余字段中 的内容相同
 END Of <f> 行组 的结尾,与 字段 <f> 和 <f> 剩余字段中 的内容相同
AT - ENDAT 块中的语句 块使用这些 行条件代表 预定义的控 制结构。用 户可以使用 它们处理内 表中的控制 断点,而不 必使用 编程分支和循环 中所述的控 制语句自己 编程。
在 AT - ENDAT 语句块中, 工作区域没 有用当前表 格行进行填 充。初始化 所有不是标 准关键字部 件的字段( 参见
标识表格行 )。对于行 条件 FIRST 和 LAST, 系统用星号 (*) 改写所有标 准关键字段 。对于行条 件 NEW <f> 和 END OF <f>,系 统用星号 (*) 改写所有出 现在工作区 域中指定字 段 <f> 右边的标准 关键字段。 用户可根据 自己的需求 在 AT - ENDAT 语句块中填 充工作区域 。
DATA: BEGIN OF LINE,
         COL1 TYPE C,
         COL2 TYPE I,
         COL3 TYPE I,
      END OF LINE.
DATA ITAB LIKE LINE OCCURS 10.
LINE-COL1 = 'A'.
DO 3 TIMES.
   LINE-COL2 = SY-INDEX.
   LINE-COL3 = SY-INDEX ** 2.
   APPEND LINE TO ITAB.
ENDDO.
LINE-COL1 = 'B'.
DO 3 TIMES.
   LINE-COL2 = 2 * SY-INDEX.
   LINE-COL3 = ( 2 * SY-INDEX ) ** 2.
   APPEND LINE TO ITAB.
ENDDO.
LOOP AT ITAB INTO LINE.
WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
   AT END OF COL1.
      SUM."按Col1 求和.
      ULINE.
      WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
      SKIP.
   ENDAT.
AT LAST.
      SUM."总求和.
      ULINE.
      WRITE: / LINE-COL1, LINE-COL2, LINE-COL3.
   ENDAT.
ENDLOOP.
其输出为:
A          1          1
A          2          4
A          3          9
________________________________
A          6         14
B          2          4
B          4         16
B          6         36
________________________________
B         12         56
________________________________
*         18         70
ABAP/4 报表编程模板
ABAP/4 报表编程模板 初学者必看
*&--------------------------------------------------------------*
*& Report  Z_X_XXXXX                                                
*& Module                   :  Module / SubModule                     
*&--------------------------------------------------------------*
*& Created                  :  author  (2003.10.09)                   
*& Modified                 :  author  (someday)                      
*  Intention                :  程序的详细说明                         
*  请用户在ABAP/4 REPORT编程时,参考本程序提供的编程框架              
*                       
*  在编码规范有出入时,以本程序为准
*  以下各事件可根据实际编程需要使用,对于需要处理的事件,可将该事
*  件后面的语句注释去掉,再编写相应的子程序代码。
*&--------------------------------------------------------------*
INCLUDE Z_X_XXXXXTOP .           " TOP 子程序,用来声明全局变量
*----以下三个子程序只有在多个程序调用同一逻辑时才建议使用-----*
*INCLUDE Z_X_XXXXXO01 .               " PBO 子程序
*INCLUDE Z_X_XXXXXI01 .               " PAI 子程序
*INCLUDE Z_X_XXXXXF01 .               " form 子程序
INITIALIZATION.
*  PERform  INI_SELECTION_SCREEN.       " 初始化选择屏上的变量
AT SELECTION-SCREEN.
*  PERform  INI_DATA.                   " 初始化全局变量
START-OF-SELECTION.
*  PERform  PRECESS_DATA.               " 主要数据处理逻辑
AT LINE-SELECTION.
*  PERform  PRECESS_LINE_SELECTED.      " 行选择时的处理
AT USER-COMMAND.
*  PERform  PRECESS_USER_COMMAND.      * 用自定义命令按钮时的处理
TOP-OF-PAGE.
*  PERform  PAGE_HEADER.                " 页眉
END-OF-PAGE.
*  PERform  PAGE_FOOT.                  " 页脚

*&--------------------------------------------------------------*
*&      form  PRECESS_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PRECESS_DATA.
*如果逻辑简单, 则合并若干form为一个
 PERform  SEL_DBTAB_XXXXX.   " 从透明表中取数据赋给内表
 PERform  CMP_ITAB_XXXXX.    " 内表中数据计算处理
 PERform  WRT_ITAB_RESULT.   " 输出内表数据
ENDform.                    " PRECESS_DATA
*&--------------------------------------------------------------*
*&      form  SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
        from bsid
        where bukrs = s_bukrs.
authority-check object 'Z:FI-00001'
       id 'ACTVT' field '03'
       id 'BUKRS' field itab_sales-bukrs
       id 'GSBER' field itab_sales-gsber.   "权限检查
if sy-subrc ne 0.                            "权限检查未通过
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform.                    " SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*&      form  CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form CMP_ITAB_XXXXX.
ENDform.                    " CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*&      form  WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
*  PERform WRT_ITAB_SUB.
ENDform.                    " WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*&      form  PAGE_HEADER
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PAGE_HEADER.
ENDform.                    " PAGE_HEADER
*&--------------------------------------------------------------*
*&      form  INI_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_DATA.
ENDform.                    " INI_DATA
*&--------------------------------------------------------------*
*&      form  INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.
ENDform.                    " INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*& Include Z_X_XXXXXTOP                                             
*&--------------------------------------------------------------*
REPORT   Z_X_XXXXX                   .
*-------------------声明系统字典对象----------------------------*
TABLES: t001.
*--------------------声明 Selection-screen 变量-----------------*
SELECTION-SCREEN BEGIN OF BLOCK B1
                         WITH FRAME
                         TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS  FOR  T001-BUKRS MEMORY ID  BUK.
PARAMETERS:     P_DATE   LIKE SY-DATUM   DEFAULT SY-DATUM.
SELECTION-SCREEN END   OF BLOCK B1.
*--------------------声明全局变量-------------------------------*
*声明内表时,表名为 ITAB_XXXX,后缀尽可能为关联DBTab或内表用途
DATA:   bldat  like  bsid-bldat.
RANGES: R_FIELD   FOR   DBTAB-FIELD.
说明:以上是模板程序的框架及说明,在R/3系统的开发环境中有该模板程序(Z_X_XXXXX),建议编程序之前,先将该程序另存一新文件,再根据需要修改这新文件。
*&--------------------------------------------------------------*
*& Report  Z_X_XXXXX                                                
*& Module                   :  Module / SubModule                     
*&--------------------------------------------------------------*
*& Created                  :  author  (2003.10.09)                   
*& Modified                 :  author  (someday)                      
*  Intention                :  程序的详细说明                         
*  请用户在ABAP/4 REPORT编程时,参考本程序提供的编程框架              
*                       
*  在编码规范有出入时,以本程序为准
*  以下各事件可根据实际编程需要使用,对于需要处理的事件,可将该事
*  件后面的语句注释去掉,再编写相应的子程序代码。
*&--------------------------------------------------------------*
INCLUDE Z_X_XXXXXTOP .           " TOP 子程序,用来声明全局变量
*----以下三个子程序只有在多个程序调用同一逻辑时才建议使用-----*
*INCLUDE Z_X_XXXXXO01 .               " PBO 子程序
*INCLUDE Z_X_XXXXXI01 .               " PAI 子程序
*INCLUDE Z_X_XXXXXF01 .               " form 子程序
INITIALIZATION.
*  PERform  INI_SELECTION_SCREEN.       " 初始化选择屏上的变量
AT SELECTION-SCREEN.
*  PERform  INI_DATA.                   " 初始化全局变量
START-OF-SELECTION.
*  PERform  PRECESS_DATA.               " 主要数据处理逻辑
AT LINE-SELECTION.
*  PERform  PRECESS_LINE_SELECTED.      " 行选择时的处理
AT USER-COMMAND.
*  PERform  PRECESS_USER_COMMAND.      * 用自定义命令按钮时的处理
TOP-OF-PAGE.
*  PERform  PAGE_HEADER.                " 页眉
END-OF-PAGE.
*  PERform  PAGE_FOOT.                  " 页脚

*&--------------------------------------------------------------*
*&      form  PRECESS_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PRECESS_DATA.
*如果逻辑简单, 则合并若干form为一个
 PERform  SEL_DBTAB_XXXXX.   " 从透明表中取数据赋给内表
 PERform  CMP_ITAB_XXXXX.    " 内表中数据计算处理
 PERform  WRT_ITAB_RESULT.   " 输出内表数据
ENDform.                    " PRECESS_DATA
*&--------------------------------------------------------------*
*&      form  SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
        from bsid
        where bukrs = s_bukrs.
authority-check object 'Z:FI-00001'
       id 'ACTVT' field '03'
       id 'BUKRS' field itab_sales-bukrs
       id 'GSBER' field itab_sales-gsber.   "权限检查
if sy-subrc ne 0.                            "权限检查未通过
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform.                    " SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*&      form  CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form CMP_ITAB_XXXXX.
ENDform.                    " CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*&      form  WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
*  PERform WRT_ITAB_SUB.
ENDform.                    " WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*&      form  PAGE_HEADER
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PAGE_HEADER.
ENDform.                    " PAGE_HEADER
*&--------------------------------------------------------------*
*&      form  INI_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_DATA.
ENDform.                    " INI_DATA
*&--------------------------------------------------------------*
*&      form  INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.
ENDform.                    " INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*& Include Z_X_XXXXXTOP                                             
*&--------------------------------------------------------------*
REPORT   Z_X_XXXXX                   .
*-------------------声明系统字典对象----------------------------*
TABLES: t001.
*--------------------声明 Selection-screen 变量-----------------*
SELECTION-SCREEN BEGIN OF BLOCK B1
                         WITH FRAME
                         TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS  FOR  T001-BUKRS MEMORY ID  BUK.
PARAMETERS:     P_DATE   LIKE SY-DATUM   DEFAULT SY-DATUM.
SELECTION-SCREEN END   OF BLOCK B1.
*--------------------声明全局变量-------------------------------*
*声明内表时,表名为 ITAB_XXXX,后缀尽可能为关联DBTab或内表用途
DATA:   bldat  like  bsid-bldat.
RANGES: R_FIELD   FOR   DBTAB-FIELD.
说明:以上是模板程序的框架及说明,在R/3系统的开发环境中有该模板程序(Z_X_XXXXX),建议编程序之前,先将该程序另存一新文件,再根据需要修改这新文件。
1,Object Navigator是ABAP工作平台上众中开发工具的中心入口,事务代码为:se80,其中还有几个经常会用到的T-CODE: SE38, SE24, SE37.
2,在ABAP Editor中有一个Excute with variant 按钮,代表通过变量运行(变式与选择屏幕相关).
3,Editor Pretty Printer ON/OFF的设置: 菜单项: Utilites->settings有相关项,选中Indent,Convert upper/lowercase同Keyword Uppercase.
4,ABAP有三种类型的处理块:Event blocks, Dialog Modules,Procedures只有后一种可拥有自己的局部变量,而且程序语句是内部调用,前两者处理块之间实行外部调用.
5,应用程序类型, 可执行的:以Report关键字引导,不能定义功能模块但可以调用.模块池的:以Program关键字引导,必须通过事务代码运行.
6,语句链 Write: text1, text2. 等同于: Write text1. Write text2.
7,在一个Program中,处于Form和Endform之间的是Subroutines. 该程序由Program引导,不能直接运行,需被调用,不能包含自定义的用户屏幕.
8,数据内部定义: types type(len) Type type [decimal dec]
data data(len) Type type [decimal dec] [value var]
Decimal 附加项只适用于指定P类型的小数位.
9,两个结构体进行赋值操作,如果 Source与Destination的组件结构不完全相同,则用
Move-corresponding, eg: move-corresponding source-data to destination-data.
10.在ABAP数据表达式中,关键字前后必须有空格,eg: Fault: (a=b+c) true:: a = b + c .
11.在用户主记录里可以设置日期的显示分隔符,小数点字符和千位分隔符,在system->userprofile->owndata 或T-code: su01.
12,内表是一种大批量数据管理形式,用于在程序运行期间存储多行结构相同的数据,程序对内表的行操作不能直接进行,必须通过一种接口来传输,这个接口就是工作区.
13,ABAP的两种动态数据对象: Field symbols 与 Data reference.
14,内表有三种形式: standard table , sorted table , hashed table后一种不能进行索引查找,只能通过关键字搜索.
15,子程序的定义和调用分别用Form/Endform和perform来实现,如果想生成子程序的代码框架,则在prefom add处双击即可.
1,package的命名规则: begin with A-S or U-X是SAP standard object, begin with Y or Z are customer objects, begin with T are private test package, begin with $ are local package.
2.在数据字典中,每创建一个TABLE,都将生成一个同名的结构化数据类型,其中的组件字段与实际物理数据库表完全一致.
3,在select查询中如果要指定多个数据对象,则需要将这些对象放在括号内,并用逗号隔开,eg: select * from spfli into (a, b).
4.Function Module是最为常用的复用组件,它是独立的R/3仓库对象,也是一种过程模块,在不同的系统间可以通过RFC(Remote function call)技术进行功能模块的调用.
5,几个有用的系统函数: sy-uname, sy-host, sy-datum, sy-uzedit, sy-subrc, sy-bdcnt,sy-index, sy-tabix,sy-dynnr.
6,可用于交互式报表的列表事件有: at line-selection, at user-command 前者为选择某行时触发,后者由某个GUI触发.
7,在可执行程序中,只要在程序代码中使用parametes或select-options语句,则在程序运行后就会产生用户的选择屏幕.

本文出自 51CTO.COM技术博客

ABAP 学习笔记一相关推荐

  1. ABAP学习笔记(转自百度文库)_小七_新浪博客

    ABAP学习笔记 一.      ABAP语法简介: ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是 ...

  2. 【ABAP学习笔记】

    ABAP学习笔记 记录实习培训的学习记录 文章目录 ABAP学习笔记 前言 一.ABAP是什么? 二.使用步骤 1.先建立链接: 2.输入应用服务器 IP 地址,实例编号,系统标识等信息 正文 day ...

  3. ABAP学习笔记之——第三章:OPEN SQL和NATIVE SQL

    一.SAP R/3体系结构 SAP R/3一个分为三层:数据库层.应用层.表示层.其中应用层和数据库层由一个系统构成. 表示层:表示层(Presentation Layer)简单来讲其实就是指个人PC ...

  4. ABAP学习笔记之——第一章:包与变更传输系统

    一.包 包(Package)也称做开发类,是为了将程序等对象根据功能划分,进行区分和管理而导入的概念.当创建 ABAP 数据字典的 R/3 存储对象时,一定要把这些对象添加到包里进行管理.包具有以下几 ...

  5. abap学习笔记-SAP字段与表的对应关系

    MASTER DATA-主数据 Customer Master KNA1 Customer Basic Data KNB1 Customer Company Level Data客户的公司数据 KNV ...

  6. ABAP学习笔记之——第十一章:Function ALV

    一.Function ALV Function ALV 从名字中可以推出,是由 Function(函数)形式提供,因此开发者只需适当使用以有的功能即可.没有必要创建屏幕也没有必要一一写出代码,因此可认 ...

  7. ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别

    很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到,我的 ABAP 学习之路,其实并没有阅读过中文的 ...

  8. ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍

    很多 ABAP 初学者通过各种社交平台向我提出这个问题: ABAP初学者如何系统地学习ABAP编程? 所以我专门写了一篇同名的文章来回答. 文章里提到,我的 ABAP 学习之路,其实并没有阅读过中文的 ...

  9. 《SAP高级应用开发》---Idoc学习笔记

    黄佳<SAP高级应用开发>,第四章Idoc技术学习笔记,记录如 一,Idoc:Intermediate document,系统间数据交换过程的媒介          A: 面向消息(mes ...

  10. 零基础 ABAP 学习教程系列文章的目录

    零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...

最新文章

  1. Node-RESTful
  2. Linux crontab定时任务示例
  3. 20145202马超《网络对抗》Exp7 网络欺诈技术防范
  4. YUV422/420 format
  5. android 仿qq it蓝豹,《IT蓝豹》listview实现各种版面设计功能
  6. jQuery1.3.2 源码学习 -2 两个重要的正则表达式
  7. java 数据队列_Java 数据结构 - 队列
  8. QQ浏览器如何添加并进入书签地址?QQ浏览器添加并进入书签地址的方法
  9. Dataloader与Dataset
  10. 2016年百度面试题
  11. 黑鲨4S磁动力升降肩键将全面升级:颜值和按压手感稳步提升
  12. mysql 数据备份方案_MySQL常见备份方案
  13. bat获取当前文件夹路径
  14. 分布式任务队列:Celery使用记录
  15. Samba通过ad域进行认证并限制空间大小
  16. Mac 设置 word 单面打印 双面打印
  17. pycharm2016破解方法
  18. 中国有些东西不是给人吃的
  19. 【Matlab】mod函数和rem函数的区别
  20. 守望先锋的蜂窝盾制作

热门文章

  1. 成就更好的自己,就是不停地做减法
  2. 爆款制作获1200w播放,B站UP主+品牌如何迈入2023
  3. 嵌入式学习之QT学习---8 QT网络编程之TCP通信
  4. 有密码Win10创建新用户
  5. Python爬取20w+表情包,微信斗图谁怕谁!
  6. 航顺HK32F030MF4P6开发脱坑小记
  7. Lua 实现Get Set属性
  8. 08-SNAP的命令行处理工具gpt及其批处理(Sentinel-1和Sentinel-2为例)
  9. 经典SQL练习——详细到令人发指(未完待续)
  10. 【MT19937】学习分析