Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Not all changes to library are reflected in single reports
jakoby84
Hello,
I'm currently developing reports and libraries for a project. Since I'm still learning, incorporating feedback etc I have to do changes to report libraries and reports quite regularly. There are many changes in the report library which are reflected in the single reports. Actually this applies to all those parameters which appear in an element's 'Advanced' tab. There it is also possible to reset the value to library default by just deleting it in the report.
BUT: There are many cases where changes to the library are not reflected automatically. For example a chart's axis properties, such as gridline and scale settings. When changing those, I have to delete the whole chart in the report and add it again from library. Having lost all the changes I did so far. If not touching anymore the report element it remains connected to the library, but as soon as I change a minor thing, it will again mess up and has to be deleted and added over again. What kind of design paradigm is that? "Don't touch or you're lost"? Reminds me of a contact mine... "Don't move or everything blows up..."
So my question is: Did I oversee something? How do I reset axis gridline settings or something similar to library default without deleting the whole report element?
Kind regards and thanks in advance, Jakob
Find more posts tagged with
Comments
kclark
What version of birt are you running? I tried to recreate this by making a library with a bar chart and used that in a new report. When I updated the library and moved back to my report it asked if I wanted to reload and the chart had matched the library changes. Can you create an example of this and post the library and rptdesign for me to look at?
jakoby84
I'm running on BIRT 4.2.1<br />
While trying to create a reproducible example I discovered that a particular parameter is linked to the library if it is the same in the library and in the report. Once a parameter differs in the report the parameter is unlinked. So that means that every time I want to reset something to library-linked, I have to switch between library and report to check that every parameter is the same.<br />
<br />
To reproduce it...<br />
<ul class='bbc'><li>Open the library and report I attached (or recreate a chart in a library and use that chart in a report)</li><li>In the library, change the chart's parameter --> Legend --> Entries --> Outline --> Style --> Dashed line.</li><li>This change is shown in the report as it is linked to the lib</li><li>In the report, change the Outline to solid. This unlinks the parameter from the library.</li><li>In the library, change the Outline Width to Thick and the Inset --> Top to 20. Both changes are not reflected in the report, as the whole Entries group is now unlinked.</li><li>In the report, change the parameters of the Entries group to be the same as in the library (Style: Dashed line, Width: Thick, Inset Top: 20</li><li>In the library, change a parameter, e.g. set inset top to 10. Now the parameters are re-linked and the change is reflected in the report</li></ul>
<br />
What I really don't like about this is that during the process there is no hint in the GUI which says if an object's parameter group is currently linked to the library or not. The only way to see if it is, is to check whether a change takes effect. And the only way to re-link it, is to match all the parameter group's values to match exactly the library values.<br />
A far better solution would be if there would be any hint in the GUI which visualizes which parameter is linked, and a small button (optimally on every input field) which resets it to library default. I mean like how it is implemented in an element's Property Editor --> Advanced window (but only for a minimal amount of parameters)
jakoby84
So after some days without input here (I was hoping that there is something I had overseen).
This means that there is no other way than linking something back to a library by stupidly matching all values in the library and the report??? Or to delete a report element and redo the customization all over again?
To be honest this is something which really drives me nuts... In my opinion you cannot really advertise BIRT to have proper library implementation when there is this major drawback.
I mean... consider the following comparable example:
In CSS you can define a style in an external CSS and/or inline via style="" attribute.
Imagine the external CSS defines #someID { width: 300px;}
And an inline style defines <div id="someID" style="height: 200px;"/>
So comparing it to the BIRT library implementation, in the example by specifying "height" inline, "width" from external CSS would be ignored because by using "height" inline you say that the browser should ignore the external width CSS attribute.
And if you would want to go back to let the browser read the width attribute from the external CSS, you first would have to add style="width: 300px;" inline to the div, before the browser would even realize that it relies on an external CSS file and then reads width:300px from the external file and not from the recently written inline statement?!
Do you get the point how awkward this is and how ridiculously bad the library stuff is implemented?
Sorry for my anger, but when I started with my report project I decided to go with libraries. And now they turn out to make it all more confusing, counterintuitive and complicated. So what again was the purpose of using libraries?
I also do accept that this is an open source project and that I should be happy to just have it. Which I am. Nevertheless, the library feature is just pain in the azz...