首先得到节点控件的实例,因为不知道你是用的什么语言。 我就只能给你举例。
例如TreeNode treenode1,获得之后,找到实例控件的,你想得到的节点,比如当前选中的,一般都是Selected的一类属性。 然后这个属性之后,应该有一个allNodes属性之类的。 就可以得到了。
因为不知道你的语言,也不能给出具体的方法名称。你可以自己实践一下,一步一步来很简单的。
var setting = {
data: {
simpleData: {
enable: true
}
},
view: {
showIcon: false
},
callback:{
onClick:function zTreeOnClick(event, treeId, treeNode){
alert(treeNodetId + ", " + treeNodename+", "+treeId);
var ids=[];
ids=getChildren(ids,treeNode);
}
},
check: {
enable: true,
autoCheckTrigger:false,
chkboxType:{ "Y":"ps", "N":"ps" }
}
};
//ids是一个数组 返回结果数组 treeNode是选中的节点
function getChildren(ids,treeNode){
idspush(treeNodeid);
if (treeNodeisParent){
for(var obj in treeNodechildren){
getChildren(ids,treeNodechildren[obj]);
}
}
return ids;
}
1、获取上一个任务你可以通过act_hi_taskinst表通过proc_inst_id_获取所有任务根据节点创建时间降序排序,然后根据对比任务ID来判断当前任务接单的位置来判断当前任务的上一个任务
2、获取下一个任务,如果当前任务的下一个任务已经生成这可以参考1中的方法,否则需要解析bpm来进行获取节点 代码如下:
public List<FlowNode> getNextNode(String taskid) {
HistoricTaskInstance myTask = processEnginegetHistoryService()createHistoricTaskInstanceQuery()taskId(taskid)singleResult();
String processDefinitionId = myTaskgetProcessDefinitionId();
BpmnModel bpmnModel = repositoryServicegetBpmnModel(processDefinitionId);
String myActivityId = myTaskgetTaskDefinitionKey();
if (ValidateUtilisEmpty(myActivityId)) {
return ListsnewArrayList();
}
List<FlowNode> flowNodeList = ListsnewArrayList();
FlowNode flowNode = (FlowNode) bpmnModelgetFlowElement(myActivityId);
List<FlowNode> flowNodes = ListsnewArrayList();
flowNodesadd(flowNode);
addNextNode(flowNodes, flowNodeList);
return flowNodeList;
}
private void addNextNode(List<FlowNode> list, List<FlowNode> flowNodeList) {
if (ValidateUtilisEmpty(list)) {
return;
}
List<FlowNode> flowNodeList1 = ListsnewArrayList();
for (FlowNode flowNode : list) {
List<SequenceFlow> sequenceFlows = flowNodegetOutgoingFlows();
for (SequenceFlow sequenceFlow : sequenceFlows) {
FlowNode flowNode1 = (FlowNode) sequenceFlowgetTargetFlowElement();
if (flowNode1 == null) {
continue;
}
if (flowNode1 instanceof UserTask) {
if (flowNode1getName() == null) {
flowNode1setName(" ");
}
flowNodeListadd(flowNode1);
} else if (flowNode1 instanceof EndEvent) {
flowNode1setName("结束");
flowNodeListadd(flowNode1);
} else if (flowNode1 instanceof StartEvent) {
flowNode1setName("开始");
flowNodeListadd(flowNode1);
} else {
flowNodeList1add(flowNode1);
}
}
}
addNextNode(flowNodeList1, flowNodeList);
}
以上就是关于有没有什么方法能获得一个节点下的【所有节点】,包括子节点和孙节点全部的内容,包括:有没有什么方法能获得一个节点下的【所有节点】,包括子节点和孙节点、ztree怎么获取当前节点下的子节点、activiti当流程停留在某个任务的时候,如何获取上一个和下一个任务,或者是如何知道从当前任务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)