資源描述:
《報表系統(tǒng)設(shè)計方案 報表系統(tǒng)可完成報表設(shè)計,報表填寫,報表查看》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、報表系統(tǒng)設(shè)計方案l報表系統(tǒng)可完成:報表設(shè)計,報表填寫,報表查看。支持報表內(nèi)的數(shù)據(jù)使用公式。l報表系統(tǒng)界面由報表設(shè)計管理界面與報表填報管理界組成。n報表設(shè)計流程為:由Web報表設(shè)計器進行表格的樣式設(shè)計。在設(shè)計時確定單元格的屬性。單元格的屬性決定報表的顯示與業(yè)務(wù)邏輯。單元格屬性:u輸入(input):此類單元格為報表的可填寫(編輯)單元格,與報表對應(yīng)的數(shù)據(jù)庫存儲綁定。設(shè)為輸入樣式的單元格在填寫時,當(dāng)單元格獲得焦點時單元格背景色發(fā)生變化或單元邊框變色,以區(qū)分其它可編輯單元格與不可編輯單元格。u靜態(tài)(static):此類單元格保留設(shè)計時文本,主要用做表頭
2、使用。不與數(shù)據(jù)庫綁定,只存儲在表格模板內(nèi)。升成報表時以表頭的樣式顯示以區(qū)分輸入等其它單元格。u輸出(output):單元格的輸出屬性在表格設(shè)計時指定??奢敵龅膯卧褚话闶褂霉絹磉M行計算。公式可以取表內(nèi)其它單元格的數(shù)據(jù)以及其它表格的單元格數(shù)據(jù)。計算使用的業(yè)務(wù)邏輯在設(shè)計時以公式的方式寫入表格輸出屬性的參數(shù)內(nèi),升成報表時由后臺計算。報表界面與后臺使用ajax技術(shù)進行數(shù)據(jù)交互。公式以文本形式存儲在表格模板內(nèi),升成表格時由系統(tǒng)進行公式解析工作。表格模板以html形式存儲。所升成的表格進行excel輸出時,使用simple_html_dom對表格的html
3、代碼解析成dom對象。后臺PHP由dom對象進行excel格式的計算,輸出成excel文件。表格模板使用版管理來存儲表格的不同版本,實現(xiàn)表格的可維護性與擴展性。表格設(shè)計圖形界面提供表格的行列添加與刪除,單元格的合并與拆分,及單元格的屬性設(shè)置。n升成的表格存儲在一個表格實例庫內(nèi)。讀取修改表格時由時間及表格類型號確定表格的一個ID,并取出這個表格的模板ID,從模板庫內(nèi)取出模板的html代碼。在模板代碼內(nèi)確定了每個單元格的名稱ID。單元格的名稱ID與單元格數(shù)據(jù)庫綁定。升成的報表是從模板庫中取出html代碼,在與數(shù)據(jù)合并而成。對模板html很少改變,所以
4、可以讓升成的報表保證設(shè)計時的樣式。n所有的單元格統(tǒng)一存儲在一個單元格數(shù)據(jù)庫內(nèi)。由單元格的名稱ID與單元格的所屬表格ID可唯一確定單元格數(shù)是哪一個表內(nèi)的哪個單元格。l表格的公式計算。表格以對象的方式存在session(cookie)中。當(dāng)表格內(nèi)的數(shù)據(jù)發(fā)生改變時,觸發(fā)計算邏輯。由已解析好并存儲在表格對象內(nèi)的公式進行計算,并將計算結(jié)果返回給頁面更新相關(guān)單元格。當(dāng)表格內(nèi)的數(shù)據(jù)為其它表格內(nèi)某個單元格的數(shù)據(jù)時。后臺前實例化出另一個表格,在由本表格的運算邏輯從另個表格對象內(nèi)取出相應(yīng)的單元格數(shù)據(jù)。l數(shù)據(jù)庫表格結(jié)構(gòu)。Form_templateTemplate_id
5、intHtmlTextVersionIntForm_type_idInt表模板:同一類型的表可以有多個不同版本的模板。模板的html也除可以使用web報表設(shè)計工具外,也可以使用其它html工具,如DW。Form_collectionForm_idinttemplate_idintFK:form_template.idcreation_tsDatetimemodification_tsDatetimePeriod_idIntFK:form_period.period_idForm_type_idIntFK:form_hierarchy.form_t
6、ype_idAuthorVarchar填表人姓名VerifierVarchar審核人姓名表實例Form_cellsIdIntForm_idIntFK:form_collection.form_idValueCell_strIDVarchar與table單元格id相同單元格。填充單元格時,先用form_id取出form對應(yīng)的單元格數(shù)組,之后由cell_id與表格的html的table標(biāo)簽內(nèi)對應(yīng)的單元格ID匹配。Fomr_cells與form對應(yīng)的單元格數(shù)量中小于或等于form的html內(nèi)table標(biāo)簽里單元格數(shù)目。Form_periodPeriod
7、_idIntBegin_tsIntEnd_tsIntForm_hierarchyIdintnamevarchar表名稱或表目錄名稱parent_idint結(jié)點為根目錄時為空node_type_idint結(jié)點類型值為1時,結(jié)點為表結(jié)點form_type_id有效VersionInt當(dāng)前類型表使用的版本號。當(dāng)template更改時,把新版本號寫入本字段。Form_type_idInt與表名一一對應(yīng)View_rightsVarchar指定查看權(quán)限。角色名id序列,如:12,23,43Modify_rightsVarchar指定修改權(quán)限。角色名id序列,
8、如:12,23,45層次結(jié)構(gòu):分為表格與表格目錄兩類。表格結(jié)點具有parent_id值,為表格目錄結(jié)點的id值。最上級的表格目錄沒有pa