设计ABAP/4 Query报表

来源:互联网 发布:淘宝收到假货上哪投诉 编辑:程序博客网 时间:2024/05/09 15:19

ABAP/4 Query是sap R/3系统报表开发的一种工具。开发人员可以用它来创建简单的报表。用ABAP/4 Query创建报表主要包括一下步骤:
1、创建用户组(User Group)(TCODE:SQ03)
2、创建Infoset(TCODE:SQ02)
3、分配用户和功能区
4、创建基于Infoset的报表(TCODE:SQ01)

1、创建用户组(User Group)(TCODE:SQ03)
当用ABAP/4 Query 来创建表报时,你必须给报表分配用户组.用户组规定了哪些用户有使用该报表的权限.具体步骤如下:
1.1 运行TCODE: SQ03,系统出现"用户组:初试屏";
1.2 在用户组输入框中,输入"你需要的创建的用户组名称",再点击"创建"按钮;
1.3 系统此时会弹出用户组描述输入对话窗口,输入正确的描述,点击"保存"按钮;
1.4 系统会弹出"开发类"和"传输请求"两个窗口,请正确输入;
1.5 最后系统会提示XXX用户组已保存.

2、创建功能区(Infoset)(TCODE:SQ02)
当用ABAP/4 Query 来创建表报时,你同样需要创建一个功能区(infoset),它规定了数据来源。具体步骤如下:
2.1运行TCODE: SQ02,系统出现"Infoset:initial screen";
2.2 在功能区输入框中,输入"你需要的创建的Infoset的名称",再点击"创建"按钮;
2.3 系统此时会弹出用户组描述输入对话窗口,输入正确的描述
你可以设置数据源为下列4种中的一种:
                Table Join using basis table
                Direct read of Table
                Logical Database
               Data retrieval by Program
但你输入完必要的信息,请点击“保存”按钮;
2.4点击“生成”按钮生成激活

3、分配用户和功能区(TCODE: SQ02或SQ03)
3.1运行TCODE: SQ02,系统出现"Infoset:initial screen";
3.2选择“分配用户和功能区”;
3.3在“用户组XXXX:分配用户"屏,输入响应的用户;
3.4点击“分配Infoset”按钮分配该用户组可以使用的Infoset;按“保存”按钮保存;
3.5点击“返回”返回到用户输入屏,点击“保存”按钮保存用户分配;退出TCODE

4、创建报表(TCODE:SQ01)
4.1运行TCODE: SQ01,系统出现"查询:initial screen";
4.2选择菜单"编辑"--》“其他用户组”,选择正确的用户组;
4.3 在查询输入框中,输入"你需要的创建的的名称",再点击"创建"按钮;
4.4系统弹出“可用功能区”的列表对话框,你选择一个;
4.5 输入描述,配置报表的List格式,特殊属性和输出格式后,按“下一屏”设置“Select Field Group”;
4.6再点击“下一屏”,设置选择查询条件字段;
4.7再点击“下一屏”,设置选择查询条件字段的屏幕排列循序,是否输入范围,是否帮助输入;
4.8选择报表输出类型
“基本列表”,“统计”和“等级列表”
4.9选择报表输出类型,系统进入“报表设计屏”,你进行完设计,按“保存”保存;
至此一个ABAP/4 Query报表设计完成。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/compassbutton/archive/2006/11/03/1364699.aspx

2.实例操作讲解SAP Query

简单来讲,制作SAP Query可以用到SQ03(创建用户组并分配用户)、SQ02(创建InfoSet并分配到用户组)、SQ01(在分配好的用户组中使用信息集来生成Query Reporting)这三个事务代码。

2.1 创建用户组并分配用户 Tcode:SQ03  


Figure1-1:创建新的用户组
Figure1-2:保存新的用户组
Figure1-3:为新的用户组分配用户

 

2.2 创建InfoSet并分配到用户组 Tcode:SQ02  

Figure2-1:创建新的InfoSet
Figure2-2:保存
Figure2-3:将InfoSet分配到用户组

 

Figure3:指定数据源及其类型。

 

Figure4:如果使用“包括关键字段”,则InfoSet会自动带入数据源的Key值字段,当然也可以使用其它另外两个选择项,不过那样看上去会有些怪异。

 

Figure5-1:转换显示与更改
Figure5-2:检查是否有错误
Figure5-3:生成信息集InfoSet(重要)
Figure5-4:连接(可以添加数据源连接,较重要)
Figure5-5:附加(可以添加全局字段、对字段进行代码控制、对选择屏幕进行控制等,重要)
Figure5-6:查看附加代码
Figure5-7:增加字段组(当信息集字段相当多时,可以使用它对字段进行分组管理)

Figure6-1:新增字段组并且拉入了一个新的字段Bseg-DMBTR。 用鼠标拖拽的方式把左侧的字段拉入右侧的信息集InfoSet,或者右击信息集InfoSet字段进行删除。操作完成点击保存按钮并点击生成按钮以生成信息集。

点击Figure2-3,将信息集InfoSet分配到用户组。

2.3 创建Query Reporting Tcode:SQ01

 

Figure7-1:转到信息集所在的用户组(Query Reporting可以看做是信息集的派生出的报表,所以第一步应先找到信息集的所在,SQ02把它分配到某个用户组了,所以这里应先用这个按钮转到此用户组,重要)
Figure7-2:对Query Reporting进行测试
Figure7-3:为新的Query Reporting命名
Figure7-4:点击创建
Figure7-5:快速浏览器(这里就是概述里讲到的QuickViewer)
Figure7-6:信息集查询(这里就是概述里讲到的InfoSet)
Figure7-7:Query Reporting列表

Figure8:变更查询的标题及格式 完成后点击下一页或者按F6

 

Figure9:更改快速浏览的选择字段组(这一页可以保持默认不变,因为它的下一页还要再设置)

Figure10:选择搜索字段。

 

Figure11-1:如果将检查标记放在此复选框中,那么在选择字段中只准备一个条目字段.选择"多选择"附加字段的按钮,是可用的,以确保您使用此功能来进行多项选择. 如果要撤销激活多选择功能,那么将检查标记放在复选框中.
Figure11-2:若选择此复选框,就能在选择屏幕上指定单一值或间隔.选择额外屏幕的按钮"多重选择"不可用,有效预防进行多重选择.   若想限制选择以致仅允许选择单一值,也要在首个复选框中安置一个检查标记.
注:这里不能设置搜索条件是否必输。如需设置,可到SQ02信息集中去设置,我们将在后面讲到。

当“下一页”的按钮变灰,点击“基本清单”。基本清单的显示有两种格式,一种是图形查询绘制器格式设计,另一种是非图形查询绘制器格式设计。它们可以通过选中菜单“设置- 设置- 图形查询绘制器”的复选框,SAP V4.6或高版本的SAP Query是默认选中此选项的,选中即代表所见即所得的设计格式。

 

Figure12-1:打开或关闭所有工具(包括排序字段、总计字段、计算字段、工具箱等。重要)
Figure12-2:Query Reporting的显示字段(打勾的顺序是很重要的)
Figure12-3:Query Reporting的搜索字段
Figure12-4:字据字段的下面方框中可以设置字段显示的宽度、位置甚至颜色等)
Figure12-5:已经打开的小工具(可以拖拽的字段值到小工具栏中,例如将“凭证号码”字段下方的“ABCDEFGHIJ”拖拽到排序小工具中)
小窍门:如果Query Reporting的字段非常多,显示顺序不太容易设定,可以点击Figure7-6然后用鼠标去拖动列直到你满意为止,这样是方便的。

测试或保存Query Reporting。

 

 

3.Query Reporting高级应用

3.1添加全局字段并使用代码控制值(多表关联) TCODE:SQ02

 

Figure13-1:点击“附加”
Figure13-2:新建字段(此字段是全局字段,非本地字段。所有使用此信息集InfoSet生成的Query Reporting都可以看到此字段)

Figure14:添加Z_period,意为显示凭证的会计期间。(因Bseg中不包含会计期间的信息,而BKPF包含)

Figure15:设置Z_period的简单参数。

点击Figure13-3:转到附加代码

 

Figure16:在代码附加框中录入上面的代码,点击保存并检查。把左侧数据源中自动新增的“附加字段”下面的“Z_period ”字段拉到信息集中,保存并生成。

Figure12-2:下面的Z_period选中打勾即可。

 

3.2添加全局字段并使用代码控制值(对查询结果进行算数运算)    TCODE:SQ02

Figure17:可以在代码附加中使用简单的语句实现对查询结果的算数运算。其它操作如3.1操作。

3.3 对搜索字段设置单选必输    TCODE:SQ02

Figure18-1:点击“附加”
Figure18-2:选择“选择”页签
Figure18-3:新建
Figure18-4:在“创建选择”窗口输入名称,并选择“选择指标”

Figure19:格式 “FOR” 输入 将要设为单选必输的字段;附加中输入“OBLIGATORY NO-EXTENSION NO INTERVALS” 。 保存即可。

3.4 新增本地字段并设置简单属性 SQ01

在Figure10中点击菜单:编辑---短名---打开/关闭

Figure20:输入自定义短名。

点击菜单“编辑---局部字段---创建”。

Figure21:在“字段定义”窗口中输入以上内容。

Figure22:在“基本清单”中选择刚刚创建的“本地附加字段--金额(局部)”,测试运行。

Figure23:添加了“金额(局部)”的查询结果。

3.5 新增本地字段并设置图标属性 SQ01

 

 

 

Figure24:属性选择“符号”,在条件框中输入条件,并选择一种符号,保存。

Figure25:输出结果

3.6 对查询结果附加操作(使用TR)

点击Figure5的菜单 “转到--报表分配”

 

Figure26-1:点击"插入行"
Figure26-2:点击"其它报告类型"


Figure27-1: 选择TR 事务

Figure28:输入 FB03   并保存 可以实现双击查询结果联查到凭证.

3.7 对查询结果附加操作(使用RT)

如果要实现对查询更加复杂的操作,那就要选择Figure27-2使用"RT ABAP报表程序".,选择这种类型的前提是你已经写好了一个ABAP报表程序。 如本例,我使用SE38写了一个小小的程序来实现双击查询行项目联查到凭证。

*&---------------------------------------------------------------------*
*& Report   Z_QUERY_DELANO1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT   Z_QUERY_DELANO1.

PARAMETER:   z_BELNR like bseg-BELNR,
             z_BUKRS like bseg-BUKRS,
             Z_GJAHR like bseg-GJAHR.
  set PARAMETER ID 'BLN' FIELD Z_BELNR.
  set PARAMETER ID 'BUK' FIELD z_BUKRS.
  set PARAMETER ID 'GJR' FIELD Z_GJAHR.

call TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

 


点击Figure27-2后,在Figure29中录入你提前写好的Report名称,保存。

 

在查询结果中双击行项目会跳出这样的窗口来让你选择要执行的动作。“显示凭证”便是使用TR事务添加的FB03,“Z_QUERY_DELANO1“ 是使用RT ABAP报表程序 添加的程序,这两个都可以实现对查询结果的附加操作(比如联查凭证)。