If you are unable to create a new account, please email support@bspsoftware.com

 

News:

MetaManager - Administrative Tools for IBM Cognos
Pricing starting at $2,100
Download Now    Learn More

Main Menu

TIPS for active report

Started by ittimes, 17 Nov 2017 08:19:44 AM

Previous topic - Next topic

ittimes

How to make the Active report in the middle

Sometimes, we create a new active report for ipad size, 1024X704, when you run it in the IE, it's alignment left. not the middle, so it looks ugly.

the solution:

1.go to view -> page structure, drag a block into the page body, it's a good practice to put the whole active content in one block,
2. set the block , all the padding to 0, set the block size to 1024X704
3. set the page horizontal orientation to 'center'

ittimes

Active Reports Tip 4: iPad specific authoring

If you are authoring reports to be consumed by mobile users on iPads you should be aware of their native resolution. Reports should be sized to 1024px by 704px with the Page Body padding set to 0. This will minimize scrolling and truncation.

Active Reports Tip 5: Reducing Chart Overhead

In an active report, charts are not dynamically generated(this is for version 10.1, after v10.2.2 it is dynamic now). Chart views are rendered at runtime and stored within the MHT bundle. Chart heavy active reports could yield large output files. Keeping the charts to a minimum can help reduce the file size and improve performance of an Active report.

Extra Categories-for your to connect the chart without display the filter item. and In the Node's properties, change the Category Range to Filtered Data.

HOW DO I ADD "ALL" TO THE DROPDOWN LIST?--Specify a default list item by changing the No Value List Item property to Show



CAN I DELETE A CHART WITHOUT DELETING ITS QUERY? -- The answer is to Cut (CTRL + X) the Chart

TIP 4: HOW DOES COPY AND PASTE BETWEEN REPORTS WORK?

When you have two or more reports open at the same time, it may seem like sometimes Copy and Paste works and sometimes it doesn't. Here are the "rules":
Copy and Paste currently only works in Internet Explorer
It only works for certain items. The common ones I use are Local Classes, Queries, and Tables (and their contents)
You can Copy and Paste a List/Crosstab/Chart only if the underlying Query also exists in the target report.


HOW DO I DETERMINE WHICH QUERY A RAVE CHART IS USING?--select the Data Container, now there is a Query Property.



ittimes

1. Put list of chart into a data deck, then the data deck value will be automatically pass to list of chart, list or chart should use the same query as the data deck.
you don't need to create master detail relationship between the list and data deck.

2. the list can have multiple reaction, you can add another button list, to filter one of the list column, and you can hide the column , to make it looks cool. when you use filter, you can add or region is empty. to make it perfect.

3. for data deck ,you can use 'default card' to make some good effective.

4.when you use hotspot(crosstab), you better use 'select' to pass the parameter.

5. when you select clickable area, if only row, then only the row title are clickable.

ittimes

1. chart must be in a data deck, if you want to pass parameter to it from anyother controls. like drop down list, use 'select' to pass data value to date deck or data iterator

2.drop down list can connect to each other with data iterator, then they can reaction to each other. that mans there are select and select by same thing at the same time.

3.if you put a table in a data deck , then you can use text item in it , and just change the source type to data value, you just use it directly, it's good for highlighted metrix, top metrics. data deck you can set the animation.




ittimes

1. for visualization column chart, there is no necessary to put it into a data deck, put it under 'extra categories', then filter it from the upper object in the connection.

2. only drop down list can add a 'all' for no values

3. from dropodown list to a RAVE chart, you need to filter it. if select, there is no change/update

4. for claster column chart, if you use extra categories, you have to set the category range to 'filtered data'

** how to add additional heading title:
1.create list header,
2, insert two rows below from structure menu
3,merge the first row based on the request
4,fill in names on the second row.
5.hide the default tile and delete the added list header(we use it only to enable us to insert list rows below)

ittimes

1. you can have a data deck under a deck. use a button bar to control the deck. always use 'select', for chart, you don't need the master detail relationship

2. how to do DMR detail filter? [year] in ([2016],[2017])
3,how to do substring for a member? conver it to caption first. substring(caption[month],6,3)
4.how to sort month? case statement it to numbers
5.caption(?[Great Outdoors Company].[Product].[Product].[Product line])=?Golf Equipment?
At the time or writing, filtering on member attributes such as caption would negatively impact performance (see Writing Efficient OLAP Queries).

why Filters Should Be Avoided When Working with a Dimensional Model
I can see three scenarios when you may think that you need to use a filter:

Filtering along the axes of a crosstab

Say you have a typical crosstab with one dimension along the horizontal axes and another one along the vertical axes. e.g.

<Sales Total>   <Date>   <Date>
<Product Type>   <1234>   <1234>
<Product Type>   <1234>   <1234>

which would give you something like:

Sales Total   1/1/2007   ...   04/21/2008   04/22/2008
Camping Equipment   1,000$   ...   1,000$   1,000$
...   ...   ...   ...   ...

You want to filter the time dimension you only report for the year 2008. Or you want to only include product types with "camping" in the name. What you really want in this case is to build a memberset that you will then use as the axes of the crosstab. When you drag-and-drop a dimension level in Report Studio it really translates to something like members([my_Dimension].[my_Hierarchy].[my_Level])
e.g.
members([Product Dimension].[Product Type Hierarchy].[Product Type])
(Check "Corercion Rules" in the Report Studio documentation.)

Instead of getting all members you need to build a member set. You can do this by putting members together... or taking members away from the full set.

The former could be done with techniques such as
[my_Dimension].[my_Level]->?Parameter1?
e.g.
ancestors([Time Dimension].[YMD Hierarchy].[Year]->?Year?, [Time Dimension].[YMD Hierarchy].[Day])

the latter could be done using the filter() function
e.g.
filter([Product Dimension].[Product Type Hierarchy].[Product Type], roleValue('_memberCaption', currentMember([Product Dimension].[Product Type Hierarchy])) contains 'camping')

Filtering along a dimension not present in the crosstab
...to continue the example above you may only want to display sales that were done by a certain branch. Branch does not appear on the axes of the crosstab... so again filter may seem like a good idea. What you really want to do here is to tune the measure that gets displayed. when you drag-and-drop a measure in Report Studio is really translates to something like value(tuple([measure]))
This tuple is incomplete, and will use currentMember() for dimensions that are present in the context and defaultMember otherwise.
e.g.
value(completeTuple([Sales Total], currentMember([Product Dimension].[Product Type Hierarchy].[Product Type]), currentMember([Time Dimension].[YMD Hierarchy].[Date], defaultMember([Branch Dimension].[Location Hierarchy].[Branch])))

The default member is the "all" at the top... in other words the Sales Total will be rolled up and you get the sum of sales done in all the branches. Instead of using a filter you need to tweak the tuple expression to use something other then the defaultMember()
e.g.
tuple([Sales Total], [Branch Dimension].[Location Hierarchy].[Branch]->?Branch?)
will translate to
value(completeTuple([Sales Total], currentMember([Product Dimension].[Product Type Hierarchy].[Product Type]), currentMember([Time Dimension].[YMD Hierarchy].[Date], [Branch Dimension].[Location Hierarchy].[Branch]->?Branch?))

Filtering based on some attributes of the facts
This is the last scenario I can think of ... this is when it goes wild.
You want to apply a filter to the whole thing. e.g. only count sales where the customer payed in US dollars.
You don't have a dimension but you know that you facts do have an attribute that you could use to build a filter.
e.g. Somewhere you had a Sale record with a CurrencyUsedToPay field.

What really happened here is... you missed to create a dimension.

If you use DMR a filter would probably work... it's just not god design. If you use real OLAP then everything is preaggregated... it's too late to try to filter the facts.
You need to revisit the design of your Sales Total cube.

One last though about DMR
Not only is the use of filters "not nice"... often it can give you incorrect results. To return to our first scenario... if you filtered product types using filter and one day you want to add a new row to your crosstab to display the sales total for all product types... you would be in trouble.

Sales Total   1/1/2007   ...   04/21/2008   04/22/2008
Camping Equipment   1,000$   ...   1,000$   1,000$
...   ...   ...   ...   ...
Product Types (All)   ...   ...   ...   ...

The way Cognos processes the filter would add a WHERE clause to the SQL SELECT. At the end "all product types" would become "all the selected product types".

Conclusion
The Cognos Report Studio GUI does not distinguish between relational and dimensional models. It always looks the same. This is misleading because certain features should only be used when working with one type of model and not the other.
In case of DMR it's even worse because Cognos tries to interpret these (filter, join, usion) wvwn though it conceptually does not make sense. Sometimes you get what you wanted but often not.

In my opnion detail or summary filter should only be used when working with a relational model.


ittimes

use select or filter?

suppose there is a data discrete value slider, to pass value to crosstab? should be filter, if it is select, crosstab will show everything but highlight the selected value.
if pass value to a data deck, you have to use select, if you use filter, it will confuse the data deck, select will give data deck clearly instruction to  display the picked value.


ittimes

For DMR member set, you can set the definition:
1.you can combine two member by select them together and drag and drop them together to crosstab, then you get a  manually created member set.

2. for 'definition', you can filter the member set by to bottom or to top, filtered by a meansure. like to get top 3 of the most sales value. you also can tuple multiple dimensions.

3.children ( member )
Returns the set of children of a specified member. useful when you don't want to go to lower level
4.([YTD1] - [Prior YTD1]) / abs([Prior YTD1]),, YTD1  is a member

topCount (children([KY]), 5, tuple([Actual Attendance]))

if ([Actual Attendance] is null) then (0) else ([Actual Attendance])

5.it looks like it's better to have multiple small queries than one big query.

6. you can sort 'set', in the crosstab , the row is a member set, you can sort it by tuple

7. for list, you can select the column title, then right click to 'allow sorting', it will automatically sort after the report is generated ,and the sort button will auto disappear after you move over the mouse.

8.how to create percentage of a measure in DMR? use the system automatically created total!! this is the key.

9. a calculated member expression must reference at least one member. a calculated measure expression must reference at least one measure

10. to get the percentage , you can try this way [CNT ACTIVATED] /total(tuple ([All], [CNT ACTIVATED])), it also works, the [all] is a member

11. about DMR crosstab sort, first to understand what column will be sorted, then select it , next to decide it sort by what? by other measure column, yes.

12. you can use order function to do the sort, order ( member_set,measure,desc|asc|basc|bdesc), then use the new item to replace the exising member set. the last two doesnot need to consider the hierarchy.
order ( members ( [Great Outdoors Company].[Product].[Product].[Product type] ) , [Quantity sold] , BASC )

13.how to use roleValue? roleValue('_businessKey',[gender]) , it's a good function.types include: '_businessKey', '_memberCaption', '_memberDescription', '_memberUniqueName'.

14.in 8.4 you have the ability to specify on the dimension how the members are
to be ordered which was not available in prior releases.

15. how to filter out a member ?

except(children([All]),set([( Blank )2]))--make sure the two set are from same hierarchy

16.





ittimes

1. how to get top rank?
topcount(children([By Access Code Level2 Desc]), 5, tuple([Actual Attendance]))