在Cognos中创建值数组

问题描述 投票:0回答:2

是否可以在Cognos Report Studio中为给定字段创建值的数组?

说一笔费用有5位参与者。如果我输入字段费用和参与者,这将创建5行,因为粒度被迫降低到参与者级别而不是费用级别。

我可以将其强制返回到与会者列是逗号分隔值或某种数组的行吗?

提取:

+---------+----------+-----------+------------+
| Expense | Employee | Entry Key | Attendee   |
+---------+----------+-----------+------------+
| Meal    | Iron Man | 1         | Thor       |
+---------+----------+-----------+------------+
| Meal    | Iron Man | 1         | Hulk       |
+---------+----------+-----------+------------+
| Meal    | Iron Man | 1         | Spider Man |
+---------+----------+-----------+------------+
| Meal    | Iron Man | 1         | Star Lord  |
+---------+----------+-----------+------------+
| Meal    | Iron Man | 1         | Thanos     |
+---------+----------+-----------+------------+

所需摘录:

+---------+----------+-----------+-------------------------------------------+
| Expense | Employee | Entry Key | Attendee                                  |
+---------+----------+-----------+-------------------------------------------+
| Meal    | Iron Man | 1         | Thor, Hulk, Spider Man, Star Lord, Thanos |
+---------+----------+-----------+-------------------------------------------+

仅限于计算所得的字段/等式假设这将需要一个子查询,然后使用输入键联接回完整的查询。不确定在计算字段中是否可行

cognos report-studio
2个回答
1
投票

使用具有复杂查询结构的中继器表仅在值之间包含逗号(而不是在开头或结尾)。这是一个示例报告:您没有说什么版本的Cognos。这是针对11.0.13的。您可能需要在第一行中更新版本号和样式版本以匹配您的环境。

<report xmlns="http://developer.cognos.com/schemas/report/14.3/"           useStyleVersion="11.4" expressionLocale="en-us">
    <drillBehavior/>
    <layouts>
        <layout>
            <reportPages>
                <page name="Page1">
                    <style>
                        <defaultStyles>
                            <defaultStyle refStyle="pg"/>
                        </defaultStyles>
                    </style>
                    <pageBody>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="pb"/>
                            </defaultStyles>
                        </style>
                        <contents>
                            <list horizontalPagination="true" name="List1" refQuery="Query3">
                                <noDataHandler>
                                    <contents>
                                        <block>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <staticValue>No Data Available</staticValue>
                                                    </dataSource>
                                                    <style>
                                                        <CSS value="padding:10px 18px;"/>
                                                    </style>
                                                </textItem>
                                            </contents>
                                        </block>
                                    </contents>
                                </noDataHandler>
                                <style>
                                    <CSS value="border-collapse:collapse"/>
                                    <defaultStyles>
                                        <defaultStyle refStyle="ls"/>
                                    </defaultStyles>
                                </style>
                                <listColumns>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemLabel refDataItem="Country"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lc"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemValue refDataItem="Country"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <staticValue>Retailer Type</staticValue>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lc"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <repeaterTable across="20" down="1" name="Repeater table1" refQuery="Query2">
                                                    <repeaterTableCell>
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <dataItemValue refDataItem="Retailer type"/>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <dataItemValue refDataItem="Comma"/>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="rc"/>
                                                            </defaultStyles>
                                                            <CSS value="padding:0px;font-size:8pt"/>
                                                        </style>
                                                    </repeaterTableCell>
                                                    <style>
                                                        <CSS value="border-collapse:collapse"/>
                                                        <defaultStyles>
                                                            <defaultStyle refStyle="rt"/>
                                                        </defaultStyles>
                                                    </style>
                                                    <masterDetailLinks>
                                                        <masterDetailLink>
                                                            <masterContext>
                                                                <dataItemContext refDataItem="Country"/>
                                                            </masterContext>
                                                            <detailContext>
                                                                <dataItemContext refDataItem="Country"/>
                                                            </detailContext>
                                                        </masterDetailLink>
                                                    </masterDetailLinks>
                                                </repeaterTable>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemLabel refDataItem="Quantity"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lm"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemValue refDataItem="Quantity"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                </listColumns>
                                <listOverallGroup>
                                    <listFooter>
                                        <listRows>
                                            <listRow>
                                                <rowCells>
                                                    <rowCell colSpan="2">
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue>Overall</staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue> - </staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue>Summary</staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="if"/>
                                                            </defaultStyles>
                                                        </style>
                                                    </rowCell>
                                                    <rowCell>
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <dataItemValue refDataItem="Summary(Quantity)"/>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="is"/>
                                                            </defaultStyles>
                                                        </style>
                                                    </rowCell>
                                                </rowCells>
                                            </listRow>
                                        </listRows>
                                    </listFooter>
                                </listOverallGroup>
                            </list>
                        </contents>
                    </pageBody>
                </page>
            </reportPages>
        </layout>
    </layouts>
    <XMLAttributes>
        <XMLAttribute output="no" name="RS_CreateExtendedDataItems" value="true"/>
        <XMLAttribute output="no" name="listSeparator" value=","/>
    </XMLAttributes>
    <modelPath>/content/folder[@name=&apos;Samples&apos;]/folder[@name=&apos;Models&apos;]/package[@name=&apos;GO sales (query)&apos;]/model[@name=&apos;model&apos;]</modelPath>
    <queries>
        <query name="Query1">
            <source>
                <model/>
            </source>
            <selection>
                <dataItem aggregate="none" rollupAggregate="none" name="Country" sort="ascending">
                    <expression>[Sales (query)].[Branch].[Country]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="attribute"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem aggregate="none" rollupAggregate="none" name="Retailer type" sort="ascending">
                    <expression>[Sales (query)].[Retailer type].[Retailer type]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="attribute"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem aggregate="total" name="Quantity">
                    <expression>[Sales (query)].[Sales].[Quantity]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="1"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="fact"/>
                    </XMLAttributes>
                </dataItem>
                <dataItemListSummary refDataItem="Quantity" aggregateMethod="aggregate" name="Summary(Quantity)"/>
            </selection>
            <detailFilters>
                <detailFilter>
                    <filterExpression>[Sales (query)].[Time].[Year] = 2013</filterExpression>
                </detailFilter>
            </detailFilters>
        </query>
        <query name="Query2">
            <source>

                <queryRef refQuery="Query1"/>
            </source>
            <selection>
                <dataItem aggregate="none" rollupAggregate="none" name="Country">
                    <expression>[Query1].[Country]</expression>
                </dataItem>
                <dataItem aggregate="none" rollupAggregate="none" name="Retailer type">
                    <expression>[Query1].[Retailer type]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="0"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem name="Comma">
                    <expression>case
    when running-count ([Retailer type] for [Country]) &lt; maximum (running-count ([Retailer type] for [Country]) for [Country]) then &apos;,&apos;
    else &apos;&apos;
end</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value=""/>
                    </XMLAttributes>
                </dataItem>
            </selection>
        </query>
        <query name="Query3">
            <source>

                <queryRef refQuery="Query1"/>
            </source>
            <selection>
                <dataItemListSummary aggregateMethod="aggregate" name="Summary(Quantity)" refDataItem="Quantity"/>
                <dataItem aggregate="none" rollupAggregate="none" name="Country">
                    <expression>[Query1].[Country]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="0"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem aggregate="total" name="Quantity">
                    <expression>[Query1].[Quantity]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="2"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="2"/>
                    </XMLAttributes>
                </dataItem>
            </selection>
        </query>
    </queries>
    <reportName>Repeater Table (using Samples data)</reportName>
</report>

0
投票

使用转发器表的简单查询结构。这将为每个值(之前或之后)创建一个逗号,并且不可能在第一个值之前或最后一个值之后省略逗号。

以下是示例报告:

您没有说什么版本的Cognos。这是针对11.0.13的。您可能需要在第一行中更新版本号和样式版本以匹配您的环境。

<report xmlns="http://developer.cognos.com/schemas/report/14.3/" useStyleVersion="11.4" expressionLocale="en-us">
    <drillBehavior/>
    <layouts>
        <layout>
            <reportPages>
                <page name="Page1">
                    <style>
                        <defaultStyles>
                            <defaultStyle refStyle="pg"/>
                        </defaultStyles>
                    </style>
                    <pageBody>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="pb"/>
                            </defaultStyles>
                        </style>
                        <contents>
                            <list horizontalPagination="true" name="List1" refQuery="Query1">
                                <noDataHandler>
                                    <contents>
                                        <block>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <staticValue>No Data Available</staticValue>
                                                    </dataSource>
                                                    <style>
                                                        <CSS value="padding:10px 18px;"/>
                                                    </style>
                                                </textItem>
                                            </contents>
                                        </block>
                                    </contents>
                                </noDataHandler>
                                <style>
                                    <CSS value="border-collapse:collapse"/>
                                    <defaultStyles>
                                        <defaultStyle refStyle="ls"/>
                                    </defaultStyles>
                                </style>
                                <listColumns>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemLabel refDataItem="Country"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lc"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemValue refDataItem="Country"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <staticValue>Retailer Type</staticValue>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lc"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <repeaterTable name="Repeater table1" refQuery="Query1" across="20" down="1">
                                                    <repeaterTableCell>
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <dataItemValue refDataItem="Retailer type"/>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue>, </staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="rc"/>
                                                            </defaultStyles>
                                                            <CSS value="padding:0px;font-size:8pt"/>
                                                        </style>
                                                    </repeaterTableCell>
                                                    <style>
                                                        <CSS value="border-collapse:collapse"/>
                                                        <defaultStyles>
                                                            <defaultStyle refStyle="rt"/>
                                                        </defaultStyles>
                                                    </style>
                                                    <masterDetailLinks>
                                                        <masterDetailLink>
                                                            <masterContext>
                                                                <dataItemContext refDataItem="Country"/>
                                                            </masterContext>
                                                            <detailContext>
                                                                <dataItemContext refDataItem="Country"/>
                                                            </detailContext>
                                                        </masterDetailLink>
                                                    </masterDetailLinks>
                                                </repeaterTable>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                    <listColumn>
                                        <listColumnTitle>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lt"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemLabel refDataItem="Quantity"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnTitle>
                                        <listColumnBody>
                                            <style>
                                                <defaultStyles>
                                                    <defaultStyle refStyle="lm"/>
                                                </defaultStyles>
                                            </style>
                                            <contents>
                                                <textItem>
                                                    <dataSource>
                                                        <dataItemValue refDataItem="Quantity"/>
                                                    </dataSource>
                                                </textItem>
                                            </contents>
                                        </listColumnBody>
                                    </listColumn>
                                </listColumns>
                                <listOverallGroup>
                                    <listFooter>
                                        <listRows>
                                            <listRow>
                                                <rowCells>
                                                    <rowCell colSpan="2">
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue>Overall</staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue> - </staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                            <textItem>
                                                                <dataSource>
                                                                    <staticValue>Summary</staticValue>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="if"/>
                                                            </defaultStyles>
                                                        </style>
                                                    </rowCell>
                                                    <rowCell>
                                                        <contents>
                                                            <textItem>
                                                                <dataSource>
                                                                    <dataItemValue refDataItem="Summary(Quantity)"/>
                                                                </dataSource>
                                                            </textItem>
                                                        </contents>
                                                        <style>
                                                            <defaultStyles>
                                                                <defaultStyle refStyle="is"/>
                                                            </defaultStyles>
                                                        </style>
                                                    </rowCell>
                                                </rowCells>
                                            </listRow>
                                        </listRows>
                                    </listFooter>
                                </listOverallGroup>
                            </list>
                        </contents>
                    </pageBody>
                </page>
            </reportPages>
        </layout>
    </layouts>
    <XMLAttributes>
        <XMLAttribute output="no" name="RS_CreateExtendedDataItems" value="true"/>
        <XMLAttribute output="no" name="RS_modelModificationTime" value="2015-11-25T21:38:24.820Z"/>
        <XMLAttribute output="no" name="listSeparator" value=","/>
    </XMLAttributes>
    <modelPath>/content/folder[@name=&apos;Samples&apos;]/folder[@name=&apos;Models&apos;]/package[@name=&apos;GO sales (query)&apos;]/model[@name=&apos;model&apos;]</modelPath>
    <queries>
        <query name="Query1">
            <source>
                <model/>
            </source>
            <selection>
                <dataItem aggregate="none" rollupAggregate="none" name="Country" sort="ascending">
                    <expression>[Sales (query)].[Branch].[Country]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="attribute"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem aggregate="none" rollupAggregate="none" name="Retailer type" sort="ascending">
                    <expression>[Sales (query)].[Retailer type].[Retailer type]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="3"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="attribute"/>
                    </XMLAttributes>
                </dataItem>
                <dataItem aggregate="total" name="Quantity">
                    <expression>[Sales (query)].[Sales].[Quantity]</expression>
                    <XMLAttributes>
                        <XMLAttribute output="no" name="RS_dataType" value="1"/>
                        <XMLAttribute output="no" name="RS_dataUsage" value="fact"/>
                    </XMLAttributes>
                </dataItem>
                <dataItemListSummary refDataItem="Quantity" aggregateMethod="aggregate" name="Summary(Quantity)"/>
            </selection>
            <detailFilters>
                <detailFilter>
                    <filterExpression>[Sales (query)].[Time].[Year] = 2013</filterExpression>
                </detailFilter>
            </detailFilters>
        </query>
    </queries>
    <reportName>Repeater Table (simple - using Samples data)</reportName>
</report>
© www.soinside.com 2019 - 2024. All rights reserved.