Solved

displaying percentages in pie charts

Posted on 2008-06-23
12
852 Views
Last Modified: 2013-12-24
Hi Experts,

I'm trying to create a chart which counts two seperate entries on the same database table, and then outputs the values as a pie chart. I'm a total noob when it comes to coldfusion, although I did manage to get the following to some something similar to what i'd want (see code below).

A few things though:
1) the cfsets within the cfoutput seems like a messy hack to me, is there a better way to approach getting those values from the database?
2) I would like to get the value from count, as well as the percentage comparing the two values. is this possible?

Thanks,

Mike

<cfquery name="MCount" datasource="reporting_db" >

    SELECT Count(*) as Mer from printer_orderwhere Printer_Number_FK = 2;

    </cfquery>

    <cfoutput query="MCount"> <cfset Mercount = Mer></cfoutput>

    

    <cfquery name="DGCount" datasource="reporting_db" >

    SELECT Count(*) as DG from printer_order where Printer_Number_FK = 1;

    </cfquery>

    <cfoutput query="DGCount"> <cfset DCount = DG></cfoutput>
 

    <cfchart show3d="Yes">

      <cfchartseries type="pie">

        <cfchartdata item="Orders To M" value=#MerCount#>

        <cfchartdata item="Orders To DG" value=#DCount#>

        </cfchartseries>

        </cfchart>

Open in new window

0
Comment
Question by:myabko
  • 8
  • 4
12 Comments
 
LVL 63

Expert Comment

by:Zvonko
ID: 21862419
Check this:
<cfquery name="MCount" datasource="reporting_db" >

    SELECT Count(*) as MerCount from printer_orderwhere Printer_Number_FK = 2;

</cfquery>

<cfquery name="DGCount" datasource="reporting_db" >

    SELECT Count(*) as DCount from printer_order where Printer_Number_FK = 1;

</cfquery>

<cfchart show3d="Yes">

  <cfchartseries type="pie">

    <cfchartdata item="Orders To M" value=#MerCount#>

    <cfchartdata item="Orders To DG" value=#DCount#>

  </cfchartseries>

</cfchart>

Open in new window

0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21862434
Only for demo how to reference cfquery items without cfoutput:

<cfquery name="MCount" datasource="reporting_db" >
    SELECT Count(*) as Mer from printer_orderwhere Printer_Number_FK = 2;
</cfquery>
<cfset Mercount = MCount.Mer >

0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21862469
One more note.
Because the result set is a set of records you can access your single row also by index:
<cfquery name="MCount" datasource="reporting_db" >
    SELECT Count(*) as Mer from printer_orderwhere Printer_Number_FK = 2;
</cfquery>
<cfset Mercount = MCount.Mer[1] >
0
 
LVL 63

Accepted Solution

by:
Zvonko earned 500 total points
ID: 21862618
And the labels are displayed like this:

<cfquery name="MCount" datasource="reporting_db" >

    SELECT Count(*) as MerCount from printer_orderwhere Printer_Number_FK = 2;

</cfquery>

<cfquery name="DGCount" datasource="reporting_db" >

    SELECT Count(*) as DCount from printer_order where Printer_Number_FK = 1;

</cfquery>
 

    <cfchart show3d="Yes" chartWidth="500" >

      <cfchartseries type="pie" dataLabelStyle="pattern" >

        <cfchartdata item="Orders To M: " value=#MerCount#>

        <cfchartdata item="Orders To DG: " value=#DCount#>

      </cfchartseries>

    </cfchart>

Open in new window

0
 

Author Comment

by:myabko
ID: 21864997
One more thing, is it possible to not include one of the values from the graph into the list of values for the pattern style label?

For example I have a bar chart which has three values within the series:
1) total
2) MerTotal
3) DGTotal

i would like to have total display 100% while the other two display as a percentage of total, or at least not have total used within the calculation for the other two values, as it's throwing off their percentages. Is this possible?
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21868286
Can you please state why you graded my solution with the grade B?
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:myabko
ID: 21869438
because it was slightly confusing in its four post format.
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21870353
And you expect now support from me? I am now also "slightly confused" by your grading ;-)
0
 

Author Comment

by:myabko
ID: 21871730
I don't expect anything from  you. Experts exchange is supposed to be a community, you know technical people helping other technical people.

If you're in it just for points and grades so be it.
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21871839
OK, you are on my B list. Cheerio.
0
 

Author Comment

by:myabko
ID: 21872055
I suppose you put everyone who gives you a B rating on this B list of yours?

I'd hate to see how you'd react to a solution judged less than satisfactory
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 21872658
A simple Thank You for my valuable time would have been enough. Now you can keep it.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

The technique is by far very Simple! How we can export the ColdFusion query results to DOC file?  Well before writing this I researched a lot in Internet but did not found a good Answer anyways!  So i thought now i should share my small snippet w…
Recently while working on a project I got a very annoying cfdocument has no body error message. I had never seen this error before. So I checked the code. The code was pretty simple; it was Just showing me the cfdocumnt tag and inside that tag a …
This video discusses moving either the default database or any database to a new volume.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

757 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now