[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

crystal display string

Posted on 2010-09-20
17
Medium Priority
?
490 Views
Last Modified: 2012-05-10
I just want to add a asterisk on the end of a string value if it meets a criteria and if it doesn't I want to return the original value.  Here is my code under display string for the field I am working on.  What happens is that the else statement return blank.

if {Command.RECIPE_LINES_PART_CODE} <> "" then
{Command.PART_CODE}+ "*"
else  ({Command.PART_CODE})

0
Comment
Question by:Amerilab
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 3
  • +3
17 Comments
 
LVL 26

Expert Comment

by:Kurt Reinhardt
ID: 33719916
Try the following:

If
  (
  Not (IsNull({Command.RECIPE_LINES_PART_CODE}))
  OR {Command.RECIPE_LINES_PART_CODE} <> ""
  )
Then
//as a force of habit, I alway use an ampersand to concatenate objects, since the + only works between strings, but & works with all datatypes
  {Command.PART_CODE} & "*"
Else
  {Command.PART_CODE}

Also, have you verified that {Command.PART_CODE} really has data for the records in question?

~Kurt
0
 

Author Comment

by:Amerilab
ID: 33719961
yes it does.  When I put in the code it blanks out the one that doesn't meet the first criteria.

Tried it same result.
0
 
LVL 26

Expert Comment

by:Kurt Reinhardt
ID: 33720102
That's odd.  The code basically says: If field 1 exists, then concatenate field 2 with * otherwise field 2 by itself. You're saying field 2 exists in this scenario, even if field 1 doesn't?

1)  Is all the code in a single command or are there multiple commands/table joins?
2)  Are you running this comparison in the detail section of the report or in a header/footer?

~Kurt
0
Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

 

Author Comment

by:Amerilab
ID: 33720131
I am running it right on the field in the report.   If I have nothing in the display string code then all data comes up.  But when I put it back in the report only show some of the data.  The data that meets the first criteria.  
0
 
LVL 101

Expert Comment

by:mlmcc
ID: 33722075
Add WhilePrintingRecords; as the first line.

If you don't use that it may evaluate it early.

mlmcc
0
 
LVL 19

Expert Comment

by:GJParker
ID: 33723747
Instead of using the display string formula add a new formula and place thsi and teh 2 fields recipe_lines_part_code and part_code onto your report and show us a screenshot of teh report indicating which records are returning the wrong results.
0
 
LVL 35

Accepted Solution

by:
James0628 earned 1000 total points
ID: 33732272
I think Kurt may be right about nulls being the issue, but I also think he got some of the logic wrong.  I believe what he posted is saying if RECIPE_LINES_PART_CODE is not null or is not "".  Since it can't be both null and "", it will always _not_ be one or the other, so the ELSE will never be executed.  Try this:

if not IsNull ({Command.RECIPE_LINES_PART_CODE}) and
 {Command.RECIPE_LINES_PART_CODE} <> "" then
{Command.PART_CODE}+ "*"
else  ({Command.PART_CODE})


 I'm assuming that you want to treat a null like an empty string, so that says if the field is not null and not the empty string, add the "*", otherwise don't add the "*".

 James
0
 
LVL 4

Expert Comment

by:msd1305
ID: 33732848
go to File->Report Options.

Select "Convert Database NULL values to default" and "Convert otjer NULL values to default" . This will replace your null values with proper values i.e. NULL string with "" and NULL integer with 0.
0
 
LVL 35

Expert Comment

by:James0628
ID: 33734094
msd1305 has a good point.  If nulls are the problem, that would be another way to handle this.  Actually, it's what I would usually do for something like this.  I guess I was too focused on the formula to think of it.  :-)

 James
0
 
LVL 4

Expert Comment

by:msd1305
ID: 33737434
Amerilab, dont u think u should have accepted my comment as the solution??
0
 

Author Comment

by:Amerilab
ID: 33737489
Yes.  I apologize.  I accepted the wrong one.  Is there anyway to change this?  
0
 

Author Comment

by:Amerilab
ID: 33737604
How do I change the accepted answer?
0
 
LVL 26

Expert Comment

by:Kurt Reinhardt
ID: 33738817
If anything, I suggest you split points between at least James and msd1305.  The issue, based on your acceptance, was obviously due to NULLs.  James corrected the syntax in my original suggestion, which accounted for both NULLs and empty strings.  MSD1305's converts NULLs to empty strings - both accomplish the same thing.

Regardless, I actually recommend against converting NULLs to empty strings. There's a specific scenario in which Crystal Reports will erroneously filter out records based on that setting.  It involves  having  parameter against the field that contains NULL values.  That specific scenario may not apply to this report, but it's good to know about as a "best practices" rule of report design (the issue has existed in every version of Crystal Reports since at least 8 - 2008).  Here are some links that demonstrate the problem:

https://www.box.net/shared/yd65ff3k8h (sample report)
https://docs.google.com/present/view?id=ddcfj5p5_78fbcxb9cz (explained in this presentation from the 2009 conference)

~Kurt
0
 
LVL 4

Assisted Solution

by:msd1305
msd1305 earned 1000 total points
ID: 33740846
I went through the document though I do not really see it as a disadvantage considering the problem we face when formulas dont work properly with NULL values (even the isnul()l function does not always work as it should be ) and we end up wasting lot of time to find out the reason.
0
 
LVL 101

Expert Comment

by:mlmcc
ID: 33759375
Just accept the comments you want

http://www.experts-exchange.com/help.jsp#hs=29&hi=407

mlmcc
0
 

Author Closing Comment

by:Amerilab
ID: 33932461
Thanks
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I hate sub reports and always consider them the last resort in any reporting solution.  The negative effect on performance and maintainability is just not worth the easy ride they give the report writer.  Nine times out of ten reporting requirements…
Hello everyone, Hope you find this as helpful as we did. We have on the company I work for an application built in Delphi V with Crystal Reports 8. We all know that Crystal & Delphi can be temperamental sometimes and the worst thing is, nearly…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

650 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question