Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 868
  • Last Modified:

displaying percentages in pie charts

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
myabko
Asked:
myabko
  • 8
  • 4
1 Solution
 
ZvonkoSystems architectCommented:
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
 
ZvonkoSystems architectCommented:
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
 
ZvonkoSystems architectCommented:
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
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.

 
ZvonkoSystems architectCommented:
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
 
myabkoAuthor Commented:
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
 
ZvonkoSystems architectCommented:
Can you please state why you graded my solution with the grade B?
0
 
myabkoAuthor Commented:
because it was slightly confusing in its four post format.
0
 
ZvonkoSystems architectCommented:
And you expect now support from me? I am now also "slightly confused" by your grading ;-)
0
 
myabkoAuthor Commented:
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
 
ZvonkoSystems architectCommented:
OK, you are on my B list. Cheerio.
0
 
myabkoAuthor Commented:
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
 
ZvonkoSystems architectCommented:
A simple Thank You for my valuable time would have been enough. Now you can keep it.
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 8
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now