创建自定义报表的第 1 步是创建查询。可以通过三种方法来创建查询:
要创建查询:
在类型中,选择下列类型之一:
参数查询
“参数查询”类型用于显示您可以为此参数的值指定的一组选项。“参数查询”用于显示在为报表查询填充参数值时可使用的一组选项,这一组选项不是简单的已定义属性,而是一个需要定义的复杂查询。
有关为报表选择参数查询的示例,请参阅“向报表中添加参数查询”。
报表查询
选择要包含在报表中的记录。如果您正在设计的报表将包含参数,则可以将报表设计为不显示记录或显示所有记录。
对于调节合规性,可以应用安全筛选器,以便用户仅看到其有权看到的数据(基于其角色)和分配给他们的调节。若要对报表查询应用安全筛选器,请将以下语法添加到查询 WHERE CLAUSE 语句的结尾:
调节合规性:$ARM_SECURITY_CLAUSE$
WHERE $ARM_SECURITY_CLAUSE$ AND ReconciliationEO
在查询中使用 $ARM_SECURITY_CLAUSE$
时,ARM_RECONCILIATIONS
的别名必须为 ReconciliationEO
。
注:
由于 Account Reconciliation 附带的许多预定义查询都应用了安全筛选器,因此您可以在构建您自己的查询时将这些查询用作示例。
有关查询示例,请参阅下面的调节合规性示例。
单击生成查询以生成报表查询。有关详细信息,请参阅下面的“生成查询”。
在提供所需的详细信息并关闭“生成查询”对话框之后,生成的报表查询将显示在查询中。
注:
如果报表中需要参数,请向报表查询 SQL 中添加参数。参数名称可以是任何名称,但必须用波形符 (~) 括起来。请参阅以下各节中的示例。执行下列操作之一:
单击验证以测试查询是否有错误。
单击验证并解释计划以测试查询是否有错误并生成将用于运行此查询的计划。生成的计划存储在 .txt
文件中,该文件使用与查询相同的名称。您可以查看或下载生成的计划。
生成的计划包含用于运行查询的一组步骤。使用该计划确定可能导致查询性能欠佳的问题。随后,您可以调整查询以提高其性能。
注:
默认情况下,执行计划的生成仅适用于 OCI(第 2 代)环境。要在标准环境中启用它,请使用服务请求与 Oracle 联系。要使用 BI Publisher 基于查询生成要用作模板的样本 XML 文件,请单击生成样本 XML。
注:
您可以使用“操作”菜单轻松删除查询或复制查询。生成查询
“生成查询”对话框可帮助您创建针对数据库的查询,它允许您选择产品中的任何现有属性来进行查询和/或筛选。随后对话框将生成匹配指定的属性和筛选器的 SQL,此时可以修改和优化 SQL。
要生成报表查询:
在“模块”中,选择 Reconciliation Manager 或事务匹配。
在“查询”中,选择查询类型。
如果在“模块”中选择的是 Reconciliation Manager,则选择以下选项之一:调节、配置文件或事务。
如果在“模块”中选择的是事务匹配,请从下拉列表中列出的查询中选择一个查询。
选择应用安全设置以应用安全筛选器,以便用户仅看到其有权看到的数据(基于其角色)和分配给他们的调节。
注:
在查询下选择“匹配类型”时,将不显示应用安全设置选项选择要在查询中包括的列,然后单击下一步。
注:
事务匹配支持自动生成事务查询。注:
对于事务匹配,生成的查询中包括“帐户 ID”列,即使没有从可用列的列表中选择该列也是如此。要从报表中排除“帐户 ID”列,请从所生成查询的 SELECT 列表中删除 Account ID(帐户 ID)列。向报表中添加参数查询
要向报表中添加参数查询:
依次选择查询和参数查询类型(例如,CurrencyList)。
在“编辑查询”对话框中,查看和/或编辑参数查询,然后单击保存并关闭。
您将返回到“报表配置”屏幕。
依次选择报表和所需的报表(例如,按调节的余额)。
在“编辑报表”对话框中,选择参数。
对于所需的参数代码,从下拉列表中为参数类型选择查询,为属性/查询选择 CurrencyList。
参数值下拉列表提供货币的列表。
注:
只有当您在参数类型下拉列表中选择查询时,属性/查询下拉列表才显示参数查询的列表。注:
参数类型下拉列表允许您为每个模块选取模块属性(Reconciliation Manager 或事务匹配)。如果为“参数类型”选择了模块属性,“属性/查询”下拉列表将列出该模块的属性。单击保存并关闭。
调节合规性示例
这些调节合规性示例假定,您要运行一个报表来显示包含“每月”频率的期间列表。如果您正在设计的报表将包含参数,则可以将报表设计为不显示记录或显示所有记录。
参数查询:Select frequency_id, frequency_name from arm_frequencies
报表查询选项 1:(如果用户未提供频率值,则不返回任何期间):
Select p.period_name from arm_periods p, arm_period_frequencies pf where p.period_id = pf.period_id and pf.frequency_id = ~FREQUENCY~
报表查询选项 2:(如果用户未提供频率值,则返回所有记录):
Select p.period_name from arm_periods p, arm_period_frequencies pf where p.period_id = pf.period_id and pf.frequency_id = coalesce(~FREQUENCY~,pf.frequency_id)
注:
参数名称可以是任何名称,但必须用波形符 (~) 括起来。
在第二个选项中,coalesce()
函数将返回列表中的第一个非 null 值;因此,如果 FREQUENCY 为 null,则将返回 pf.frequency_id
,在此情况下,条件将始终为 true (pf.frequency_id = pf.frequency_id
),从而导致返回全部记录。
事务匹配示例
这些示例假定您要查看任意给定调节类型的调节列表。
参数查询:SELECT TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID , (TM_RECON_TYPE.NAME || ' (' || TM_RECON_TYPE.TEXT_ID || ')') AS RECONCILIATION_TYPE_NAME FROM TM_RECON_TYPE TM_RECON_TYPE
报表查询选项 1:(如果用户未选择调节类型,则不返回任何调节):
SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID,TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, NVL ((SELECT P_FCM_USERS.USER_NAME FROM FCM_USERS_V P_FCM_USERS WHERE TM_RECON.PREPARER = P_FCM_USERS.USER_ID ), TM_RECON.PREPARER ) AS PREPARER, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND (TM_RECON_TYPE.TEXT_ID = '~RECONCILIATION_TYPE_ID~')
报表查询选项 2:(如果用户未选择任何调节类型,则返回所有调节。):
SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID,TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, NVL ((SELECT P_FCM_USERS.USER_NAME FROM FCM_USERS_V P_FCM_USERS WHERE TM_RECON.PREPARER = P_FCM_USERS.USER_ID ), TM_RECON.PREPARER ) AS PREPARER, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND COALESCE('~RECONCILIATION_TYPE_ID~',TM_RECON_TYPE.TEXT_ID)
注:
参数名称可以是任何名称,但必须用波形符 (~) 括起来。
在第二个选项中,coalesce()
函数将返回列表中的第一个非 null 值;因此,如果 RECONCILIATION_TYPE_ID 为 null,则将返回 TM_RECON_TYPE.TEXT_ID
,在此情况下,条件将始终为 true (TM_RECON_TYPE.TEXT_ID = TM_RECON_TYPE.TEXT_ID
),从而导致返回全部记录。
报表查询,选项 3(如果用户具有访问权限,则返回所有调节):SELECT TM_RECON.TEXT_ID AS RECONCILIATION_ID, TM_RECON.NAME AS RECONCILIATION_NAME, TM_RECON_TYPE.TEXT_ID AS RECONCILIATION_TYPE_ID, TM_RECON_TYPE.NAME AS RECONCILIATION_TYPE_NAME, TM_RECON.DESCRIPTION DESCRIPTION FROM TM_RECON TM_RECON, TM_RECON_TYPE TM_RECON_TYPE, ARM_RECONCILIATIONS ProfileEO WHERE TM_RECON.RECON_TYPE_ID = TM_RECON_TYPE.RECON_TYPE_ID AND TM_RECON.TEXT_ID = ProfileEO.RECONCILIATION_ACCOUNT_ID AND $ARM_SECURITY_CLAUSE$ AND ProfileEO.PERIOD_ID = -2