在做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.
分享到:
相关推荐
资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...
SAP ABAP(Advanced Business Application Programming)是SAP公司推出的一种高级业务应用编程语言,用于开发在SAP R/3和SAP NetWeaver平台上的应用程序。这些电子书提供了全面的资源,帮助学习者深入理解并掌握SAP ...
《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAP ABAP开发的相关知识点,详细介绍了SAP ABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据字典、锁对象...
SAP ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,用于开发和定制企业应用程序。对于想要深入理解SAP编程的初学者,实战SAP程序开发——从实例学SAP ABAP编程这个资源提供了宝贵的实践...
ABAP(Advanced Business Application Programming)是SAP公司推出的一种编程语言,主要用于开发SAP系统中的业务应用程序。SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得...
SAP ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于在其ERP(企业资源规划)系统中创建和定制业务逻辑。在SAP ABAP 1.4.4版本的代码下载中,我们可以深入探讨这个版本的...
在SAP ABAP环境中,通用接口日志和RESTful动态调用FM是两个重要的概念,它们在企业级应用开发中发挥着关键作用。本文将详细阐述这两个知识点,并结合RESTful服务,探讨它们如何协同工作。 首先,让我们了解SAP ABAP...
SAP ABAP开发学习——第9课:ALV2(视频教程) 1.SAP ABAP开发入门学习 2.含视频教程学习、PPT、作业 3.视频非常清晰
### SAP ABAP与XML处理详解 #### 一、XML概述 XML(Extensible Markup Language)是一种标记语言,用于描述数据的结构和含义。从程序员的角度来看,XML具有以下几个特点: - **通用的数据模型**:“XML Infoset”...
SAP ABAP 代码备份下载到本地程序代码
《SAP ABAP开发技术详解(实例篇)(第二版) [1] 》除了对对SAP ABAP开发所需的常用技术(SAP报表、批量导入、对话程序、函数)做了详尽的介绍,包括基本报表、交互式报表、复杂报表、ALV(SAP List Viewer)报表、...
### SAP ABAP ALV 分页显示技术解析 #### 核心知识点:SAP ABAP ALV 分页显示 本篇文章将深入分析一个基于SAP ABAP的ALV(Application List Viewer)分页显示的实现方法。ALV是SAP GUI中用于展示表格数据的一种...
《SAP ABAP开发详解与高端应用》这本书深入探讨了SAP ABAP(Advanced Business Application Programming)编程语言,这是SAP系统中用于开发业务应用程序的关键技术。ABAP是SAP平台上的核心编程语言,用于创建自定义...
SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...
针对这种需求,我们可以利用SAP的ABAP编程环境,通过OLE(Object Linking and Embedding)技术来启动Outlook并发送邮件。以下是实现这一功能的关键知识点: 1. **SAP OLE配置**: 在SAP系统中,首先需要进行OLE...
《SAP ABAP官方教程》是一份针对SAP ABAP编程语言的重要学习资源,适合对这个领域感兴趣的初学者和有经验的开发者。ABAP(Advanced Business Application Programming)是SAP系统中的主要编程语言,用于开发企业级...
在IT领域,SAP ABAP(Advanced Business Application Programming)是一种专为SAP系统设计的编程语言,用于开发企业级的应用程序。本资料包是针对SAP ABAP初学者的培训练习题,旨在帮助学习者掌握基本概念和技能,...
在本课程“SAP ABAP开发学习——第19课:实战讲解”中,我们将深入探讨SAP ABAP(Advanced Business Application Programming)编程语言在实际项目中的应用。ABAP是SAP系统的核心开发语言,用于构建企业级业务应用...
SAP ABAP常用函数清单 SAP ABAP是一种高级程序设计语言,用于开发SAP R/3系统中的应用程序。ABAP语言提供了许多实用的函数,可以帮助开发者快速、高效地开发应用程序。本文将对SAP ABAP常用函数进行总结,涵盖文档...