`
evangxli
  • 浏览: 231510 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SAP ABAP Refresh & Clear 区别

阅读更多
  在做ALV&SmartForms输出时,如果执行Program并输出,那么在输出页面按F3返回一步,再次执行输出——就会发生循环错误。
  此时,是因为在你的SmartForms中没有更新掉内表。
  解决方法:1. 在SmartForms中,循环的最后,插入代码
CLEAR IT_DATA[].
CLEAR IT_PURNM[].

  2. 在Program中,一般加在函数
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  CLEAR : IT_SELS[],
      IT_PURNM[],
      IT_BLAK[].

  最后的地方,插入以上代码。

  分析:注意Refresh与Clear的区别。
  (一) 当没有HEADER LINE时,
REFRESH IT_DATA.
  CLEAR IT_DATA[].
  CLEAR IT_DATA.
,这三者是相等的。
  (二) 当存在HEADER LINE时,
REFRESH IT_DATA.
  CLEAR IT_DATA[].
,这两者是相等的。清空内表数据存储空间,对HEADER LINE不影响。
  这个
CLEAR IT_DATA.
仅仅清除了HEADER LINE,对内表数据存储空间不影响。

  内表赋值——内表分有无HEADER LINE两种。对于有HEADER LINE的内表,可以通过两种方法:填充HEADER LINE或者通过外部的Work Area向内表存储空间追加数据;没有HEADER LINE的内表,只有一种方法,就是通过外部Work Area来传递数据。
  苯方法: CLEAR : IT_SELS, IT_SELS[].
  前者清空HEADER LINE里的内容,后者清空内表数据。




测试代码:
*&---------------------------------------------------------------------*
*& REPORT  ZT_EXCEPTION_MSG
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZT_TEST.

DATA : C_X(1) TYPE C VALUE 'X'.

SELECTION-SCREEN BEGIN OF BLOCK BLK1.
  PARAMETERS : P_1_RFSH RADIOBUTTON GROUP GRP4.
  PARAMETERS : P_2_CLR1 RADIOBUTTON GROUP GRP4 DEFAULT 'X'.
  PARAMETERS : P_3_CLR2 RADIOBUTTON GROUP GRP4.
  PARAMETERS : P_4_NO   RADIOBUTTON GROUP GRP4.
SELECTION-SCREEN END OF BLOCK BLK1.

TYPES : BEGIN OF TY_DATA,
  DATA1,
  DATA2,
  END OF TY_DATA.
DATA : WA_DATA TYPE TY_DATA.
DATA : IT_DATA TYPE STANDARD TABLE OF TY_DATA WITH HEADER LINE.


START-OF-SELECTION.
WA_DATA-DATA1 = '1'.
WA_DATA-DATA2 = '2'.
APPEND WA_DATA TO IT_DATA.

*LOOP AT IT_DATA.
*  WRITE : 'First write : ',
*  IT_DATA-DATA1, IT_DATA-DATA2, 
*  WA_DATA-DATA1, WA_DATA-DATA2, /.
*ENDLOOP.

LOOP AT IT_DATA INTO WA_DATA.
  WRITE : 'First write : ',
  WA_DATA-DATA1, WA_DATA-DATA2, /.
ENDLOOP.

IF P_1_RFSH = C_X.                "使用REFRESH
  REFRESH IT_DATA.
ENDIF.
IF P_2_CLR1 = C_X.                "使用CLEAR IT_DATA[],有方括号。               
  CLEAR IT_DATA[].
ENDIF.
IF P_3_CLR2 = C_X.                "使用CLEAR IT_DATA,没有方括号。
  CLEAR IT_DATA.
ENDIF.
*LOOP AT IT_DATA.
*  WRITE : 'Second write : ',
*  IT_DATA-DATA1, IT_DATA-DATA2, 
*  WA_DATA-DATA1, WA_DATA-DATA2, /.
*ENDLOOP.
LOOP AT IT_DATA INTO WA_DATA.
  WRITE : 'Second write : ',
  WA_DATA-DATA1, WA_DATA-DATA2, /.
ENDLOOP.
PERFORM LAYOUT.


FORM LAYOUT.
  IF IT_DATA IS INITIAL.
    WRITE : 'IT_DATA IS INITIAL'.
  ELSE.
*    LOOP AT IT_DATA.
*      WRITE : 'Thrid write : ',
*        IT_DATA-DATA1, IT_DATA-DATA2, 
*        WA_DATA-DATA1, WA_DATA-DATA2, /.
*    ENDLOOP.
    LOOP AT IT_DATA INTO WA_DATA.
      WRITE : 'Thrid write : ',
        WA_DATA-DATA1, WA_DATA-DATA2, /.
    ENDLOOP.
  ENDIF.
  WRITE : / 'END'.
ENDFORM.
0
0
分享到:
评论

相关推荐

    sapabap开发从入门到精通

    资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...

    SAP ABAP 电子书

    SAP ABAP(Advanced Business Application Programming)是SAP公司推出的一种高级业务应用编程语言,用于开发在SAP R/3和SAP NetWeaver平台上的应用程序。这些电子书提供了全面的资源,帮助学习者深入理解并掌握SAP ...

    SAP ABAP开发从入门到精通

    《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAP ABAP开发的相关知识点,详细介绍了SAP ABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象...

    实战SAP程序开发——从实例学SAP ABAP编程.rar

    SAP ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,用于开发和定制企业应用程序。对于想要深入理解SAP编程的初学者,实战SAP程序开发——从实例学SAP ABAP编程这个资源提供了宝贵的实践...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    ABAP(Advanced Business Application Programming)是SAP公司推出的一种编程语言,主要用于开发SAP系统中的业务应用程序。SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得...

    SAP ABAP 通用接口日志&restful 动态调用FM

    在SAP ABAP环境中,通用接口日志和RESTful动态调用FM是两个重要的概念,它们在企业级应用开发中发挥着关键作用。本文将详细阐述这两个知识点,并结合RESTful服务,探讨它们如何协同工作。 首先,让我们了解SAP ABAP...

    SAP ABAP 1.4.4代码下载

    SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于在其ERP(企业资源规划)系统中创建和定制业务逻辑。在SAP ABAP 1.4.4版本的代码下载中,我们可以深入探讨这个版本的...

    SAP ABAP开发学习——第9课:ALV2(视频教程)

    SAP ABAP开发学习——第9课:ALV2(视频教程) 1.SAP ABAP开发入门学习 2.含视频教程学习、PPT、作业 3.视频非常清晰

    《SAP ABAP开发技术详解(实例篇)(第二版)mobi 版

    《SAP ABAP开发技术详解(实例篇)(第二版) [1] 》除了对对SAP ABAP开发所需的常用技术(SAP报表、批量导入、对话程序、函数)做了详尽的介绍,包括基本报表、交互式报表、复杂报表、ALV(SAP List Viewer)报表、...

    sap abap & xml

    ### SAP ABAP与XML处理详解 #### 一、XML概述 XML(Extensible Markup Language)是一种标记语言,用于描述数据的结构和含义。从程序员的角度来看,XML具有以下几个特点: - **通用的数据模型**:“XML Infoset”...

    SAP ABAP 代码备份下载到本地程序代码

    SAP ABAP 代码备份下载到本地程序代码

    SAP ABAP ALV分页显示

    ### SAP ABAP ALV 分页显示技术解析 #### 核心知识点:SAP ABAP ALV 分页显示 本篇文章将深入分析一个基于SAP ABAP的ALV(Application List Viewer)分页显示的实现方法。ALV是SAP GUI中用于展示表格数据的一种...

    《SAP ABAP开发详解与高端应用》.zip

    《SAP ABAP开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...

    sap abap query高级功能

    SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...

    SAP ABAP启动OUTLOOK发邮件.docx

    针对这种需求,我们可以利用SAP的ABAP编程环境,通过OLE(Object Linking and Embedding)技术来启动Outlook并发送邮件。以下是实现这一功能的关键知识点: 1. **SAP OLE配置**: 在SAP系统中,首先需要进行OLE...

    SAP ABAP官方教程

    《SAP ABAP官方教程》是一份针对SAP ABAP编程语言的重要学习资源,适合对这个领域感兴趣的初学者和有经验的开发者。ABAP(Advanced Business Application Programming)是SAP系统中的主要编程语言,用于开发企业级...

    SAP ABAP培训练习题

    在IT领域,SAP ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,用于开发企业级的应用程序。本资料包是针对SAP ABAP初学者的培训练习题,旨在帮助学习者掌握基本概念和技能,...

    SAP ABAP开发学习——第19课:实战讲解(视频教程)

    在本课程“SAP ABAP开发学习——第19课:实战讲解”中,我们将深入探讨SAP ABAP(Advanced Business Application Programming)编程语言在实际项目中的应用。ABAP是SAP系统的核心开发语言,用于构建企业级业务应用...

    SAPABAP常用函数清单.pdf

    SAP ABAP常用函数清单 SAP ABAP是一种高级程序设计语言,用于开发SAP R/3系统中的应用程序。ABAP语言提供了许多实用的函数,可以帮助开发者快速、高效地开发应用程序。本文将对SAP ABAP常用函数进行总结,涵盖文档...

Global site tag (gtag.js) - Google Analytics