关键字:驰骋工作流引擎 工作进度条实现 工作进度条接口 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; |
相关推荐
本主题聚焦于“hge游戏开发之进度条的实现”,通过VC6(Visual C++ 6.0)集成开发环境使用HGE(HGE - Hidden Game Engine)引擎来创建一个进度条,以展示游戏资源的加载进度。HGE是一款功能丰富的2D游戏开发框架,...
游戏加载进度条是游戏中常见...这个脚本提供了一个基本的加载进度条实现,但实际项目中可能需要处理更多复杂情况,如资源预加载、多资源加载管理、错误处理等。开发者可以在此基础上扩展,以满足更丰富的游戏加载需求。
6. **自定义组件**:在某些情况下,标准的Flex组件可能无法满足特定的工作流需求,这时开发者可能需要创建自定义组件来实现特定的功能,如进度条显示流程进度,或者定制化的任务列表。 7. **测试与调试**:为了确保...
爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...
在Android开发中,加载网页进度条是一个常见的用户体验优化元素,它可以帮助用户感知页面加载的状态,提升...对于想要深入研究Android源码的开发者,理解WebView的工作流程以及其与Java层的交互机制是非常有价值的。
这允许对象参与场景的渲染和更新流程。 2. **RenderQueue管理**:渲染队列的编号决定了渲染顺序,编号越小,渲染越早。例如,背景Queue 0、天空盒Queue 20、世界几何Queue 30、可移动物体Queue 50、覆盖层Queue 100...
在Unity引擎中,WebGL是一种将游戏或交互式应用导出到Web平台的方式,使得用户无需下载安装即可在浏览器上体验。"webgl修改启动界面UniveWeTemp.zip"这个压缩包显然提供了修改Unity WebGL项目启动界面的工具和资源。...
这对于深入理解引擎的工作原理和进行高级定制是非常有帮助的。 4. **开发流程** 使用AndEngine开发游戏通常包括以下步骤: - 配置环境:安装Android Studio,导入AndEngine库,配置好项目依赖。 - 创建游戏场景...
4. 客户端-服务器通信模型:理解CS模式的工作原理和流程。 5. 文件操作:读取和写入文件,可能需要考虑错误处理和大文件分块传输。 6. 可视化进度条:在UI上实时更新文件传输进度,提升用户体验。 通过这个项目,...
通过研究这个VB实现的浏览器源码,开发者可以了解到浏览器开发的基本流程,理解各个组件间的协同工作方式,这对于未来开发更复杂、功能更完善的浏览器或者其他基于网络的应用程序将大有裨益。同时,源码也提供了实践...
4. **控制流程**:自解压程序可能需要执行特定的步骤,如显示进度条、检查目标路径是否存在、询问用户设置等。这可以通过编写控制逻辑实现,结合Windows API函数,如`CreateWindow`来创建用户界面,以及`MessageBox`...
第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 游戏引擎框架 ...
在实际应用中,`userge-workflow-main`可能是一个包含用户工作流核心代码或配置文件的项目主目录,它可能包括流程定义文件、工作流引擎的实现、业务逻辑代码以及与UI交互的接口等。 总之,用户工作流是软件系统中不...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 ...
5. **控件功能实现**:包括触摸事件响应、游戏逻辑控制、得分计算等,确保游戏流程的顺畅和玩家体验的提升。 手机游戏不仅提供娱乐,还能激发玩家的反应速度和策略思考,有时甚至带来人生哲理的启示。本项目选择...
了解其工作界面、项目设置、资源管理以及场景构建流程是项目开始的基础。 2. **3D模型和纹理**:在万圣节主题中,可能需要创建或导入南瓜灯、鬼魂、骷髅等3D模型。这些模型应具有合适的纹理和贴图,如颜色、法线...
第14章 游戏引擎实现 14.1 游戏引擎介绍 14.1.1 什么是引擎 14.1.2 引擎的进化 14.1.3 常见的游戏引擎 14.1.4 Android游戏引擎 14.2 游戏引擎结构 14.2.1 游戏引擎原理 14.2.2 游戏引擎定位 ...
"LoadSceneAsync.zip"文件很显然关注的是Unity引擎中的异步加载场景功能,并且结合了进度条显示,这对于大型游戏或者内容丰富的应用来说是至关重要的。下面我们将详细探讨Unity异步加载场景以及如何实现进度条显示。...
总结,实现Godot游戏引擎中的加载屏幕系统涉及资源预加载、UI设计、进度管理等多个方面。通过合理的设计和优化,我们可以创建出既美观又实用的加载界面,提升游戏的整体品质和用户体验。在实际开发中,应根据项目的...
以上就是Cocos2dx中实现加载界面的基本流程。在实际开发中,可以根据需求进行扩展,比如添加错误处理机制、优化资源加载策略等。记得在设计加载界面时,既要保证功能性,也要注重用户体验,使游戏加载过程更加顺畅且...