php报表的使用:

1、到官网(http://jpgraph.net/)下载,建议下载jpgraph-3.0.7.tar.gz版本

2、解压后有两个文件夹

docportal:使用手册

src:报表核心文件

3、配置核心文件(对于src文件夹内容的操作)

1)创建一个jpgraph文件夹

2)将和Examples同级目录下的其它内容放在jpgraph文件夹下

3)将jpgraph放在Examples里

4)查找效果图。Examples里的每个php文件对应一个报表,可以在jpgraph11-3.0.7\docportal\chunkhtml\images查看报表的效果图,效果图的文件名和对应php文件的文件名相同

(如果你打开Examples文件夹里的某一个文件,你会发现有这样一句代码:require_once ('jpgraph/jpgraph.php')。但你却在该文件夹里没有找到jpgraph文件夹。其实jpgraph文件夹里的内容都放在和Examples同一目录下。因此你只要在Examples里创建一个jpgraph文件夹,并把和Examples同级目录的其它内容放到该文件夹里即可。)

4、引用方式:

1)直接访问php文件,如报表的效果图文件名为example27.1.png,则直接访问example27.1.php即可

2)作为图片引用,如<img alt="报表" src="example27.1.php" />

5、中文乱码处理

当你的文件为utf8时,会出现中文乱码,这时可使用iconv()将中文字符串转成gb2312。

例如:

$graph->title->Set(iconv("utf-8", "gb2312//ignore", "处理情况统计"));
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

具体详见:http://blog.csdn.net/ms_x0828/article/details/5555864

6、案例分析

1)柱形图1

代码:

 <?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php'); $datay1=array(13,8,19);
$datay2=array(3,0,0);//多增加的数据 // Create the graph.
$graph = new Graph(650,450);//画布大小
//$graph->SetScale('textlin');
$graph->SetScale('textlin',-10,25);//设置y轴范围为5-75
$graph->yaxis->scale->ticks->Set(5);//设置y轴刻度为10
//$graph->xaxis->scale->ticks->Set(5);
$graph->xaxis->title->Set("X轴");
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,14);
$graph->yaxis->title->Set("Y轴");
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD,14); $graph->SetMarginColor('white');//设置边框背景颜色
$graph->SetMargin(40,40,10,10);//设置图在边框中的位置 // Setup title
$graph->title->Set('Acc bar with gradient呵呵');//设置标题,默认的标题不支持中文
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,14); //设置字体类型和大小。第一个参数决定是否能显示中文。参数值可参考jpgraph_ttf.inc.php文件 // Create the first bar
$bplot = new BarPlot($datay1);
$bplot->SetFillGradient('AntiqueWhite2','AntiqueWhite4:0.8',GRAD_VERT);//设置柱体颜色
//$bplot->SetFillgradient('orange','darkred',GRAD_VER); //设置柱体颜色
$bplot->SetColor('orange');//柱体边界的颜色 // Create the second bar
$bplot2 = new BarPlot($datay2);
$bplot2->SetFillGradient('olivedrab1','olivedrab4',GRAD_VERT);//柱体中增加部分的颜色
$bplot2->SetColor('red');//柱体中增加部分的边框颜色 // And join them in an accumulated bar
$accbplot = new AccBarPlot(array($bplot,$bplot2));
$graph->Add($accbplot); $graph->Stroke();
?>

accbarframeex01.php

2)柱形图2
代码:

 <?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php'); // Some data
$datay=array(7,19,11,4,20); // Create the graph and setup the basic parameters
$graph = new Graph(600,500,'auto');
$graph->img->SetMargin(40,30,40,50);
$graph->SetScale("textint");
$graph->SetFrame(true,'blue',1); //边框边界的颜色
$graph->SetColor('lightblue');//柱体图背景颜色
$graph->SetMarginColor('lightblue');//边框背景颜色 // Setup X-axis labels
$a = $gDateLocale->GetShortMonth();//x轴用月份显示
$graph->xaxis->SetTickLabels($a);
$graph->xaxis->SetFont(FF_FONT1);
$graph->xaxis->SetColor('darkblue','black');//x轴的颜色 // Setup "hidden" y-axis by given it the same color
// as the background (this could also be done by setting the weight
// to zero)
$graph->yaxis->SetColor('lightblue','darkblue');//y轴颜色
$graph->ygrid->SetColor('white');//y轴分割线的颜色 // Setup graph title ands fonts
$graph->title->Set('Using grace = 0测试');
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//FF_SIMSUN显示中文
$graph->xaxis->SetTitle('Year 2002','center');
$graph->xaxis->SetTitleMargin(10);//x轴标题显示的位置
$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD); // Add some grace to the top so that the scale doesn't
// end exactly at the max value.
$graph->yaxis->scale->SetGrace(0);//修改y轴显示的最大的值 // Create a bar pot
$bplot = new BarPlot($datay);
$bplot->SetFillColor('darkblue');//柱体填充的颜色
$bplot->SetColor('darkblue');//柱体边框颜色
$bplot->SetWidth(0.5);//设置柱体的宽度,取值:0~1
$bplot->SetShadow('darkgray');//柱体阴影颜色 /*显示和设置柱体上数字的样式*/
$bplot->value->Show();
$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);//柱体上数字的字体和大小
$bplot->value->SetFormat('$%d');//柱体上数字的格式
$bplot->value->SetColor('darkred');//柱体上数字的颜色
$bplot->value->SetAngle(45);//柱体上数字的倾斜度
$graph->Add($bplot); // Finally stroke the graph
$graph->Stroke();
?>

grace_ex0.php

3)折线图

代码:

<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php'); // Some (random) data
$ydata = array(11.1,3,8,12,5,1,9,13,5,7); // Size of the overall graph
$width=650;
$height=550; // Create the graph and set a scale.
// These two calls are always required
$graph = new Graph($width,$height);
$graph->SetScale('intlin');
$graph->SetShadow(); // Setup margin and titles
$graph->SetMargin(40,20,20,40);
$graph->title->Set('Calls per operator');//标题
$graph->subtitle->Set('(March 12, 2008)');//副标题
$graph->xaxis->title->Set('Operator x轴');
$graph->yaxis->title->Set('# of calls y轴'); $graph->yaxis->title->SetFont( FF_SIMSUN , FS_BOLD );
$graph->xaxis->title->SetFont( FF_SIMSUN , FS_BOLD ); $graph->yaxis->SetColor('blue'); // 折线
$lineplot=new LinePlot($ydata);
$lineplot->SetColor( 'blue' );
$lineplot->SetWeight( 2 ); // 折线图颜色
$lineplot->mark->SetType(MARK_UTRIANGLE); /*折线处的标记*/
$lineplot->mark->SetColor('blue');
$lineplot->mark->SetFillColor('red'); $lineplot->value->Show();//在折线处显示数据 // Add the plot to the graph
$graph->Add($lineplot); // Display the graph
$graph->Stroke();
?>

example3.3.php

4)多条折线图

<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php'); // $dateUtils = new DateScaleUtils();
// Some (random) data
$ydata = array(11,3,8,12,5,1,9,13,5,7);
$y2data = array(1,5,1,22,5,9,1,3,15,17);
//x轴显示日期
$xdata=array("2015-01-01","2015-01-02","2015-01-03","2015-01-04","2015-01-05","2015-01-06","2015-01-07","2015-01-08","2015-01-09","2015-01-10"); //报表长宽
$width=800;
$height=400; // Create the graph and set a scale.
// These two calls are always required
$graph = new Graph($width,$height);
$graph->SetScale('intlin');
// $graph->SetShadow();
$graph->SetFrame(false); // Setup margin and titles
// $graph->SetMargin(40,20,10,40);
$graph->img->SetMargin(60,140,70,80); //折线图在框中的位置
$graph->title->Set(iconv("utf-8","gb2312","报警情况统计表"));
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,20);
// $graph->subtitle->Set('(March 12, 2008)');
$graph->xaxis->title->Set(iconv("utf-8","gb2312","日期"));
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,15);
$graph->yaxis->title->Set(iconv("utf-8","gb2312","每日消息数"));
$graph->yaxis->title->SetFont( FF_SIMSUN , FS_BOLD,15 );
// $graph->yaxis->SetColor('blue');//y轴颜色 //*****************x轴数据设置********************
//x轴显示日期
// $xdata=array("2015-01-01","2015-01-02","2015-01-03","2015-01-04","2015-01-05","2015-01-06","2015-01-07","2015-01-08","2015-01-09","2015-01-10");
// $xdata = $gDateLocale->GetShortMonth();//x轴用月份显示
$graph->xaxis->SetTickLabels($xdata);
// $graph->xaxis->SetLabelMargin(15);//$xdata数据离x轴的距离
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,10);
$graph->xaxis->SetLabelAngle(45); // x轴数据倾斜的角度
$graph->xaxis->SetTitleMargin(45);//x轴标题显示的位置 /********************************设置折线**************************************/
$lineplot=new LinePlot($ydata);
$lineplot2=new LinePlot($y2data); $lineplot->SetColor( 'blue' );
$lineplot2->SetColor( 'green' ); $lineplot->SetWeight( 2 ); // Two pixel wide
$lineplot2->SetWeight( 2 ); // Two pixel wide //设置图例
$lineplot->SetLegend("Task");
$lineplot2->SetLegend(iconv("utf-8","gb2312","其它"));
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); //设置图例字体
// $graph->legend->SetFont(FF_FONT2,FS_NORMAL);
$graph->legend->SetLineSpacing(10); //图例中的间距
$graph->legend->Pos(0.01,0.1,"right","top");
$graph->legend->SetLineWeight(2);//图例这种线条宽度
$graph->legend->SetMarkAbsSize(20);//图例大小 //折线图标设置
// MARK_IMG_BEVEL,MARK_IMG_DIAMOND,MARK_IMG_STAR,MARK_IMAGE_SQUARE,MARK_IMAGE_LBALL,MARK_IMAGE_MBALL,MARK_IMG_LPUSHPIN,MARK_IMG_PUSHPIN,MARK_IMG_SPUSHPIN
$lineplot->mark->SetType(MARK_IMG_STAR,'yellow',0.9);
$lineplot2->mark->SetType(MARK_IMG_DIAMOND,'red',0.5); // Add the plot to the graph
$graph->Add($lineplot);
$graph->Add($lineplot2); // Display the graph
$graph->Stroke();
?>

  

5)饼状图

<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_pie.php');
require_once ('jpgraph/jpgraph_pie3d.php'); $data = array(,,); $graph = new PieGraph(,);
// $graph->SetShadow(); //设置饼状图阴影
$graph->SetFrame(false);//设置饼状图边框 $graph->title->Set(iconv("utf-8","gb2312","处理情况统计表"));
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,); $p1 = new PiePlot3D($data);
$p1->SetAngle(); //饼状图的倾斜程度
$p1->SetSize(0.5); //饼状图的大小
$p1->SetCenter(0.5); //饼状图的位置 $legends = array(iconv("utf-8","gb2312","未接收"),iconv("utf-8","gb2312","已接收未解决"),iconv("utf-8","gb2312","已解决")); //图例
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); //设置图例字体
$p1->SetLegends($legends);
// $p1->SetLabelPos(0.5); //饼状图中数据的位置
$graph->Add($p1);
$graph->Stroke();

php报表使用的更多相关文章

  1. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  2. 【从零开始学BPM,Day5】报表配置及自定义功能页面开发

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第五天课程] 1.课程概要 Step 1 软件下载:H3 BP ...

  3. 如何获取url中的参数并传递给iframe中的报表

    在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数 ...

  4. 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器

    企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(31)-MVC使用RDL报表

    系列目录 这次我们来演示MVC3怎么显示RDL报表,坑爹的微软把MVC升级到5都木有良好的支持报表,让MVC在某些领域趋于短板 我们只能通过一些方式来使用rdl报表. Razor视图不支持asp.ne ...

  6. 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  7. 基于 HTML5 的 Web SCADA 报表

    背景 最近在一个 SCADA 项目中遇到了在 Web 页面中展示设备报表的需求.一个完整的报表,一般包含了筛选操作区.表格.Chart.展板等多种元素,而其中的数据表格是最常用的控件.在以往的工业项目 ...

  8. 2.ASP.NET MVC 中使用Crystal Report水晶报表

    上一篇,介绍了怎么导出Excel文件,这篇文章介绍在ASP.NET MVC中使用水晶报表. 项目源码下载:https://github.com/caofangsheng93/CrystalReport ...

  9. 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

    在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...

  10. Atitit.可视化与报表原理与概论

    Atitit.可视化与报表原理与概论 1.  信息可视化1 2. Gui可视化1 3. 报表系统(三大图表,金字塔,组织结构图等)1 4. <可视化数据>目录3 5. 可视化的具体实现(c ...

随机推荐

  1. 接触PHP快4个月

    就要下班了,接触php快4个月,掌握的不好,需要实战,看到自己博客空空的,就mark一下吧!下班了...

  2. [图像]判断图片是PNG还是JPG格式

    typedef NS_ENUM(NSInteger, NSPUIImageType) { NSPUIImageType_JPEG, NSPUIImageType_PNG, NSPUIImageType ...

  3. GRUB、MBR名词解释

    GRUB:是一个来自GUN项目的多操作系统启动程序,是多启动规范的实现,他允许用户在计算机内同时拥有多个操作系统,并在计算机启动时选择希望的操作系统.GRUB可用于选择系统分区上的不同内核,也可用于向 ...

  4. 什么是BOM头,BOM头有什么影响,怎么去掉BOM头

    什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也 ...

  5. 防止sql注入和sqlmap介绍

    sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...

  6. android开发读书笔记

    第九章心得: HAL ( Hardware Abstraction Layer,硬件抽象腔,〉是建立在Linux驱动之上的一套翻字库.这套程序 j率并不属于 Linux 内核, 而是属于 Linux ...

  7. 《UML大战需求分析》阅读随笔(三)

    一: 需求中提到的各种业务概念.人物等,经过抽象后都可以视之为类. 平时遇到的人.物,我们将遇到的都是具体的人.物,也就如程序中的对象,是一个实实在在的东西. 当我们分析需求的时候,设计模型的时候,我 ...

  8. C++模板分离

    在正常情况下,c++模板是不允许在头文件声明,在cpp文件中实现.那是因为在cpp文件在编译时内存必须要给它分配储存空间.但是模板本身是一种泛型,在没有明确定义声明类型前,编译器也无法知道它的大小.所 ...

  9. iOS之转场动画

    CodeApp地址CATransition_Demo:https://github.com/Wheat-Qin/CATransition_Demo iOS中比较全的翻转过渡动画(不只是苹果提供的).包 ...

  10. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...