<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>crystal reports 2008 Archives - Dragonsoft Technology View</title>
	<atom:link href="https://blog.dragonsoft.us/tag/crystal-reports-2008/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.dragonsoft.us/tag/crystal-reports-2008/</link>
	<description>Talk about Technologies, Software Architecture and Management</description>
	<lastBuildDate>Mon, 19 Oct 2009 16:38:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.dragonsoft.us/wp-content/uploads/2022/04/logo-main-bw-150x150.png</url>
	<title>crystal reports 2008 Archives - Dragonsoft Technology View</title>
	<link>https://blog.dragonsoft.us/tag/crystal-reports-2008/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">2577970</site>	<item>
		<title>Crystal Reports 2008 : hacking datetime parameter format &#8211; reloaded</title>
		<link>https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/</link>
					<comments>https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Wed, 31 Dec 2008 19:59:53 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[change datetime parameter format]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[crystal reports viewer]]></category>
		<category><![CDATA[datetime as date]]></category>
		<category><![CDATA[datetime entry format]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=713</guid>

					<description><![CDATA[<p>Few weeks ago I have wrote on how to hack Crystal Reports 2008 ASP.Net Viewer control to suppress time part in the parameter calendar control. With release of Service Pack 1 for Crystal Reports 2008, suggested solution no longer works since structure of the files has been changed. So I went<a class="moretag" href="https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/">Crystal Reports 2008 : hacking datetime parameter format &#8211; reloaded</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step1.png"></a>Few weeks ago I have wrote on <a href="http://blog.dragonsoft.us/2008/12/16/crystal-report…rameter-formatcrystal/" target="_self">how to hack Crystal Reports 2008 ASP.Net Viewer control to suppress time part</a> in the parameter calendar control.</p>
<p>With release of Service Pack 1 for Crystal Reports 2008, suggested solution no longer works since structure of the files has been changed.</p>
<p>So I went digging around again. Forgot to mention last time, but in situations like this, scripting debugging supported in Visual Studio really helps (if you are not familiar with JS debugging check following links <a href="http://weblogs.asp.net/scottgu/archive/2007/07/19/vs-2008-javascript-debugging.aspx" target="_blank">[1]</a> <a href="http://www.asp.net/learn/3.5-videos/video-219.aspx" target="_blank">[2]</a> for more info.</p>
<blockquote><p>Note. It is interesting to observe how code is changing over time. And after some analisys, I would say that SAP development team is one click away from adding ability to suppress time parts for datetime parameters: only one thing missing &#8211; new property on parameter level which would allow specify how to treat it (date, time or datetime). Question is if they will decide to do so.</p></blockquote>
<p>I will be using Visual Studio 2008 and run against my WebDev.WebServer.</p>
<p>After creating simple CrystalReports ASP.Net application with report which has datetime parameter, lets see what exactly is happening here.</p>
<p><a href="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step1.png" target="_blank"><img decoding="async" class="size-thumbnail wp-image-715" style="margin-right: 10px;" title="Step 1" src="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step1-150x150.png" alt="Step 1" width="150" height="150" /></a> <a href="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step2.png" target="_blank"><img decoding="async" class="size-thumbnail wp-image-720" style="margin-right: 10px;" title="Step 2" src="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step2-150x150.png" alt="Step 2" width="150" height="150" /></a></p>
<p>Let&#8217;s run an application up to the point when engine would request parameter values being entered (<a href="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step1.png" target="_blank">Img 1</a>).</p>
<p>And then let&#8217;s open Solution Explorer in Visual Studio (<a href="http://blog.dragonsoft.us/wp-content/uploads/2008/12/step2.png" target="_blank">Img 2</a>).<br />
You would notice a few JavaScript files, where one we were looking for &#8211; <strong>promptengine_calendar2.js</strong>.</p>
<p>While having page open, dbl-click on the file in Solution Explorer and look around. (In my case actual file location is <em>C:\Windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\crystalreportviewers12\prompting\js\</em>, but may vary.)</p>
<p>Internal Calendar control (which reside in Calendar.js file) relay on setShowTime method to manage visibility and behaviour of the calendar and this is where we will &#8220;hack&#8221; our way in.</p>
<p>As usual code below only highlights changes to the code in <em>promptengine_calendar2.js</em> file.<br />
This time I am making no changes to the data, only how it is displayed and extracted from the calendar control. And it seems to work much better then prior solution.<br />
Make sure you have the copy of original file backed up.</p>
<pre class="brush: jscript; title: ; notranslate">/** First, lets add one more variable to control data flow **/
    bobj.prompt.Calendar = function
    ...
       this.isDateTimeData = false;
    }
...
    /** While suppressing DateTime format we still need to know original type of the data **/
    setIsDateTime : function(isDateTime) {
       // this.isDateTime = isDateTime;
       this.isDateTimeData = isDateTime;
       this.isDateTime = false;
    },
...
    /** while suppressing time part, it is still need to be returned back in to parameter form **/
    _getStringValue : function(dateValue) {
        var format = this.isDateTime ? this.dateTimeFormat : this.dateFormat;

        if ((!this.isDateTime) &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; this.isDateTimeData) {
                format = format + &#039; 00:00:00&#039;;
        }

        return  bobj.external.date.formatDate(dateValue, format);     
       
    },</pre>
<p>Changes are very isolated and allows a) hide time entry box and b) properly return data back into parameter form.</p>
<p>This solution is generic and applies to all datetime parameters visible. As a result, calendar control become for date entry only, while resetting time portion. User can still enter time part if necessary, but on the page level.</p>
<p>Again, make sure that file with changes we just made is replaced everywhere. Depend on your development and production environment you may have few other locations for it.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/">Crystal Reports 2008 : hacking datetime parameter format &#8211; reloaded</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/12/31/crystal-reports-2008-hacking-datetime-parameter-format-reloaded/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">713</post-id>	</item>
		<item>
		<title>Crystal Reports 2008, ASP.Net and impersonation</title>
		<link>https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/</link>
					<comments>https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Tue, 23 Dec 2008 14:28:17 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[access denied]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[broken images]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[iis temp folder access]]></category>
		<category><![CDATA[iis temp folder failures]]></category>
		<category><![CDATA[impersonation]]></category>
		<category><![CDATA[load report failed]]></category>
		<category><![CDATA[reportclientdocumentclass]]></category>
		<category><![CDATA[temp folder]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=677</guid>

					<description><![CDATA[<p>We have created our perfect reporting solution using Crystal Reports 2008 viewer control, tested everything, and  deployed it into production environment&#8230; and it is working&#8230; until Friday night&#8230; 🙁 Information below is provided for both IIS 6 and IIS 7 along with 32 and 64 bit Windows environment. Make sure<a class="moretag" href="https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/">Crystal Reports 2008, ASP.Net and impersonation</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We have created our perfect reporting solution using Crystal Reports 2008 viewer control, tested everything, and  <a href="http://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/" target="_self">deployed it into production environment</a>&#8230; and it is working&#8230; until Friday night&#8230; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<blockquote><p>Information below is provided for both IIS 6 and IIS 7 along with 32 and 64 bit Windows environment. Make sure that proper reference is used.</p></blockquote>
<p>For some strange reasons, things usually happen when nobody anticipate it anymore (usually about a week after an initial deployment).<br />
In addition, <a href="http://en.wikipedia.org/wiki/Creep_(project_management)" target="_blank">Project creep</a> situation may occurs: after usual management meeting, requirements are changed and some security measures are to be introduced.</p>
<p>Easy! &lt;IMPERSONATE&gt; option of ASP.Net&#8230; and this is where it become interesting.</p>
<p>There is slight small issue, locally developer is usually an administrator of the machine, where in production, s/he just regular user.</p>
<p>More testing&#8230; everything would be fine in development infrastructure and not cause any problems. But being released some strange errors may occur.</p>
<p><strong>Examples:</strong></p>
<ul>
<li>&#8220;Load Report Failed&#8221;</li>
<li>&#8220;System.Runtime.InteropServices.COMException: Invalid file name&#8221;</li>
<li>&#8220;Exception Details: System.Runtime.InteropServices.COMException: <span class="searchTerm">Access</span> is <span class="searchTerm">denied</span>.&#8221;</li>
</ul>
<p><strong>Hint: </strong>When reviewing ASP.Net Stack Trace (debug/trace mode needs to be enabled), first line may contain the following text &#8220;CrystalDecisions &#8230; ReportClientDocumentClass.Open&#8221;.</p>
<p><em>What is going on here?</em></p>
<h3>ASP.Net impersonation</h3>
<p>In default situation, ASP.NET impersonation is turned off and the resources can be accessed using a &#8220;local system process&#8221; account. Nothing needs to be done here, since initial installation of the IIS would have addressed it.<br />
But when impersonation is turned on, ASP.NET executes every resource using the account of a specified user who is authenticated when the user makes the request. If you specify the IUSR_machinename account to be used as the user account, then ASP.NET will behave like previous versions of ASP, in providing access to the resources (<a href="http://msdn.microsoft.com/en-us/library/ms998351.aspx" target="_blank">more</a>).</p>
<p>IIS impersonates users with its own IUSR account.<br />
In the case of ASP.NET, impersonation is used to decide whether the user&#8217;s request should be executed using the account of the requested user, or that of a local system-process account that ASP.NET uses for anonymous requests.</p>
<p>There are some rules applied when combination of impersonation and anonymous access is used in ASP.Net application:</p>
<ol>
<li>Impersonation is enabled:
<ul>
<li>Anonymous access is enabled in IIS &#8211; the request is made using the IUSR_machinename account.</li>
<li>Anonymous access is disabled in IIS &#8211; the request is made using the account of the authenticated user.</li>
</ul>
</li>
<li>Impersonation is disabled:
<ul>
<li>Anonymous access is enabled in IIS &#8211; the request is made using the system-level process account.</li>
<li>Anonymous access is disabled in IIS &#8211; the request is made using the account of the authenticated user.</li>
</ul>
</li>
<li>In either case &#8211; permissions for the account are checked in the Windows Access Control List (ACL) for the resource(s) that a user requests, and a resource is only available if the account they are running under is valid for that resource.</li>
</ol>
<p>Lets assume that the following settings are used</p>
<pre class="brush: xml; title: ; notranslate">&lt;system.web&gt;
  &lt;identity impersonate=&quot;true&quot; /&gt;
 &lt;!-- WS: Allow only Authenticated users --&gt;
 &lt;authorization&gt;
 &lt;!-- allow users=&quot;*&quot;/ --&gt;
    &lt;deny users=&quot;?&quot; /&gt;
  &lt;/authorization&gt;
&lt;/system.web&gt;</pre>
<p>In this mode ASP.NET impersonates the current Web user. It gets this token from IIS which passes this account token on the ISAPI thread that originally fires off this request.</p>
<p>We can go further and impersonate the process directly by specifying its identity:</p>
<pre class="brush: xml; title: ; notranslate">&lt;identity impersonate=&quot;true&quot; password=&quot;password&quot; userName=&quot;username&quot; /&gt;</pre>
<p>In this case access to any resource would be performed in the context of the user specified, instead of user associated with the session.<br />
To ensure the proper context, it can be verified with the following code:</p>
<pre class="brush: csharp; title: ; notranslate">// Returns the security identity of the current running thread
System.Security.Principal.WindowsIdentity.GetCurrent().Name

// Returns the identity of the user which session is belong to
WindowsIdentity.GetCurrent().Name</pre>
<p>As you can see, we need to ensure that all accounts involved have sufficient rights to access resources involved.</p>
<blockquote><p>Before going further, check if including an impersonation account in the default <a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/12a3d96c-65ea-4210-96ad-86a801f6a88c.mspx?mfr=true" target="_blank">IIS_WPG</a> user group would be sufficient before setting more complex scenario.</p></blockquote>
<h3>Crystal Reports effect</h3>
<p>Being an insight process, Crystal Reports engine would also require access to some additional file resources:</p>
<ol>
<li>Location of the report files</li>
<li>Local TEMP folder as described below</li>
</ol>
<p>Why User TEMP folders is involved? Why would Crystal Reports control in IIS need to access it?</p>
<p>Short answer &#8211; because CR engine keeps cache of report files for the session.<br />
Do a little experiment, without impersonation enabled, check Temp folders when report is visible in the Viewer.<br />
You would notice files appear and disappear there:</p>
<ul>
<li><em><strong>&lt;Report Name&gt; {GUID}.rpt</strong></em> is a cache of the report file for the session</li>
<li><strong>~cpe{GUID}.rpt</strong> is a cache of the report data view</li>
</ul>
<p>The location of TEMP folder may vary: <em>C:\WINDOWS\Temp</em> for older versions of Windows, or more elaborate &#8220;<em>C:\Documents and Settings\&#8230;</em>&#8221; and &#8220;<em>C:\Users\&#8230;</em>&#8221; in latest versions.<br />
And in case of user account specific variation, one would have to guess which user related folder has to checked.  With impersonation enabled and finding context of the call, we can now properly determine the location and required access level:</p>
<ul>
<li>Associated account should be allowed create/modify/delete files in TEMP folder.</li>
<li>For IIS 7.0, Temp folder location would be different.<br />
Proper default location would be %windir%\serviceprofiles\networkservice\AppData\Local\Temp as described <a href="http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx" target="_blank">here</a>.</li>
</ul>
<h3>Limit CR Engine access to TEMP folder</h3>
<p> Described is default behavior, which could be adjusted to limit access to more relevant location.</p>
<p>Visit the following location:</p>
<blockquote><p><strong>HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Report Application Server\</strong><strong>InprocServer</strong></p>
<p>or in case of 64 bit Vista (not being familiar at first with new registry structure you may be surprised about this)</p>
<p><strong>HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Business Objects\Suite 12.0\Report Application Server\InprocServer</strong></p>
<p>then add/update the following value</p>
<p><strong>TempDir</strong>: String = &#8220;your folder&#8221;</p></blockquote>
<p>This will tell engine which folder to use. And then by granting proper permissions as discussed above it would solve the grand problem. Restart your web server and you should be good to go.</p>
<p>To validate that account has proper permissions for the folder specified, the following command can be used</p>
<blockquote><p>CACLS * /T &gt; output.txt<br />
being executed from command prompt it will create output.txt which contains list of permissions for the current folder</p></blockquote>
<h3>Notes:</h3>
<ol>
<li>Solution above can be used for any prior version of Crystal Reports, but may require minor adjustments.</li>
<li>Problem with permissions could also cause broken image links in the Viewer</li>
<li>Depend on configuration, permissions could be required for NETWORK SERVICE account and/or IIS_WPG group.</li>
</ol>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/">Crystal Reports 2008, ASP.Net and impersonation</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/12/23/crystal-reports-2008-aspnet-and-impersonation/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">677</post-id>	</item>
		<item>
		<title>Crystal Reports 2008 : hacking datetime parameter format</title>
		<link>https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/</link>
					<comments>https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/#respond</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Tue, 16 Dec 2008 16:27:43 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[change datetime parameter format]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[crystal reports viewer]]></category>
		<category><![CDATA[datetime as date parameter]]></category>
		<category><![CDATA[datetime entry format]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=668</guid>

					<description><![CDATA[<p>One would think that this should be a no-brainer : ability to specify an edit format for date/time parameter in Crystal Reports. Not so fast&#8230; Problem is as following: ASP.Net Web client with Crystal Reports Viewer control is used. When our report is based of some stored procedure which uses<a class="moretag" href="https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/">Crystal Reports 2008 : hacking datetime parameter format</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>One would think that this should be a no-brainer : ability to specify an edit format for date/time parameter in Crystal Reports. Not so fast&#8230;</p>
<p>Problem is as following:</p>
<blockquote><p>ASP.Net Web client with Crystal Reports Viewer control is used.</p>
<p>When our report is based of some stored procedure which uses datetime parameter, it will inherit it as is and when report parameter entry form is displayed we would be asked to enter both date and time portion.</p></blockquote>
<p>While, in general, it is OK, some reports are really interested only in date part being entered and time should be always set to 00:00:00. So we are forced to type time every time because if it is not provided calendar control would try to set time part initially to current time.</p>
<p>After some research off the Internet, visiting SAP forums, it is appear to be engine limitation. But we would want to overcome it somehow.</p>
<p><em><strong>DISCLAIMER: solution below could only be used as a last resort and only if your business logic requires using date only params. And while it is only applies to calendar control, it is not per se a generic solution. This is a first &#8220;rough&#8221; attempt of achieving desired result and may lack some features otherwise expected.</strong></em></p>
<p><strong><em>It has been reported that solution above only works for current month. Since we are now using Crystal Reports 2008 with SP1, I would address this issue </em></strong><strong><em>in my new post below</em></strong><strong><em>.</em></strong></p>
<p><strong><em><span style="color: #ff0000;">IMPORTANT! With release of Service Pack 1 for Crystal Reports 2008, method blow is no longer applicable since structure of the files has changed. Please refer <a href="http://blog.dragonsoft.us/2008/12/31/crystal-report…ormat-reloadedcrystal-reports-2008-hacking-datetime-parameter-format-reloaded/" target="_self">to this new post for more information</a>.</span></em></strong></p>
<p>Otherwise, Where there is a will, there is a way&#8230;</p>
<p>Fortunately we have access to internals behind the parameter handlers in Crystal Report Viewer web control.</p>
<p>Navigate to one of following locations:</p>
<ul>
<li>C:\Inetpub\wwwroot\aspnet_client\system_web\2_0_50727\crystalreportviewers12\</li>
<li>C:\windows\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\crystalreportviewers12\</li>
<li>C:\Program Files\Business Objects\Common\4.0\crystalreportviewers12\</li>
</ul>
<p>and locate the file called <strong>allInOne.js</strong> &#8211; this is our victim. This file contains all JS code behind for CRV control which would be used by your web-site.</p>
<p><em><strong>IMPORTANT: always create a backup copy before making any modifications.</strong></em></p>
<p><span id="more-668"></span></p>
<p>Remember that our objective is to ensure that when calendar control is used time part of date/time value is always set as 00:00:00. Let&#8217;s add a new function to <strong>bobj.crv.Calendar</strong> object</p>
<pre class="brush: jscript; title: ; notranslate">/**
 * Reset time part of datetime to 00:00:00
 */
bobj.crv.Calendar._resetTime = function(date) {
    var newdate = this._copyDate(date);
    newdate.setHours(0);
    newdate.setMinutes(0);
    newdate.setSeconds(0);
    newdate.setMilliseconds(0);
    return newdate;
}</pre>
<p>In my case I have put it just before bobj.crv.Calendar.justInTimeInit = function()  (line 39792).</p>
<p>As you can see the main purpose of the function is create a copy of date value with time portion being reset to desired time.</p>
<p>Now we would be looking for any instance in the code where the following substring is present</p>
<blockquote><p><strong>_timeField.setValue</strong></p></blockquote>
<p>We would find 3 functions where the following adjustment would be made:</p>
<pre class="brush: jscript; title: ; notranslate">bobj.crv.Calendar.justInTimeInit = function() {
...
    // mod: reset time
    this.date = this._resetTime(this.date);
    // mod
    this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat));
...
}
...
bobj.crv.Calendar.justInTimeInit = function(){
...
    // mod: reset time
    this.date = this._resetTime(this.date);
    // mod
    this._timeField.setValue(bobj.external.date.formatDate(this.date, this._curTimeFormat));
...
}
...
bobj.crv.Calendar._onTimeChange = function() {
...
    if (date) {
        this._curTimeFormat = format;
        // mod: reset time
        date = this._resetTime(date);
        // mod
        this.date.setHours(date.getHours());
...
    else {
        // mod: reset time
        this.date = this._resetTime(this.date);
        // mod
...
}
...
bobj.crv.Calendar.setDate = function(date) {
    // mod: assign and reset time
    this.date = this._resetTime(date);
...
}</pre>
<p>After all changes above are done, we would get a calendar control which &#8220;keeps time at bay&#8221;. This only affects calendar itself and not an edit control associated with the parameter. As a result we can still adjust time if choose to do so.</p>
<p>Last step would be to ensure that all allInOne.js file instances are in sync and we got desired functionality.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/">Crystal Reports 2008 : hacking datetime parameter format</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/12/16/crystal-reports-2008-hacking-datetime-parameter-format/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">668</post-id>	</item>
		<item>
		<title>How to deploy Crystal Reports 2008 project &#8211; part 2</title>
		<link>https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/</link>
					<comments>https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Wed, 29 Oct 2008 15:03:16 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[404 2 1260]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[bobj is undefined]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[crystal reports 2008 runtime]]></category>
		<category><![CDATA[crystal reports runtime]]></category>
		<category><![CDATA[deploy crystal reports]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[visual studio 2008]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=543</guid>

					<description><![CDATA[<p>Introduction From part 1 of this article, you got list of steps in order to deploy Crystal Reports 2008 project created in Visual Studio 2008. Next step is to choose deployment strategy, prepare installation script and then install it on IIS server. There is enough written about deployment process from within Visual Studio so<a class="moretag" href="https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/">How to deploy Crystal Reports 2008 project &#8211; part 2</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Introduction</h3>
<p>From <a href="http://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/" target="_self">part 1</a> of this article, you got list of steps in order to deploy Crystal Reports 2008 project created in Visual Studio 2008.</p>
<p>Next step is to choose deployment strategy, prepare installation script and then install it on IIS server.<br />
There is enough written about deployment process from within Visual Studio so let&#8217;s give some people credit for their work &#8211; for example, please check <a href="http://www.15seconds.com/issue/030806.htm" target="_blank">this article</a> &#8211; I am going to use it as a base.</p>
<p>All things considered there is still a variation to that process specific to Crystal Reports.</p>
<p><em>Note: Make sure you have latest runtime available for you &#8211; visit <a href="http://resources.businessobjects.com/support/additional_downloads/runtime.asp#08" target="_blank">SAP download page</a> &#8211; as of 10/19/2009 runtime version available is 12.2 .</em></p>
<p><span id="more-543"></span></p>
<h3>Preparing the installation</h3>
<p>Deploying standalone .Net application should not be a problem using standard procedure, but with ASP.Net application some problems may arise&#8230;</p>
<p>Lets go with Windows Installer approach.</p>
<p>One thing to add to the steps presented in the article above &#8211; ensure proper Crystal Report run-time is installed.</p>
<p>If you have followed steps from <a href="http://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/" target="_self">part 1</a> of this article, you now have proper version of runtime installed in VS2008.</p>
<p>After you have created your Web-Setup project and followed all the steps, go to project properties and click <strong>Prerequisites</strong>. What you need to look for here is two lines:</p>
<blockquote>
<ul>
<li>Crystal Reports Basic for Visual Studio 2008</li>
<li>Crystal Reports 2008</li>
</ul>
</blockquote>
<p>We are interested in the second option.<br />
Please notice, this would mean (in default scenario) that during installation your setup would attempt to download redistribution package from SAP web-site.</p>
<p>Build, copy, install&#8230;</p>
<h3>Installation notes</h3>
<p><em>Note: Steps below are based off IIS 6 installation of ASP.Net project.</em></p>
<p>Deployment packages are copied and installed&#8230; Everything is nice and installation seems to be successful.<br />
Trying access a new web-site&#8230; and&#8230; worse case scenario&#8230; error 404 &#8211; page not found&#8230; O-oh&#8230;</p>
<p>From IIS log you may notice something like this at the end of the log record &#8211; <strong>404 2 1260</strong>.</p>
<p>Please do the following:</p>
<ul>
<li><a href="http://blog.dragonsoft.us/wp-content/uploads/2008/10/wse.png"><img decoding="async" class="alignright size-thumbnail wp-image-550" style="border: 1px solid black;" title="Enable ASP.Net support" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/wse-small.png" alt="" /></a>Open IIS Management console</li>
<li>Navigate to <strong>Web Service Extension</strong> node</li>
<li>Make sure that <strong>ASP.Net 2.0.50727</strong> (or similar) is enabled</li>
<li>Keep IIS Manager opened for now.</li>
</ul>
<p>So your page is back, but where you should see your CrystalReportViewer control there is nothing. Most likely there would an JS error detected on the page <strong>&#8220;bobj is undefined&#8221;</strong>.<br />
You would need to check that there is &#8220;<strong>crystalreportviewer12</strong>&#8221; virtual folder is present in your site tree. In most cases it should be there, since it is part of CR redistribution package logic. If you have not included it with your setup and/or installed CR support through different means, then you would need to add this virtual folder yourself.</p>
<p><img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_1.png" alt="" /><br />
<img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_2.png" alt="" /><br />
<img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_3.png" alt="" /><br />
<img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_4.png" alt="" /><br />
<img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_5.png" alt="" /><br />
<img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_6.png" alt="" /></p>
<p>And validate folder created</p>
<p><img decoding="async" style="border: 1px solid black;" title="Create Virtual Folder" src="http://blog.dragonsoft.us/wp-content/uploads/2008/10/vf_step_7.png" alt="" /></p>
<p>Another way if you share CR installation between different sites would be to use Export/Import folder info functionality to copy VF info between sites.</p>
<p>Hopefully by that point your CR based web-site should be up and running.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/">How to deploy Crystal Reports 2008 project &#8211; part 2</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">543</post-id>	</item>
		<item>
		<title>How to deploy Crystal Reports 2008 project &#8211; part 1</title>
		<link>https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/</link>
					<comments>https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Thu, 09 Oct 2008 20:00:27 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[crystal reports 2008 basic]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[deploy crystal reports]]></category>
		<category><![CDATA[visual studio 2008]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=507</guid>

					<description><![CDATA[<p>Crystal Reports Deployment strategy This is a first part of the discussion about what it takes to deploy Crystal Reports 2008 based project created in Visual Studio. Dependencies When you develop something which involves Crystal Reports you need to deploy CR 2008 run-time along with your project. As you know<a class="moretag" href="https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/">How to deploy Crystal Reports 2008 project &#8211; part 1</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><em><span style="font-style: normal;">Crystal Reports Deployment strategy</span></em></h3>
<p>This is a first part of the discussion about what it takes to deploy Crystal Reports 2008 based project created in Visual Studio.</p>
<h3>Dependencies</h3>
<p>When you develop something which involves Crystal Reports you need to deploy CR 2008 run-time along with your project.</p>
<p><a href="http://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/" target="_self">As you know by now</a>, Visual Studio 2008 comes with Crystal Reports 2008 Basic included, which is really a CR v. 10. But if you have Crystal Reports 2008 installed on-top of it, you need to worry about CR v.12.</p>
<p><strong>IMPORTANT.</strong> Do not confuse two!</p>
<p><span style="text-decoration: underline;">When you deploy your Visual Studio 2008 project you need to use appropriate MSI</span> &#8211; either one included with VS or an updated CR 2008 run-time provided by SAP (a new home for Crystal Reports).</p>
<h3>So, where is it?</h3>
<p>Before you rash digging SAP web-site, let&#8217;s examine your local drive. There is a nice place there</p>
<blockquote><p>C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\</p></blockquote>
<ol>
<li>If you did not install regular CR 2008, you would find only one folder for your CR:<br />
<blockquote><p>C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5\</p></blockquote>
<p>and this is where you want to grab distribution package from (64 or 32 bit).<br />
 </li>
<li>Otherwise, even though there is<br />
<blockquote><p>C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports 12.0\</p></blockquote>
<p>folder, it may not be much of help since there is no actual files.<br />
Do not worry. Check <strong>product.xml</strong> there. It would tell you few things you need: a) <a href="http://resources.businessobjects.com/support/downloads/redistributables/cr_120/redist/x86/CRRuntime_12_0_mlb.msi" target="_blank">location/URL</a> of MSI you need, and b) required related products &#8211; MS .Net Framework 2.0 and Microsoft.Data.Access.Components.2.8.</li>
</ol>
<p>Now we good to go with <a href="http://blog.dragonsoft.us/2008/10/29/how-to-deploy-crystal-reports-2008-project-part-2/" target="_self">the next step</a>.</p>
<p><em>Note: Make sure you have latest runtime available for you &#8211; visit <a href="http://resources.businessobjects.com/support/additional_downloads/runtime.asp#08" target="_blank">SAP download page</a>.</em></p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/">How to deploy Crystal Reports 2008 project &#8211; part 1</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/10/09/how-to-deploy-crystal-reports-2008-part-1/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">507</post-id>	</item>
		<item>
		<title>Getting started with Crystal Reports 2008</title>
		<link>https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/</link>
					<comments>https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/#comments</comments>
		
		<dc:creator><![CDATA[Serguei Dosyukov]]></dc:creator>
		<pubDate>Tue, 30 Sep 2008 18:34:22 +0000</pubDate>
				<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[crystal reports 2008]]></category>
		<category><![CDATA[installation problem]]></category>
		<category><![CDATA[visual studio 2008]]></category>
		<guid isPermaLink="false">http://blog.dragonsoft.us/?p=466</guid>

					<description><![CDATA[<p>One of my projects is to maintain application which creates export files off the Crystal Reports reports. There is a little post about my experience migrating to CR 2008. Just a little background I am using Crystal Reports since 1997. As you can see it has been a long time.<a class="moretag" href="https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/"> Read more</a></p>
<p>The post <a href="https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/">Getting started with Crystal Reports 2008</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>One of my projects is to maintain application which creates export files off the Crystal Reports reports. There is a little post about my experience migrating to CR 2008.</p>
<h3>Just a little background</h3>
<p>I am using Crystal Reports since 1997. As you can see it has been a long time. It was and is the primary platform for me to create and maintain reports. Just to be fair, it is not the only platform I am using. Over the years as a developer (Delphi/C#/ASP) I have tried many different reporting solutions: PRT, text, Crystal Reports 6 through 2008, ReportBuilder, RAVE, MS Reporting Services, ad-hoc reports using Windows canvas, HTML, etc. It is always fun.<br />
But for some time I am advocating use of CR in regular development.</p>
<p>To start with, CR is a industry standardized product and can be utilized in many different environments (Visual Studio, Delphi IDE, COM, HTML, etc) and evolution of the product has gone a long way &#8211; you can find a lot of information about the product, about how to use and deploy it.</p>
<p>What always struck me was that even though a product is widely used, there is always some small details which you need to know when it comes to use, integration or deployment. One would think that everything should be smooth, but things are still happening with every new version.</p>
<h3>Starting point</h3>
<p>As I mentioned earlier, I am maintaining the project which was written in C# (VS 2003) and was utilizing Crystal Reports 8.5 (yes, that old).</p>
<p>I have finally got &#8220;go for it&#8221; to move everything to VS 2008 and CR 2008.</p>
<p>Now brace yourself&#8230;</p>
<h3>Dos, and don&#8217;ts</h3>
<p>As you can see, we have to install a new software (ideally removing old versions first and cleaning up &#8220;dead wood&#8221; after). Then&#8230;</p>
<p>First of all, prepare to spend some time and figure out why initial installation does not work. It just doesn&#8217;t (see below).<br />
If you&#8217;ve got a new media with CR 2008, make sure that you have CR 2008 with SP0 (yes, it is a SP&#8221;zero&#8221;).<br />
If you don&#8217;t, then do not even bother to install it. Instead, get an updated version.</p>
<p>Reason?</p>
<p>Visual Studio 2008 comes with CR 2008 Basic edition which comes with v.10 assemblies for CR support. After installing regular CR 2008 on top of it you would most likely have a problem since version you would want to use is actually version 12 (and it is available for you), but even though it would be there it would not work properly in VS (<a href="http://weblogs.asp.net/guybarrette/archive/2008/03/17/will-the-real-crystal-reports-2008-stand-up.aspx" target="_blank">read more here</a>).</p>
<p>This is where you need CR 2008 with SP0 &#8211; when installed, it will actually clean up the mess and resolve issue with versions and will leave you with proper one only &#8211; version 12.</p>
<h3>Where?</h3>
<p>If you did not get media with SP0 or you do not have time to wait for it to arrive, there is a place to download it. It is not trivial to find on the SAP&#8217;s web-site (BusinessObjects are now part of SAP), <a href="http://www.thedatafarm.com/blog/" target="_blank">Julie Lerman&#8217;s</a> <a href="http://www.thedatafarm.com/blog/2008/09/05/WhereTheHellIsTheCrystalReports2008SP0DownloadAnyway.aspx" target="_blank">blog post</a> would be of big help to you &#8211; read it, follow the steps, or just <a href="https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/bobj_download/main.htm" target="_blank">download proper version from SAP web-site</a>.</p>
<blockquote><p>To advertise a little bit more, Julie has some other articles available at ASPAlliance:</p>
<ul>
<li><a href="http://aspalliance.com/1564_What_Visual_Studio_Developers_Should_Know_About_Crystal_Reports_2008" target="_blank">What Visual Studio Developers Should Know About Crystal Reports 2008</a></li>
<li><a href="http://aspalliance.com/1744_Lessons_Learned_Sorting_out_Crystal_Reports_2008_Versioning_Service_Packs_and_Deployment" target="_blank">Lessons Learned: Sorting out Crystal Reports 2008 Versioning, Service Packs and Deployment</a></li>
<li><a href="http://aspalliance.com/1483_Writing_a_Viewer_Utility_for_Crystal_Reports" target="_blank">Writing a Viewer Utility for Crystal Reports</a></li>
</ul>
</blockquote>
<p>You could also obtain SP0 via auto-update CR feature, but I have had experienced some strange problems with ti where setup would stop in the middle and not finish properly. Plus, you do not have to install a product just to find out that you have to reinstall it (suggested update is a full setup). And after all you may need to uninstall everything after you download an update.</p>
<h3>Ready, set, go</h3>
<p>OK, now you have a proper version to work with. But before you install it, please make sure you have installed support for CR 2008 in VS 2008 (remember a famous Basic edition?). You need VS templates from it. CR 2008 would have installed/replaced some of them but not all of them come with CR 2008.</p>
<p>Now everything would work nicely in VS 2008 for you.</p>
<h3>Future writing</h3>
<p>This is a first post in this category and I am going to post more about other useful things on use of CR 2008 in your applications. Stay tuned.</p>
<hr/><span style="font-size: 7pt">Copyright &copy; 2026 <strong><a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a></strong>. This Feed is for personal non-commercial use only.</span><p>The post <a href="https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/">Getting started with Crystal Reports 2008</a> appeared first on <a href="https://blog.dragonsoft.us">Dragonsoft Technology View</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.dragonsoft.us/2008/09/30/getting-started-with-crystal-reports-2008/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">466</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 24/88 queries in 0.049 seconds using Disk

Served from: blog.dragonsoft.us @ 2026-04-13 03:59:48 by W3 Total Cache
-->