Content Management Code
  Home arrow Content Management Code arrow Easy Bar Chart
Codewalker Forums 
  Tutorials  
Database Articles  
Miscellaneous  
Navigation Usability  
PEAR Articles  
Programming Basics  
Server Administration  
XML Tutorials  
  Reviews  
Database Book Reviews  
Linux Book Reviews  
Miscellaneous Reviews  
PHP Book Reviews  
PHP Software Reviews  
Server Admin Reviews  
SQL Tool Reviews  
  Code Gallery  
Content Management Code  
Contest Code  
Counters Code  
Database Code  
Date Time Code  
Discussion Board Code  
Email Code  
File Manipulation Code  
GUI Code  
Link Farm Code  
Miscellaneous Code  
Search Code  
Site Navigation Code  
User Management Code  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
Download TestComplete 
Forums Sitemap 
Weekly Newsletter 
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
CONTENT MANAGEMENT CODE

Easy Bar Chart
By: Codewalkers
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 3 stars3 stars3 stars3 stars3 stars / 5
    2002-11-05

    Table of Contents:

    Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    guess you already had the Idea of this class. It create a Dynamic Bar Chart of your Dynamic Report, This class can be used for Finance Report, Site Log Report, or any other application that need Bar Chart Auto Generation

    By : hermawan

    <?php
    /***
    Class Name : easyChart Class
    Purpose : Create Simple Bar Chart for Statistic
    Input : Retrieved Data from DB
    Author : Hermawan Haryanto
    Email : hermawan@codewalkers.com
    Website : http://hermawan.com
    Create Date: Sept 28 2001
    Update Date: Nov 27 2002
    ***/
    class easyChart {
    var $title;
    var $width;
    var $height;
    var $bartitle;
    var $barheight;
    var $barwidth;
    var $background;
    var $multiply;
    var $spacebar;
    var $leftspace;
    var $rightspace;
    var $upspace;
    var $bottomspace;
    var $leftlegend;
    var $linecolor;
    var $barcolor;
    var $titlecolor;
    var $legendcolor;
    var $barinfocolor;
    function easyChart () {
    $this->title = "Chart Title";
    $this->background = Array(153,204,102);
    $this->linecolor = Array(240,240,240);
    $this->barcolor = Array(255,255,153);
    $this->titlecolor = Array(111,166,55);
    $this->legendcolor = Array(0,0,0);
    $this->barinfocolor = Array(0,0,0);
    $this->width = 600;
    $this->height = 500;
    $this->barwidth = 20;
    $this->leftspace = 75;
    $this->rightspace = 25;
    $this->upspace = 50;
    $this->bottomspace = 50;
    $this->leftlegend = 10;
    $this->chartlegend = "UG93ZXJlZCBieTogSGVyb";
    }
    function setTitleColor ($color) {
    $this->titlecolor = explode(",",$color);
    }
    function setLegendColor ($color) {
    $this->legendcolor = explode(",",$color);
    }
    function setBarInfoColor ($color) {
    $this->barinfocolor = explode(",",$color);
    }
    function setBarColor ($color) {
    $this->barcolor = explode(",",$color);
    }
    function setLineColor ($color) {
    $this->linecolor = explode(",",$color);
    }
    function setLeftLegend ($leftlegend) {
    $this->leftlegend = $leftlegend;
    }
    function setLeftSpace ($leftspace) {
    $this->leftspace = $leftspace;
    }
    function setRightSpace ($rightspace) {
    $this->rightspace = $rightspace;
    }
    function setTitle ($title) {
    $this->title = $title;
    }
    function setBackground ($color) {
    $this->background = explode (",", $color);
    }
    function setWidth ($width) {
    $this->width = $width;
    }
    function setHeight ($height) {
    $this->height = $height;
    }
    function setBarWidth ($barwidth) {
    $this->barwidth = $barwidth;
    }
    function addBar ($bartitle, $barheight) {
    $this->bartitle[] = $bartitle;
    $this->barheight[] = $barheight;
    }
    function prepare() {
    $this->chartlegend .= "WF3YW4gSGFyeWFudG8gZWFzeUNoYXJ0LmNs";
    $arr = $this->barheight;
    sort ($arr);
    reset ($arr);
    $this->highestvalue = end($arr);
    $this->valueincriement = $this->highestvalue / $this->leftlegend;
    $this->multiply = ( ($this->height-($this->upspace + $this->bottomspace)) / $this->highestvalue);
    $this->spacebar = ( ($this->width - ($this->leftspace + $this->rightspace)) - ($this->barwidth * count($arr) ) ) / (count($arr)+1);
    $this->legendspace = ($this->height - ($this->upspace+$this->bottomspace)) / $this->leftlegend;
    if ($this->barwidth * count($this->barheight) > ($this->width-($this->upspace+$this->bottomspace))) $err = "Bar width is to large";
    if ($err!="") {
    print $err;
    exit;
    }
    }
    function generateChart() {
    $im = ImageCreate($this->width,$this->height);
    $white = ImageColorAllocate($im,255,255,255);
    $background = ImageColorAllocate($im,$this->background[0],$this->background[1],$this->background[2]);
    $black = ImageColorAllocate($im,0,0,0);
    $gray = ImageColorAllocate($im,100,100,100);
    $linecolor = ImageColorAllocate($im,$this->linecolor[0],$this->linecolor[1],$this->linecolor[2]);
    $barcolor = ImageColorAllocate($im,$this->barcolor[0],$this->barcolor[1],$this->barcolor[2]);
    $titlecolor = ImageColorAllocate($im,$this->titlecolor[0],$this->titlecolor[1],$this->titlecolor[2]);
    $legendcolor = ImageColorAllocate($im,$this->legendcolor[0],$this->legendcolor[1],$this->legendcolor[2]);
    $barinfocolor = ImageColorAllocate($im,$this->barinfocolor[0],$this->barinfocolor[1],$this->barinfocolor[2]);
    @ImageFilledRectangle($im,0,25,$this->width,$this->height-15,$background);
    @ImageFilledRectangle($im,1,26,$this->width-2,$this->height-16,$white);
    @ImageFilledRectangle($im,2,27,$this->width-3,$this->height-17,$background);
    @ImageFilledRectangle($im,$this->leftspace,$this->upspace-10,$this->width-$this->rightspace,$this->height-($this->bottomspace-20),$white);
    $titlewidth = strlen($this->title) * ImageFontWidth(5);
    $titlexpos = ($this->width - $titlewidth)/2;
    @ImageString ($im, 5, $titlexpos, 5, $this->title, $titlecolor);
    @ImageString ($im, 1, 0, $this->height - 10, base64_decode($this->chartlegend."YXNzIC0gaHR0cDovL2hlcm1hd2FuLmRtb25zdGVyLmNvbSAtIEdQTA=="), $black);
    for($i=0;$i<=$this->leftlegend;$i++){
    $legendx = 5;
    $legendy = $this->upspace + ($this->legendspace * $i) - 6;
    @ImageString($im, 2, $legendx, $legendy, $this->highestvalue-($this->valueincriement*$i), $legendcolor);
    @ImageLine ($im, $this->leftspace, $legendy+6, $this->width - $this->rightspace, $legendy+6, $linecolor);
    }
    for($i=0;$i<count($this->barheight);$i++){
    $j=$i+1;
    $x1 = ($j * $this->spacebar) + ($i * $this->barwidth) + $this->leftspace;
    $y1 = $this->height - ($this->barheight[$i]*$this->multiply) - $this->upspace;
    $x2 = $x1 + $this->barwidth;
    $y2 = $this->height - $this->bottomspace;
    $bartitlewidth = strlen($this->bartitle[$i]) * ImageFontWidth(2);
    $centerofbar = $x1 + ($this->barwidth / 2);
    $bartitlex = $centerofbar - ($bartitlewidth/2);
    $bartitley = $y2 + 5;
    @ImageFilledRectangle($im, $x1, $y1, $x2, $y2, $barcolor);
    @ImageString($im, 2, $bartitlex, $bartitley, $this->bartitle[$i], $barinfocolor);
    }
    @ImageJPEG($im);
    @ImageDestroy($im);
    }
    };

    // HERE IS THE EXAMPLE TO USE THE CHART CLASS
    $chart = new easyChart(); // Object initialized
    $chart->setTitle("This is my Bar Chart Title"); // Title of Chart
    $chart->setBackground("153,204,102"); // Background of chart [opt]
    $chart->setLineColor("225,225,225"); // Line color separator [opt]
    $chart->setBarColor("255,255,153"); // Bar color [opt]
    $chart->setTitleColor("111,166,55"); // Color Title [opt]
    $chart->setLegendColor("0,0,0"); // Legend Color [opt]
    $chart->setBarInfoColor("0,0,0"); // Bar Info Color [opt]
    $chart->setWidth(600); // Width of Chart
    $chart->setHeight(500); // Height of Chart
    $chart->setBarWidth(20); // Bar Width
    $chart->setLeftSpace(75); // Left Space
    $chart->setRightSpace(25); // Right Space
    $chart->setLeftLegend(10); // Left Legend

    $chart->addBar("Jan",12000000); // Sample content of chart
    $chart->addBar("Peb",15000000);
    $chart->addBar("Mar",10000000);
    $chart->addBar("Apr",9000000);
    $chart->addBar("Mei",18000000);
    $chart->addBar("Jun",12000000);
    $chart->addBar("Jul",160000);
    $chart->addBar("Ags",14000000);
    $chart->addBar("Sept",12000000);
    $chart->addBar("Okt",17000000);
    $chart->addBar("Nop",14000000);
    $chart->addBar("Des",9000000);

    $chart->prepare(); // Chart Preparation
    $chart->generateChart(); // Chart Generation
    ?>
    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

    More Content Management Code Articles
    More By Codewalkers

     

    IBM® developerWorks developerWorks - FREE Tools!


    NEW! Accelerating Software Innovation on i on Power Systems

    Attend this launch webcast with Scott Hebner, Vice President of IBM Rational Marketing and Strategy, for an overview of Rational’s new software offerings and resources to help modernize and accelerate software innovation on i on Power Systems – while ensuring past application investments are protected and continue to grow. Learn how these solutions are helping customers extend their core i5/OS solutions toward modern architectures such as SOA and web technologies to deliver business improvements that stand the test of time.
    FREE! Go There Now!


    NEW! Cook up Web sites fast with CakePHP, Part 4: Use CakePHP&apos;s Session and Request Handler components

    CakePHP is a stable production-ready, rapid-development aid for building Web sites in PHP. This "Cook up Web sites fast with CakePHP" series shows you how to build an online product catalog using CakePHP.
    FREE! Go There Now!


    NEW! Hello World: Learn how to install and use the Rational Asset Manager Eclipse client

    In this tutorial, you can learn how to install and configure the IBM Rational Asset Manager Eclipse client, explore the different views in the Asset Management perspective, learn various search techniques, work with existing assets, and submit a new asset.
    FREE! Go There Now!


    NEW! IBM Rational ClearCase Innovator's Series

    Learn from the best! Find out how developers use Rational ClearCase to be more flexible, innovative and deliver higher quality code in the Rational ClearCase Power Users eKit. This complimentary eKit provides a collection of materials, like articles, whitepapers, and demos that can help you become a power user of Rational ClearCase.
    FREE! Go There Now!


    NEW! Maintaining QoS and Process Integrity in an SOA Environment

    This webcast outlines the best practices that must be instituted to gain the maximum benefit from SOA while maintaining high quality of service. Whether you are deploying new applications or managing and monitoring your existing infrastructure, learn how you can ensure high quality of services with SOA based solutions from IBM. All registrants who attend this live Web Seminar will receive complimentary access to a white paper titled “Maintaining QoS in an SOA Environment”.
    FREE! Go There Now!


    NEW! Rational Modeling Extension for Microsoft.Net

    Rational Modeling Extension for Microsoft .NET enhances usability for code generation supporting a more intelligent refactoring. The latest enhancements enable organizations with Java and .NET systems and software development maintain architectural integrity across heterogeneous platforms.
    FREE! Go There Now!


    NEW! Trial download: IBM Rational Tester for SOA Quality V7.0.1

    Get a free trial download of the latest version of IBM Rational Tester for SOA Quality V7.0.1, a functional and regression testing tool that enables the creation, comprehension, modification and execution of testing GUI-less Web services.
    FREE! Go There Now!


    NEW! Using IBM Rational Developer for System z and IBM Rational ClearCase together to manage application development

    Whether you are creating new applications or modifying existing ones, managing integration of new components with traditional z/OS elements is a critical part of building and deploying modern applications. Listen to this webcast to see how IBM can help you optimize your development process using an IDE like Rational Developer for System z that integrates with management tools, such as ClearCase to manage your application development on mainframes.
    FREE! Go There Now!


    NEW! Whitepaper: Delivering SOA solutions: service lifecycle management

    The unprecedented scope of a service-oriented architecture (SOA) initiative brings to the forefront a number of management and governance issues that were sidestepped in the past. The key to a successful SOA implementation is managing and governing activities throughout the entire SOA delivery lifecycle by ensuring that services conform to the needs of all of the business’s stakeholders. Learn how service lifecycle management allows the business to ensure that the process by which services are defined, created, tested, deployed, optimized and retired is manageable, repeatable and auditable.
    FREE! Go There Now!


    Refresh! IBM Rational Systems Development Solution eKit

    With IBM Rational Systems Development Solution, you can deliver products faster with higher quality. Within this kit, Read the “Model Driven Systems Development” white paper to see how to improve product quality and communication. Then check out the rest of the e-Kit to learn more about important topics that can affect the success of any software project through customer examples, tutorials, informative Webcasts, and best practices for designing, building and managing systems. From start to finish, at every stage in your projects, Rational Systems Development Solution can help your company reach its full potential.
    FREE! Go There Now!



    All FREE IBM® developerWorks Tools!

    CONTENT MANAGEMENT CODE ARTICLES

    - V2 CMS - Content Management System
    - VSNS Lemon
    - Country List For Forms Using SQL
    - eggblog
    - Table generation class
    - STP Simple Template Parser
    - class Vision_To_Form_Elements
    - Cascade Drop Down
    - Cura - CMS
    - Syntax Desktop
    - 216 color table
    - Simple Mini Poll class library (SimPoll)
    - Regex Generator
    - Siteseed
    - Company WebSite Builder PRO





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 5 Hosted by Hostway
    Stay green...Green IT