zoukankan      html  css  js  c++  java
  • ABAP游标

    DATA: BEGIN OF count_line, 
            carrid TYPE spfli-carrid, 
            count  TYPE i, 
          END OF count_line, 
          spfli_tab TYPE TABLE OF spfli. 
    
    DATA: dbcur1 TYPE cursor, 
          dbcur2 TYPE cursor. 
    
    OPEN CURSOR @dbcur1 FOR 
      SELECT carrid, count(*) AS count 
             FROM spfli 
             GROUP BY carrid 
             ORDER BY carrid. 
    
    OPEN CURSOR @dbcur2 FOR 
      SELECT * 
             FROM spfli 
             ORDER BY carrid. 
    
    DO. 
      FETCH NEXT CURSOR @dbcur1 INTO @count_line. 
      IF sy-subrc <> 0. 
        EXIT. 
      ENDIF. 
      FETCH NEXT CURSOR @dbcur2 
        INTO TABLE @spfli_tab PACKAGE SIZE @count_line-count. 
    ENDDO. 
    
    CLOSE CURSOR: @dbcur1, 
                  @dbcur2. 
    DATA: wa_spfli   TYPE spfli,
          wa_sflight TYPE sflight,
          wa_sflight_back TYPE sflight.
    
    DATA: c1 TYPE cursor,
          c2 TYPE cursor.
    
    OPEN CURSOR @c1 FOR
      SELECT *
        FROM spfli
        ORDER BY PRIMARY KEY.
    
    OPEN CURSOR @c2 FOR
      SELECT *
             FROM sflight
             ORDER BY PRIMARY KEY.
    
    DATA(out) = cl_demo_output=>new( ).
    
    DO.
      FETCH NEXT CURSOR @c1 INTO @wa_spfli.
      IF sy-subrc NE 0.
        EXIT.
      ENDIF.
      out->begin_section(
        |{ wa_spfli-carrid } { wa_spfli-connid }| ).
      DO.
        IF NOT wa_sflight_back IS INITIAL.
          wa_sflight = wa_sflight_back.
          CLEAR wa_sflight_back.
        ELSE.
          FETCH NEXT CURSOR @c2 INTO @wa_sflight.
          IF  sy-subrc <> 0.
            EXIT.
          ELSEIF wa_sflight-carrid <> wa_spfli-carrid
              OR wa_sflight-connid <> wa_spfli-connid.
            wa_sflight_back = wa_sflight.
            EXIT.
          ENDIF.
        ENDIF.
        out->write(
         |{ wa_sflight-carrid } {
            wa_sflight-connid } {
            wa_sflight-fldate }| ).
      ENDDO.
      out->end_section( ).
    ENDDO.
    
    CLOSE CURSOR: @c1, @c2.
    
    out->display( ).
  • 相关阅读:
    try,except,finally的用法
    python实现蓝牙通信
    分布式全局ID的几种生成方案
    为什么要两次调用encodeURI来解决乱码问题
    jenkins配置到gitlab拉代码
    查看IOS-app证书到期时间
    使用SSH方式实现Git远程连接GitHub/gitlab
    Git 分支
    jenkins构建后操作archive the artfacts的用法
    MAC 安装jenkins
  • 原文地址:https://www.cnblogs.com/sapSB/p/8044067.html
Copyright © 2011-2022 走看看