Solved

How to pass data from detail section as input of formula in Crystal Reports

Posted on 2014-09-16
9
305 Views
Last Modified: 2014-09-17
For Example :
Crystal Reports "Detail Section A - Sorted By Customer ID 001" - data show as below

ITEM NAME   SHELF NO    QTY

Item A             1                   12,000
item B             2                   14,000
item C             2                   10,000
item D             3                   12,000

Crystal Reports "Detail Section B - Sorted By Customer ID 002" - data show as below

ITEM NAME   SHELF NO    QTY

Item E             4                   16,000
item F             4                   10,000
item G            5                   18,000
item H            6                   14,000


How do I count the percentage of QTY by SHELF NO for each Customer ID?
The results look like :

Customer ID 001
           SHELF NO 1 : 25% ((12,000) / (12,000 + 14,000 + 10,000 + 12,000))
           SHELF NO 2 : 50% ((14,000 + 10,000) / (12,000 + 14,000 + 10,000 + 12,000))
           SHELF NO 3 : 25%
Customer ID 002
           SHELF NO 4 : 44.8276%
           SHELF NO 5 : 31.0345%
           SHELF NO 6 : 24.1379%

No need to get report like this - just like to know how to pass SHELF NO and QTY into formula or any other way also can get the same result.
Please help
0
Comment
Question by:City_Of_Industry
[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
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 40326783
From:
http://devshed.us/Blogs/tabid/227/EntryId/31/Percentage-of-Total-field-in-a-Crystal-report.aspx

{myDatasource.QTY } % Sum ({myDatasource.QTY})

Open in new window


I would assume this could also go in the group footer.
0
 

Author Comment

by:City_Of_Industry
ID: 40326807
To be more specific - I need all those number of percentage as variables and use them as one element of formula in other sub-report's detail section
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 40327065
To accomplish this you need to

1.  Group by the Customer ID
2.  Group by the Shelf No

Shelf Percent is calculated with

Sum({Qty},{Shelf Number}) / Sum({Qty}, {Customer ID})

Put the formula in the Shelf Group Header or Footer

mlmcc
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 35

Expert Comment

by:James0628
ID: 40327612
... and use them as one element of formula in other sub-report's detail section
You want to pass these values to a subreport?

 Assuming that the answer is "Yes" ...

 Where is that "other" subreport?

 Since you said "other" subreport, where are the quantity values that you're using to calculate those %'s located?  Are they in the main report or in a different subreport?

 The answers to those questions may determine the answer to the following question:
 Are you just trying to pass the values (%, etc.) for one shelf at a time to the subreport?
 Or are you trying to pass the values for multiple shelves, maybe all of them, to the subreport at the same time?

 James
0
 

Author Comment

by:City_Of_Industry
ID: 40328305
Thank you James,

                 I was trying to pass all percentage (SHELF NO 1 - 25%, SHELF NO 2 - 50%, ...) to another subreport in same main report (For example : This main report contains five subreports : subreport 1, subreport 2, ... subreport 5 (they are from different tables)

                 Subreport 1 - have all ITEM NAME, SHELF NO and QTY information - Can I pass all percentage data - calculated from subreport 1 (or all ITEM NAME, SHLEF NO and QTY) data to subreport 5 in same main report? (I tried but only get the first row of data - Item A from subreport 1 Detail Section)
0
 
LVL 100

Accepted Solution

by:
mlmcc earned 400 total points
ID: 40328388
To really be able to help with this we probably need to see the report file so we can understand where the subreports are and the data available to them.

How are you passing data that you only get 1 row?

Are you SHARING an array variable?

The basic method of takes 3 formulas

Main Report - I generally put this in the report header

WhilePringintRecords;
Shared NumberVar Array Percents;
''

Open in new window


In the subreport you would build the array

WhilePringintRecords;
Shared NumberVar Array Percents;
Local NumberVar Index;

ReDim Preserve Percents[4];
For Index := 1 to 4 do
   Percents[Index] := Some Formula;
''

Open in new window


In the other subreport (must be in a section after the subreport that fills the data)

WhilePringintRecords;
Shared NumberVar Array Percents;
 CODE TO USE THE ARRAY OF VALUES

Open in new window


mlmcc
0
 
LVL 35

Assisted Solution

by:James0628
James0628 earned 100 total points
ID: 40328769
If you want to pass multiple values for multiple fields (eg. SHELF NO and QTY), then you may need multiple arrays.

 A CR array can have up to 1000 elements, so if SHELF NO will always be 1000 or less, then you could use that as the index for the array(s).  The data for shelf 1 goes in the first element in the array(s), the data for shelf 12 goes in the 12th element, and so on.

 If shelf # could be > 1000, then you'd need to store each shelf # in one array, and store the quantity for that shelf in the corresponding element in another array.  The first shelf # and quantity go in the first elements of the arrays, the second set of values goes in the second elements, and so on.


 Your last post indicated that you also want to pass ITEM NAME, but in your first post, you seem to be ignoring that for your totals.  For example, you have shelf # 2 with "item B" and "item C", and you just combined those for the total.  If you want to pass ITEM NAME too, that will complicate things.

 James
0
 

Author Closing Comment

by:City_Of_Industry
ID: 40329114
Thank you James and Michael

As non-programmer and in one man Dept. , I spent lots of time to googling and figure out the solution (Array) according to your guidance. Currently I can pass whole set of data from one subreport to another subreport as elements of formula in there.
I learned a lot from both of your answer above, I really appreciate your help.
Thank you again
0
 
LVL 35

Expert Comment

by:James0628
ID: 40329247
You're welcome.  Glad I could help.

 James
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying 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

Crystal Reports: 5 Tests for Top Performance It is complete, your masterpiece report.  Not only does it meet your customer’s expectations, it blows them out the water, all they want is beautifully summarised and displayed in a myriad of ways. …
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…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

733 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