bs结构下的oa流程可视化的研究与实现—计算机毕业设计内容摘要:
ase = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=; database+= () + ; DriverID=22; READONLY=true}; // add on to the end con = ( jdbc:odbc:ccos ,); //数据源 } catch (ClassNotFoundException e) { // TODO Autogenerated catch block (); } catch (SQLException e) { // TODO Autogenerated catch block (); } return con; } 4 系统功能模块实现 系统流程及图示 一个流程的设计是先通过绘图来对实际业务过程进行分析、建模,然后通过一定的技术生成所建立流程模型的可被上层接口处理的形式化描述。 其流程如下图: 图 4 系统流程图 流程可视化设计实现 界面可视化 这是工具开始运行出现的第一个界面,由 Inter Explorer 浏览器打开,可以适应 B/S 结构的 OA 系统。 流程 绘图 保存 提供上层服务 读取修改 流程名 N Y 图 5 工具可视化界面 界面的布局由 BorderLayout来实现,分北部、西部、中部三部分。 包括: 北部 控制板( ArcControls); 西部 绘图工具板( ToolBlank); 中部 绘图画板 ( ArcCanvas)。 具体代码实现如下: (borderLayout1); (ArcControls, ); (ArcCanvas, ); (ToolBlank, ); 绘图功能设计 当设计一个流程时,用户点击绘图工作板中的绘制节点和绘制弧线两个按钮结合着选择环节名,将指定的可视化部件拖拉绘制 在工作平台上,每一个可视化部件代表一个角色,用流向箭头将各个部件关联起来。 还可以对节点和弧线进行修改和删除。 一个矩形节点的绘制,需要对它的各项属性进行定义,包括对它的起点坐标、矩形的宽和高、矩形的边框坐标。 以下是节点定义的简单描述: public class Node extends BaseObject{ int LeftUpNodeX。 //定义顶点坐标 int LeftUpNodeY。 private int starx。 //定义起始点 ,高 ,宽 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=。 //节点名称 } 绘制节点: (, , , ); //画矩形 (, +, +Height/2); //画节点名 拖动节点: public void SetNodeMoved(int x, int y){ = x; = y; = starx; = stary; = starx + Width; = stary + Height; } 拖动节点时鼠标动态: public void mouseDragged(MouseEvent e) { //鼠标拖动 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; } } 节点与节点之间需要用弧线进行连接。 一段弧线需要对它的起点坐标、终点坐标等属性进行定义。 以下是弧线定 义的简单描述: 弧线定义: public class Arc { private int endx。 //结束坐标 private int endy。 private int startx。 //起点坐标 private int starty。 private int[] SelectedNode = new int[2]。 //选择节点 private Vector Point。 //点元素 private Color color。 private boolean ArcEnd。 //判断弧段是否结束增加节点 public Arc(int x,int y) { Point = new Vector()。 int[] star = new int[2]。 //点由 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) { //鼠标拖动 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里面的点 (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{//任意方向用点代替 (endx2, endy2, 5, 5); } if ( (SelectedNode[0] != 0) amp。 amp。 (SelectedNode[1] != 0)) { (); (SelectedNode[0]2, SelectedNode[1]2, 5, 5); } 删除节点: public void DeleteSelectedNode() { if (haveSelectedNode == true) { (nodeindex); = false; repaint(); } } 删除弧线 : public void DeleteSelectedArc() { if (haveSelectedArc == true) { (arcindex); = false; repaint(); } } 下图为一设计好 了的流程图: 图 6 一个设计好的工作流程图 流程图保存和读取方法设计 将序列化后的节点与弧线的对象保存为 xml文件,易于保存和重绘。 序列化是将对象写到流中,序列化需要对象实现 Serializable接口,序列化后能将对象转换成一系列字节,并可在以后完全复原。 序列化可以实现“有限持久化”。 在保存前先要对已经绘出的节点以及弧线进行属性采集,我们用一个NodeBean以及 ArcBean方法来实现其功能, NodeBean的代码描述如下: public class NodeBean implements {} public NodeBean(){ } String LeftUpNodeX; //定义顶点坐标 String LeftUpNodeY; private String MinX; //定义边框 private String MinY; private String MaxX; private String MaxY; Color color; //定义外框颜色 String NodeName=; //节点名称 public String getNodeName() { return NodeName; } public void setNodeName(String nodeName) { NodeName = nodeName; } public Color ge。bs结构下的oa流程可视化的研究与实现—计算机毕业设计
相关推荐
主南宁威宁资产经营有限责任公司是南宁市政府批准成立的具有独立法人资格的国 有独资公司, 公司代表市政府持有授权范围内党和国家机关、人民团体、事业单位的国有资产产权、股权和市政设施附属资产产权,依法决定授权范围内国有资产的重组,包括转让、租赁、拍 卖 、兼并、联合开发经营等活动,优化资本结构和资产配置,盘活国有资产,承担国有资产的保值增值责任。 公司长期以来从事农产品集贸市场的开发建设和管理业务
定; 熟,运行稳妥可靠;,运行费用低; 6 沼气可回收利用 程实例多,容易获得工程设计和管理经验。 ; 2.合建式,占地省,处理成本底; 3. 处理效果好,有稳定的除 P脱 N 功能; 污泥回流系统和回流液;不设专门的二沉池; 氧,缺氧和好氧不是由空间划分的,而是由时间控制的。 缺 点 ,对自动化控制能力要求高; 定性没有厌氧消化稳定;;要在氧化沟前设厌氧池。 厂费用偏高;济效益差; 3
小。 B 段对有机物的去除机制与普通活性污泥法相似。 AB 法工艺的 特点: ( 1) 不设初沉池,污水经排水系统直接进入 A 段曝气池,使整个排水系统起到一个生物选择器的作用;为 A 段生物反应池提供了与原污水相适应的微生物种群。 ( 2) A 段吸附曝气池在高负荷、短泥龄条件下运行,微生物处于对数增殖期, 安徽工业大学 毕业设计 第 4页 繁殖较快,活性高。 B段曝气池以中低负荷运行
标系中的坐标值可用 MDI 方式输入,系统自动记忆。 使用该组指令前,必须先回参考点。 G54~ G59 为模态指令,可相互注销。 、基本指令 G00、 G0 G0 G0 G0 G28 1.快速点位移动 G00 格式: G00 X(U)_Z(W)_; 其中, X(U)_、 Z(W)_为目标点坐标值。 2.直线插补 G01 格式: G01 X(U)_Z(W)_ F_; 其中, X(U)、
高层和高层的成交率相比三月也有所上升。 市场的推量在本月有一定的缓和,也是成交率上升的原因之一。 从各区域的成交来看,园区和吴中区成交最多,分别占30%和27%,相城区最低,只有12%。 整体上看,各区域的成交仍比较平均,不存在焦点区域和冷淡区域。 从数据上我们还能得到其他的信息,一是小高层的已经完全被苏州人所接受,从本月市区的小高层成交可以看出这一点;其次多层产品低档化
动,就是把动力和运动传递到转向机构和驱动轮上。 要使小车行驶的更远并且按设计的轨道精确地行驶,传动机构应提高传递效率高、保证传动稳定、并且使其结构简单重量轻等同时还要考虑经济性和加工难易程度。 最后综合各方面的因素,设计出最优的传动机构。 常见的传动机构如下: ,直接由动力轴驱动驱动轮子和转向机构,此种方式效率最高、结构最简单可减少小车的质量。 在不考虑其它条件时这是最优的方式。