Ejemplo n.º 1
0
        private void FormLoad()
        {
            var dataTable = Dev2Interface.DB_GenerCanStartFlowsOfDataTable(WebUser.No);

            gcFlowControl.DataSource = dataTable;
            RepositoryItemHyperLinkEdit repHyperLink = new RepositoryItemHyperLinkEdit();

            gcFlowControl.RepositoryItems.Add(repHyperLink);
            gvFlow.Columns["Map"].ColumnEdit = repHyperLink;
            repHyperLink.LinkColor           = Color.Maroon;
            repHyperLink.NullText            = "查看";
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!ShowFlowOnly)
            {
                if (string.IsNullOrWhiteSpace(FK_Flow))
                {
                    throw new Exception("FK_Flow参数不能为空,且必须是有效的流程编号");
                }

                var sql     = string.Format("SELECT NodeID, Name,Step FROM WF_Node WHERE FK_Flow='{0}'", FK_Flow);
                var dtNodes = DBAccess.RunSQLReturnTable(sql);

                foreach (DataRow dr in dtNodes.Rows)
                {
                    if (FK_Node == Convert.ToInt32(dr["NodeID"]))
                    {
                        continue;
                    }

                    lbNodes.Items.Add(
                        new ListItem(
                            string.Format("{0}. {1}", dr["Step"], dr["Name"]),
                            string.Format("{0},{1},{2}", dr["Step"], dr["NodeID"], dr["Name"])));
                }
            }

            if (!ShowNodeOnly)
            {
                var sql         = "SELECT wfs.No,wfs.Name,wfs.ParentNo FROM WF_FlowSort wfs";
                var dtFlowSorts = DBAccess.RunSQLReturnTable(sql);

                DataTable dtFlows = null;

                sql = "SELECT wf.No,wf.[Name],wf.FK_FlowSort FROM WF_Flow wf";

                if (!string.IsNullOrWhiteSpace(WorkerId) && WorkerId.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length == 1)
                {
                    dtFlows = Dev2Interface.DB_GenerCanStartFlowsOfDataTable(WorkerId);
                }
                else
                {
                    dtFlows = DBAccess.RunSQLReturnTable(sql);
                }

                //定义组织列表的数据集合
                //元组定义:是否是流程、树级别[0开始]、文本、值
                var items = new List <Tuple <bool, int, string, string> >();

                GenerateItems(items, dtFlowSorts.Select("ParentNo=0")[0], 0, dtFlows, dtFlowSorts);

                foreach (var item in items)
                {
                    lbFlows.Items.Add(new ListItem(item.Item3, item.Item4));
                }

                //生成的列表样式如下:
                //┌流程树
                //├─线性流程
                //├┄┄001.财务报销演示
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 获取指定用户能够发起的流程集合
 /// </summary>
 /// <param name="userNo">用户编号</param>
 /// <returns></returns>
 public DataTable GetCanStartFlow(string userNo)
 {
     return(Dev2Interface.DB_GenerCanStartFlowsOfDataTable(userNo));
 }