﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » .NET Forums » General .NET Discussion  » Report Sharp-Shooter slow preview process</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Tue, 09 Jun 2026 05:49:41 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25393.aspx</link><description>Hi Larry,&lt;br&gt;
&lt;br&gt;
Could it be possible for you to create a small sample application using the SF sample database to show this problem?  This way it would be easier for Trent to figure out a fix or path to a solution.</description><pubDate>Fri, 11 Dec 2009 15:16:17 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20268.aspx</link><description>Hi, I know this is a RSS issue, but since many SF developers use RSS I will throw it here anyway :hehe:&lt;P&gt;I have this report which is taking about 15-24 seconds to show in my custom preview form, the preview form will show up blank with the "No Report" label (see image RSS slow loading), then the report will be shown normally.&lt;/P&gt;&lt;P&gt;I know that the data is coming out in less than a second, and the preview form is shown without the report, I have not found a way to display a message to the user letting him/her know that the report is being process.&amp;nbsp; The code to generate the report is splitted in two classes:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;ServiceCallRouteDataSource.vb will take care of getting the data and pass it to the report with the following code:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;[codesnippet][code]&lt;FONT size=2&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'-- Assign the populated datasource from the Dialog Browser to the Report Manager Object.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;ReportManagerObject.DataSources.Item(reportDataSourceName) = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.DataSource&lt;/P&gt;&lt;P&gt;ReportManagerObject.DataSources.Item(reportApplianceDataSourceName) = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.DataSource.SourceBO.SC_Appliances&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'-- Prepare Report to run&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;ReportManagerObject.Reports(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.PerpetuumSoftReportName).Prepare()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;[/code][/codesnippet]&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;ReportEngine.vb will actually run the report in the custom preview form like this:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;[codesnippet][code]&lt;FONT size=2&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Shared&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; RunReport(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ReportName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; FixTrackReports, _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ReportManagerObject &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; PerpetuumSoft.Reporting.Components.ReportManager, _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Optional&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; tBDStringValue &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;""&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Optional&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; tEmployeePK &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Int64 = 0) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Boolean&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; reportDataSourceObject &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IReportDataSource&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;'-- Get the data source for the report&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;reportDataSourceObject = GetReportDataSource(ReportName)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;'-- Populate the data source&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; reportDataSourceObject.PopulateDataSource(ReportManagerObject, tBDStringValue, tEmployeePK) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; f &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ReportViewerDialog()&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;'-- Set the Report Viewer source with the Report to be used.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;f.rptViewer.Source = ReportManagerObject.Reports(reportDataSourceObject.PerpetuumSoftReportName)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;f.Title = MicroFour.StrataFrame.Tools.Common.GetEnumDisplayValue(ReportName)&lt;/P&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;f.TitleDetailText = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;""&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;f.ShowDialog()&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;Return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;Else&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;MicroFour.StrataFrame.Messaging.MessageForm.ShowMessageByKey(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"NoDataForReport"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;Return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;[/code][/codesnippet]&lt;P&gt;I have other simple reports which generates faster, so I must be missing something in my whole process.&amp;nbsp; I will appreciate if somebody can see what am I missing here?&lt;P&gt;Thanks.</description><pubDate>Fri, 11 Dec 2009 15:16:17 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25391.aspx</link><description>Hi Edhy,&lt;P&gt;I'm using SF v1.7.0.2.&amp;nbsp; I'm no expert with ANTS memory profiler but I ran&amp;nbsp;two profiles against the same report, one using a BBS and another using a dataset. I took memory snapshots after the data query (my baseline) and after the report finished rendering. What I found was that using the BBS&amp;nbsp;in addition to being significantly slower uses&amp;nbsp;a lot more memory. By the time the report was rendered, I had one instance of the BO for each record retrieved. This resulted in a memory increase of about 42 MB for the BO class. There was also a 45MB increase in the Stack&amp;lt;Delegate&amp;gt; class.&amp;nbsp; For the BBS the number of bytes in all&amp;nbsp;heaps increased from 50 to 213 MB and Private bytes went from 100MB to 270MB. &lt;/P&gt;&lt;P&gt;In contrast when using&amp;nbsp;a dataset, the number of bytes in all&amp;nbsp;heaps went from 78 to 108 and private bytes went from 123 to 163. It would appear that using a BBS is expensive in terms of memory but I'm not sure if this is the only thing impacting the total rendering time. &lt;/P&gt;&lt;P&gt;Am I the only one having performance issues rendering a large number of records? The BO I'm using for the BBS is very straight forward and doesn't contain any custom fields&amp;nbsp;or scalar methods.&amp;nbsp; I'm not sure if this is to be expected when using a BBS as a reporting source or if this is a problem that could be fixed. This would be a good point for Trent to jump in.&lt;/P&gt;&lt;P&gt;-Larry</description><pubDate>Fri, 11 Dec 2009 13:27:19 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25385.aspx</link><description>Hi Larry,&lt;br&gt;
&lt;br&gt;
Very interesting, it looks like the BBS may have some sort of memory leak to cause this overhead.  Now that you mentioned this, I had a similar situation in the past not with RSS but trying to load several hundred thousands of record in a BO.&lt;br&gt;
&lt;br&gt;
Are you using the latest SF version 1.7.0.x?&lt;br&gt;
&lt;br&gt;
I wonder what Trent have to say about your testing?</description><pubDate>Thu, 10 Dec 2009 19:07:00 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25383.aspx</link><description>Hi Edhy, &lt;P&gt;Since I found few performance issues on the RSS forum I decided to do a little testing. The BBS/BO that I'm using is mapped to a view and I select records by date range. The acutal loading of the BO is not an issue, just the rendering time. I ran another set of tests, one set with the SF BBS/BO and the same report and select criteria using an ADO Dataset. The query times were similar but the report rendering times showed a drastic improvement. It would appear that the SF BBS/BO adds additional overhead or there is some issue with RSS using it as a data source. For example 69K records took about 635 seconds to render using a BBS as the datasource but only 23 seconds using a Dataset. The only difference between the two sets of tests in the datasource. &lt;/P&gt;&lt;P&gt;-Larry</description><pubDate>Thu, 10 Dec 2009 18:54:54 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25367.aspx</link><description>Hi Larry,&lt;br&gt;
&lt;br&gt;
Like you I believe there is a problem with rendering.  I found this post in RSS forum that may help you [url=h]ttp://http://www.perpetuumsoft.com/ForumTopic.aspx?topic_id=1869&amp;forum_id=9[/url] if not try posting a message in the RSS forum and lets see what they have to say.</description><pubDate>Wed, 09 Dec 2009 13:19:56 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25360.aspx</link><description>Hi Edhy,&lt;/P&gt;&lt;P&gt;I've got it set to single pass and I do have both a detail and summary report. However for the summary I do all of the grouping and counts in a SQL stored procedure and return just the summary records, which is very fast. I originally did the summarization in RSS but it was very slow. It would appear that even if you can query the data quickly it just takes RSS a substantial amount of time to process a large number of records even if they do not end up being printed.&lt;/P&gt;&lt;P&gt;-Larry</description><pubDate>Wed, 09 Dec 2009 10:31:45 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25358.aspx</link><description>Hi Larry,&lt;br&gt;
&lt;br&gt;
Make sure that the report property "DoublePass" in the master document is set to false, or it will take 2 passess to generate the report.&lt;br&gt;
&lt;br&gt;
Also will you really be printing 70,000 records? I have not tried RSS with that many records, but in your case maybe you can approach the need to show the report with a summary of records.</description><pubDate>Tue, 08 Dec 2009 20:01:53 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25357.aspx</link><description>Forgot the attachment.</description><pubDate>Tue, 08 Dec 2009 18:27:15 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost25356.aspx</link><description>I'm either having a performance issue or overly optimistic expectations for RSS. I have what I consider to be a simple report (single data source, two group bands, a detail line, and about 6 fields). The user selects data by date range which usually results in 20K - 100K records. There is a detail line for each record. The&amp;nbsp;query to fill the BBS is relativly fast but the report rendering is slow or I have unrealistic expectations:unsure: There are no scalar methods or custom fields in the BO. I've implmented IRenderSite so I can monitor the report progress and I can see that rendering is what is taking the time. A report with 70K records takes about 10 minutes. I've run the same report with varying number of input records and have included a graph of the results. Is this normal or is there something that I should be looking at to improve the rendering times? I'm using RSS v 4.0.3.5, the latest SF release and Windows XP. The rendering times were taken on a compiled instance of the application and not inside Visual Studio.</description><pubDate>Tue, 08 Dec 2009 18:25:54 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20660.aspx</link><description>Glad it helped, Edhy! :cool:</description><pubDate>Mon, 10 Nov 2008 09:38:34 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20659.aspx</link><description>Hi Ivan,&lt;/P&gt;&lt;P&gt;Thanks a lot for taking the next step and provide the sample.&amp;nbsp; It is clear now how it is done, without the sample and the poor help file it would be very difficult for me to really understand this.&lt;/P&gt;&lt;P&gt;Now I can have my own WinRenderDialog wich looks more professional and in synch with the application's look and feel.&lt;/P&gt;&lt;P&gt;Thanks again!</description><pubDate>Mon, 10 Nov 2008 09:27:05 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20656.aspx</link><description>Yeah, I saw the errors first time I run that sample, but as you said, it&amp;nbsp;was probably a version problem, so you just had to implement the IRenderSite again and all the methods would be created.&lt;/P&gt;&lt;P&gt;Anyway, I used Trent's report sample and added a RenderSite class to it. &lt;/P&gt;&lt;P&gt;Hope it helps.</description><pubDate>Mon, 10 Nov 2008 05:33:33 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20647.aspx</link><description>Hi Ivan,&lt;/P&gt;&lt;P&gt;Thanks for the link, I had downloaded this project sample before, but it did not work for me.&amp;nbsp; It is in C# and it is generating 2 compiled errors, which I believe are caused because the project was created for an old version of RSS.&lt;/P&gt;&lt;P&gt;I posted a request for a new sample from them, so let's see.&amp;nbsp; Thanks anyway for keeping this in mind.</description><pubDate>Sat, 08 Nov 2008 16:43:22 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20644.aspx</link><description>[quote]I still need to figure out how to create my own class to implement the IRenderSite, but know that the report is rendering as it should, I will have more time to get that done.[/quote] &lt;BR&gt;Hi Edhy.&lt;P&gt;Here you have a sample for the IRenderSite:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.perpetuumsoft.com/ForumTopic.aspx?lang=en&amp;amp;topic_id=356&amp;amp;forum_id=9"&gt;http://www.perpetuumsoft.com/ForumTopic.aspx?lang=en&amp;amp;topic_id=356&amp;amp;forum_id=9&lt;/A&gt;</description><pubDate>Sat, 08 Nov 2008 08:39:57 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20337.aspx</link><description>Nice!</description><pubDate>Fri, 24 Oct 2008 17:23:59 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20336.aspx</link><description>Cool :cool:</description><pubDate>Fri, 24 Oct 2008 17:23:12 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20335.aspx</link><description>Once again, Trent, Greg thanks a lot.&lt;P&gt;The slowness was caused by the Custom Field Properties I had in the main BO, following your suggestions I did the following to overcome this issue:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Make my main BO CFP overridable.&lt;/LI&gt;&lt;LI&gt;In the report's BO I override the CFP using the logic suggested by Greg to create a temp BO with all the lookup data then seek the one requested by the report.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Here is some of my code used:&lt;/P&gt;&lt;P&gt;[codesnippet][code]&lt;FONT size=2&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' Use to hold the Appliance Lookup BO&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; _ApplianceBOLookup &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Business.bizAppliances&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' The first time this property is used, it will check the &lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' lookup BO count &amp;gt; 0 if not it will load all the records&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' Then will use the BO.SeekToPrimaryKey to speed up finding&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' the description value.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' This method is much more faster than using a Custom Field Property in reports.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Overrides&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ReadOnly&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; [ApplianceName]() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.String&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; _ApplianceBOLookup.Count = 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;_ApplianceBOLookup.FillAllRecords()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; _ApplianceBOLookup.SeekToPrimaryKey(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.FK_Appliances) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; _ApplianceBOLookup.ApplianceName&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;[/code][/codesnippet]&lt;P&gt;With the above code the time to render the report was reduced from 37 seconds to 3 seconds.&amp;nbsp; I still need to figure out how to create my own class to implement the IRenderSite, but know that the report is rendering as it should, I will have more time to get that done.:cool:</description><pubDate>Fri, 24 Oct 2008 16:25:07 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20326.aspx</link><description>[quote][b]Trent L. Taylor (10/24/2008)[/b][hr]but I am not sure what this would buy you.&amp;nbsp; It isn't going to make an performance differences.[/quote]&lt;/P&gt;&lt;P&gt;Overridable would work in my case, since I will refactor those Custom Properties&amp;nbsp;but since they are used in some forms I don't want to redo the whole thing, I want to refactor them for the report only, to see if I can gain some speed in the process.</description><pubDate>Fri, 24 Oct 2008 09:38:57 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20323.aspx</link><description>You could just make the properties on the base BO overridable and then override them in the report BO.&amp;nbsp; You coudl then apply the &amp;lt;Browsable(False)&amp;gt; and &amp;lt;Bindable(False)&amp;gt; attributes and possibly several others to make them hidden, but I am not sure what this would buy you.&amp;nbsp; It isn't going to make an performance differences.&amp;nbsp; And if your end-user cannot modify the report, then this would be a non-issue.</description><pubDate>Fri, 24 Oct 2008 09:18:11 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20321.aspx</link><description>Thanks Trent, I will keep digging in the issue.&lt;/P&gt;&lt;P&gt;One more question if you don't mind :) I have some Custom Field Properties&amp;nbsp;(CFP)&amp;nbsp;in the main BO, which when using the BBS builder, will create a report bo inheriting the main bo and then will have those CFP, is there any way to remove those CFP from the report BO?</description><pubDate>Fri, 24 Oct 2008 08:24:53 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20320.aspx</link><description>Well, this would be a pretty involved post.&amp;nbsp; But in short, it is pretty much like I mentioned it.&amp;nbsp; The IRenderSite implementation just allows you to create a hook and call it when you call the Prepare method on the ReportSlot.&amp;nbsp; It also has events that you can handle indicating what is going on (i.e. compiling scripts, etc.) so that you can notify your end-user of the status.&amp;nbsp; I am about to walk into a developer session and will be offline for a while, but if you don't make any progress let me know and I will try and give some more details.</description><pubDate>Fri, 24 Oct 2008 08:12:01 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20312.aspx</link><description>[quote]Also, are you show a "generating report dialog" while RSS is&amp;nbsp;generating the report?&amp;nbsp; They have one by default that you can show[/quote]&lt;P&gt;Trent, I have been looking in RSS help file and could not find any reference to this dialog or how to make my report use the default one.&amp;nbsp; RSS site seems to be down, if possible could you tell me how to make use of the default dialog?</description><pubDate>Thu, 23 Oct 2008 17:23:28 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20311.aspx</link><description>Thanks Greg, will start testing with those approaches to see which one give me the best result.</description><pubDate>Thu, 23 Oct 2008 17:21:29 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Report Sharp-Shooter slow preview process</title><link>http://forum.strataframe.net/FindPost20304.aspx</link><description>Edhy,&lt;br&gt;
&lt;br&gt;
When doing look-ups similar this, I don't (very often) get the data within in the property any more.  If I do, then I'd typically use a scalar method (not a fill method) instead.  Instead, I fill the BO with the lookup values when it is loaded...one trip in that case.  Here's sort of how I might do it:&lt;br&gt;
&lt;br&gt;
[codesnippet]Public Sub FillForReport()&lt;br&gt;
&amp;nbsp;&amp;nbsp;'-- I'll use SQL statement here, but you could put into sproc to speed up&lt;br&gt;
&amp;nbsp;&amp;nbsp;'    Because the CustomerBuildingAddress is an agreggate of three fields, &lt;br&gt;
&amp;nbsp;&amp;nbsp;'    I'd probably do three custom properties in the BO and then aggregate&lt;br&gt;
&amp;nbsp;&amp;nbsp;'    them when needed (in the report), which provides more flexibility...&lt;br&gt;
&amp;nbsp;&amp;nbsp;'    easy to put the fields together, harder to rip them apart&lt;br&gt;
&amp;nbsp;&amp;nbsp;Dim sqlBuilder As New StringBuilder(255)&lt;br&gt;
&amp;nbsp;&amp;nbsp;With sqlBuilder&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'-- No idea what your SQL would look like...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'&amp;nbsp;&amp;nbsp; This just grabs all the fields of the BOs table, plus adds a City column&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'&amp;nbsp;&amp;nbsp; via a sub query&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.AppendLine("Select *")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.AppendFormat("  , (Select City From tblBuildingAddress Where BuildingID = {0}) As BuildingCity", Me.FK_Buildings).Append(ControlChars.NewLine) &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.AppendFormat("From {0}", Me.TableName).Append(ControlChars.NewLine)&lt;br&gt;
&amp;nbsp;&amp;nbsp;End With&lt;br&gt;
&amp;nbsp;&amp;nbsp;Using cmd As New SqlCommand()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText = sqlBuilder.ToString()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Me.FillDataTable(cmd)&lt;br&gt;
&amp;nbsp;&amp;nbsp;End Using&lt;br&gt;
End Sub&lt;br&gt;
&lt;br&gt;
'-- One of three custom properties (City, Street, State..maybe add in ZIP too).&lt;br&gt;
Public Readonly Property CustomerBuildingCity As String&lt;br&gt;
&amp;nbsp;&amp;nbsp;Get&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'-- Establish return var, provide empty string as default&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim city As String = String.Empty&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'-- Check if the city column was included in the data table&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'&amp;nbsp;&amp;nbsp; If it is, retrieve value, otherwise, the default is returned&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If Me.CurrentDataTable.Columns.Contains("BuildingCity") Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;city = CType(Me.CurrentRow.Items("BuildingCity"),String)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'-- Return city&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return city&lt;br&gt;
&amp;nbsp;&amp;nbsp;End Get&lt;br&gt;
End Property[/codesnippet]&lt;br&gt;
&lt;br&gt;
Trent has shown an alternative way (which is probably faster) for handling the use of an extra column in the data table to provide the value for a custom property.  He uses a method that checks for any extra columns that might be used by custom properties and if the extra column isn't found, just adds it with a default value.&lt;br&gt;
&lt;br&gt;
The advantage of doing it this way is you can drastically reduce the number of calls to the db.  If your report returns 100 records, using the ExecuteScalar or worse, a Fill method within a customer property would result in (at least) 101 calls to the db (one for the original fill, and one for each time the custom property is called).  Compare that with just one call using the above method.  &lt;br&gt;
&lt;br&gt;
Hope that makes sense.  :D</description><pubDate>Thu, 23 Oct 2008 15:20:04 GMT</pubDate><dc:creator>Greg McGuffey</dc:creator></item></channel></rss>