專利名稱:一種生成可交互橫道圖的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Microsoft Office Visio (以后簡(jiǎn)稱Visio)軟件二次開發(fā)技術(shù),具體涉及一種生成可交互橫道圖的方法。
背景技術(shù):
橫道圖是企業(yè)計(jì)劃管理部門常用的計(jì)劃表現(xiàn)方式。然而,實(shí)際計(jì)劃管理部門在做計(jì)劃編制的時(shí)候,常常是通過表格進(jìn)行的,但表格的展現(xiàn)方式,并不能直觀的表現(xiàn)計(jì)劃的進(jìn)展情況,所以往往計(jì)劃管理人員要手工操作繪圖軟件進(jìn)行橫道圖繪制,如圖1所示,為現(xiàn)有工作中手動(dòng)繪制的橫道圖,這樣即帶來了操作反復(fù)也帶來了計(jì)劃信息不一致等潛在問題, 具體表現(xiàn)在如下方面
重復(fù)性步驟較多,人為因素造成的失誤不可避免;
當(dāng)有計(jì)劃數(shù)據(jù)變更時(shí),需人為手動(dòng)維護(hù)橫道圖以使其同步,效率低下且易出錯(cuò);
由于現(xiàn)狀是基于圖片的,不能通過交互的方式修改橫道圖,一旦生成就不可隨意編輯,當(dāng)繪制后發(fā)現(xiàn)存在樣式、風(fēng)格問題時(shí),往往要從頭重新繪制,工作量將成倍增長(zhǎng)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種生成可交互橫道圖的方法,能夠自動(dòng)生成橫道圖,還可方便地對(duì)生成的橫道圖進(jìn)行更改,同時(shí)提高工作效率。
本發(fā)明提供的一種生成可交互橫道圖的方法,包括如下步驟
步驟I、將計(jì)劃管理部門提供的表格形式的數(shù)據(jù)按照包含一個(gè)標(biāo)題欄、多個(gè)計(jì)劃組、每個(gè)計(jì)劃組中所包含的計(jì)劃、每個(gè)計(jì)劃對(duì)應(yīng)的起始時(shí)間、結(jié)束時(shí)間和每個(gè)計(jì)劃對(duì)應(yīng)的N 個(gè)計(jì)劃描述信息,以及單元格高度、單元格寬度、計(jì)劃個(gè)數(shù)、寬度上的總單元數(shù)、高度上的總單元數(shù)、畫布寬度、畫布高度、計(jì)劃描述信息數(shù)、所有計(jì)劃描述信息的文本內(nèi)容、時(shí)間范圍單元數(shù)和時(shí)間范圍內(nèi)所有月份的形式存儲(chǔ)成excel文件格式的數(shù)據(jù);
步驟2、定義常用圖塊,具體方法為
I)定義畫布圖塊以Visio軟件默認(rèn)坐標(biāo)系的原點(diǎn)為畫布的左上角坐標(biāo),定義畫布大小為aXb,其中a和b的取值由要生成的橫道圖的外框大小決定;
2)定義矩形圖塊定義矩形圖塊的左上角坐標(biāo)為(X',y'),右下角坐標(biāo)為 W , Yi1 );
4)定義線條圖塊定義線條圖塊的起點(diǎn)坐標(biāo)(X" ' ,γ"')和終點(diǎn)坐標(biāo)(X3" ', y3",),以及線條圖塊的線型;
步驟3、讀取excel文件格式的數(shù)據(jù),將其在內(nèi)存中生成用于描述橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu);
步驟4、根據(jù)橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),對(duì)下列參數(shù)值進(jìn)行設(shè)定或者計(jì)算
設(shè)定橫道圖中單元格的寬度和高度;
計(jì)算所有計(jì)劃描述信息的個(gè)數(shù);
讀取所有計(jì)劃描述信息的文本內(nèi)容;
計(jì)算時(shí)間范圍單元數(shù),即所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份數(shù);
讀取所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份;
計(jì)算所有計(jì)劃的個(gè)數(shù);
計(jì)算寬度上的總單元數(shù),即等于計(jì)劃描述信息個(gè)數(shù)+時(shí)間范圍單元數(shù)+1 ;
計(jì)算高度上的總單元數(shù),即等于計(jì)劃個(gè)數(shù)+1 ;
計(jì)算畫布寬度,即等于總寬度單元數(shù)X單元格的寬度;
計(jì)算畫布高度,即等于總高度單元數(shù)X單元格的高度;
計(jì)算每個(gè)計(jì)劃組的坐標(biāo),具體方法為1)依計(jì)劃組排序,2)統(tǒng)計(jì)同一計(jì)劃組中的計(jì)劃的個(gè)數(shù),3)計(jì)算每個(gè)計(jì)劃組的左上角和右下角兩點(diǎn)坐標(biāo)分別為(0,單元格高度X本計(jì)劃組以上的計(jì)劃數(shù))和(單元格寬度,單元格高度X (本計(jì)劃組以上的計(jì)劃個(gè)數(shù)+本計(jì)劃組中計(jì)劃數(shù)+1));
計(jì)算每個(gè)計(jì)劃描述信息的坐標(biāo),即計(jì)算計(jì)劃描述信息的左上角和右下角兩點(diǎn)坐標(biāo)(單元格寬度X計(jì)劃描述信息的序號(hào),單元格高度X計(jì)劃的序號(hào)),(單元格寬度X (計(jì)劃描述信息序號(hào)+1),單元格高度X (計(jì)劃序號(hào)+1));
計(jì)算起始時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (起始日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.5);
計(jì)算起始時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (起始日/所 在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃的序號(hào) XO- 7);
計(jì)算結(jié)束時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.5);
計(jì)算結(jié)束時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào) XO- 7);
將上述計(jì)算得到的各個(gè)參數(shù)值填充到相應(yīng)的橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu)中;
步驟5、采用步驟2中定義畫布圖塊的方法,將步驟4計(jì)算得到的畫布寬度和畫布高度代入步驟2中定義的畫布尺寸aXb中,繪制畫布;
依據(jù)步驟4計(jì)算得到的畫布寬度和畫布高度,計(jì)算得到畫布的4個(gè)頂點(diǎn)坐標(biāo),以每相鄰的兩個(gè)頂點(diǎn)坐標(biāo)分別作為步驟2中所述的起點(diǎn)坐標(biāo)(X" ' ,γ"')和終點(diǎn)坐標(biāo) (X3" ,,y3",),得到4條線條圖塊的4組起點(diǎn)坐標(biāo)(X",,y",)和終點(diǎn)坐標(biāo)(X3",, y3",),然后采用步驟2中定義線條圖塊的方法,對(duì)畫布進(jìn)行邊框繪制;
依據(jù)橫道圖對(duì)象中的數(shù)據(jù)結(jié)構(gòu),依次讀取標(biāo)題欄中的各項(xiàng)元素,應(yīng)用步驟2中的定義矩形圖塊的方法依次繪制標(biāo)題欄中包括的各項(xiàng)元素;應(yīng)用步驟2中的定義文字圖塊的方法依次在相應(yīng)的矩形圖塊位置填充各個(gè)元素的文字內(nèi)容,即完成標(biāo)題欄的繪制;
步驟6、按照計(jì)劃組的先后順序,提取橫道圖對(duì)象中每個(gè)計(jì)劃組的文字內(nèi)容,該計(jì)劃組中包含的計(jì)劃、每個(gè)計(jì)劃的N個(gè)描述信息的文字內(nèi)容,每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間;
針對(duì)每個(gè)計(jì)劃組,按照步驟4中計(jì)算得到的該計(jì)劃組的坐標(biāo)、計(jì)劃描述信息坐標(biāo)和時(shí)間范圍單元數(shù),應(yīng)用步驟2中的定義矩形圖塊的方法,依次分別繪制計(jì)劃組、計(jì)劃描述信息、最早起始時(shí)間和最晚結(jié)束時(shí)間之間所有的月份;再應(yīng)用步驟2中定義文字圖塊的方式依次將計(jì)劃組的文字內(nèi)容和計(jì)劃描述信息的文字內(nèi)容填充在各自對(duì)應(yīng)的位置上;應(yīng)用步驟2中定義線條圖塊的方法繪制表示每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間的時(shí)間進(jìn)度條;應(yīng)用步驟2中的定義文字圖塊的方法在對(duì)應(yīng)的時(shí)間進(jìn)度條相應(yīng)位置繪制起始時(shí)間文字和結(jié)束時(shí)間文字,則完成橫道圖的繪制。
在步驟4中,在繪制完畫布后,采用步驟2中的定義線條圖塊的方法,按照默認(rèn)單元格高度循環(huán)繪制水平分割線,按照默認(rèn)單元格寬度循環(huán)繪制垂直分割線。
本發(fā)明提供的一種生成可交互橫道圖的方法,通過調(diào)用Visio軟件,根據(jù)工作人員提供的數(shù)據(jù),可自動(dòng)生成Visio圖,對(duì)于生成Visio圖,通過更改數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù),即可自動(dòng)更改Visio圖,因此該方法具備很好的交互編輯功能;
這種方式實(shí)現(xiàn)了針對(duì)圖形描述數(shù)據(jù)到橫道圖的自動(dòng)生成,解決了人工繪制橫道圖重復(fù)步驟多,不能隨意修改等問題,提高了工作效率,同時(shí)提高了橫道圖繪制的正確性和可靠性;
將計(jì)劃數(shù)據(jù)的Excel格式的數(shù)據(jù)存儲(chǔ)成面向橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),方便在繪制橫道圖時(shí)進(jìn)行數(shù)據(jù)的調(diào)用,由此可提高工作效率;
通過計(jì)算每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間,精確設(shè)置時(shí)間進(jìn)度條的起點(diǎn)和終點(diǎn), 使生成的橫道圖更加形象和精確;
在本發(fā)明的方法中,通過事先定義一個(gè)單元格的尺寸,使計(jì)劃組和計(jì)劃等項(xiàng)目的外框尺寸均由多個(gè)單元格組成;事先定義4種常用圖塊,在繪制橫道圖時(shí)反復(fù)調(diào)用每個(gè)圖塊,將計(jì)算的實(shí)際的參數(shù)應(yīng)用到常用圖塊的參數(shù)中,即事先橫道圖中各個(gè)項(xiàng)目的繪制,由此可提高計(jì)算速度,從而提高繪制橫道圖的效率。
圖I為現(xiàn)有技術(shù)中的一種人工繪制的橫道圖。
圖2為本發(fā)明的橫道圖對(duì)象的結(jié)構(gòu)。
具體實(shí)施方式
下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供了一種生成可交互橫道圖的方法,包括如下步驟
步驟I、將計(jì)劃管理部門提供的表格形式的數(shù)據(jù)按照包含一個(gè)標(biāo)題欄、多個(gè)計(jì)劃組、每個(gè)計(jì)劃組中所包含的計(jì)劃、每個(gè)計(jì)劃對(duì)應(yīng)的起始時(shí)間和結(jié)束時(shí)間以及每個(gè)計(jì)劃對(duì)應(yīng)的N個(gè)計(jì)劃描述信息的形式存儲(chǔ)成excel文件格式的數(shù)據(jù);如下表所示
表格Iexcel軟件生成的圖形描述數(shù)據(jù)
計(jì)劃組起始時(shí)間結(jié)束時(shí)間計(jì)劃描述信息I計(jì)劃描述信息N計(jì)劃組I2011-1-112011-3-20計(jì)劃IParamN計(jì)劃組I2012-2-212012-4-21計(jì)劃2ParamN計(jì)劃組22012-3-152012-5-22計(jì)劃3ParamN
步驟2、定義常用圖塊,具體方法為
I)定義畫布圖塊以Visio軟件默認(rèn)坐標(biāo)系的原點(diǎn)為畫布的左上角坐標(biāo),定義畫布大小為aXb,其中a和b的取值由要生成的橫道圖的外框大小決定;
2)定義矩形圖塊定義矩形圖塊的左上角坐標(biāo)為(X',y'),右下角坐標(biāo)為 W , Yi1 );
3)定義文本圖塊定義文本圖塊的左上角坐標(biāo)為(X",y"),右下角坐標(biāo)為W,y2");
4)定義線條圖塊定義 條圖塊的起點(diǎn)坐標(biāo)(X" ',y"')和終點(diǎn)坐標(biāo)(χ3"', y3",),以及線條圖塊的線型;
步驟3、讀取excel文件格式的數(shù)據(jù),將其在內(nèi)存中生成用于描述橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),如圖2所示;
步驟4、根據(jù)橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),對(duì)下列參數(shù)值進(jìn)行設(shè)定或者計(jì)算
設(shè)定橫道圖中單元格的寬度和高度,該單元格是指尺寸最小的單元矩形框;
計(jì)算所有計(jì)劃描述信息的個(gè)數(shù);
讀取所有計(jì)劃描述信息的文本內(nèi)容;
計(jì)算時(shí)間范圍單元數(shù),即所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份數(shù);
讀取時(shí)間范圍內(nèi)所有月份,即所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份;
計(jì)算所有計(jì)劃的個(gè)數(shù);
計(jì)算寬度上的總單元數(shù),即等于計(jì)劃描述信息個(gè)數(shù)+時(shí)間范圍單元數(shù)+1 ;
計(jì)算高度上的總單元數(shù),即等于計(jì)劃個(gè)數(shù)+1 ;
計(jì)算畫布寬度,即等于總寬度單元數(shù)X單元格的寬度;
計(jì)算畫布高度,即等于總高度單元數(shù)X單元格的高度;
計(jì)算每個(gè)計(jì)劃組的坐標(biāo),具體方法為1)依計(jì)劃組排序,2)統(tǒng)計(jì)同一計(jì)劃組中的計(jì)劃的個(gè)數(shù),3)計(jì)算每個(gè)計(jì)劃組的左上角和右下角兩點(diǎn)坐標(biāo)分別為(0,單元格高度X本計(jì)劃組以上的計(jì)劃數(shù))和(單元格寬度,單元格高度X (本計(jì)劃組以上的計(jì)劃個(gè)數(shù)+本計(jì)劃組中計(jì)劃數(shù)+1));
計(jì)算每個(gè)計(jì)劃描述信息的坐標(biāo),即計(jì)算計(jì)劃描述信息的左上角和右下角兩點(diǎn)坐標(biāo)(單元格寬度X計(jì)劃描述信息的序號(hào),單元格高度X計(jì)劃的序號(hào)),(單元格寬度X (計(jì)劃描述信息序號(hào)+1),單元格高度X (計(jì)劃序號(hào)+1));
計(jì)算起始時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+(起始日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0. 5);其中單元格高度X計(jì)劃序號(hào)X0. 5表示將起始時(shí)間坐標(biāo)繪制在單元格高度方向的中點(diǎn)上;
計(jì)算起始時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (起始日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃的序號(hào)X0. 7);其中,單元格高度X計(jì)劃的序號(hào)X0. 7表示將其實(shí)時(shí)間文字寫在起始時(shí)間坐標(biāo)的下方位置;
計(jì)算結(jié)束時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.5);
計(jì)算結(jié)束時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào) XO- 7);
將上述計(jì)算得到的各個(gè)參數(shù)值填充到相應(yīng)的橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu)中;
步驟5、采用步驟2中定義畫布圖塊的方法,將步驟4計(jì)算得到的畫布寬度和畫布高度代入步驟2中定義的畫布尺寸aXb中,繪制畫布;
依據(jù)步驟4計(jì)算得到的畫布寬度和畫布高度,計(jì)算得到畫布的4個(gè)頂點(diǎn)坐標(biāo),以每相鄰的兩個(gè)頂點(diǎn)坐標(biāo)分別作為步驟2中所述的起點(diǎn)坐標(biāo)(X" ' ,γ"')和終點(diǎn)坐標(biāo) (X3" ,,y3",),得到4條線條圖塊的4組起點(diǎn)坐標(biāo)(X",,y",)和終點(diǎn)坐標(biāo)(X3",, y3",),然后采用步驟2中定義線條圖塊的方法,對(duì)畫布進(jìn)行邊框繪制;
依據(jù)橫道圖對(duì)象中的數(shù)據(jù)結(jié)構(gòu),依次讀取標(biāo)題欄中的各項(xiàng)元素,應(yīng)用步驟2中的定義矩形圖塊的方法依次繪制標(biāo)題欄中包括的各項(xiàng)元素;應(yīng)用步驟2中的定義文字圖塊的方法依次在相應(yīng)的矩形圖塊位置填充各個(gè)元素的文字內(nèi)容,即完成標(biāo)題欄的繪制;
步驟6、按照計(jì)劃組的先后順序,提取橫道圖對(duì)象中每個(gè)計(jì)劃組的文字內(nèi)容,該計(jì)劃組中包含的計(jì)劃、每個(gè)計(jì)劃的N個(gè)描述信息的文字內(nèi)容,每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間;
針對(duì)每個(gè)計(jì)劃組,按照步驟4中計(jì)算得到的該計(jì)劃組的坐標(biāo)、計(jì)劃描述信息坐標(biāo)和時(shí)間范圍單元數(shù),應(yīng)用步驟2中的定義矩形圖塊的方法,依次分別繪制計(jì)劃組、計(jì)劃描述信息、最早起始時(shí)間和最晚結(jié)束時(shí)間之間所有的月份;再應(yīng)用步驟2中定義文字圖塊的方式依次將計(jì)劃組的文字內(nèi)容和計(jì)劃描述信息的文字內(nèi)容填充在各自對(duì)應(yīng)的位置上;應(yīng)用步驟2中定義線條圖塊的方法繪制表示每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間的時(shí)間進(jìn)度條;應(yīng)用步驟2中的定義文字圖塊的方法在對(duì)應(yīng)的時(shí)間進(jìn)度條相應(yīng)位置繪制起始時(shí)間文字和結(jié)束時(shí)間文字,則完成橫道圖的繪制。
在步驟4中,在繪制完畫布后,采用步驟2中的定義線條圖塊的方法,按照默認(rèn)單元格高度循環(huán)繪制水平分割線,按照默認(rèn)單元格寬度循環(huán)繪制垂直分割線,如此可繪制出每個(gè)單元格的邊框,使工作人員容易區(qū)分出每個(gè)單元格以及每個(gè)單元格內(nèi)的文字內(nèi)容。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種生成可交互橫道圖的方法,其特征在于,包括如下步驟 步驟I、將計(jì)劃管理部門提供的表格形式的數(shù)據(jù)按照包含一個(gè)標(biāo)題欄、多個(gè)計(jì)劃組、每個(gè)計(jì)劃組中所包含的計(jì)劃、每個(gè)計(jì)劃對(duì)應(yīng)的起始時(shí)間、結(jié)束時(shí)間和每個(gè)計(jì)劃對(duì)應(yīng)的N個(gè)計(jì)劃描述信息,以及單元格高度、單元格寬度、計(jì)劃個(gè)數(shù)、寬度上的總單元數(shù)、高度上的總單元數(shù)、畫布寬度、畫布高度、計(jì)劃描述信息數(shù)、所有計(jì)劃描述信息的文本內(nèi)容、時(shí)間范圍單元數(shù)和時(shí)間范圍內(nèi)所有月份的形式存儲(chǔ)成excel文件格式的數(shù)據(jù); 步驟2、定義常用圖塊,具體方法為 1)定義畫布圖塊以Visio軟件默認(rèn)坐標(biāo)系的原點(diǎn)為畫布的左上角坐標(biāo),定義畫布大小為aXb,其中a和b的取值由要生成的橫道圖的外框大小決定; 2)定義矩形圖塊定義矩形圖塊的左上角坐標(biāo)為(X',y / ),右下角坐標(biāo)為(x/ ,I1'); 4)定義線條圖塊定義線條圖塊的起點(diǎn)坐標(biāo)(X" ',y"')和終點(diǎn)坐標(biāo)(x3" ',I,"'),以及線條圖塊的線型; 步驟3、讀取excel文件格式的數(shù)據(jù),將其在內(nèi)存中生成用于描述橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu); 步驟4、根據(jù)橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),對(duì)下列參數(shù)值進(jìn)行設(shè)定或者計(jì)算 設(shè)定橫道圖中單元格的寬度和高度; 計(jì)算所有計(jì)劃描述信息的個(gè)數(shù); 讀取所有計(jì)劃描述信息的文本內(nèi)容; 計(jì)算時(shí)間范圍單元數(shù),即所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份數(shù); 讀取所有計(jì)劃中最早起始時(shí)間到所有計(jì)劃中結(jié)束最晚時(shí)間跨越的月份; 計(jì)算所有計(jì)劃的個(gè)數(shù); 計(jì)算寬度上的總單元數(shù),即等于計(jì)劃描述信息個(gè)數(shù)+時(shí)間范圍單元數(shù)+1 ; 計(jì)算高度上的總單元數(shù),即等于計(jì)劃個(gè)數(shù)+1 ; 計(jì)算畫布寬度,即等于總寬度單元數(shù)X單元格的寬度; 計(jì)算畫布高度,即等于總高度單元數(shù)X單元格的高度; 計(jì)算每個(gè)計(jì)劃組的坐標(biāo),具體方法為1)依計(jì)劃組排序,2)統(tǒng)計(jì)同一計(jì)劃組中的計(jì)劃的個(gè)數(shù),3)計(jì)算每個(gè)計(jì)劃組的左上角和右下角兩點(diǎn)坐標(biāo)分別為(0,單元格高度X本計(jì)劃組以上的計(jì)劃數(shù))和(單元格寬度,單元格高度X (本計(jì)劃組以上的計(jì)劃個(gè)數(shù)+本計(jì)劃組中計(jì)劃數(shù)+1)); 計(jì)算每個(gè)計(jì)劃描述信息的坐標(biāo),即計(jì)算計(jì)劃描述信息的左上角和右下角兩點(diǎn)坐標(biāo)(單元格寬度X計(jì)劃描述信息的序號(hào),單元格高度X計(jì)劃的序號(hào)),(單元格寬度X (計(jì)劃描述信息序號(hào)+1),單元格高度X (計(jì)劃序號(hào)+1)); 計(jì)算起始時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (起始日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.5);計(jì)算起始時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (起始日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃的序號(hào)X0.7);計(jì)算結(jié)束時(shí)間坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.5); 計(jì)算結(jié)束時(shí)間文字坐標(biāo),即等于((1+計(jì)劃描述信息數(shù)+所屬時(shí)間范圍月份序號(hào))X單元格寬度+ (結(jié)束日/所在月的總天數(shù))X單元格寬度,單元格高度X計(jì)劃序號(hào)X0.7);將上述計(jì)算得到的各個(gè)參數(shù)值填充到相應(yīng)的橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu)中; 步驟5、采用步驟2中定義畫布圖塊的方法,將步驟4計(jì)算得到的畫布寬度和畫布高度代入步驟2中定義的畫布尺寸aXb中,繪制畫布; 依據(jù)步驟4計(jì)算得到的畫布寬度和畫布高度,計(jì)算得到畫布的4個(gè)頂點(diǎn)坐標(biāo),以每相鄰的兩個(gè)頂點(diǎn)坐標(biāo)分別作為步驟2中所述的起點(diǎn)坐標(biāo)(X",,y"')和終點(diǎn)坐標(biāo)(x3",,I,"'),得到4條線條圖塊的4組起點(diǎn)坐標(biāo)(X",,y",)和終點(diǎn)坐標(biāo)(x3〃,,y3",),然后采用步驟2中定義線條圖塊的方法,對(duì)畫布進(jìn)行邊框繪制; 依據(jù)橫道圖對(duì)象中的數(shù)據(jù)結(jié)構(gòu),依次讀取標(biāo)題欄中的各項(xiàng)元素,應(yīng)用步驟2中的定義矩形圖塊的方法依次繪制標(biāo)題欄中包括的各項(xiàng)元素;應(yīng)用步驟2中的定義文字圖塊的方法依次在相應(yīng)的矩形圖塊位置填充各個(gè)元素的文字內(nèi)容,即完成標(biāo)題欄的繪制; 步驟6、按照計(jì)劃組的先后順序,提取橫道圖對(duì)象中每個(gè)計(jì)劃組的文字內(nèi)容,該計(jì)劃組中包含的計(jì)劃、每個(gè)計(jì)劃的N個(gè)描述信息的文字內(nèi)容,每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間; 針對(duì)每個(gè)計(jì)劃組,按照步驟4中計(jì)算得到的該計(jì)劃組的坐標(biāo)、計(jì)劃描述信息坐標(biāo)和時(shí)間范圍單元數(shù),應(yīng)用步驟2中的定義矩形圖塊的方法,依次分別繪制計(jì)劃組、計(jì)劃描述信息、最早起始時(shí)間和最晚結(jié)束時(shí)間之間所有的月份;再應(yīng)用步驟2中定義文字圖塊的方式依次將計(jì)劃組的文字內(nèi)容和計(jì)劃描述信息的文字內(nèi)容填充在各自對(duì)應(yīng)的位置上;應(yīng)用步驟2中定義線條圖塊的方法繪制表示每個(gè)計(jì)劃的起始時(shí)間和結(jié)束時(shí)間的時(shí)間進(jìn)度條;應(yīng)用步驟2中的定義文字圖塊的方法在對(duì)應(yīng)的時(shí)間進(jìn)度條相應(yīng)位置繪制起始時(shí)間文字和結(jié)束時(shí)間文字,則完成橫道圖的繪制。
2.如權(quán)利要求I所述的一種生成可交互橫道圖的方法,其特征在于,所述步驟4中,在繪制完畫布后,采用步驟2中的定義線條圖塊的方法,按照默認(rèn)單元格高度循環(huán)繪制水平分割線,按照默認(rèn)單元格寬度循環(huán)繪制垂直分割線。
全文摘要
本發(fā)明公開了一種生成可交互橫道圖的方法,通過調(diào)用Visio軟件,根據(jù)工作人員提供的數(shù)據(jù),可自動(dòng)生成Visio圖,對(duì)于生成Visio圖,通過更改數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù),即可自動(dòng)更改Visio圖,因此該方法具備很好的交互編輯功能;這種方式實(shí)現(xiàn)了針對(duì)圖形描述數(shù)據(jù)到橫道圖的自動(dòng)生成,解決了人工繪制橫道圖重復(fù)步驟多,不能隨意修改等問題,提高了工作效率,同時(shí)提高了橫道圖繪制的正確性和可靠性;將計(jì)劃數(shù)據(jù)的Excel格式的數(shù)據(jù)存儲(chǔ)成面向橫道圖對(duì)象的數(shù)據(jù)結(jié)構(gòu),方便在繪制橫道圖時(shí)進(jìn)行數(shù)據(jù)的調(diào)用,由此可提高工作效率。
文檔編號(hào)G06F9/44GK102981842SQ20121044431
公開日2013年3月20日 申請(qǐng)日期2012年11月8日 優(yōu)先權(quán)日2012年11月8日
發(fā)明者陳煒釗, 曹瑞強(qiáng) 申請(qǐng)人:北京空間飛行器總體設(shè)計(jì)部