Crystal reports 11: how do you debug a crystal report? - crystal-reports

When I'm creating a crystal report and when I add fields and fields to a database, the report outputs a completely blank report for the invoice I am creating. How do you debug a crystal report?
Do you setup markers or flags to output? Is there an error log somewhere which describes which field the report is having an issue with etcs?

Your 'no records' empty report can be caused by some inexpected 'default' links between tables that CR would add each time you modify the list of tables and views needed for the report. There is this 'intelligent linking' option that can even automatically create some recursive links. Be carefull while looking at these in the relations screen, as they might not be viewable 'at once'. Another situation leading to 'empty' reports is when tables are linked with an inner join instead of an outer join, or when outer joins should be switched between left and right.
If you cannot find which relation(s) is causing your report to be empty (sometimes it is not so obvious), I advise you to make some trial & errors test by adding/removing tables or modifying your links.

You should get an error if there is an issue with the report. I'm guessing there is some logic in a join or display formula that is blanking the report. Can you verify the datasource is correct?
You can catch more errors if you handle the CrystalReportViewer error event (are you using .net?). I don't have much experience with the VS built-in designer. I use CR XIr2 standalone designer, which makes it much much easier to build reports.

Related

Adding second table field to report causes report to go blank - Crystal Reports 14.1.2.1121 using SQL Server Database source

I have a report pulling all fields from a single SQL Server table that works well. I need to add a second table to pull additional data, but doing so causes the entire report to go blank and number of records to drop to 0, from 242 without the added field from the second report. I have no grouping in the report either.
Reviewing Database Expert Links I see multiple links between the two tables, but the field in question, (CUSTPO_27, a String field), does not appear in the original table and therefore has no link. The field needs to be in the Details section of the report along with the data from the original table.
I have run Verify Database and get the "The database is up to date" message.
Running Dependency Checker finds no errors, even with the troublesome field added.
I am fairly new to Crystal Reports, but feel like I am missing a step to be able to see the second table field in the report, so any insight or direction would be greatly appreciated.
I would be happy to add code, but I don't see where to view the code in Crystal, (again, I am a newbie!)
Adding that field probably forced Crystal to join to a new table, and that join failed to find a matching record. So check your join logic.
Crystal doesn't update your database. It's Read Only.

Items in details repeating itself in Crystal Reports

Situation
I got stucked to some weirdo in Crystal reports. See the image below of my RAW RPT.
Everything in my report is coming fine except the details part. You can see there DetailsSection6, in which i have few columns(10-15). This rpt is binded with the XSD file and that XSD is then binded with its concerned dataset at runtime. Dataset has around 10 tables from which two tables are concerned here.
PROC_CONS_SUBBILL_REPORT - Header Table with single row.
CON_T_SUBBILL_DTL - Detail table having multiple rows based on the VoucherNo of above table.
What I want
I need to display all records of detail table in tablular format based upon the VoucherNo. Say in detail table (SUBBILL_DTL), I am having 25 records, but when table is rendered on the rpt, its starts repeating itself, sometimes twice sometimes thrice.
Kindly note:
My SP is returning the expected and correct data
RPT has 5-6 SubReports and in one report PROC_CONS_SUBBILL_REPORT table is used.
There is no Relationships in the report in the form of keys.
What I did
Tried removing all keys between the tables.
Suppressed the Detail Section but it suppresses the entire data.
Suppress the detail section with formula
{CON_T_SUBBILL_REPORT.CODE}=previous( {CON_T_SUBBILL_REPORT.CODE})
but still its not working.
I am totally lost. Kindly help.
Normally records are duplicated when the linking is wrong, In your case instead of formula try to use the option Select Distinct Records under Database tab.
This is a little late, but in case somebody else is looking for an answer.
I tried all the things above and nothing worked. Crystal reports was changing my query.
It worked in SQL Server but not in Crystal Reports.
The way I fixed it was by creating a view of my query on Sql Server and using the view
in my Crystal Report. It fixed everything.

Subreport Inner-join showing different results than same Main report inner-join

Crystal Reports is used to create templates for another application in my case. A value is passed from the other application to a specific table, which I can then, in crystal, use with inner joins to other tables to specify the values on the rest of the report.
This has worked well in situations where I have not being using subreports. In my main report, I have 4 tables inner joined, and they are correctly being passed a certain value from this program.
My problem lies with attempting to create a coverpage for this particular report. I needed a detail section on the coverpage, so I looked to creating a subreport on the report header of the main report. I used the same tables in the subreport itself with the same inner joins. It receives extra values. This is the exact inner join design with the same tables from the main report, yet it is showing different results.
Does anyone have a solution to this? I am particularly new to crystal reports, and have just avoided subreports to avoid deeper complication. I believe I may just be able to pass the criteria value from the main report through a shared variable or parameter as an alternative to my current attempt, but I am not sure how.
Thanks.
It sounds like you are taking the right approach by using a subreport. You did add the parameter to the subreport and linked it through from the main report?
I suggest you view the SQL query for both the main report and subreport to identify the discrepancy.

Crystal Reports Data disappearing

I am currently designing a report in crystal reports.
In the header I have the standard fields like Date/Time and a bunch of variables. In some cases one of the variables does not resolve to anything (it is empty).
When that variable is empty all the report data disappears.
I tried tricking Crystal Reports with creating a formular field, but again no luck!
Any ideas?
All data is received from a MySQL database and the field that causes the trouble is based on a custom query (command).
The actual query:
SELECT `teacher_name`
FROM `class_schedule`
LEFT JOIN (`teacher`, `cs_class`)
ON (`class_schedule`.`class_supporter`=`teacher`.`teacher_id` AND
`cs_class`.`cs_id`=`class_schedule`.`cs_id`)
WHERE `class_id`={?classId}
I have not worked with MySQL much at all. That said, I have never seen that construct for LOJs, so I am questioning the format. Pardon my ignorance if I am uninformed.
If you have CR Developer available, it might be interesting to see what query CR comes up with, and I guess a trace will show what is actually submitted to MySQL.
SELECT `teacher_name`
FROM `class_schedule` cs
LEFT outer JOIN `teacher` tch
on `cs`.`class_supporter`=`tch`.`teacher_id`
Left outer join `cs_class` csc
on `csc`.`cs_id`=`cs`.`cs_id`
WHERE `class_id`={?classId}
is the best I can recommend trying.

Crystal Reports 2008: field shows as blank even when data is returned from the database?

Issue
I have a report in CR 2008 that I inherited from someone else
A sub-report in the report pulls its data from a database view
A field exists, "TRANSCBFLAG" in the view -- it's a string with values of "Y", "N", or "D"
The view has these values
The report displays every other value, but not this one field.
Attempted Resolutions
Suppression attribute? -- No, it's unchecked
Field type issue? -- No, it's a string
Font and background? -- No, it's black font / white background
Suppression / formatting formulas? -- no formulas on display or suppression in subreports or report
Space constraints? -- stretched the field out below all other fields -- still shows as blank
Check to make sure Crystal can see the data -- right-clicked field, select "Browse Field Data", and it came back with the three potential values. So, it can see them in the DB at least, and potentially even in the fields itself.
Just a local Crystal Issue? -- No; I uploaded the report to Business Objects XI for a test and all fields still display except that one.
Question
Where in the process could I be going wrong? It shows when I run the view directly from the database, and every other field shows perfectly in Crystal the first time.
I would assume you did 'Verify Database' but if not that's the first thing I would have tried.
And just a piece of advice... always, always, always run your reports off of a command you write yourself instead of using Crystal's GUI to let you select tables/views/procs. This allows you to make pretty much any kind of change to the query you want and even completely change the source from where your data is coming without wiping all your report controls away. If the modified query has the same field names it will always work seemlessly and if not it will give you a chance to redirect which fields are supposed to come from where. Otherwise... you will have to recreate everything as you just experienced.
There may be a more correct answer, but in a pinch, removing the view from my report (thus removing all fields), adding the view again, and redoing all fields caused the field to display correctly. Not sure how or why.
A further explanation would be appreciated, but for now, that's all I've got.
I had the same issue on a new report I'd created and finally found that the issue was in one of the parameters I used in my command SQL - it had double }} at the end. Eliminating one of the }s allowed the query to return data.
That said, go over the SQL in your database expert with a fine toothed comb, and you'll likely find the issue!