解决dotproject的甘特图乱码问题

原创 2005年03月01日 14:19:00
 我主要把dotproject这个软件当做项目的动态信息跟踪管理,相当不错的项目管理软件,而且时开源的。和同是开源项目的xplanner比较后,选择它,因为dotproject更加全面。安装在Redhat9上,用php+apache+mysql。
 
 dotproject有比较不错的多语言包,项目叫dot modules,在sourceforge上有。对中文的支持也不错,很方便。但是,很烦人的问题是项目甘特图的中文部分总是乱码。现在总算解决了。
 
 dotproject版本是1.0.2。我从sourceforge的cvs下载了dotproject的最新版本,是2.0 alpha,但发现这个版本虽然又增加了功能,但的确不稳定。2.0alpha中,图形部分已经加入了对中文的处理,简体和繁体都有。但如果把2.0alpha的图形部分放入1.0.2,甘特图显示出不来。没办法,只好在1.0.2上一点点手动修改。已经修改好的文件在此文的末尾。
 
 dotproject的图形模块使用了jpgraph。问题的核心在于jpgraph中没有加入中文处理。
 
 先修改lib/jpgraph/src/jpgraph.php文件。
 
 1.把jpgraph_gb2312.php文件中的内容,加入到这个文件末尾,使jpgraph.php中有GB2312toUTF8这个对象。
 2.然后修改LanguageConv对象,增加function Convert($aTxt,$aFF)函数。
 3.增加FF_SIMSUN变量:DEFINE("FF_SIMSUN",18)
 4.在TTF对象的构造器中,增加FF_SIMSUN的定义:
 FF_SIMSUN =>  array(FS_NORMAL=>'simsun',  FS_BOLD=>'simhei',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' )
 5.修改DateLocale对象中Set($aLocale)函数,因为这个函数中返回日的时候只取第一个值,在中文转换时会出错,要把:
 $this->iDayAbb[$aLocale][]= $day{0}
 改为
 $this->iDayAbb[$aLocale][]= $day
 6.读取字体的目录不正确,要改为:DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/TTF/")
 
 修改lib/jpgraph/src/jpgraph_gantt.php文件。
 年月日都是TextProperty对象,调用其中的SetFont方法,把它们的字体改为中文,如:$this->day->SetFont(FF_SIMSUN,FS_NORMAL);
 
 还要修改modules/tasks/gantt.php文件。
 这个文件中的问题在于,取任务名称的时候,事先把数据库取出的值转码,这样当jpgraph再次转码的时候,会出现错误。所以,要把:$name = strlen( utf8_decode($a["task_name"]) ) > 25 ? substr( utf8_decode($a["task_name"]), 0, 22 ).'...' : utf8_decode($a["task_name"])
 改为:
 $name = strlen( $a["task_name"] ) > 25 ? substr( $a["task_name"], 0, 22 ).'...' : $a["task_name"] ; 
 
 现在,甘特图显示没问题了
 

 上文的三个文件(已经被改好的):
附件 dotproject_102_rev.zip:http://blog.blogchina.com/upload/2005-03-01/20050301145023466505.zip
(若无法下载,到http://wilsonsun.blogchina.com/blog/article_81040.999174.html)

EChart 制作类似微软的 甘特图

前段时间  领导要求完成一个项目进度的图形,一个项目下面又分成不同的阶段,各阶段又不是固定死的,都是动态生成的,关键是还必须要显示时间进度,在一个只有x,y轴的坐标系中要显示,阶段类型,时间,还有各阶...

pb甘特图示例(非源码)

  • 2011年09月14日 10:33
  • 366KB
  • 下载

gwt甘特图源码例子

  • 2012年11月30日 15:15
  • 263KB
  • 下载

[dhtmlxGant(甘特图)开发手册]第一篇——如何使用dhtmlxGantt

简介 本文将介绍如何使用使用 dhtmlxGantt 在页面中创建基本的甘特图,并且能够将数据保存/更新至数据库(例如服务器上的数据库)。 本文中最终的代码可以作为创建甘特图应用的基础样例代...
  • honantic
  • honantic
  • 2016年05月04日 19:55
  • 22669

甘特图源码

  • 2017年07月14日 15:28
  • 99KB
  • 下载

基于JS简单甘特图源码

  • 2017年11月24日 11:07
  • 3KB
  • 下载

FineReport新增多项目甘特图示例及操作

1.描述 我们在做报表的时候,往往想体现其中随着时间的变化而产生的项目进度的变化和其他相关的系统进展,每当这种时候甘特图便是其中的不二之选。FineReport新增的多项目甘特图可以说是满足了大多数...
  • c_trek
  • c_trek
  • 2017年05月10日 10:40
  • 780

asp.net甘特图源码(vs2010)

  • 2012年11月02日 12:35
  • 119KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决dotproject的甘特图乱码问题
举报原因:
原因补充:

(最多只允许输入30个字)