一种生成可交互横道图的方法

文档序号:6380886阅读:229来源:国知局
专利名称:一种生成可交互横道图的方法
技术领域
本发明涉及Microsoft Office Visio (以后简称Visio)软件二次开发技术,具体涉及一种生成可交互横道图的方法。
背景技术
横道图是企业计划管理部门常用的计划表现方式。然而,实际计划管理部门在做计划编制的时候,常常是通过表格进行的,但表格的展现方式,并不能直观的表现计划的进展情况,所以往往计划管理人员要手工操作绘图软件进行横道图绘制,如图1所示,为现有工作中手动绘制的横道图,这样即带来了操作反复也带来了计划信息不一致等潜在问题, 具体表现在如下方面
重复性步骤较多,人为因素造成的失误不可避免;
当有计划数据变更时,需人为手动维护横道图以使其同步,效率低下且易出错;
由于现状是基于图片的,不能通过交互的方式修改横道图,一旦生成就不可随意编辑,当绘制后发现存在样式、风格问题时,往往要从头重新绘制,工作量将成倍增长。

发明内容
有鉴于此,本发明提供了一种生成可交互横道图的方法,能够自动生成横道图,还可方便地对生成的横道图进行更改,同时提高工作效率。
本发明提供的一种生成可交互横道图的方法,包括如下步骤
步骤I、将计划管理部门提供的表格形式的数据按照包含一个标题栏、多个计划组、每个计划组中所包含的计划、每个计划对应的起始时间、结束时间和每个计划对应的N 个计划描述信息,以及单元格高度、单元格宽度、计划个数、宽度上的总单元数、高度上的总单元数、画布宽度、画布高度、计划描述信息数、所有计划描述信息的文本内容、时间范围单元数和时间范围内所有月份的形式存储成excel文件格式的数据;
步骤2、定义常用图块,具体方法为
I)定义画布图块以Visio软件默认坐标系的原点为画布的左上角坐标,定义画布大小为aXb,其中a和b的取值由要生成的横道图的外框大小决定;
2)定义矩形图块定义矩形图块的左上角坐标为(X',y'),右下角坐标为 W , Yi1 );
4)定义线条图块定义线条图块的起点坐标(X" ' ,γ"')和终点坐标(X3" ', y3",),以及线条图块的线型;
步骤3、读取excel文件格式的数据,将其在内存中生成用于描述横道图对象的数据结构;
步骤4、根据横道图对象的数据结构,对下列参数值进行设定或者计算
设定横道图中单元格的宽度和高度;
计算所有计划描述信息的个数;
读取所有计划描述信息的文本内容;
计算时间范围单元数,即所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份数;
读取所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份;
计算所有计划的个数;
计算宽度上的总单元数,即等于计划描述信息个数+时间范围单元数+1 ;
计算高度上的总单元数,即等于计划个数+1 ;
计算画布宽度,即等于总宽度单元数X单元格的宽度;
计算画布高度,即等于总高度单元数X单元格的高度;
计算每个计划组的坐标,具体方法为1)依计划组排序,2)统计同一计划组中的计划的个数,3)计算每个计划组的左上角和右下角两点坐标分别为(0,单元格高度X本计划组以上的计划数)和(单元格宽度,单元格高度X (本计划组以上的计划个数+本计划组中计划数+1));
计算每个计划描述信息的坐标,即计算计划描述信息的左上角和右下角两点坐标(单元格宽度X计划描述信息的序号,单元格高度X计划的序号),(单元格宽度X (计划描述信息序号+1),单元格高度X (计划序号+1));
计算起始时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (起始日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.5);
计算起始时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (起始日/所 在月的总天数)X单元格宽度,单元格高度X计划的序号 XO- 7);
计算结束时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.5);
计算结束时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号 XO- 7);
将上述计算得到的各个参数值填充到相应的横道图对象的数据结构中;
步骤5、采用步骤2中定义画布图块的方法,将步骤4计算得到的画布宽度和画布高度代入步骤2中定义的画布尺寸aXb中,绘制画布;
依据步骤4计算得到的画布宽度和画布高度,计算得到画布的4个顶点坐标,以每相邻的两个顶点坐标分别作为步骤2中所述的起点坐标(X" ' ,γ"')和终点坐标 (X3" ,,y3",),得到4条线条图块的4组起点坐标(X",,y",)和终点坐标(X3",, y3",),然后采用步骤2中定义线条图块的方法,对画布进行边框绘制;
依据横道图对象中的数据结构,依次读取标题栏中的各项元素,应用步骤2中的定义矩形图块的方法依次绘制标题栏中包括的各项元素;应用步骤2中的定义文字图块的方法依次在相应的矩形图块位置填充各个元素的文字内容,即完成标题栏的绘制;
步骤6、按照计划组的先后顺序,提取横道图对象中每个计划组的文字内容,该计划组中包含的计划、每个计划的N个描述信息的文字内容,每个计划的起始时间和结束时间;
针对每个计划组,按照步骤4中计算得到的该计划组的坐标、计划描述信息坐标和时间范围单元数,应用步骤2中的定义矩形图块的方法,依次分别绘制计划组、计划描述信息、最早起始时间和最晚结束时间之间所有的月份;再应用步骤2中定义文字图块的方式依次将计划组的文字内容和计划描述信息的文字内容填充在各自对应的位置上;应用步骤2中定义线条图块的方法绘制表示每个计划的起始时间和结束时间的时间进度条;应用步骤2中的定义文字图块的方法在对应的时间进度条相应位置绘制起始时间文字和结束时间文字,则完成横道图的绘制。
在步骤4中,在绘制完画布后,采用步骤2中的定义线条图块的方法,按照默认单元格高度循环绘制水平分割线,按照默认单元格宽度循环绘制垂直分割线。
本发明提供的一种生成可交互横道图的方法,通过调用Visio软件,根据工作人员提供的数据,可自动生成Visio图,对于生成Visio图,通过更改数据结构中的数据,即可自动更改Visio图,因此该方法具备很好的交互编辑功能;
这种方式实现了针对图形描述数据到横道图的自动生成,解决了人工绘制横道图重复步骤多,不能随意修改等问题,提高了工作效率,同时提高了横道图绘制的正确性和可靠性;
将计划数据的Excel格式的数据存储成面向横道图对象的数据结构,方便在绘制横道图时进行数据的调用,由此可提高工作效率;
通过计算每个计划的起始时间和结束时间,精确设置时间进度条的起点和终点, 使生成的横道图更加形象和精确;
在本发明的方法中,通过事先定义一个单元格的尺寸,使计划组和计划等项目的外框尺寸均由多个单元格组成;事先定义4种常用图块,在绘制横道图时反复调用每个图块,将计算的实际的参数应用到常用图块的参数中,即事先横道图中各个项目的绘制,由此可提高计算速度,从而提高绘制横道图的效率。


图I为现有技术中的一种人工绘制的横道图。
图2为本发明的横道图对象的结构。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种生成可交互横道图的方法,包括如下步骤
步骤I、将计划管理部门提供的表格形式的数据按照包含一个标题栏、多个计划组、每个计划组中所包含的计划、每个计划对应的起始时间和结束时间以及每个计划对应的N个计划描述信息的形式存储成excel文件格式的数据;如下表所示
表格Iexcel软件生成的图形描述数据
计划组起始时间结束时间计划描述信息I计划描述信息N计划组I2011-1-112011-3-20计划IParamN计划组I2012-2-212012-4-21计划2ParamN计划组22012-3-152012-5-22计划3ParamN
步骤2、定义常用图块,具体方法为
I)定义画布图块以Visio软件默认坐标系的原点为画布的左上角坐标,定义画布大小为aXb,其中a和b的取值由要生成的横道图的外框大小决定;
2)定义矩形图块定义矩形图块的左上角坐标为(X',y'),右下角坐标为 W , Yi1 );
3)定义文本图块定义文本图块的左上角坐标为(X",y"),右下角坐标为W,y2");
4)定义线条图块定义 条图块的起点坐标(X" ',y"')和终点坐标(χ3"', y3",),以及线条图块的线型;
步骤3、读取excel文件格式的数据,将其在内存中生成用于描述横道图对象的数据结构,如图2所示;
步骤4、根据横道图对象的数据结构,对下列参数值进行设定或者计算
设定横道图中单元格的宽度和高度,该单元格是指尺寸最小的单元矩形框;
计算所有计划描述信息的个数;
读取所有计划描述信息的文本内容;
计算时间范围单元数,即所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份数;
读取时间范围内所有月份,即所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份;
计算所有计划的个数;
计算宽度上的总单元数,即等于计划描述信息个数+时间范围单元数+1 ;
计算高度上的总单元数,即等于计划个数+1 ;
计算画布宽度,即等于总宽度单元数X单元格的宽度;
计算画布高度,即等于总高度单元数X单元格的高度;
计算每个计划组的坐标,具体方法为1)依计划组排序,2)统计同一计划组中的计划的个数,3)计算每个计划组的左上角和右下角两点坐标分别为(0,单元格高度X本计划组以上的计划数)和(单元格宽度,单元格高度X (本计划组以上的计划个数+本计划组中计划数+1));
计算每个计划描述信息的坐标,即计算计划描述信息的左上角和右下角两点坐标(单元格宽度X计划描述信息的序号,单元格高度X计划的序号),(单元格宽度X (计划描述信息序号+1),单元格高度X (计划序号+1));
计算起始时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+(起始日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0. 5);其中单元格高度X计划序号X0. 5表示将起始时间坐标绘制在单元格高度方向的中点上;
计算起始时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (起始日/所在月的总天数)X单元格宽度,单元格高度X计划的序号X0. 7);其中,单元格高度X计划的序号X0. 7表示将其实时间文字写在起始时间坐标的下方位置;
计算结束时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.5);
计算结束时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号 XO- 7);
将上述计算得到的各个参数值填充到相应的横道图对象的数据结构中;
步骤5、采用步骤2中定义画布图块的方法,将步骤4计算得到的画布宽度和画布高度代入步骤2中定义的画布尺寸aXb中,绘制画布;
依据步骤4计算得到的画布宽度和画布高度,计算得到画布的4个顶点坐标,以每相邻的两个顶点坐标分别作为步骤2中所述的起点坐标(X" ' ,γ"')和终点坐标 (X3" ,,y3",),得到4条线条图块的4组起点坐标(X",,y",)和终点坐标(X3",, y3",),然后采用步骤2中定义线条图块的方法,对画布进行边框绘制;
依据横道图对象中的数据结构,依次读取标题栏中的各项元素,应用步骤2中的定义矩形图块的方法依次绘制标题栏中包括的各项元素;应用步骤2中的定义文字图块的方法依次在相应的矩形图块位置填充各个元素的文字内容,即完成标题栏的绘制;
步骤6、按照计划组的先后顺序,提取横道图对象中每个计划组的文字内容,该计划组中包含的计划、每个计划的N个描述信息的文字内容,每个计划的起始时间和结束时间;
针对每个计划组,按照步骤4中计算得到的该计划组的坐标、计划描述信息坐标和时间范围单元数,应用步骤2中的定义矩形图块的方法,依次分别绘制计划组、计划描述信息、最早起始时间和最晚结束时间之间所有的月份;再应用步骤2中定义文字图块的方式依次将计划组的文字内容和计划描述信息的文字内容填充在各自对应的位置上;应用步骤2中定义线条图块的方法绘制表示每个计划的起始时间和结束时间的时间进度条;应用步骤2中的定义文字图块的方法在对应的时间进度条相应位置绘制起始时间文字和结束时间文字,则完成横道图的绘制。
在步骤4中,在绘制完画布后,采用步骤2中的定义线条图块的方法,按照默认单元格高度循环绘制水平分割线,按照默认单元格宽度循环绘制垂直分割线,如此可绘制出每个单元格的边框,使工作人员容易区分出每个单元格以及每个单元格内的文字内容。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种生成可交互横道图的方法,其特征在于,包括如下步骤 步骤I、将计划管理部门提供的表格形式的数据按照包含一个标题栏、多个计划组、每个计划组中所包含的计划、每个计划对应的起始时间、结束时间和每个计划对应的N个计划描述信息,以及单元格高度、单元格宽度、计划个数、宽度上的总单元数、高度上的总单元数、画布宽度、画布高度、计划描述信息数、所有计划描述信息的文本内容、时间范围单元数和时间范围内所有月份的形式存储成excel文件格式的数据; 步骤2、定义常用图块,具体方法为 1)定义画布图块以Visio软件默认坐标系的原点为画布的左上角坐标,定义画布大小为aXb,其中a和b的取值由要生成的横道图的外框大小决定; 2)定义矩形图块定义矩形图块的左上角坐标为(X',y / ),右下角坐标为(x/ ,I1'); 4)定义线条图块定义线条图块的起点坐标(X" ',y"')和终点坐标(x3" ',I,"'),以及线条图块的线型; 步骤3、读取excel文件格式的数据,将其在内存中生成用于描述横道图对象的数据结构; 步骤4、根据横道图对象的数据结构,对下列参数值进行设定或者计算 设定横道图中单元格的宽度和高度; 计算所有计划描述信息的个数; 读取所有计划描述信息的文本内容; 计算时间范围单元数,即所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份数; 读取所有计划中最早起始时间到所有计划中结束最晚时间跨越的月份; 计算所有计划的个数; 计算宽度上的总单元数,即等于计划描述信息个数+时间范围单元数+1 ; 计算高度上的总单元数,即等于计划个数+1 ; 计算画布宽度,即等于总宽度单元数X单元格的宽度; 计算画布高度,即等于总高度单元数X单元格的高度; 计算每个计划组的坐标,具体方法为1)依计划组排序,2)统计同一计划组中的计划的个数,3)计算每个计划组的左上角和右下角两点坐标分别为(0,单元格高度X本计划组以上的计划数)和(单元格宽度,单元格高度X (本计划组以上的计划个数+本计划组中计划数+1)); 计算每个计划描述信息的坐标,即计算计划描述信息的左上角和右下角两点坐标(单元格宽度X计划描述信息的序号,单元格高度X计划的序号),(单元格宽度X (计划描述信息序号+1),单元格高度X (计划序号+1)); 计算起始时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (起始日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.5);计算起始时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (起始日/所在月的总天数)X单元格宽度,单元格高度X计划的序号X0.7);计算结束时间坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.5); 计算结束时间文字坐标,即等于((1+计划描述信息数+所属时间范围月份序号)X单元格宽度+ (结束日/所在月的总天数)X单元格宽度,单元格高度X计划序号X0.7);将上述计算得到的各个参数值填充到相应的横道图对象的数据结构中; 步骤5、采用步骤2中定义画布图块的方法,将步骤4计算得到的画布宽度和画布高度代入步骤2中定义的画布尺寸aXb中,绘制画布; 依据步骤4计算得到的画布宽度和画布高度,计算得到画布的4个顶点坐标,以每相邻的两个顶点坐标分别作为步骤2中所述的起点坐标(X",,y"')和终点坐标(x3",,I,"'),得到4条线条图块的4组起点坐标(X",,y",)和终点坐标(x3〃,,y3",),然后采用步骤2中定义线条图块的方法,对画布进行边框绘制; 依据横道图对象中的数据结构,依次读取标题栏中的各项元素,应用步骤2中的定义矩形图块的方法依次绘制标题栏中包括的各项元素;应用步骤2中的定义文字图块的方法依次在相应的矩形图块位置填充各个元素的文字内容,即完成标题栏的绘制; 步骤6、按照计划组的先后顺序,提取横道图对象中每个计划组的文字内容,该计划组中包含的计划、每个计划的N个描述信息的文字内容,每个计划的起始时间和结束时间; 针对每个计划组,按照步骤4中计算得到的该计划组的坐标、计划描述信息坐标和时间范围单元数,应用步骤2中的定义矩形图块的方法,依次分别绘制计划组、计划描述信息、最早起始时间和最晚结束时间之间所有的月份;再应用步骤2中定义文字图块的方式依次将计划组的文字内容和计划描述信息的文字内容填充在各自对应的位置上;应用步骤2中定义线条图块的方法绘制表示每个计划的起始时间和结束时间的时间进度条;应用步骤2中的定义文字图块的方法在对应的时间进度条相应位置绘制起始时间文字和结束时间文字,则完成横道图的绘制。
2.如权利要求I所述的一种生成可交互横道图的方法,其特征在于,所述步骤4中,在绘制完画布后,采用步骤2中的定义线条图块的方法,按照默认单元格高度循环绘制水平分割线,按照默认单元格宽度循环绘制垂直分割线。
全文摘要
本发明公开了一种生成可交互横道图的方法,通过调用Visio软件,根据工作人员提供的数据,可自动生成Visio图,对于生成Visio图,通过更改数据结构中的数据,即可自动更改Visio图,因此该方法具备很好的交互编辑功能;这种方式实现了针对图形描述数据到横道图的自动生成,解决了人工绘制横道图重复步骤多,不能随意修改等问题,提高了工作效率,同时提高了横道图绘制的正确性和可靠性;将计划数据的Excel格式的数据存储成面向横道图对象的数据结构,方便在绘制横道图时进行数据的调用,由此可提高工作效率。
文档编号G06F9/44GK102981842SQ20121044431
公开日2013年3月20日 申请日期2012年11月8日 优先权日2012年11月8日
发明者陈炜钊, 曹瑞强 申请人:北京空间飞行器总体设计部
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1