解决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)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

甘特图控件XGANTT的用途

甘特图控件VARCHART XGantt以灵活的组织形式可支持各个不同领域下的规划以及数据可视化需求: 生产制造——最优化您的资源 服务管理——控制您的服务 物流——更加清晰的进程 任务管理——优化您...

pb甘特图示例(非源码)

  • 2011-09-14 10:33
  • 366KB
  • 下载

gwt甘特图源码例子

  • 2012-11-30 15:15
  • 263KB
  • 下载

感知甘特图

用甘特图来安排计划安排

甘特图源码

  • 2017-07-14 15:28
  • 99KB
  • 下载

net环境下的甘特图源码

  • 2010-04-06 15:26
  • 23KB
  • 下载

Ext Gantt Web甘特图demo

甘特图(Gantt chart )又叫横道图 、条状图(Bar chart)。它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。 Ext Gantt甘特图 是基...

asp.net甘特图源码(vs2010)

  • 2012-11-02 12:35
  • 119KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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