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名称,保存。