积极答复者
求教自定义表单的问题

问题
答案
-
你好,wangyk
SharePoint工作流的所有历史信息都是存在一个叫做工作流历史记录的隐藏列表中的,所以大概的思路就是获得该列表的对象,然后再从该列表中查询出于当前项目相关联工作流历史信息即可,可以参考下面这段代码。
SPListItem m_item = SPContext.Current.ListItem; SPWorkflowCollection m_workflow_collection = m_item.Workflows; if (m_workflow_collection.Count>0) { SPWorkflow m_workflow = m_workflow_collection[0]; SPList m_workflow_history_list = m_workflow.HistoryList; SPQuery m_query = new SPQuery(); string m_query_str = string.Format("<Where><And><Eq><FieldRef Name=\"WorkflowInstance\" /><Value Type=\"Text\">{0}</Value></Eq><Eq><FieldRef Name=\"List\" /><Value Type=\"Text\">{1}</Value></Eq></And></Where>", m_workflow.InstanceId,m_workflow.ListId); SPListItemCollection m_workflow_history_items = m_workflow_history_list.GetItems(m_query); foreach (SPListItem item in m_workflow_history_items) { //White your action } }
- 已建议为答案 ww3128Moderator 2011年4月10日 6:23
- 已标记为答案 ww3128Moderator 2011年4月11日 6:05
全部回复
-
你好,wangyk
SharePoint工作流的所有历史信息都是存在一个叫做工作流历史记录的隐藏列表中的,所以大概的思路就是获得该列表的对象,然后再从该列表中查询出于当前项目相关联工作流历史信息即可,可以参考下面这段代码。
SPListItem m_item = SPContext.Current.ListItem; SPWorkflowCollection m_workflow_collection = m_item.Workflows; if (m_workflow_collection.Count>0) { SPWorkflow m_workflow = m_workflow_collection[0]; SPList m_workflow_history_list = m_workflow.HistoryList; SPQuery m_query = new SPQuery(); string m_query_str = string.Format("<Where><And><Eq><FieldRef Name=\"WorkflowInstance\" /><Value Type=\"Text\">{0}</Value></Eq><Eq><FieldRef Name=\"List\" /><Value Type=\"Text\">{1}</Value></Eq></And></Where>", m_workflow.InstanceId,m_workflow.ListId); SPListItemCollection m_workflow_history_items = m_workflow_history_list.GetItems(m_query); foreach (SPListItem item in m_workflow_history_items) { //White your action } }
- 已建议为答案 ww3128Moderator 2011年4月10日 6:23
- 已标记为答案 ww3128Moderator 2011年4月11日 6:05