关键字:驰骋工作流引擎 工作进度条实现 工作进度条接口 ccflow
简洁的效果图:
调用接口:BP.WF. Dev2Interface.DB_JobSchedule(int64 workid) ; 根据当前的workid获得流程的进度信息。
返回值说明:调用该接口后系统返回4个表,也就说4个json数据。
中文名 |
英文名 |
概要介绍 |
流程信息表 |
WF_GenerWorkFlow |
只有一条记录,标识流程运行运行的信息,流程的状态,是否结束,运行到那个节点上了。 您可能用到的节点: FK_Node 流程运行到的节点. WFState 流程的状态 2=运行中,3=已完成,5退回. |
流程节点表 |
WF_Node |
返回是一个集合,当前流程的所有节点的信息。NodeID,Name是重要的两个字段。 |
方向表 |
WF_Direction |
返回是一个集合,节点的先后顺序,就是节点的连接线. 您可能用到的字段: Node , 从节点ID. ToNode,到节点ID |
运动轨迹表 |
Track |
返回的是一个集合,节点运动过程中的参与人,时间。 您可能用到的字段: FK_Node, 发生的节点ID. NodeName,节点名称。 EmpNo, 人员编号 EmpName, 人员名称 RDT, 发生日期时间 IsPass, 是否完成.
|
产生的JSONS结构截图:
流程信息表:
节点集合:
节点连接线:
运动轨迹表
附件完整的代码(可以不看实现过程):
string sql = ""; DataSet ds = new DataSet();
/* * 流程控制主表, 可以得到流程状态,停留节点,当前的执行人. * 该表里有如下字段是重点: * 0. WorkID 流程ID. * 1. WFState 字段用于标识当前流程的状态.. * 2. FK_Node 停留节点. * 3. NodeName 停留节点名称. * 4. TodoEmps 停留的待办人员. */ GenerWorkFlow gwf = new GenerWorkFlow(workID); ds.Tables.Add(gwf.ToDataTableField("WF_GenerWorkFlow"));
/*节点信息: 节点信息表,存储每个环节的节点信息数据. * NodeID 节点ID. * Name 名称. * X,Y 节点图形位置,如果使用进度图就不需要了. */ NodeSimples nds = new NodeSimples(gwf.FK_Flow); ds.Tables.Add(nds.ToDataTableField("WF_Node"));
/* * 节点的连接线. */ Directions dirs = new Directions(gwf.FK_Flow); ds.Tables.Add(dirs.ToDataTableField("WF_Direction"));
#region 运动轨迹 /* * 运动轨迹: 构造的一个表,用与存储运动轨迹. * */ DataTable dtHistory = new DataTable(); dtHistory.TableName = "Track"; dtHistory.Columns.Add("FK_Node"); //节点ID. dtHistory.Columns.Add("NodeName"); //名称. dtHistory.Columns.Add("EmpNo"); //人员编号. dtHistory.Columns.Add("EmpName"); //名称 dtHistory.Columns.Add("RDT"); //记录日期. dtHistory.Columns.Add("SDT"); //应完成日期(可以不用.) dtHistory.Columns.Add("IsPass"); //是否通过?
//执行人. if (gwf.WFState == WFState.Complete) { //历史执行人. sql = "SELECT * FROM ND" + int.Parse(gwf.FK_Flow) + "Track WHERE WorkID=" + workID + " AND (ActionType=1 OR ActionType=0) ORDER BY RDT DESC"; DataTable dtTrack = BP.DA.DBAccess.RunSQLReturnTable(sql);
foreach (DataRow drTrack in dtTrack.Rows) { DataRow dr = dtHistory.NewRow(); dr["FK_Node"] = drTrack["NDFrom"]; //dr["ActionType"] = drTrack["NDFrom"]; dr["NodeName"] = drTrack["NDFromT"]; dr["EmpNo"] = drTrack["EmpFrom"]; dr["EmpName"] = drTrack["EmpFromT"]; dr["RDT"] = drTrack["RDT"]; dr["SDT"] = ""; dr["IsPass"] = 1; // gwl.IsPassInt; //是否通过. dtHistory.Rows.Add(dr); } } else { GenerWorkerLists gwls = new GenerWorkerLists(workID); foreach (GenerWorkerList gwl in gwls) { DataRow dr = dtHistory.NewRow(); dr["FK_Node"] = gwl.FK_Node; dr["NodeName"] = gwl.FK_NodeText; dr["EmpNo"] = gwl.FK_Emp; dr["EmpName"] = gwl.FK_EmpText; dr["RDT"] = gwl.RDT; dr["SDT"] = gwl.SDT; dr["IsPass"] = gwl.IsPassInt; //是否通过. dtHistory.Rows.Add(dr); } }
if (dtHistory.Rows.Count == 0) { DataRow dr = dtHistory.NewRow(); dr["FK_Node"] = gwf.FK_Node; dr["NodeName"] = gwf.NodeName; dr["EmpNo"] = gwf.Starter; dr["EmpName"] = gwf.StarterName; dr["RDT"] = gwf.RDT; dr["SDT"] = gwf.SDTOfNode; dtHistory.Rows.Add(dr); }
ds.Tables.Add(dtHistory); #endregion 运动轨迹
return ds; |
相关推荐
爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 14.2.3 游戏引擎框架 ...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 ...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 ...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 14.2.3 游戏引擎框架 ...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 Essential .NET 读书笔记 [第一部分] ...
14.1.2 搜索引擎的实现原理 161 14.1.3 搜索引擎的相关技术 162 14.2 用第三方的API实现搜索 162 14.2.1 使用Google API 163 14.2.2 使用百度 API 164 14.3 小结 168 第15章 网站统计模块 169 15.1 ...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...