CFLib.org – Common Function Library Project

returnRandomHEXColors(numToReturn)

Last updated June 12, 2009

author

Pablo Varando

Version: 0 | Requires: CF5 | Library: UtilityLib

Description:
This UDF will allow you to generate random colors that you can use with your charts. Pass in a numbr of colors and it will randomly generate as many colors are you requested in a comma delimited list to pass into a cfchartseries colorlist.

Return Values:
Returns a string.

Example:

<cfquery name="qGetTutorialStats" datasource="#application.dsn#">
        select    tutorialID, title, views
        from    paidTutorials
        where    authorID = #val(session.authorID)#
    </cfquery>

    <!--- my stats --->
    <cfchart format="flash" title="Tutorial Views" chartwidth="700" chartheight="400" show3d="yes">
        <cfchartseries type="bar" colorlist="#returnRandomHEXColors(qGetTutorialStats.recordCount)#">
            <cfloop query="qGetTutorialStats">
                <cfchartdata item="#title#" value="#views#" />
            </cfloop>
        </cfchartseries>
    </cfchart>

Parameters:

Name Description Required
numToReturn Number of colors to return. Yes

Full UDF Source:

/**
 * Generate random colors for cfcharts!
 * 
 * @param numToReturn      Number of colors to return. (Required)
 * @return Returns a string. 
 * @author Pablo Varando (webmaster@easycfm.com) 
 * @version 0, June 12, 2009 
 */
function returnRandomHEXColors(numToReturn) {
    var returnList = ""; // define a clear var to return in the end with a list of colors
    var colorTable = "A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9"; // define all possible characters in hex colors
    var i = "";
    var tRandomColor = "";
    // loop through and generate as many colors as defined by the request
    for (i=1; i LTE val(numToReturn); i=i+1){
        // clear the color list
        tRandomColor = "";
        for(c=1; c lte 6; c=c+1){
            // generate a random (6) character hex code
            tRandomColor = tRandomColor & listGetAt(colorTable, randRange(1, listLen(colorTable)));
        }
        // append it to the list to return in the end
        returnList = listAppend(returnList, tRandomColor);
    
    }
    // return the list of random colors
    return returnList;
}

Search CFLib.org


Latest Additions

Raymond Camden added
QueryDeleteRows
November 04, 2017

Leigh added
nullPad
May 11, 2016

Raymond Camden added
stripHTML
May 10, 2016

Kevin Cotton added
date2ExcelDate
May 05, 2016

Raymond Camden added
CapFirst
April 25, 2016

Created by Raymond Camden / Design by Justin Johnson