本發(fā)明涉及數(shù)據(jù)處理的
技術(shù)領(lǐng)域:
:,尤其涉及一種報(bào)表生成方法和裝置。
背景技術(shù):
::Bootstrap,來(lái)自Twitter,是目前很受歡迎的前端框架。Bootstrap是基于HTML(HyperTextMarkupLanguage,超級(jí)文本標(biāo)記語(yǔ)言)、CSS(CascadingStyleSheets,層疊樣式表)、JavaScript的,它簡(jiǎn)潔靈活,使得web開(kāi)發(fā)更加快捷。bootstraptable是基于bootstrap的插件,它擴(kuò)展和豐富了bootstrap表格的操作,如格式化表格,表格選擇器,表格工具欄,分頁(yè)等等。如圖1所示,bootstraptable實(shí)現(xiàn)了單行表頭的固定,單行可選列?,F(xiàn)有的bootstraptable功能比較單一,存在很多缺陷,如不支持多行表頭、不支持多行可選列、不支持?jǐn)?shù)據(jù)列排序、不支持?jǐn)?shù)據(jù)列指標(biāo)預(yù)警、不支持交叉報(bào)表顯示、不支持?jǐn)?shù)據(jù)分頁(yè)、大數(shù)據(jù)量載入時(shí)頁(yè)面等待時(shí)間過(guò)長(zhǎng),用戶體驗(yàn)較差、大數(shù)據(jù)量展現(xiàn)時(shí)選擇列的顯示或隱藏會(huì)因操作過(guò)多的DOM(DocumentObjectModel,文檔對(duì)象模型)元素,容易引發(fā)內(nèi)存不足從而造成頁(yè)面崩潰,無(wú)法渲染報(bào)表等。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提供一種報(bào)表生成方法和裝置,旨在解決現(xiàn)有bootstraptable功能單一的技術(shù)問(wèn)題。為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種報(bào)表生成方法,所述報(bào)表生成方法應(yīng)用于web報(bào)表展現(xiàn)插件,所述報(bào)表生成方法包括:初始化報(bào)表的菜單框架,根據(jù)所述菜單框架生成所述報(bào)表的子表數(shù)據(jù);根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,確定渲染后的所述報(bào)表中各表頭的父子關(guān)系;根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。優(yōu)選地,所述根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表的步驟包括:根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單;根據(jù)所接收的對(duì)所述級(jí)聯(lián)菜單的操作指令,以及所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,生成對(duì)應(yīng)的報(bào)表。優(yōu)選地,所述根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單的步驟之后,還包括:確定所述報(bào)表中需要排序的待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述排序圖標(biāo)的點(diǎn)擊事件。優(yōu)選地,所述確定所述報(bào)表中需要排序的待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述排序圖標(biāo)的點(diǎn)擊事件的步驟之后,還包括:當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),設(shè)置所述報(bào)表的分頁(yè)方式;若所述分頁(yè)方式為第一分頁(yè)方式,則確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù);根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù);若所述分頁(yè)方式為第二分頁(yè)方式,則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。優(yōu)選地,所述根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù)的步驟之后,還包括:判斷各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù);若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表;根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種報(bào)表生成裝置,所述報(bào)表生成裝置應(yīng)用于web報(bào)表展現(xiàn)插件,所述報(bào)表生成裝置包括:生成模塊,用于初始化報(bào)表的菜單框架,根據(jù)所述菜單框架生成所述報(bào)表的子表數(shù)據(jù);渲染模塊,用于根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,確定渲染后的所述報(bào)表中各表頭的父子關(guān)系;確定模塊,用于根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。優(yōu)選地,所述確定模塊包括:確定單元,用于根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單;處理單元,用于根據(jù)所接收的對(duì)所述級(jí)聯(lián)菜單的操作指令,以及所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,生成對(duì)應(yīng)的報(bào)表。優(yōu)選地,所述報(bào)表生成裝置還包括圖標(biāo)設(shè)置模塊,用于確定所述報(bào)表中需要排序的待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述排序圖標(biāo)的點(diǎn)擊事件。優(yōu)選地,所述報(bào)表生成裝置還包括:分頁(yè)設(shè)置模塊,用于當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),設(shè)置所述報(bào)表的分頁(yè)方式;所述確定模塊還用于若所述分頁(yè)方式為第一分頁(yè)方式,則確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù);計(jì)算模塊,用于根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù);所述計(jì)算模塊還用于若所述分頁(yè)方式為第二分頁(yè)方式,則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。優(yōu)選地,所述報(bào)表生成裝置還包括:判斷模塊,用于判斷各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù);標(biāo)記模塊,用于若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表;補(bǔ)齊模塊,用于根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。本發(fā)明通過(guò)根據(jù)初始化后的菜單框架生成報(bào)表的子表數(shù)據(jù),根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,根據(jù)渲染后的所述報(bào)表中各表頭的父子關(guān)系確定各表頭的級(jí)聯(lián)菜單,以生成報(bào)表。實(shí)現(xiàn)了通過(guò)web報(bào)表展現(xiàn)插件生成所需要的報(bào)表,使所生成的Bootstraptable報(bào)表相對(duì)于傳統(tǒng)的Bootstraptable報(bào)表功能更加豐富。附圖說(shuō)明圖1為目前bootstraptable的一種示意圖;圖2本發(fā)明報(bào)表生成方法的較佳實(shí)施例的流程示意圖;圖3為本發(fā)明實(shí)施例中根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表的一種流程示意圖;圖4為本發(fā)明報(bào)表生成裝置的較佳實(shí)施例的功能模塊示意圖;圖5為本發(fā)明實(shí)施例中確定模塊的一種功能模塊示意圖;圖6為本發(fā)明實(shí)施例中渲染后的報(bào)表的一種示意圖;圖7為本發(fā)明實(shí)施例中報(bào)表中各表頭父子關(guān)系的一種示意圖;圖8為本發(fā)明實(shí)施例中報(bào)表的級(jí)聯(lián)菜單的一種示意圖;圖9為本發(fā)明實(shí)施例中待補(bǔ)齊分頁(yè)報(bào)表補(bǔ)齊高度之后的一種示意圖;圖10為本發(fā)明實(shí)施例中一種具體實(shí)施方式的示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供一種報(bào)表生成方法。參照?qǐng)D2,圖2為本發(fā)明報(bào)表生成方法較佳實(shí)施例的流程示意圖。在本實(shí)施例中,所述報(bào)表生成方法包括:步驟S10,初始化報(bào)表的菜單框架,根據(jù)所述菜單框架生成所述報(bào)表的子表數(shù)據(jù);在本實(shí)施例中,通過(guò)使用web報(bào)表展現(xiàn)插件(FTable)生成報(bào)表,所述FTable采用JQuery和Bootstrap技術(shù)對(duì)傳統(tǒng)HTML表格進(jìn)行了功能擴(kuò)充,所述JQuery用于操作DOM,所述Bootstrap用于CSS/HTML布局。所述JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript庫(kù)。所述JQuery使用戶能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供ajax交互。所述JQuery是一個(gè)兼容多瀏覽器的javascript庫(kù)。當(dāng)在生成報(bào)表過(guò)程中,所述FTable先初始化報(bào)表的菜單框架。其中,所述報(bào)表的菜單框架包括所述報(bào)表所在的div容器、所述報(bào)表的標(biāo)題、所述報(bào)表中各數(shù)據(jù)的單位、所述報(bào)表中每頁(yè)報(bào)表所能記錄數(shù)據(jù)的行數(shù)、所述報(bào)表的起始記錄數(shù)、所述報(bào)表的分頁(yè)方式、所述報(bào)表tbody中需要合并的列、所述報(bào)表中需要預(yù)警顯示的列、是否在所述報(bào)表中顯示選擇菜單和是否在所述報(bào)表中顯示下載按鈕及下載類(lèi)型等。如通過(guò)params.divid='container'表示所述報(bào)表所在的div容器。當(dāng)所述FTable初始化所述報(bào)表的菜單框架時(shí),所述FTable根據(jù)所述菜單框架設(shè)置所述子表的參數(shù),生成所述報(bào)表的子表數(shù)據(jù),得到所述報(bào)表的子表。所述子表的參數(shù)包括所述報(bào)表中每頁(yè)報(bào)表所能記錄的行數(shù),即每頁(yè)報(bào)表中的記錄數(shù),以及每頁(yè)報(bào)表的起始行的記錄數(shù)。如通過(guò)params.rownum=10以及params.rowth=0生成所述報(bào)表的子表,其中,所述params.rownum=10表示所述報(bào)表中每頁(yè)所能記載的記錄數(shù)為10,當(dāng)所述報(bào)表中一共只有10頁(yè),且所述報(bào)表中的記錄數(shù)超過(guò)100條時(shí),所述報(bào)表只會(huì)顯示100條記錄數(shù),超過(guò)的則不會(huì)顯示。所述params.rownum可為空,所述報(bào)表中每頁(yè)所能記載的記錄數(shù)默認(rèn)為每頁(yè)報(bào)表自適應(yīng)的記錄數(shù)。所述params.rowth=0表示所述報(bào)表的起始記錄數(shù),所述params.rowth可為空,所述params.rowth默認(rèn)為0,表示從所述報(bào)表的第一條記錄數(shù)開(kāi)始顯示。步驟S20,根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,確定渲染后的所述報(bào)表中各表頭的父子關(guān)系;步驟S30,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。當(dāng)生成所述報(bào)表的子表數(shù)據(jù)后,根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,得到渲染后的報(bào)表,如圖6所示。進(jìn)一步地,在渲染過(guò)程中,只渲染所述報(bào)表中的當(dāng)前頁(yè)所顯示的DOM元素,以避免所述報(bào)表在選擇需要顯示或者隱藏的列時(shí),因操作過(guò)多的DOM元素,引發(fā)內(nèi)存不足從而造成頁(yè)面崩潰,無(wú)法渲染報(bào)表的情況出現(xiàn)。當(dāng)?shù)玫戒秩竞蟮膱?bào)表后,還原所述報(bào)表中表頭合并的行和列,確定所述報(bào)表中各表頭的父子關(guān)系。如圖7所示,在本實(shí)施例,合并后的填充單元用HB表示。由圖6可知,E02-套餐與E0201-版本,以及E0202222-數(shù)量為父子關(guān)系,E02-套餐為父,E0201-版本和E0202222-數(shù)量為子,而E0201-版本與E020101、E020102以及合計(jì)為父子關(guān)系,E0201-版本為父,E020101、E020102和合計(jì)為子。由圖7可知,由于E0201-版本和E0202222-數(shù)量的父選項(xiàng)都為E02-套餐,則還原所述報(bào)表之后,E0202222-數(shù)量所對(duì)應(yīng)的父選項(xiàng)用HB表示;而E020101、E020102和合計(jì)的父選項(xiàng)都為E02-版本,因此,還原所述報(bào)表之后,E020102和合計(jì)所對(duì)應(yīng)的父選項(xiàng)用HB表示。當(dāng)確定所述報(bào)表中各表頭的父子關(guān)系之后,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。在本實(shí)施例中,當(dāng)?shù)玫戒秩竞蟮膱?bào)表后,還原所述報(bào)表中表頭合并的行和列,確定所述報(bào)表中各表頭的父子關(guān)系,不需要人為判定所述報(bào)表中各表頭之間的父子關(guān)系,降低了開(kāi)發(fā)者的難度和工作量。本實(shí)施例通過(guò)根據(jù)初始化后的菜單框架生成報(bào)表的子表數(shù)據(jù),根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,根據(jù)渲染后的所述報(bào)表中各表頭的父子關(guān)系確定各表頭的級(jí)聯(lián)菜單,以生成報(bào)表。實(shí)現(xiàn)了通過(guò)web報(bào)表展現(xiàn)插件生成所需要的報(bào)表,使所生成的Bootstraptable報(bào)表相對(duì)于傳統(tǒng)的Bootstraptable報(bào)表功能更加豐富。參照?qǐng)D3,圖3為本發(fā)明實(shí)施例中根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表的一種流程示意圖。在本實(shí)施例中,所述步驟S30包括:步驟S31,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單;步驟S32,根據(jù)所接收的對(duì)所述級(jí)聯(lián)菜單的操作指令,以及所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,生成對(duì)應(yīng)的報(bào)表。當(dāng)確定所述報(bào)表中各表頭的父子關(guān)系之后,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單,所述樹(shù)狀的級(jí)聯(lián)菜單用checkbox,ul,li,Glyphicons字體圖標(biāo)組合定制而成。所述checkbox是在HTML中讓使用者與首頁(yè)上的素材發(fā)生交互作用的一種方法,其中包含checkbox控件就是我們一般所說(shuō)的復(fù)選框,通常用于某選項(xiàng)的打開(kāi)或關(guān)閉。所述li表示列表項(xiàng),所述ul表示無(wú)序排列。如圖8所示,在圖8中,所述報(bào)表的右上角上顯示有所述報(bào)表中各表頭的級(jí)聯(lián)菜單,從所述級(jí)聯(lián)菜單中,我們可以清楚地知道所述報(bào)表中各表頭的父子關(guān)系。在本實(shí)施例中,所述級(jí)聯(lián)菜單一共包括三級(jí),第一級(jí)菜單有E01-顏色、E02-套餐、E03-數(shù)量、E04-姓名、E05-姓名和E06-姓名;第二級(jí)菜單為E02-套餐的子選項(xiàng),包括E0201-版本和E0202222-數(shù)量;第三級(jí)菜單為E0201-版本的子選項(xiàng),包括E020101、E020102和合計(jì)。需要說(shuō)明的是,所述報(bào)表的級(jí)聯(lián)菜單的級(jí)數(shù)并不限制于本實(shí)施例所描述的三級(jí),具體的可以根據(jù)具體需要而設(shè)置。當(dāng)確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單之后,接收到用戶對(duì)于所述級(jí)聯(lián)菜單的操作指令時(shí),確定所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,以生成對(duì)應(yīng)的報(bào)表。所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為顯示狀態(tài)或者隱藏狀態(tài)。當(dāng)所述菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為顯示狀態(tài),且接收到用戶點(diǎn)擊該菜單選項(xiàng)的操作指令時(shí),則將所述菜單選項(xiàng)從顯示狀態(tài)轉(zhuǎn)換為隱藏狀態(tài);當(dāng)所述菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為隱藏狀態(tài),且接收到用戶點(diǎn)擊該菜單選項(xiàng)的操作指令時(shí),則將所述菜單選項(xiàng)從隱藏狀態(tài)轉(zhuǎn)換為顯示狀態(tài)。進(jìn)一步地,在接收到用戶點(diǎn)擊所述菜單選項(xiàng)的點(diǎn)擊操作指令時(shí),需要根據(jù)所述報(bào)表中各表頭的父子關(guān)系對(duì)應(yīng)顯示或者隱藏相應(yīng)的列。如圖8所示,若用戶在第三級(jí)菜單同時(shí)取消E020101,E020102,合計(jì)三個(gè)菜單選項(xiàng),則這三個(gè)菜單選項(xiàng)的父選項(xiàng)E0201-版本也要同步取消選中,如果E0202222-數(shù)量此時(shí)也是處于取消選中狀態(tài),即E0202222-數(shù)量也要從顯示狀態(tài)轉(zhuǎn)換為隱藏狀態(tài),則E0201-版本和E0202222-數(shù)量的父選項(xiàng)E02-套餐也要同步取消,即E02-套餐也要被隱藏,則與各個(gè)菜單所對(duì)應(yīng)的tbody數(shù)據(jù)也要做同步隱藏、顯示處理,所述tbody是一個(gè)HTML語(yǔ)言標(biāo)簽表格主體,該標(biāo)簽用于組合HTML表格的主體內(nèi)容。如當(dāng)要隱藏E020101菜單選項(xiàng)時(shí),則與E020101菜單對(duì)應(yīng)的數(shù)據(jù)0002、0102、0202、0302、0402、0502、0602、0702、0802和0902也要對(duì)應(yīng)隱藏。進(jìn)一步地,根據(jù)所述報(bào)表中列屬性visibility的值處理隱藏列,刪除之前還原所述報(bào)表時(shí)用HB填充的列,以生成對(duì)應(yīng)的報(bào)表并顯示所生成的報(bào)表。進(jìn)一步地,所述報(bào)表生成方法還包括:確定所述報(bào)表中需要排序的待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述排序圖標(biāo)的點(diǎn)擊事件。進(jìn)一步地,當(dāng)需要對(duì)所述報(bào)表中的一列或者多列的數(shù)據(jù)進(jìn)行排序時(shí),將所述報(bào)表中需要排序的列記為待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述圖標(biāo)的點(diǎn)擊事件。當(dāng)偵測(cè)到用戶點(diǎn)擊所述排序圖標(biāo)的點(diǎn)擊事件時(shí),根據(jù)預(yù)設(shè)的排序算法對(duì)所述報(bào)表中的待排序列進(jìn)行排序。在本實(shí)施例中,排序所用的算法為冒泡算法。需要說(shuō)明的是,排序算法包括但不限于冒泡排序算法,還可以為雞尾酒排序算法、計(jì)數(shù)排序算法和合并排序算法等。如可以通過(guò)params.order函數(shù)所對(duì)應(yīng)的配置信息設(shè)置排序圖標(biāo),通過(guò)排序函數(shù)F.bubble=function(parm){...}實(shí)現(xiàn)冒泡算法的排序。需要說(shuō)明的是,當(dāng)對(duì)所述報(bào)表中的待排序列進(jìn)行排序之后,因?yàn)楦淖兞怂鰣?bào)表中所顯示數(shù)據(jù)的順序,所以需要再次生成所述報(bào)表的子表數(shù)據(jù)、渲染所述報(bào)表等。本實(shí)施例通過(guò)生成所述報(bào)表的樹(shù)狀的級(jí)聯(lián)菜單,供用戶可以通過(guò)所述報(bào)表的級(jí)聯(lián)菜單選擇顯示或者隱藏所述報(bào)表中相應(yīng)的數(shù)據(jù)。進(jìn)一步地,通過(guò)設(shè)置所述報(bào)表的排序圖標(biāo),實(shí)現(xiàn)對(duì)所述報(bào)表的排序功能,擴(kuò)充了所生成報(bào)表的功能。進(jìn)一步地,為了增加所生成的報(bào)表的功能,提出本實(shí)施例。在本實(shí)施例中,所述報(bào)表生成方法還包括:步驟a,當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),設(shè)置所述報(bào)表的分頁(yè)方式;步驟b,若所述分頁(yè)方式為第一分頁(yè)方式,則確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù);步驟c,根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù);當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),可以根據(jù)需要設(shè)置所述報(bào)表的分頁(yè)方式。所述FTable支持的分頁(yè)方式包括兩種分頁(yè)方式,第一分頁(yè)方式為傳統(tǒng)分頁(yè),第二分頁(yè)方式為滾動(dòng)分頁(yè)。當(dāng)所述報(bào)表的分頁(yè)方式為傳統(tǒng)分頁(yè)方式時(shí),通過(guò)使用jPage插件(Jquery)實(shí)現(xiàn)所述報(bào)表的傳統(tǒng)分頁(yè)。在采用傳統(tǒng)分頁(yè)對(duì)所述報(bào)表進(jìn)行分頁(yè)過(guò)程中,要確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),即所述報(bào)表中待顯示的記錄數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù),然后根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù)。步驟d,若所述分頁(yè)方式為第二分頁(yè)方式,則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。若所述分頁(yè)方式為第二分頁(yè)方式,即采用滾動(dòng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù),則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。需要說(shuō)明的是,在采用滾動(dòng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),用戶可以根據(jù)需要設(shè)置是顯示所述報(bào)表中當(dāng)前所顯示的部分?jǐn)?shù)據(jù),還是將所述報(bào)表中的全部數(shù)據(jù)都通過(guò)所述滾動(dòng)分頁(yè)方式顯示出來(lái)。進(jìn)一步地,通過(guò)所述滾動(dòng)分頁(yè)方式可以實(shí)現(xiàn)交叉分頁(yè)顯示所述報(bào)表中的數(shù)據(jù),即可以將所述報(bào)表中的前面一頁(yè)的部分?jǐn)?shù)據(jù)與后面一頁(yè)的部分?jǐn)?shù)據(jù)同時(shí)顯示出來(lái),供用戶查看。進(jìn)一步地,所述報(bào)表生成方法還包括:步驟e,判斷各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù);步驟f,若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表;步驟g,根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。當(dāng)采用傳統(tǒng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),判斷所述報(bào)表中各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù)。若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表,根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。如若一頁(yè)報(bào)表能顯示20行數(shù)據(jù),而某頁(yè)報(bào)表只顯示了18行數(shù)據(jù),則將只顯示了18行數(shù)據(jù)的這頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表,根據(jù)顯示20行數(shù)據(jù)的該頁(yè)報(bào)表補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。如圖9所示,通過(guò)在所述待補(bǔ)齊分頁(yè)報(bào)表中補(bǔ)充“-”,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致,使所述報(bào)表的頁(yè)面美觀,而且,若需要通過(guò)滾動(dòng)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),在計(jì)算滾動(dòng)分頁(yè)方式滾動(dòng)條的長(zhǎng)度時(shí),由于所述報(bào)表各頁(yè)報(bào)表的高度一致,降低了計(jì)算滾動(dòng)分頁(yè)方式滾動(dòng)條的長(zhǎng)度的計(jì)算量。進(jìn)一步地,在本實(shí)施例中,通過(guò)所述FTable得到所述報(bào)表的具體實(shí)施方式可為:在本實(shí)施例中,在用params.warning設(shè)置所述報(bào)表的預(yù)警列時(shí),ActureValue表示所述報(bào)表中對(duì)應(yīng)列的實(shí)際值,TargetValue表示所述報(bào)表中對(duì)應(yīng)的列的目標(biāo)值,rule表示所述報(bào)表中預(yù)警列的顯示規(guī)則,區(qū)分正向和負(fù)向指標(biāo),在本實(shí)施例中,用1表示正向指標(biāo),值越大越好,用0表示負(fù)向指標(biāo),值越小越好(如利潤(rùn)指標(biāo)就是正向指標(biāo),越高越好,能耗就是負(fù)向指標(biāo),越低越好);color表示所述報(bào)表中異常指標(biāo)所對(duì)應(yīng)的數(shù)值的顯示顏色。Class和style表示控制所述報(bào)表中各字段樣式,即在所述報(bào)表中是顯示還是隱藏隱藏該字段。tbody是所述報(bào)表的記錄數(shù)據(jù),即所述報(bào)表中所含有的數(shù)據(jù),通過(guò)Jquery的$.ajax的方式從服務(wù)器端獲取所述報(bào)表需展現(xiàn)的數(shù)據(jù),其格式為L(zhǎng)ist<Map>,用JSONArray.fromObject()把List<Map>數(shù)據(jù)轉(zhuǎn)成json數(shù)據(jù)格式以進(jìn)行顯示。通過(guò)FTable的buildFTableTbody方法把data轉(zhuǎn)成FTable.tbody,其中所述報(bào)表中的數(shù)值字段默認(rèn)靠右對(duì)齊,文字字段靠左對(duì)齊。然后配置所述報(bào)表所需的params.thead和params.tbody后,調(diào)用FTableF.biTable(params),即可生成如圖10所示的報(bào)表。在圖10中,用方框圈起來(lái)的數(shù)字24.638、23.897、3.833、4.122、1.12、1.069、0.185、0.143、0.162、0.512、0.13和0.157為預(yù)警列,表示這幾個(gè)的數(shù)值已超過(guò)設(shè)定的標(biāo)準(zhǔn)值。在顯示這個(gè)幾個(gè)數(shù)值的時(shí)候,可以設(shè)置與其他數(shù)值不同顏色進(jìn)行顯示,以達(dá)到警示用戶的效果。本發(fā)明進(jìn)一步提供一種報(bào)表生成裝置。參照?qǐng)D4,圖4為本發(fā)明報(bào)表生成裝置的較佳實(shí)施例的功能模塊示意圖。在本實(shí)施例中,所述報(bào)表生成裝置包括:生成模塊10,用于初始化報(bào)表的菜單框架,根據(jù)所述菜單框架生成所述報(bào)表的子表數(shù)據(jù);在本實(shí)施例中,通過(guò)使用web報(bào)表展現(xiàn)插件(FTable)生成報(bào)表,所述FTable采用JQuery和Bootstrap技術(shù)對(duì)傳統(tǒng)HTML表格進(jìn)行了功能擴(kuò)充,所述JQuery用于操作DOM,所述Bootstrap用于CSS/HTML布局。所述JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript庫(kù)。所述JQuery使用戶能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供ajax交互。所述JQuery是一個(gè)兼容多瀏覽器的javascript庫(kù)。當(dāng)在生成報(bào)表過(guò)程中,所述FTable先初始化報(bào)表的菜單框架。其中,所述報(bào)表的菜單框架包括所述報(bào)表所在的div容器、所述報(bào)表的標(biāo)題、所述報(bào)表中各數(shù)據(jù)的單位、所述報(bào)表中每頁(yè)報(bào)表所能記錄數(shù)據(jù)的行數(shù)、所述報(bào)表的起始記錄數(shù)、所述報(bào)表的分頁(yè)方式、所述報(bào)表tbody中需要合并的列、所述報(bào)表中需要預(yù)警顯示的列、是否在所述報(bào)表中顯示選擇菜單和是否在所述報(bào)表中顯示下載按鈕及下載類(lèi)型等。如通過(guò)params.divid='container'表示所述報(bào)表所在的div容器。當(dāng)所述FTable初始化所述報(bào)表的菜單框架時(shí),所述FTable根據(jù)所述菜單框架設(shè)置所述子表的參數(shù),生成所述報(bào)表的子表數(shù)據(jù),得到所述報(bào)表的子表。所述子表的參數(shù)包括所述報(bào)表中每頁(yè)報(bào)表所能記錄的行數(shù),即每頁(yè)報(bào)表中的記錄數(shù),以及每頁(yè)報(bào)表的起始行的記錄數(shù)。如通過(guò)params.rownum=10以及params.rowth=0生成所述報(bào)表的子表,其中,所述params.rownum=10表示所述報(bào)表中每頁(yè)所能記載的記錄數(shù)為10,當(dāng)所述報(bào)表中一共只有10頁(yè),且所述報(bào)表中的記錄數(shù)超過(guò)100條時(shí),所述報(bào)表只會(huì)顯示100條記錄數(shù),超過(guò)的則不會(huì)顯示。所述params.rownum可為空,所述報(bào)表中每頁(yè)所能記載的記錄數(shù)默認(rèn)為每頁(yè)報(bào)表自適應(yīng)的記錄數(shù)。所述params.rowth=0表示所述報(bào)表的起始記錄數(shù),所述params.rowth可為空,所述params.rowth默認(rèn)為0,表示從所述報(bào)表的第一條記錄數(shù)開(kāi)始顯示。渲染模塊20,用于根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,確定渲染后的所述報(bào)表中各表頭的父子關(guān)系;確定模塊30,用于根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。當(dāng)生成所述報(bào)表的子表數(shù)據(jù)后,根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,得到渲染后的報(bào)表,如圖6所示。進(jìn)一步地,在渲染過(guò)程中,只渲染所述報(bào)表中的當(dāng)前頁(yè)所顯示的DOM元素,以避免所述報(bào)表在選擇需要顯示或者隱藏的列時(shí),因操作過(guò)多的DOM元素,引發(fā)內(nèi)存不足從而造成頁(yè)面崩潰,無(wú)法渲染報(bào)表的情況出現(xiàn)。當(dāng)?shù)玫戒秩竞蟮膱?bào)表后,還原所述報(bào)表中表頭合并的行和列,確定所述報(bào)表中各表頭的父子關(guān)系。如圖7所示,在本實(shí)施例,合并后的填充單元用HB表示。由圖6可知,E02-套餐與E0201-版本,以及E0202222-數(shù)量為父子關(guān)系,E02-套餐為父,E0201-版本和E0202222-數(shù)量為子,而E0201-版本與E020101、E020102以及合計(jì)為父子關(guān)系,E0201-版本為父,E020101、E020102和合計(jì)為子。由圖7可知,由于E0201-版本和E0202222-數(shù)量的父選項(xiàng)都為E02-套餐,則還原所述報(bào)表之后,E0202222-數(shù)量所對(duì)應(yīng)的父選項(xiàng)用HB表示;而E020101、E020102和合計(jì)的父選項(xiàng)都為E02-版本,因此,還原所述報(bào)表之后,E020102和合計(jì)所對(duì)應(yīng)的父選項(xiàng)用HB表示。當(dāng)確定所述報(bào)表中各表頭的父子關(guān)系之后,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表的級(jí)聯(lián)菜單,以生成報(bào)表。在本實(shí)施例中,當(dāng)?shù)玫戒秩竞蟮膱?bào)表后,還原所述報(bào)表中表頭合并的行和列,確定所述報(bào)表中各表頭的父子關(guān)系,不需要人為判定所述報(bào)表中各表頭之間的父子關(guān)系,降低了開(kāi)發(fā)者的難度和工作量。本實(shí)施例通過(guò)根據(jù)初始化后的菜單框架生成報(bào)表的子表數(shù)據(jù),根據(jù)所述子表數(shù)據(jù)渲染所述報(bào)表,根據(jù)渲染后的所述報(bào)表中各表頭的父子關(guān)系確定各表頭的級(jí)聯(lián)菜單,以生成報(bào)表。實(shí)現(xiàn)了通過(guò)web報(bào)表展現(xiàn)插件生成所需要的報(bào)表,使所生成的Bootstraptable報(bào)表相對(duì)于傳統(tǒng)的Bootstraptable報(bào)表功能更加豐富。參照?qǐng)D5,圖5為本發(fā)明實(shí)施例中確定模塊的一種功能模塊示意圖。在本實(shí)施例中,所述確定模塊30包括:確定單元31,用于根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單;處理單元32,用于根據(jù)所接收的對(duì)所述級(jí)聯(lián)菜單的操作指令,以及所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,生成對(duì)應(yīng)的報(bào)表。當(dāng)確定所述報(bào)表中各表頭的父子關(guān)系之后,根據(jù)各表頭的父子關(guān)系確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單,所述樹(shù)狀的級(jí)聯(lián)菜單用checkbox,ul,li,Glyphicons字體圖標(biāo)組合定制而成。所述checkbox是在HTML中讓使用者與首頁(yè)上的素材發(fā)生交互作用的一種方法,其中包含checkbox控件就是我們一般所說(shuō)的復(fù)選框,通常用于某選項(xiàng)的打開(kāi)或關(guān)閉。所述li表示列表項(xiàng),所述ul表示無(wú)序排列。如圖8所示,在圖8中,所述報(bào)表的右上角上顯示有所述報(bào)表中各表頭的級(jí)聯(lián)菜單,從所述級(jí)聯(lián)菜單中,我們可以清楚地知道所述報(bào)表中各表頭的父子關(guān)系。在本實(shí)施例中,所述級(jí)聯(lián)菜單一共包括三級(jí),第一級(jí)菜單有E01-顏色、E02-套餐、E03-數(shù)量、E04-姓名、E05-姓名和E06-姓名;第二級(jí)菜單為E02-套餐的子選項(xiàng),包括E0201-版本和E0202222-數(shù)量;第三級(jí)菜單為E0201-版本的子選項(xiàng),包括E020101、E020102和合計(jì)。需要說(shuō)明的是,所述報(bào)表的級(jí)聯(lián)菜單的級(jí)數(shù)并不限制于本實(shí)施例所描述的三級(jí),具體的可以根據(jù)具體需要而設(shè)置。當(dāng)確定所述報(bào)表樹(shù)狀的級(jí)聯(lián)菜單之后,接收到用戶對(duì)于所述級(jí)聯(lián)菜單的操作指令時(shí),確定所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性,以生成對(duì)應(yīng)的報(bào)表。所述級(jí)聯(lián)菜單中各菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為顯示狀態(tài)或者隱藏狀態(tài)。當(dāng)所述菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為顯示狀態(tài),且接收到用戶點(diǎn)擊該菜單選項(xiàng)的操作指令時(shí),則將所述菜單選項(xiàng)從顯示狀態(tài)轉(zhuǎn)換為隱藏狀態(tài);當(dāng)所述菜單選項(xiàng)當(dāng)前的狀態(tài)屬性為隱藏狀態(tài),且接收到用戶點(diǎn)擊該菜單選項(xiàng)的操作指令時(shí),則將所述菜單選項(xiàng)從隱藏狀態(tài)轉(zhuǎn)換為顯示狀態(tài)。進(jìn)一步地,在接收到用戶點(diǎn)擊所述菜單選項(xiàng)的點(diǎn)擊操作指令時(shí),需要根據(jù)所述報(bào)表中各表頭的父子關(guān)系對(duì)應(yīng)顯示或者隱藏相應(yīng)的列。如圖8所示,若用戶在第三級(jí)菜單同時(shí)取消E020101,E020102,合計(jì)三個(gè)菜單選項(xiàng),則這三個(gè)菜單選項(xiàng)的父選項(xiàng)E0201-版本也要同步取消選中,如果E0202222-數(shù)量此時(shí)也是處于取消選中狀態(tài),即E0202222-數(shù)量也要從顯示狀態(tài)轉(zhuǎn)換為隱藏狀態(tài),則E0201-版本和E0202222-數(shù)量的父選項(xiàng)E02-套餐也要同步取消,即E02-套餐也要被隱藏,則與各個(gè)菜單所對(duì)應(yīng)的tbody數(shù)據(jù)也要做同步隱藏、顯示處理,所述tbody是一個(gè)HTML語(yǔ)言標(biāo)簽表格主體,該標(biāo)簽用于組合HTML表格的主體內(nèi)容。如當(dāng)要隱藏E020101菜單選項(xiàng)時(shí),則與E020101菜單對(duì)應(yīng)的數(shù)據(jù)0002、0102、0202、0302、0402、0502、0602、0702、0802和0902也要對(duì)應(yīng)隱藏。進(jìn)一步地,根據(jù)所述報(bào)表中列屬性visibility的值處理隱藏列,刪除之前還原所述報(bào)表時(shí)用HB填充的列,以生成對(duì)應(yīng)的報(bào)表并顯示所生成的報(bào)表。進(jìn)一步地,所述報(bào)表生成裝置還包括:圖標(biāo)設(shè)置模塊,用于確定所述報(bào)表中需要排序的待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述排序圖標(biāo)的點(diǎn)擊事件。進(jìn)一步地,當(dāng)需要對(duì)所述報(bào)表中的一列或者多列的數(shù)據(jù)進(jìn)行排序時(shí),將所述報(bào)表中需要排序的列記為待排序列,設(shè)置所述待排序列對(duì)應(yīng)的排序圖標(biāo),并注冊(cè)所述圖標(biāo)的點(diǎn)擊事件。當(dāng)偵測(cè)到用戶點(diǎn)擊所述排序圖標(biāo)的點(diǎn)擊事件時(shí),根據(jù)預(yù)設(shè)的排序算法對(duì)所述報(bào)表中的待排序列進(jìn)行排序。在本實(shí)施例中,排序所用的算法為冒泡算法。需要說(shuō)明的是,排序算法包括但不限于冒泡排序算法,還可以為雞尾酒排序算法、計(jì)數(shù)排序算法和合并排序算法等。如可以通過(guò)params.order函數(shù)所對(duì)應(yīng)的配置信息設(shè)置排序圖標(biāo),通過(guò)排序函數(shù)F.bubble=function(parm){...}實(shí)現(xiàn)冒泡算法的排序。需要說(shuō)明的是,當(dāng)對(duì)所述報(bào)表中的待排序列進(jìn)行排序之后,因?yàn)楦淖兞怂鰣?bào)表中所顯示數(shù)據(jù)的順序,所以需要再次生成所述報(bào)表的子表數(shù)據(jù)、渲染所述報(bào)表等。本實(shí)施例通過(guò)生成所述報(bào)表的樹(shù)狀的級(jí)聯(lián)菜單,供用戶可以通過(guò)所述報(bào)表的級(jí)聯(lián)菜單選擇顯示或者隱藏所述報(bào)表中相應(yīng)的數(shù)據(jù)。進(jìn)一步地,通過(guò)設(shè)置所述報(bào)表的排序圖標(biāo),實(shí)現(xiàn)對(duì)所述報(bào)表的排序功能,擴(kuò)充了所生成報(bào)表的功能。進(jìn)一步地,為了增加所生成的報(bào)表的功能,提出本實(shí)施例。在本實(shí)施例中,所述報(bào)表生成裝置還包括:分頁(yè)設(shè)置模塊,用于當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),設(shè)置所述報(bào)表的分頁(yè)方式;所述確定模塊還用于若所述分頁(yè)方式為第一分頁(yè)方式,則確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù);計(jì)算模塊,用于根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù);當(dāng)所述報(bào)表為多頁(yè)報(bào)表時(shí),可以根據(jù)需要設(shè)置所述報(bào)表的分頁(yè)方式。所述FTable支持的分頁(yè)方式包括兩種分頁(yè)方式,第一分頁(yè)方式為傳統(tǒng)分頁(yè),第二分頁(yè)方式為滾動(dòng)分頁(yè)。當(dāng)所述報(bào)表的分頁(yè)方式為傳統(tǒng)分頁(yè)方式時(shí),通過(guò)使用jPage插件(Jquery)實(shí)現(xiàn)所述報(bào)表的傳統(tǒng)分頁(yè)。在采用傳統(tǒng)分頁(yè)對(duì)所述報(bào)表進(jìn)行分頁(yè)過(guò)程中,要確定所述報(bào)表中待顯示數(shù)據(jù)的行數(shù),即所述報(bào)表中待顯示的記錄數(shù),以及每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù),然后根據(jù)所述待顯示數(shù)據(jù)的行數(shù)和每頁(yè)報(bào)表所能顯示數(shù)據(jù)的行數(shù)計(jì)算所述報(bào)表的頁(yè)數(shù)。所述計(jì)算模塊還用于若所述分頁(yè)方式為第二分頁(yè)方式,則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。若所述分頁(yè)方式為第二分頁(yè)方式,即采用滾動(dòng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù),則根據(jù)所述報(bào)表中數(shù)據(jù)的總行數(shù),以及渲染后的所述報(bào)表中各行的行高計(jì)算滾動(dòng)條的長(zhǎng)度,以得到所述第二分頁(yè)方式中滾動(dòng)條的長(zhǎng)度。需要說(shuō)明的是,在采用滾動(dòng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),用戶可以根據(jù)需要設(shè)置是顯示所述報(bào)表中當(dāng)前所顯示的部分?jǐn)?shù)據(jù),還是將所述報(bào)表中的全部數(shù)據(jù)都通過(guò)所述滾動(dòng)分頁(yè)方式顯示出來(lái)。進(jìn)一步地,通過(guò)所述滾動(dòng)分頁(yè)方式可以實(shí)現(xiàn)交叉分頁(yè)顯示所述報(bào)表中的數(shù)據(jù),即可以將所述報(bào)表中的前面一頁(yè)的部分?jǐn)?shù)據(jù)與后面一頁(yè)的部分?jǐn)?shù)據(jù)同時(shí)顯示出來(lái),供用戶查看。進(jìn)一步地,所述報(bào)表生成裝置還包括:判斷模塊,用于判斷各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù);標(biāo)記模塊,用于若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表;補(bǔ)齊模塊,用于根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。當(dāng)采用傳統(tǒng)分頁(yè)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),判斷所述報(bào)表中各頁(yè)報(bào)表所顯示的行數(shù)是否小于每頁(yè)報(bào)表所能顯示的行數(shù)。若某頁(yè)報(bào)表所顯示行數(shù)小于每頁(yè)報(bào)表所能顯示的行數(shù),則將該頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表,根據(jù)每頁(yè)表報(bào)所能顯示的行數(shù)補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。如若一頁(yè)報(bào)表能顯示20行數(shù)據(jù),而某頁(yè)報(bào)表只顯示了18行數(shù)據(jù),則將只顯示了18行數(shù)據(jù)的這頁(yè)報(bào)表標(biāo)記為待補(bǔ)齊分頁(yè)報(bào)表,根據(jù)顯示20行數(shù)據(jù)的該頁(yè)報(bào)表補(bǔ)齊所述待補(bǔ)齊分頁(yè)報(bào)表的行高,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致。如圖9所示,通過(guò)在所述待補(bǔ)齊分頁(yè)報(bào)表中補(bǔ)充“-”,以使所述報(bào)表中各分頁(yè)報(bào)表的高度一致,使所述報(bào)表的頁(yè)面美觀,而且,若需要通過(guò)滾動(dòng)方式顯示所述報(bào)表中的數(shù)據(jù)時(shí),在計(jì)算滾動(dòng)分頁(yè)方式滾動(dòng)條的長(zhǎng)度時(shí),由于所述報(bào)表各頁(yè)報(bào)表的高度一致,降低了計(jì)算滾動(dòng)分頁(yè)方式滾動(dòng)條的長(zhǎng)度的計(jì)算量。進(jìn)一步地,在本實(shí)施例中,通過(guò)所述FTable得到所述報(bào)表的具體過(guò)程可為:在本實(shí)施例中,在用params.warning設(shè)置所述報(bào)表的預(yù)警列時(shí),ActureValue表示所述報(bào)表中對(duì)應(yīng)列的實(shí)際值,TargetValue表示所述報(bào)表中對(duì)應(yīng)的列的目標(biāo)值,rule表示所述報(bào)表中預(yù)警列的顯示規(guī)則,區(qū)分正向和負(fù)向指標(biāo),在本實(shí)施例中,用1表示正向指標(biāo),值越大越好,用0表示負(fù)向指標(biāo),值越小越好(如利潤(rùn)指標(biāo)就是正向指標(biāo),越高越好,能耗就是負(fù)向指標(biāo),越低越好);color表示所述報(bào)表中異常指標(biāo)所對(duì)應(yīng)的數(shù)值的顯示顏色。Class和style表示控制所述報(bào)表中各字段樣式,即在所述報(bào)表中是顯示還是隱藏隱藏該字段。tbody是所述報(bào)表的記錄數(shù)據(jù),即所述報(bào)表中所含有的數(shù)據(jù),通過(guò)Jquery的$.ajax的方式從服務(wù)器端獲取所述報(bào)表需展現(xiàn)的數(shù)據(jù),其格式為L(zhǎng)ist<Map>,用JSONArray.fromObject()把List<Map>數(shù)據(jù)轉(zhuǎn)成json數(shù)據(jù)格式以進(jìn)行顯示。通過(guò)FTable的buildFTableTbody方法把data轉(zhuǎn)成FTable.tbody,其中所述報(bào)表中的數(shù)值字段默認(rèn)靠右對(duì)齊,文字字段靠左對(duì)齊。然后配置所述報(bào)表所需的params.thead和params.tbody后,調(diào)用FTableF.biTable(params),即可生成如圖10所示的報(bào)表。在圖10中,用方框圈起來(lái)的數(shù)字24.638、23.897、3.833、4.122、1.12、1.069、0.185、0.143、0.162、0.512、0.13和0.157為預(yù)警列,表示這幾個(gè)的數(shù)值已超過(guò)設(shè)定的標(biāo)準(zhǔn)值。在顯示這個(gè)幾個(gè)數(shù)值的時(shí)候,可以設(shè)置與其他數(shù)值不同顏色進(jìn)行顯示,以達(dá)到警示用戶的效果。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的
技術(shù)領(lǐng)域:
:,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3