<?xml version="1.0" encoding="ASCII"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for The Crystal Reports Underground</title>
	<atom:link href="http://kenhamady.com/cru/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://kenhamady.com/cru</link>
	<description>Independent news, tips and thoughts from a Crystal Reports expert</description>
	<pubDate>Fri, 21 Nov 2008 20:40:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>Comment on CR 2008 doesn&#8217;t like Zebra Label Printers? by Ken Hamady</title>
		<link>http://kenhamady.com/cru/archives/183#comment-53</link>
		<dc:creator>Ken Hamady</dc:creator>
		<pubDate>Sun, 12 Oct 2008 00:43:30 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/?p=183#comment-53</guid>
		<description>Thanks for the feedback, but we had tried that checkmark on and off and still had the same problem.</description>
		<content:encoded><![CDATA[<p>Thanks for the feedback, but we had tried that checkmark on and off and still had the same problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CR 2008 doesn&#8217;t like Zebra Label Printers? by robleg88</title>
		<link>http://kenhamady.com/cru/archives/183#comment-52</link>
		<dc:creator>robleg88</dc:creator>
		<pubDate>Mon, 29 Sep 2008 20:27:51 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/?p=183#comment-52</guid>
		<description>I found this , It looks like your problem.
Hope this helps.

http://reportviewer.biz/knownissues.html
(the issue at the bottom of the page) 
I put the text portion but there is also a screen shot.

Issue

You set a report to display in landscape but the report shows in Report Viewer in the portrait layout. Or, you change the size of the report, but the size changes are not reflected.
Resolution

First, if you are using Crystal Reports 2008 to create your reports, you will have to uncheck the check box that says "dissociate formatting page size and printer paper size" in the page setup dialog, and then resave your report. You can find this dialog after opening your report in Crystal Reports 2008. Go to the file menu, and then select the page setup dialog. This is an issues known and reported by Business Objects. They may fix this in future service packs.</description>
		<content:encoded><![CDATA[<p>I found this , It looks like your problem.<br />
Hope this helps.</p>
<p><a href="http://reportviewer.biz/knownissues.html" rel="nofollow">http://reportviewer.biz/knownissues.html</a><br />
(the issue at the bottom of the page)<br />
I put the text portion but there is also a screen shot.</p>
<p>Issue</p>
<p>You set a report to display in landscape but the report shows in Report Viewer in the portrait layout. Or, you change the size of the report, but the size changes are not reflected.<br />
Resolution</p>
<p>First, if you are using Crystal Reports 2008 to create your reports, you will have to uncheck the check box that says &#8220;dissociate formatting page size and printer paper size&#8221; in the page setup dialog, and then resave your report. You can find this dialog after opening your report in Crystal Reports 2008. Go to the file menu, and then select the page setup dialog. This is an issues known and reported by Business Objects. They may fix this in future service packs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Exporting column headings in CSV format by Ken Hamady</title>
		<link>http://kenhamady.com/cru/archives/112#comment-51</link>
		<dc:creator>Ken Hamady</dc:creator>
		<pubDate>Tue, 23 Sep 2008 14:23:52 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/?p=112#comment-51</guid>
		<description>Scott, 

I found a link that might help and added it to the article above
</description>
		<content:encoded><![CDATA[<p>Scott, </p>
<p>I found a link that might help and added it to the article above</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Exporting column headings in CSV format by scottcave</title>
		<link>http://kenhamady.com/cru/archives/112#comment-50</link>
		<dc:creator>scottcave</dc:creator>
		<pubDate>Mon, 22 Sep 2008 18:50:02 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/?p=112#comment-50</guid>
		<description>Ken,

The link to Knowledge Base article c2014451 is not valid on the current SAP website.  In fact, this article no longer exists there.  Do you have an archive of it, or at least a copy of the u2fsepv.dll (version 8.6.2.475) that is part of the solution for Crystal 8.5 users like myself?
Thanks!</description>
		<content:encoded><![CDATA[<p>Ken,</p>
<p>The link to Knowledge Base article c2014451 is not valid on the current SAP website.  In fact, this article no longer exists there.  Do you have an archive of it, or at least a copy of the u2fsepv.dll (version 8.6.2.475) that is part of the solution for Crystal 8.5 users like myself?<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New free viewer looking for user feedback by pjbertram</title>
		<link>http://kenhamady.com/cru/archives/190#comment-49</link>
		<dc:creator>pjbertram</dc:creator>
		<pubDate>Wed, 17 Sep 2008 12:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/?p=190#comment-49</guid>
		<description>I started to look at this as a comparison to an existing viewer. It did not have the functionality I required, but after swapping a few emails it did everything I wanted.
The interface uses the same ideas as our software so blends in better.
I also found that Hyperlinks worked and this allowed me to launch my applications direct from the report.
The development team has been responsive and very helpful, they very quickly brought the iViewer up to a point where it matches the functionality of other viewers.
It is as good as the other viewer I was looking at and by virtues of the interface and Hyperlinks will most likely become our default viewer.</description>
		<content:encoded><![CDATA[<p>I started to look at this as a comparison to an existing viewer. It did not have the functionality I required, but after swapping a few emails it did everything I wanted.<br />
The interface uses the same ideas as our software so blends in better.<br />
I also found that Hyperlinks worked and this allowed me to launch my applications direct from the report.<br />
The development team has been responsive and very helpful, they very quickly brought the iViewer up to a point where it matches the functionality of other viewers.<br />
It is as good as the other viewer I was looking at and by virtues of the interface and Hyperlinks will most likely become our default viewer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apending Strings in v8.5 into one long string over 256 Chars by OWright</title>
		<link>http://kenhamady.com/cru/archives/130#comment-48</link>
		<dc:creator>OWright</dc:creator>
		<pubDate>Thu, 14 Aug 2008 18:20:16 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/archives/130#comment-48</guid>
		<description>Hello,

I liked the idea but I think what I had come up with as far as dealing with the 8.5 limitation was better suited for my needs. Being that you folk had given me the idea I will post my version of the code. Please let me know what you think.

Here is my script that I place at the report header:
--------------------------------------------------
Shared StringVar Array strings;
Shared NumberVar arrayMax := 1;
Shared NumberVar maxLength := 250;
Shared BooleanVar firstTime := true;

Redim strings[arrayMax];

strings[1] := "";

'done!'
--------------------------------------------------

Here is my main loop that I used in the group header:
--------------------------------------------------
WhilePrintingRecords;
Shared StringVar Array strings;
Shared NumberVar arrayMax;
Shared NumberVar maxLength;
Shared BooleanVar firstTime;

Local StringVar enteredString;
Local NumberVar lenStr;
Local NumberVar lenArr;
Local NumberVar lenLeft;

enteredString := [Field Name];

enteredString := IIF(firstTime,enteredString, ", " &#38; enteredString);

firstTime := false;
lenStr  := Length(enteredString);
lenArr  := Length(strings[arrayMax]);
lenLeft := maxLength - lenArr;

if (lenLeft &#62;= lenStr) then
(
    strings[arrayMax] := strings[arrayMax] &#38; enteredString;
    ''
)
else
(
    strings[arrayMax] := strings[arrayMax] &#38; left(enteredString, lenLeft);
    arrayMax := arrayMax + 1;
    redim preserve strings[arrayMax];
    strings[arrayMax] := "";
    strings[arrayMax] := strings[arrayMax] &#38; right(enteredString, lenStr - lenLeft);
    ''
)
--------------------------------------------------

and then to display the different sets in the text area. I would have one of these for every element I need displayed and change the display number variable.
--------------------------------------------------
Shared StringVar Array strings;
Shared NumberVar arrayMax;

Local NumberVar displayNumber := [element in array];

if(arrayMax &#62;= displayNumber) then
(
    strings[displayNumber];
)
else
(
    '';
)
--------------------------------------------------
I like this version better because the array is completely dynamic. It can be as big or as small as it needs to be. Please let me know what you think.</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>I liked the idea but I think what I had come up with as far as dealing with the 8.5 limitation was better suited for my needs. Being that you folk had given me the idea I will post my version of the code. Please let me know what you think.</p>
<p>Here is my script that I place at the report header:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Shared StringVar Array strings;<br />
Shared NumberVar arrayMax := 1;<br />
Shared NumberVar maxLength := 250;<br />
Shared BooleanVar firstTime := true;</p>
<p>Redim strings[arrayMax];</p>
<p>strings[1] := &#8220;&#8221;;</p>
<p>&#8216;done!&#8217;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Here is my main loop that I used in the group header:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
WhilePrintingRecords;<br />
Shared StringVar Array strings;<br />
Shared NumberVar arrayMax;<br />
Shared NumberVar maxLength;<br />
Shared BooleanVar firstTime;</p>
<p>Local StringVar enteredString;<br />
Local NumberVar lenStr;<br />
Local NumberVar lenArr;<br />
Local NumberVar lenLeft;</p>
<p>enteredString := [Field Name];</p>
<p>enteredString := IIF(firstTime,enteredString, &#8220;, &#8221; &amp; enteredString);</p>
<p>firstTime := false;<br />
lenStr  := Length(enteredString);<br />
lenArr  := Length(strings[arrayMax]);<br />
lenLeft := maxLength - lenArr;</p>
<p>if (lenLeft &gt;= lenStr) then<br />
(<br />
    strings[arrayMax] := strings[arrayMax] &amp; enteredString;<br />
    &#8221;<br />
)<br />
else<br />
(<br />
    strings[arrayMax] := strings[arrayMax] &amp; left(enteredString, lenLeft);<br />
    arrayMax := arrayMax + 1;<br />
    redim preserve strings[arrayMax];<br />
    strings[arrayMax] := &#8220;&#8221;;<br />
    strings[arrayMax] := strings[arrayMax] &amp; right(enteredString, lenStr - lenLeft);<br />
    &#8221;<br />
)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>and then to display the different sets in the text area. I would have one of these for every element I need displayed and change the display number variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Shared StringVar Array strings;<br />
Shared NumberVar arrayMax;</p>
<p>Local NumberVar displayNumber := [element in array];</p>
<p>if(arrayMax &gt;= displayNumber) then<br />
(<br />
    strings[displayNumber];<br />
)<br />
else<br />
(<br />
    &#8221;;<br />
)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
I like this version better because the array is completely dynamic. It can be as big or as small as it needs to be. Please let me know what you think.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Displaying chosen paramater values with descriptions by bettername</title>
		<link>http://kenhamady.com/cru/archives/124#comment-44</link>
		<dc:creator>bettername</dc:creator>
		<pubDate>Fri, 04 Apr 2008 14:13:45 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/archives/124#comment-44</guid>
		<description>I've been waiting for a built-in function for this since the v6 days!
Nice work-around/bodge, but I'd still kill for a description({?MyStringParam},"OptionA") kind of function....
Is there anywhere we can suggest future changes/enchancements directly to BO?  

PS: Cheers, Ken - been reading you for something like 7 years now!</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been waiting for a built-in function for this since the v6 days!<br />
Nice work-around/bodge, but I&#8217;d still kill for a description({?MyStringParam},&#8221;OptionA&#8221;) kind of function&#8230;.<br />
Is there anywhere we can suggest future changes/enchancements directly to BO?  </p>
<p>PS: Cheers, Ken - been reading you for something like 7 years now!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apending Strings in v8.5 into one long string over 256 Chars by Ken Hamady</title>
		<link>http://kenhamady.com/cru/archives/130#comment-43</link>
		<dc:creator>Ken Hamady</dc:creator>
		<pubDate>Tue, 04 Mar 2008 11:25:36 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/archives/130#comment-43</guid>
		<description>Dan, 

Thanks for the contribution.  If you follow the link to my original formula you will see that the main formula is designed to work with a 'reset' formula, which is why there appears to be a dead variable.  The 'reset' formula prevents the initial comma and also allows a separate accumulation for each group. This is described in the original formula page but probably not very clear here.

So I tested my version of this formula with a grouped report and found that the 'reset' formula needs to be changed for this expanded formula.  It should also reset the variable 'SetCnt' back to the number 1 at the beginning of each group. 

Your version does work better if there is no need to have a group reset.</description>
		<content:encoded><![CDATA[<p>Dan, </p>
<p>Thanks for the contribution.  If you follow the link to my original formula you will see that the main formula is designed to work with a &#8216;reset&#8217; formula, which is why there appears to be a dead variable.  The &#8216;reset&#8217; formula prevents the initial comma and also allows a separate accumulation for each group. This is described in the original formula page but probably not very clear here.</p>
<p>So I tested my version of this formula with a grouped report and found that the &#8216;reset&#8217; formula needs to be changed for this expanded formula.  It should also reset the variable &#8216;SetCnt&#8217; back to the number 1 at the beginning of each group. </p>
<p>Your version does work better if there is no need to have a group reset.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Apending Strings in v8.5 into one long string over 256 Chars by Dan_Burleson</title>
		<link>http://kenhamady.com/cru/archives/130#comment-42</link>
		<dc:creator>Dan_Burleson</dc:creator>
		<pubDate>Tue, 04 Mar 2008 05:15:24 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/archives/130#comment-42</guid>
		<description>Ken,

Thanks very much for all that you do in putting this Crystal information out there.

In this blog entry the code from Shelly generally works, but includes dead code and dead variables.  Note that the variable ChCnt is only set to the value of 2 (other than 0 initially), but is tested for a value of 1.

Below I have eliminated the dead code and variable plus I added a simple test that eliminates the comma from the beginning of the resulting composite string.

&lt;code&gt;WhilePrintingRecords;
StringVar Item:= {your.stringfield};
StringVar Chain;
NumberVar ChCnt;
NumberVar SetCnt;
StringVar Set1;
StringVar Set2;
StringVar Set3;
StringVar Set4;
StringVar Set5;&lt;/code&gt;

&lt;code&gt;if Length(Chain) + Length(Item) &#62; 200
            then (SetCnt := SetCnt + 1;
                    if SetCnt =1 then Set1 := Chain;
                    if SetCnt =2 then Set2 := Chain;
                    if SetCnt =3 then Set3 := Chain;
                    if SetCnt =4 then Set4 := Chain;
                    if SetCnt =5 then Set5 := Chain;
                    StringVar chain := ', ' &#38; Item)
            else if chain = "" 
                    then chain := Item 
                    else chain := chain + ', ' + Item;
Setcnt &#38; ' ' &#38; Chain&lt;/code&gt;


Regards,
Dan</description>
		<content:encoded><![CDATA[<p>Ken,</p>
<p>Thanks very much for all that you do in putting this Crystal information out there.</p>
<p>In this blog entry the code from Shelly generally works, but includes dead code and dead variables.  Note that the variable ChCnt is only set to the value of 2 (other than 0 initially), but is tested for a value of 1.</p>
<p>Below I have eliminated the dead code and variable plus I added a simple test that eliminates the comma from the beginning of the resulting composite string.</p>
<p><code>WhilePrintingRecords;<br />
StringVar Item:= {your.stringfield};<br />
StringVar Chain;<br />
NumberVar ChCnt;<br />
NumberVar SetCnt;<br />
StringVar Set1;<br />
StringVar Set2;<br />
StringVar Set3;<br />
StringVar Set4;<br />
StringVar Set5;</code></p>
<p><code>if Length(Chain) + Length(Item) &gt; 200<br />
            then (SetCnt := SetCnt + 1;<br />
                    if SetCnt =1 then Set1 := Chain;<br />
                    if SetCnt =2 then Set2 := Chain;<br />
                    if SetCnt =3 then Set3 := Chain;<br />
                    if SetCnt =4 then Set4 := Chain;<br />
                    if SetCnt =5 then Set5 := Chain;<br />
                    StringVar chain := ', ' &amp; Item)<br />
            else if chain = ""<br />
                    then chain := Item<br />
                    else chain := chain + ', ' + Item;<br />
Setcnt &amp; ' ' &amp; Chain</code></p>
<p>Regards,<br />
Dan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Convert Nulls and Selecting Nulls by Seyekul</title>
		<link>http://kenhamady.com/cru/archives/118#comment-41</link>
		<dc:creator>Seyekul</dc:creator>
		<pubDate>Mon, 03 Mar 2008 16:32:59 +0000</pubDate>
		<guid isPermaLink="false">http://kenhamady.com/cru/archives/118#comment-41</guid>
		<description>Another approach is to create a SQL expression that works in both the query and the formula:
COALESCE("customer"."postal code",'')</description>
		<content:encoded><![CDATA[<p>Another approach is to create a SQL expression that works in both the query and the formula:<br />
COALESCE(&#8221;customer&#8221;.&#8221;postal code&#8221;,&#8221;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
