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

正文內(nèi)容

bs結(jié)構(gòu)下的oa流程可視化的研究與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-12-29 16:55 本頁面
 

【文章內(nèi)容簡介】 ase = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=; database+= () + ; DriverID=22; READONLY=true}; // add on to the end con = ( jdbc:odbc:ccos ,); //數(shù)據(jù)源 } catch (ClassNotFoundException e) { // TODO Autogenerated catch block (); } catch (SQLException e) { // TODO Autogenerated catch block (); } return con; } 4 系統(tǒng)功能模塊實(shí)現(xiàn) 系統(tǒng)流程及圖示 一個流程的設(shè)計(jì)是先通過繪圖來對實(shí)際業(yè)務(wù)過程進(jìn)行分析、建模,然后通過一定的技術(shù)生成所建立流程模型的可被上層接口處理的形式化描述。其流程如下圖: 圖 4 系統(tǒng)流程圖 流程可視化設(shè)計(jì)實(shí)現(xiàn) 界面可視化 這是工具開始運(yùn)行出現(xiàn)的第一個界面,由 Inter Explorer 瀏覽器打開,可以適應(yīng) B/S 結(jié)構(gòu)的 OA 系統(tǒng)。 流程 繪圖 保存 提供上層服務(wù) 讀取修改 流程名 N Y 圖 5 工具可視化界面 界面的布局由 BorderLayout來實(shí)現(xiàn),分北部、西部、中部三部分。 包括: 北部 控制板( ArcControls); 西部 繪圖工具板( ToolBlank); 中部 繪圖畫板 ( ArcCanvas)。 具體代碼實(shí)現(xiàn)如下: (borderLayout1); (ArcControls, ); (ArcCanvas, ); (ToolBlank, ); 繪圖功能設(shè)計(jì) 當(dāng)設(shè)計(jì)一個流程時,用戶點(diǎn)擊繪圖工作板中的繪制節(jié)點(diǎn)和繪制弧線兩個按鈕結(jié)合著選擇環(huán)節(jié)名,將指定的可視化部件拖拉繪制 在工作平臺上,每一個可視化部件代表一個角色,用流向箭頭將各個部件關(guān)聯(lián)起來。還可以對節(jié)點(diǎn)和弧線進(jìn)行修改和刪除。 一個矩形節(jié)點(diǎn)的繪制,需要對它的各項(xiàng)屬性進(jìn)行定義,包括對它的起點(diǎn)坐標(biāo)、矩形的寬和高、矩形的邊框坐標(biāo)。以下是節(jié)點(diǎn)定義的簡單描述: public class Node extends BaseObject{ int LeftUpNodeX。//定義頂點(diǎn)坐標(biāo) int LeftUpNodeY。 private int starx。 //定義起始點(diǎn) ,高 ,寬 private int stary。 private int Heigh。 private int Width。 private int MinX。 //定義邊框 private int MinY。 private int MaxX。 private int MaxY。 Color color。 //定義外框顏色 String NodeName=。//節(jié)點(diǎn)名稱 } 繪制節(jié)點(diǎn): (, , , ); //畫矩形 (, +, +Height/2); //畫節(jié)點(diǎn)名 拖動節(jié)點(diǎn): public void SetNodeMoved(int x, int y){ = x; = y; = starx; = stary; = starx + Width; = stary + Height; } 拖動節(jié)點(diǎn)時鼠標(biāo)動態(tài): public void mouseDragged(MouseEvent e) { //鼠標(biāo)拖動 int x = (); int y = (); switch(status){ case 1: if ( == true) { node = new Node((), (), CurrentNodeName); (node); = true; = false; repaint(); } else { if (IfDrag == true) { if (node != null) { (x, y); repaint(); } } else { if (SelectNodeDrag == true) { (x, y); (()); repaint(); } } } break; } } 節(jié)點(diǎn)與節(jié)點(diǎn)之間需要用弧線進(jìn)行連接。一段弧線需要對它的起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)等屬性進(jìn)行定義。 以下是弧線定 義的簡單描述: 弧線定義: public class Arc { private int endx。 //結(jié)束坐標(biāo) private int endy。 private int startx。//起點(diǎn)坐標(biāo) private int starty。 private int[] SelectedNode = new int[2]。//選擇節(jié)點(diǎn) private Vector Point。//點(diǎn)元素 private Color color。 private boolean ArcEnd。//判斷弧段是否結(jié)束增加節(jié)點(diǎn) public Arc(int x,int y) { Point = new Vector()。 int[] star = new int[2]。//點(diǎn)由 2元素 ( x, y) 組成 star[0] = x。 star[1] = y。 = x。 = y。 (star)。 = 。 = false。 } 繪制弧線: public void DrawMyself(Graphics g){ int length = (); (color); if (length 0) { (Arc node size: + length); if (length == 1) { } else { for (int i = 0; i length 1; i++) { int[] Spoint = (int[]) (i); int[] Epoint = (int[]) (i + 1); (Spoint[0], Spoint[1], Epoint[0], Epoint[1]); } 弧線拖動: public void mouseDragged(MouseEvent e) { //鼠標(biāo)拖動 int x = (); int y = (); switch(status){ case 3: if (SelectArcDrag == true) { if ( (arc != null) amp。amp。 (arcNodeindex != 1)) { (arcNodeindex, x, y); repaint(); }else if((arc != null)amp。amp。(arcNodeindex == 1)){//選中的是最后一個不再 Vetor里面的點(diǎn) (x, y); repaint(); } } break; } } 畫箭頭: int[] lastpoint = (int[]) (length 1); (lastpoint[0], lastpoint[1], , ); //畫箭頭 if((lastpoint[0] == endx)amp。amp。(lastpoint[1]endy))//開口向下 { (endx, endy, endx+3, endy3); (endx, endy, endx3, endy3); }else if((lastpoint[0] == endx)amp。amp。(lastpoint[1]endy)){ //開口向上 (endx, endy, endx+3, endy+3); (endx, endy, endx3, endy+3); }else if((lastpoint[1] == endy)amp。amp。(lastpoint[0]endx)){//開口向左 (endx, endy, endx+3, endy3); (endx, endy, endx+3, endy+3); }else if((lastpoint[1] == endy)amp。amp。(lastpoint[0]endx)){//開口向右 (endx, endy, endx3, endy3); (endx, endy, endx3, endy+3); }else{//任意方向用點(diǎn)代替 (endx2, endy2, 5, 5); } if ( (SelectedNode[0] != 0) amp。amp。 (SelectedNode[1] != 0)) { (); (SelectedNode[0]2, SelectedNode[1]2, 5, 5); } 刪除節(jié)點(diǎn): public void DeleteSelectedNode() { if (haveSelectedNode == true) { (nodeindex); = false; repaint(); } } 刪除弧線 : public void DeleteSelectedArc() { if (haveSelectedArc == true) { (arcindex); = false; repaint(); } } 下圖為一設(shè)計(jì)好 了的流程圖: 圖 6 一個設(shè)計(jì)好的工作流程圖 流程圖保存和讀取方法設(shè)計(jì) 將序列化后的節(jié)點(diǎn)與弧線的對象保存為 xml文件,易于保存和重繪。 序列化是將對象寫到流中,序列化需要對象實(shí)現(xiàn) Serializable接口,序列化后能將對象轉(zhuǎn)換成一系列字節(jié),并可在以后完全復(fù)原。序列化可以實(shí)現(xiàn)“有限持久化”。 在保存前先要對已經(jīng)繪出的節(jié)點(diǎn)以及弧線進(jìn)行屬性采集,我們用一個NodeBean以及 ArcBean方法來實(shí)現(xiàn)其功能, NodeBean的代碼描述如下: public class NodeBean implements {} public NodeBean(){ } String LeftUpNodeX; //定義頂點(diǎn)坐標(biāo) String LeftUpNodeY; private String MinX; //定義邊框 private String MinY; private String MaxX; private String MaxY; Color color; //定義外框顏色 String NodeName=; //節(jié)點(diǎn)名稱 public String getNodeName() { return NodeName; } public void setNodeName(String nodeName) { NodeName = nodeName; } public Color ge
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1