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)
Display GRID at bottom of the page
shir
<p>Hi,</p><p> </p><p>I have a application Heat Map report.</p><p> </p><p>the layout is two consecutive GRID, the GRID above has the heat map report details for various applications.</p><p> </p><p>The GRID below has the color legends for the report in the top grid.</p><p> </p><p>Now i want this bottom GRID, i.e. legends should always be pushed down at the bottom of the page.</p><p> </p><p>One way of doing it is add extra lines to the GRID, however is there a way to dynamically push it to the bottom ? Since the height of the TOP grid varies according to the user input parameters</p><p> </p><p>I am using BIRT RCP 4.2.3</p>
Find more posts tagged with
Comments
Hans_vd
<p>Is the grid bound to a dataset?</p><p>If not, can you put it in the report footer on the master page?</p>
shir
<p>HI,</p><p> </p><p>I have tried that, however the results are the same. The 'legend'(bottom) grid gets displayed immediately after the TOP grid.</p><p> </p><p>With bottom of the page i mean, the grid is physically at the bottom of the browser screen. The bottom grid is not associated with any data set.</p><p> </p><p>Attaching a smaple i tried out in the classic model</p>
shir
<p>Hi,</p><p> </p><p>Any work around/solution for this ? any ideas to go ahead with ?</p>
shir
<p>friends, any suggestions please????</p>
liyanc
<p>Hi! The Grid has a Vertical alignment property, you may want to play around with that. I haven't tried it myself though.</p><p> </p><p>--oops, so sorry, just found out it applies to labels/data inside the grid, not the grid itself.</p>
shir
<p>I have tried that approach, however as you have mentioned that this doesnot apply to the grid as a whole</p>
GLO_FR
<p>Hi,</p><p> </p><p>the footer page is pushed down when you're using a printable output like doc, pdf..</p><p><span style="font-size:14px;">If you're viewing your report in a web viewer, you have to "fill" the empty space with something</span></p><p> </p><p> </p><p>One solution is to add blank line (<a data-ipb='nomediaparse' href='
http://developer.actuate.com/community/forum/index.php?/files/file/1073-pushing-down-an-element-to-page-bottom/'>example
here </a>). Another one is to set dynamically the grid height.</p>
shir
<p>Thanks,</p><p> </p><p>I however do not have a scripted data set, to realize do we have to create a scripted Data source ?</p><p> </p><p>Is there any other way to add blank lines?</p>
GLO_FR
<p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;"><em>>> .., to realize do we have to create a scripted Data source ?</em></p><p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">Not necessary</p><p><em>[color=rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;font-size:14px;]>> Is there any other way to add blank lines?[/color]</em></p><p>yes, you can also do it in SQL.</p><p> </p><p>For this example, to add blank line, it is basicaly a loop. It doesn't matter where and how it's done.</p>
shir
<p>Thanks,</p><p> </p><p>i however was not able to wrap the idea around my head.</p><p> </p><p>When u say that this is a loop and displays the blank line, let me put down what i have understood:</p><p> </p><p>beforeFactory(report) : myArray=[]; {initilize array, myArray}</p><p> </p><p>onFetch (oracle data set)</p><p> </p><div>if (myArray.length < 40) {</div><div>myArray[myArray.length] = row["CUSTOMERNAME"];</div><div>}</div><div> </div><div>Check/assign the total length of myArray.</div><div> </div><div> </div><div> </div><div>open (scripted dataset):</div><div> </div><div><div>totalRows=myArray.length;</div><div>rowsToAdd=30 - (totalRows % 40);</div><div>if (rowsToAdd < 0) {</div><div>rowsToAdd = 40 + rowsToAdd;</div><div>};</div><div>currentRow=0;</div><div>dummyRow=0;</div><div> </div><div>calculate number of rows to be added , depending on the actual length of myArray, i.e. no. of entries in table</div><div> </div><div>fetch(scripted dataset):</div><div><div>if (currentRow < totalRows){</div><div>row["CUSTOMERNAME"] = myArray[currentRow];</div><div>currentRow++;</div><div>return (true);</div><div>}<span> </span></div><div> </div><div>if (dummyRow < rowsToAdd){</div><div>row["CUSTOMERNAME"] = " ";</div><div>dummyRow++;</div><div>return (true);</div><div>}<span> </span></div><div>return (false);</div></div></div><p> </p><p>depending on number of rows to add we display scripted dataset table accordingly</p><p> </p><p> </p><p>i was not able to understand the last part, i.e. suppose i do not want the scripted dataset , how do i set the loop, or on which element of the report do i set the loop to?</p><p> </p><p>a brief example will help</p>
GLO_FR
<p>Your code seems to be correct but this will only return the first 40 rows of your dataset</p><pre class="_prettyXprint _lang-">onFetch (oracle data set)if (myArray.length < 40) {myArray[myArray.length] = row["CUSTOMERNAME"];}</pre><p>The example is based on a specific layout.</p><p> </p><p>In the output document, each page is 40 lines height and an empty space of 10 lines height should be placed on the last page.</p><p>That's why this example is using a modulo order. The reminder of the modulo is the number of line of the last page.</p><pre class="_prettyXprint">rowsToAdd=30 - (totalRows % 40);if (rowsToAdd < 0) {rowsToAdd = 40 + rowsToAdd;}};</pre><p>The last part will "read" the memory array and put its content in the scripted data set (first if). When the end of the array is reached, the loop will add blank line in the scripted data set (second if)</p><pre class="_prettyXprint _lang-">fetch(scripted dataset):if (currentRow < totalRows){row["CUSTOMERNAME"] = myArray[currentRow];currentRow++;return (true);} if (dummyRow < rowsToAdd){row["CUSTOMERNAME"] = " ";dummyRow++;return (true);}return (false);</pre><p>At the end, the content of the scripted data set is the data set you've to use in your report.</p><p> </p><p> </p><p> </p><p><em>[color=rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;]>> i was not able to understand the last part, i.e. suppose i do not want the scripted dataset , how do i set the loop, or on which element of the report do i set the loop to?[/color]</em></p><p>[color=rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;]You can either count the number of line in your data set and set dynamicaly the height of the footer (see example)[/color]</p><p>[color=rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;]or you can use PL/SQL, SQL, strored procedure, etc... to add blank line in your data set instead of using scripted dataset.[/color]</p><p> </p><p>[color=rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;]The key point is, if you want to place something in a specific place you have to manage what is above[/color]</p>