freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-基于java報表生成系統(tǒng)設計與實現(xiàn)(編輯修改稿)

2025-01-08 19:30 本頁面
 

【文章內(nèi)容簡介】 ces生成 x m l遍歷表格寫入 x m l是 否 用 模 板是生 成 相 應 C S S結 束否開 始 圖 44 保存報表算法流程圖 該算法 首先從 Preferences 中讀取報表相關信息,生成報表名的 xml文件。然后遍歷表格,讀取各非空單元格的值及屬性,填入寫入小 xml 文件中,最后看是否用到模板,如用到,就生成報表名的 css 文件。生成 xml的代碼 如下所示: XautReportFile Name=zainan tempname=Template rownum=8 ownerName=楊濟忠 time=2021年 6 月 3日 intro=true Columns Column DataSource=D: Span= 縱擴展 Arrange= 不排序 Color=RGB {255, 255, 255} Font=A1/Column 在 XautReportFile 中 , “ Name”代表報表的名字,“ tempname”代表報表用到的模板,“ rownum”代表 WEB 頁每頁顯示的行數(shù),“ ownerName”代表作者, time 代表發(fā)布時間, intro 代表是否有說明內(nèi)容。 而 Columm 代表一個單元格,“ DataSource”代表數(shù)據(jù)源,里面不同的部分又代表不同的意思: 如前面為“ D:”,那代表數(shù)據(jù)庫,中間代表前面建的數(shù)據(jù)源的名稱,最后代碼數(shù)據(jù)源的列。 如前面是“ I:” ,那代表常量,后面部分就是常量的值。、 如前面是“ S:” ,那代表系列號,后面代表系列號的一部分。 如前面是“ F:”,那代表的是函數(shù),后面是函數(shù)。 “ Span” ,代表擴展情況。擴展就是其它單元格的值是否依賴這個單元格的值;“ Arrange” 代表是否排序;“ Color” 代表是顏色,;“ Font” 代表字體。而這個單元格的 ID 是 A1。 生成電子表格 流程圖 圖 45 生成電子表格算法流程圖 該算法 首先從 Preferences中得到當前報表名,然后讀取報表 XML文件 ,得到數(shù)據(jù)源名稱。讀取數(shù)據(jù)源 XML,遍歷得到數(shù)據(jù)源的各種參數(shù)。用這些參數(shù)連接數(shù)據(jù)庫。用 POI 創(chuàng)建 EXCEL 文件 。把數(shù)據(jù)庫中數(shù)據(jù)寫入 EXCEL 文件。 開始讀 Preferences讀報表 xml讀數(shù)據(jù)源 xml連接數(shù)據(jù)庫創(chuàng)建 xls文件數(shù)據(jù)庫寫入 xls結束 發(fā)布報表 流程圖 開始讀 P r e f e r e n c e s復制 x ml 到發(fā)布目錄復制到發(fā)布目錄已設發(fā)布目錄 ?設置發(fā)布目錄有相應 excel 文件 ?有相應 c s s 文件有相應 t x t 文件復制到發(fā)布目錄復制到發(fā)布目錄有相應 pdf 文件復制到發(fā)布目錄結束是否否否否否 圖 46 發(fā)布報表算法流程圖 該算法 首先從 Preferences 中查看發(fā)布目錄,如有,就復制報表 XML 到發(fā)布目錄 ,如沒 有 ,就設置。然后就開始判斷是否有相關文件,如有,就一同復制,因為不復制,就沒有用。 編輯 CSS流程圖 開始讀 cs s 模板文件讀 Pr ef er enc es創(chuàng)建報表 CSS已有相同文件 ?覆蓋寫入文件結束是 圖 47 編輯 CSS算法流程圖 該 算法 首先從 CSS 模板中讀出 模板內(nèi)容,并顯示出來,提供 用戶修改。修改完成后點確定,從 Preferences 得當前報表,然后生成報表的 CSS 文件,如已有相同的就覆蓋。最后把修改后的 CSS 寫入報表文件。 生成模板 流程圖 開始設置模板名字及說明得到當前報表生成模板 CSS及說明文件讀取當前報表 CSS寫入模板文件結束 圖 48 生成模板算法流程圖 該算法 首先設置要生成模板的模板名及說明。然后生成模板文件,當然是 CSS 類型。如模板說明不為空,也生成文件文件類型的說明書。然后從Preferences 中得 到當前報表,由此得到當前報表的 CSS 文件,最后把這CSS 文件的內(nèi)容寫入模板文件里。 配置服務器 流程圖 開始讀取服務器配置文件顯示當前值把修改后值寫入文件更新相關視圖結束 圖 49 配置服務器算法流程圖 該算法 首先讀取服務器配置文件并顯示各個參數(shù),這可以修改。點確定后,就把修改后值寫入配置文件,并更新相關視圖。 系統(tǒng)編碼實現(xiàn) 系統(tǒng)的主界面 實現(xiàn) 本系統(tǒng)采用 Eclipse RCP 技術 ,也就是開發(fā)可以獨立運行的 Eclipse 的插件。運用 RCP 技術 ,可以實現(xiàn) 與 Eclipse 一樣友好的界面,可以 方便地組裝成一個很強大的系統(tǒng) ,因為這是采用插件機制。本系統(tǒng)的 主 界面如圖41所示: 圖 41 報表 設計系統(tǒng)主界面圖 由圖 41 可以看到 , 本系統(tǒng)和 Eclipse 界面有很大的相似性。本系統(tǒng)主要用到了包 。 其中 各個類 的 功能及重要代碼說明如下: Application 類: 是 RCP 程序的入口類, RCP 程序啟動后第一個執(zhí)行就是它,它負責程序的載入與退出。這個類是建立項目后自動生成的,平常情況不需要修 改。 ApplicationWorkbenchAdvisor 類 : 是配置工作臺的類 , 工作臺的初始化就在這完成。 這個類是建立項目后自動生成的,可以修改成自己需要的。這個類的部分代碼如下: ApplicationWorkbenchWindowAdvisor類 :用來設置窗口。一個工作臺可以有多個窗口,所以可以多個該類的對象。這個類是建立項目后自動生成的,可 以修改成自己需要的。 下面代碼說明了窗口大小為( 700, 550),有工具欄,窗口標題,顯示狀態(tài)欄,生成系統(tǒng)托盤等。 以下是該類 的部分實現(xiàn)代碼: public void preWindowOpen() { /** 設置窗口初始化的各種屬性 */ IWorkbenchWindowConfigurer configurer = getWindowConfigurer()。 (new Point(700, 550))。 (true)。 (false)。 (報表生成系統(tǒng) )。 (true)。 (true)。 final IWorkbenchWindow window = getWindowConfigurer().getWindow()。 /** 創(chuàng)建系統(tǒng)托盤 */ trayItem = initTrayItem(window)。 /** 如果支持系統(tǒng)托盤,則創(chuàng)建托盤的菜單 */ if (trayItem != null) { createPopupMenu(window)。 } } Perspective 類 :是透視圖類。透視圖是各個視圖,編輯面組成的一個專用的程序界面。本類是項目默認生成,當然也可以寫自己的視圖,只要實現(xiàn) IperspectiveFactory 接口。 下面就是本透視圖的布局部分代碼,效果如圖 41所示。 public void createInitialLayout (IPageLayout layout) { String editorArea = ()。 (true)。 (false)。 // (, , editorArea)。 IFolderLayout left = (left, , , editorArea)。 ()。 ()。 ().setCloseable(false)。 ().setMoveable(false)。 (, , , editorArea)。 (, , , editorArea)。 ().setCloseable(false)。 ().setMoveable(false)。 } ApplicationActionBarAdvisor 類 : 負責 創(chuàng)建和配置工作臺窗口上主菜單,工具欄,狀態(tài)欄等, 是報表各種功能模塊 相關 入口 。 下面的代碼是用來建立系統(tǒng)托盤項。其中 new Separator()是畫一條分隔線,在菜單工具欄中也用到。 public void fillTrayItem(MenuManager trayMenu) { (deployAction)。 (new Separator())。 (exampleAction)。 (aboutAction)。 editAreaView 類: 是編輯視圖類。視圖相當于一個小窗口,顯示某一方面的內(nèi)容 ,可以在一個頁面上放置幾個視圖。視圖可 通過 兩種方式創(chuàng)建: 一. 通過擴展點:修改 文件,設置視圖擴展點,在最后一行的 /plugin 前加入 ,下面的代碼說明了擴展點是,視圖名字是“編輯區(qū)”,對應的 JAVA 文件是,ID 是 視 圖 的 標 識 , 為。對于其它視圖,都可以這樣創(chuàng)建 : extension point= view name=編輯區(qū) class= id= /view /extension 二. 通過繼承抽象類 ViewPart 類,要改寫類中 createPartControl,setFocus 方法。 本視圖實現(xiàn)部分 的 代碼如下所示: public void createPartControl(Composite parent) { createToolbar()。 if (!isedit) { setPartName(編輯 + reportName)。 } else setPartName((未保存 )編輯 + reportName)。 createTable(parent, colnum, rownum)。 } 上 面 的代碼 是 實現(xiàn)視圖內(nèi)容,其中最重要 的是 createTable()方法 。 這個方法是在視圖中創(chuàng)建類似 EXCEL 中的表格。 下面的代碼創(chuàng)建一個表格,并設置表格的樣式 ,部分代碼 如下 : Composite c1 = new Composite(parent, )。 (new FillLayout())。 table = new Table(c1, | | )。 (true)。 (true)。 (true)。 對于表格的列號, 下面的代碼 創(chuàng)建 列名從 A 開始的 20 個列,其中得把數(shù)字轉化為字符型 ,其實現(xiàn) 代碼 如下 : for (int i = 0。 i 20。 i++) { TableColumn column = new TableColumn(table, )。 ( + ((char) (65 + i)) + )。 ()。 } 而對于行號, 下面的方法 把 按鈕附加到每一行的第一列,在按鈕上寫數(shù)字。這樣做的原因是使表格可編輯。 實現(xiàn)方法如下: Button b[] = new Button[30]。 for (int i = 0。 i 30。 i++) { final TableItem item = new TableItem(table, )。 (i + 1, )。 editor[i] = new TableEditor(table)。 b[i] = new Button(table, )。 b[i].setText( + (i + 1) + )。 editor[i].grabHorizontal = true。 editor[i].minimumHeight = b[i].getSize().y。 editor[i].minimumWidth = b[i].getSize().x。 editor[i].setEditor(b[i], item, 0)。 } 編輯是在屬性視圖完成的,所以 需 完成數(shù)據(jù)綁定。 下面代碼 的作用是數(shù)據(jù)綁定,它獲取 鼠標所在單元格 : (new MouseAdapter() { public void mouseDown(MouseEvent event) { Control
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1