【问题标题】:Cognos report studio - Text PromptCognos 报表工作室 - 文本提示
【发布时间】:2020-01-09 20:26:14
【问题描述】:

我正在运行一个报告,我想在其中使用从本地查询运行的数据填充文本框提示。如何使用获取本地查询中每天更改的最新值的查询填充该提示?

我被其他软件这么容易做到这一点宠坏了....

【问题讨论】:

    标签: sql cognos report-studio


    【解决方案1】:

    虽然设置默认值和使用默认值运行报表听起来很傻,但实际上是两件不同的事情。要动态设置文本框的默认值,您必须使用 JavaScript 来获取隐藏的查询值并在加载时设置它。

    要使用动态默认值运行报告,您可以使用以下提示宏:

    #prompt('Text','string','[MyValue]')#
    

    [MyValue] 是定义的默认值。

    <report xmlns="http://developer.cognos.com/schemas/report/15.3/"           expressionLocale="en" useStyleVersion="11.5">
    
                <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>
                            </textItem>
                        </contents>
                        <style>
                            <CSS value="padding:16px;"/>
                        </style>
                    </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="Data Item1"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lm"/></defaultStyles></style><contents><textItem><dataSource><dataItemValue refDataItem="Data Item1"/></dataSource></textItem></contents></listColumnBody></listColumn></listColumns></list></contents>
                                </pageBody>
                            </page>
                        </reportPages>
                    <promptPages><page name="Prompt page1">
            <pageHeader>
                <contents>
                    <block>
                        <contents>
                            <textItem>
                                <dataSource>
                                    <staticValue/>
                                </dataSource>
                                <style>
                                    <defaultStyles>
                                        <defaultStyle refStyle="tt"/>
                                    </defaultStyles>
                                </style>
                            </textItem>
                        </contents>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="ta"/>
                            </defaultStyles>
                        </style>
                    </block>
                </contents>
                <style>
                    <defaultStyles>
                        <defaultStyle refStyle="hp"/>
                    </defaultStyles>
                </style>
            </pageHeader>
            <pageBody>
                <contents><textBox parameter="TextPrompt"/></contents>
                <style>
                    <defaultStyles>
                        <defaultStyle refStyle="py"/>
                    </defaultStyles>
                </style>
            </pageBody>
            <pageFooter>
                <contents>
                    <promptButton type="cancel">
                        <contents/>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="bp"/>
                            </defaultStyles>
                        </style>
                    </promptButton>
                    <promptButton type="back">
                        <contents/>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="bp"/>
                            </defaultStyles>
                        </style>
                    </promptButton>
                    <promptButton type="next">
                        <contents/>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="bp"/>
                            </defaultStyles>
                        </style>
                    </promptButton>
                    <promptButton type="finish">
                        <contents/>
                        <style>
                            <defaultStyles>
                                <defaultStyle refStyle="bp"/>
                            </defaultStyles>
                        </style>
                    </promptButton>
                </contents>
                <style>
                    <defaultStyles>
                        <defaultStyle refStyle="fp"/>
                    </defaultStyles>
                </style>
            </pageFooter>
            <style>
                <defaultStyles>
                    <defaultStyle refStyle="pp"/>
                </defaultStyles>
            </style>
        </page></promptPages></layout>
                </layouts>
            <queries><query name="Query1"><source><model/></source><selection><dataItemMember name="10000"><dmMember><MUN>[plan_BudgetPlan].[plan_business_unit].[plan_business_unit]-&gt;:[TMR].[plan_business_unit].[plan_business_unit].[10000]</MUN><itemCaption>10000</itemCaption></dmMember><dmDimension><DUN>[plan_BudgetPlan].[plan_business_unit]</DUN><itemCaption>plan_business_unit</itemCaption></dmDimension><dmHierarchy><HUN>[plan_BudgetPlan].[plan_business_unit].[plan_business_unit]</HUN><itemCaption>plan_business_unit</itemCaption></dmHierarchy></dataItemMember><dataItem name="DI"><expression>&apos;booogie boogie&apos;</expression></dataItem><dataItem name="Data Item1"><expression>#prompt(&apos;TextPrompt&apos;,&apos;string&apos;,&apos;[DI]&apos;)#</expression></dataItem></selection></query></queries><XMLAttributes><XMLAttribute output="no" name="RS_CreateExtendedDataItems" value="true"/><XMLAttribute output="no" name="listSeparator" value=","/><XMLAttribute output="no" name="decimalSeparator" value="."/></XMLAttributes><classStyles><classStyle name="GuidedLayoutLeftPadding"><CSS value="padding-left:5px;border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px"/></classStyle><classStyle name="GuidedLayoutTopPadding"><CSS value="padding-top:5px;border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px"/></classStyle><classStyle name="GuidedLayoutRightPadding"><CSS value="padding-right:5px;border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px"/></classStyle><classStyle name="GuidedLayoutBottomPadding"><CSS value="padding-bottom:5px;border-top-width:1px;border-bottom-width:1px;border-left-width:1px;border-right-width:1px"/></classStyle><classStyle name="GuidedLayoutMargin"><CSS value="margin-bottom:10px"/></classStyle></classStyles><modelPath>/content/package[@name=&apos;PA Sample&apos;]/model[@name=&apos;2019-12-30T19:05:29.982Z&apos;]</modelPath></report>
    

    【讨论】:

    • 感谢您,但无法继续。我找到了文本框提示的“默认选择”属性(只有标记为“默认”的东西),当我包含此文本并运行报告时,它显示的页面与我输入的内容完全相同。所以我将它切换到这个. #prompt([QUERY FIELDNAME],'string',[QUERYNAME])#
    • (抱歉,我不知道我只有 5 分钟的时间来编辑。这就是我想回复的内容)。谢谢你,但无法让它继续下去。我找到了文本框提示的“默认选择”属性(只有标记为“默认”的东西),当我包含此文本并运行报告时,它显示的页面与我输入的内容完全相同。所以我将它切换到这个. #prompt([QUERY FIELDNAME],'string',[QUERYNAME])#提示出现空白#prompt([QUERYNAME],'string',[FIELDNAME])#Nothing.
    • 在提示对象上使用默认值不会是动态的,它只是文本。如果您使用提示宏并将文本提示设为可选,然后在不输入任何内容的情况下运行报表,它应该使用动态查询项值运行报表。
    • 谢谢丹尼尔。我尝试了您在默认选择中列出的提示,首先将其复制/粘贴。#prompt('Text','string','[MyValue]')# 然后在我的版本中,我输入了以下 #prompt( 'Text','string','[SEL]')# 其中 SEL 是我从查询中获得的单个字段值。它仍然将值显示为我输入的文本。你能建议一种不同的方式吗?
    • 我猜我的问题在于我如何将它实际添加到 Default Selections 属性中
    【解决方案2】:

    提示页面 1:
    创建由返回单个值的查询填充的值提示。
    使用 JavaScript 自动运行 Next 命令。

    提示页面 2:
    创建一个文本框提示,它使用与提示页面 1 上的值提示相同的参数。

    https://github.com/dougpulse/Cognos 上名为 Parameter Value Automation 的报告中有一个与此方法类似的示例。

    【讨论】:

    • 谢谢。您可能已经发现我是 Cognos 的新人。使用以前的报告软件,这是一个如此大的挑战,这有点令人失望。
    • 什么“以前的报告软件”?我很好奇,因为我想弄清楚我会用什么来代替 Cognos。有许多功能是我的用户离不开的。
    • 到目前为止,关于 cognos 的事情是,许多易于设置的功能似乎是一个挑战。例如,在这里使用我的示例,我有一个返回一个值的简单查询,我似乎不能将它挂接到文本或值提示中,并让我的报告以由于查询而出现的任何值运行。这在 SSRS Powebi、tableau 等其他软件中是显而易见的,但在 Cognos 中则不然!
    • 您必须有不同的要求。对于我的用户的需求,当我平衡易用性和功能集与管理工作时,我发现 Cognos 总体上比 SSRS 和 Power BI 简单得多。此外,Cognos 具有我从未在 SSRS 或 Power BI 中实现过的功能。 (我没有使用 Tableau 的经验,但我知道它的行为很像 Power BI - 但更成熟。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多