System.Data.DataTable.NewRow()

Here are the examples of the csharp api System.Data.DataTable.NewRow() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

564 Examples 7

19 Source : GloEntity.cs
with GNU Lesser General Public License v3.0
from ccbpm

private static DataTable ToTable1(Enreplacedy en)
        {

            string col1 = "字段名1";
            string col2 = "内容1";
            string col3 = "字段名2";
            string col4 = "内容2";

            //string enterNote=null;
            //			if (this.EnMap.Dtls.Count==0 || this.EnMap.AttrsOfOneVSM.Count==0)
            //				enterNote="内容1";
            //			else
            //				enterNote="保存后才能编辑关联信息";


            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn(col1, typeof(string)));
            dt.Columns.Add(new DataColumn(col2, typeof(string)));
            dt.Columns.Add(new DataColumn(col3, typeof(string)));
            dt.Columns.Add(new DataColumn(col4, typeof(string)));


            for (int i = 0; i < en.EnMap.HisPhysicsAttrs.Count; i++)
            {
                DataRow dr = dt.NewRow();
                Attr attr = en.EnMap.HisPhysicsAttrs[i];
                dr[col1] = attr.Desc;
                dr[col2] = en.GetValByKey(attr.Key);

                i++;
                if (i == en.EnMap.HisPhysicsAttrs.Count)
                {
                    dt.Rows.Add(dr);
                    break;
                }
                attr = en.EnMap.HisPhysicsAttrs[i];
                dr[col3] = attr.Desc;
                dr[col4] = en.GetValByKey(attr.Key);
                dt.Rows.Add(dr);
            }


            // 如果实体需要附件。
            if (en.EnMap.AdjunctType != AdjunctType.None)
            {
                // 加入附件信息。
                DataRow dr1 = dt.NewRow();
                dr1[col1] = "附件";
                dr1[col2] = "编辑附件";
                //dr["输入项目2"]="附件信息";

                dt.Rows.Add(dr1);
            }
            // 明细
            foreach (EnDtl dtl in en.EnMap.Dtls)
            {
                DataRow dr = dt.NewRow();
                dr[col1] = dtl.Desc;
                dr[col2] = "EnsName_" + dtl.Ens.ToString() + "_RefKey_" + dtl.RefKey;
                //dr["输入项目2"]="明细信息";
                dt.Rows.Add(dr);
            }
            // 多对多的关系
            foreach (AttrOfOneVSM attr in en.EnMap.AttrsOfOneVSM)
            {
                DataRow dr = dt.NewRow();
                dr[col1] = attr.Desc;
                dr[col2] = "OneVSM" + attr.EnsOfMM.ToString();
                //dr["输入项目2"]="多选";
                dt.Rows.Add(dr);
            }
            return dt;
        }

19 Source : XmlEn.cs
with GNU Lesser General Public License v3.0
from ccbpm

private DataTable GetTableTxt(DataTable dt,FileInfo file)
        {
            StreamReader sr = new StreamReader(file.FullName, System.Text.ASCIIEncoding.GetEncoding("GB2312"));
            Hashtable ht = new Hashtable();
            string key = "";
            string val = "";
            while (true)
            {
                if (sr.EndOfStream)
                    break;
                string lin = sr.ReadLine();
                if (lin == "" || lin == null)
                    continue;


                if (lin.IndexOf("*") == 0)
                {
                    /* 遇到注释文件 */
                    continue;
                }

                if (lin.IndexOf("=") == 0 || sr.EndOfStream)
                {
                    /* 约定的行记录, 开始以 = 开始就认为是一个新的记录。 */
                    // 处理表结构。
                    foreach (string ojbkey in ht.Keys)
                    {
                        if (dt.Columns.Contains(ojbkey) == false)
                        {
                            dt.Columns.Add(new DataColumn(ojbkey, typeof(string)));
                        }
                    }

                    DataRow dr = dt.NewRow();
                    foreach (string ojbkey in ht.Keys)
                    {
                        dr[ojbkey] = ht[ojbkey];
                    }

                    if (ht.Keys.Count > 1)
                        dt.Rows.Add(dr);


                    ht.Clear(); // clear hashtable.
                    if (sr.EndOfStream)
                        break;
                    continue;
                }

                int idx = lin.IndexOf("=");
                if (idx == -1)
                {
                    throw new Exception(this.File + "@不符合规则 key =val 的规则。");
                }

                key = lin.Substring(0, idx);
                if (key == "")
                    continue;

                val = lin.Substring(idx + 1);
                ht.Add(key, val);
            }


            return dt;
        }

19 Source : XmlEn.cs
with GNU Lesser General Public License v3.0
from ccbpm

public DataTable GetTable()
        {
            DataTable cdt = BP.DA.Cash.GetObj(this.Tname, Depositary.Application) as DataTable;
            if (cdt != null)
                return cdt;

            if (this.File.ToLower().IndexOf(".txt") > 0)
            {
                return this.GetTableTxt();
            }

            if (this.File.ToLower().IndexOf(".xml") > 0)
            {
                DataSet ds1 = new DataSet();
                ds1.ReadXml(this.File);
                DataTable mdt = ds1.Tables[this.TableName];
                if (mdt == null)
                    mdt = new DataTable();

                BP.DA.Cash.AddObj(this.Tname,
                    Depositary.Application, mdt);

                return ds1.Tables[this.TableName];
            }

            /* 说明这个是目录 */
            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(this.File);
            if (di.Exists == false)
                throw new Exception("文件不存在:" + this.File);

            FileInfo[] fis = di.GetFiles("*.xml");
            if (fis.Length == 0)
            {
                fis = di.GetFiles("*.txt");
                return this.GetTableTxts(fis);
            }

            DataTable dt = new DataTable(this.TableName);
            if (fis.Length == 0)
                return dt;

            DataTable tempDT = new DataTable();
            foreach (FileInfo fi in fis)
            {

                DataSet ds = new DataSet("myds");
                try
                {
                    ds.ReadXml(this.File + "\\" + fi.Name);
                }
                catch (Exception ex)
                {
                    throw new Exception("读取文件:" + fi.Name + "错误。Exception=" + ex.Message);
                }
                try
                {
                    //ds.
                    if (dt.Columns.Count == 0)
                    {
                        /* 如果表还是空的,没有任何结构。*/
                        try
                        {
                            dt = ds.Tables[this.TableName];
                        }
                        catch (Exception ex)
                        {
                            throw new Exception("可能是没有在" + fi.Name + "文件中找到表:" + this.TableName + " exception=" + ex.Message);
                        }
                        tempDT = dt.Clone();
                        continue;
                    }

                    DataTable mydt = ds.Tables[this.TableName];
                    if (mydt == null)
                        throw new Exception("无此表:" + this.TableName);

                    if (mydt.Rows.Count == 0)
                        continue;

                    foreach (DataRow mydr in mydt.Rows)
                    {
                        //dt.ImportRow(mydr);
                        DataRow dr = dt.NewRow();

                        foreach (DataColumn dc in tempDT.Columns)
                        {
                            //string "sd".Clone();
                            if (dc.ColumnName.IndexOf("_Id") != -1)
                                continue;

                            try
                            {
                                object obj = mydr[dc.ColumnName];
                                dr[dc.ColumnName] = obj;
                            }
                            catch (Exception ex)
                            {
                                throw new Exception("xml 配置错误,多个文件中的属性不对称。" + ex.Message);
                            }
                        }

                        dt.Rows.Add(dr);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("获取数据出现错误:fileName=" + fi.Name + " clasName=" + this.ToString() + " MoreInfo=" + ex.Message);
                }
            }
            BP.DA.Cash.AddObj(this.Tname,
                Depositary.Application,
                dt);
            return dt;
        }

19 Source : XmlEn.cs
with GNU Lesser General Public License v3.0
from ccbpm

public DataTable ToDataTable()
        {
            DataTable dt = new DataTable(this.TableName);

            if (this.Count == 0)
                return dt;

            XmlEn en = this[0] as XmlEn;
            Row r = en.Row;
            foreach (string key in r.Keys)
            {
                dt.Columns.Add(key, typeof(string));
            }

            foreach (XmlEn en1 in this)
            {
                DataRow dr = dt.NewRow();
                foreach (string key in r.Keys)
                {
                    dr[key] = en1.GetValStringByKey(key);
                }
                dt.Rows.Add(dr);
            }

            return dt;
        }

19 Source : JSON.cs
with GNU Lesser General Public License v3.0
from ccbpm

public static DataTable ToDataTable(string strJson)
        {
            if (strJson.Trim().IndexOf('[') != 0)
            {
                strJson = "[" + strJson + "]";
            }
            DataTable dtt = (DataTable)JsonConvert.DeserializeObject<DataTable>(strJson);
            return dtt;

            //转换json格式
            strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString();

            //取出表名  
            var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
            string strName = rg.Match(strJson).Value;
            DataTable tb = null;
            //去除表名  
            try
            {
                strJson = strJson.Substring(strJson.IndexOf("[") + 1);
                strJson = strJson.Substring(0, strJson.IndexOf("]"));
            }
            catch (Exception ex)
            {

            }
            //获取数据  
            rg = new Regex(@"(?<={)[^}]+(?=})");
            MatchCollection mc = rg.Matches(strJson);
            for (int i = 0; i < mc.Count; i++)
            {
                string strRow = mc[i].Value;
                string[] strRows = strRow.Split('*');
                //创建表  
                if (tb == null)
                {
                    tb = new DataTable();
                    tb.TableName = strName;
                    foreach (string str in strRows)
                    {
                        var dc = new DataColumn();
                        string[] strCell = str.Split('#');
                        if (strCell[0].Substring(0, 1) == "\"")
                        {
                            int a = strCell[0].Length;
                            dc.ColumnName = strCell[0].Substring(1, a - 2);
                        }
                        else
                        {
                            dc.ColumnName = strCell[0];
                        }
                        tb.Columns.Add(dc);
                    }
                    tb.AcceptChanges();
                }
                //增加内容  
                DataRow dr = tb.NewRow();
                for (int r = 0; r < strRows.Length; r++)
                {
                    dr[r] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
                }
                tb.Rows.Add(dr);
                tb.AcceptChanges();
            }
            return tb;
        }

19 Source : WF_Admin.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string TestFlow_Init()
        {
            //清除缓存.
            BP.Sys.SystemConfig.DoClearCash();

            if ( 1==2 && BP.Web.WebUser.IsAdmin == false )
                return "err@您不是管理员,无法执行该操作.";

            // 让admin 登录.
         //   BP.WF.Dev2Interface.Port_Login("admin");

            if (this.RefNo != null)
            {
                Emp emp = new Emp(this.RefNo);
                BP.Web.WebUser.SignInOfGener(emp);
                context.Session["FK_Flow"] = this.FK_Flow;
                return "url@../MyFlow.htm?FK_Flow=" + this.FK_Flow;
            }

            FlowExt fl = new FlowExt(this.FK_Flow);

            if (1 == 2 &&  BP.Web.WebUser.No != "admin" && fl.Tester.Length <= 1)
            {
                string msg= "err@二级管理员[" + BP.Web.WebUser.Name + "]您好,您尚未为该流程配置测试人员.";
                msg += "您需要在流程属性里的底部[设置流程发起测试人]的属性里,设置可以发起的测试人员,多个人员用逗号分开.";
                return msg;
            }

            /* 检查是否设置了测试人员,如果设置了就按照测试人员身份进入
             * 设置测试人员的目的是太多了人员影响测试效率.
             * */
            if (fl.Tester.Length > 2)
            {
                // 构造人员表.
                DataTable dtEmps = new DataTable();
                dtEmps.Columns.Add("No");
                dtEmps.Columns.Add("Name");
                dtEmps.Columns.Add("FK_DeptText");

                string[] strs = fl.Tester.Split(',');
                foreach (string str in strs)
                {
                    if (DataType.IsNullOrEmpty(str) == true)
                        continue;

                    Emp emp = new Emp();
                    emp.SetValByKey("No", str);
                    int i = emp.RetrieveFromDBSources();
                    if (i == 0)
                        continue;

                    DataRow dr = dtEmps.NewRow();
                    dr["No"] = emp.No;
                    dr["Name"] = emp.Name;
                    dr["FK_DeptText"] = emp.FK_DeptText;
                    dtEmps.Rows.Add(dr);
                }
                return BP.Tools.Json.ToJson(dtEmps);
            }

         

            //fl.DoCheck();

            int nodeid = int.Parse(this.FK_Flow + "01");
            DataTable dt = null;
            string sql = "";
            BP.WF.Node nd = new BP.WF.Node(nodeid);

            if (nd.IsGuestNode)
            {
                /*如果是guest节点,就让其跳转到 guest登录界面,让其发起流程。*/
                //这个地址需要配置.
                return "url@/SDKFlowDemo/GuestApp/Login.aspx?FK_Flow=" + this.FK_Flow;
            }

            try
            {

                switch (nd.HisDeliveryWay)
                {
                    case DeliveryWay.ByStation:
                    case DeliveryWay.ByStationOnly:
                      
                            sql = "SELECT Port_Emp.No  FROM Port_Emp LEFT JOIN Port_Dept   Port_Dept_FK_Dept ON  Port_Emp.FK_Dept=Port_Dept_FK_Dept.No  join Port_DeptEmpStation on (fk_emp=Port_Emp.No)   join WF_NodeStation on (WF_NodeStation.fk_station=Port_DeptEmpStation.fk_station) WHERE (1=1) AND  FK_Node=" + nd.NodeID;
                        // emps.RetrieveInSQL_Order("select fk_emp from Port_Empstation WHERE fk_station in (select fk_station from WF_NodeStation WHERE FK_Node=" + nodeid + " )", "FK_Dept");
                        break;
                    case DeliveryWay.ByDept:
                        sql = "select No,Name from Port_Emp where FK_Dept in (select FK_Dept from WF_NodeDept where FK_Node='" + nodeid + "') ";
                        //emps.RetrieveInSQL("");
                        break;
                    case DeliveryWay.ByBindEmp:
                        sql = "select No,Name from Port_Emp where No in (select FK_Emp from WF_NodeEmp where FK_Node='" + nodeid + "') ";
                        //emps.RetrieveInSQL("select fk_emp from wf_NodeEmp WHERE fk_node=" + int.Parse(this.FK_Flow + "01") + " ");
                        break;
                    case DeliveryWay.ByDeptAndStation:
                        //added by liuxc,2015.6.30.
                        //区别集成与BPM模式
                        if (BP.WF.Glo.OSModel == BP.Sys.OSModel.OneOne)
                        {
                            sql = "SELECT No FROM Port_Emp WHERE No IN ";
                            sql += "(SELECT No as FK_Emp FROM Port_Emp WHERE FK_Dept IN ";
                            sql += "( SELECT FK_Dept FROM WF_NodeDept WHERE FK_Node=" + nodeid + ")";
                            sql += ")";
                            sql += "AND No IN ";
                            sql += "(";
                            sql += "SELECT FK_Emp FROM " + BP.WF.Glo.EmpStation + " WHERE FK_Station IN ";
                            sql += "( SELECT FK_Station FROM WF_NodeStation WHERE FK_Node=" + nodeid + ")";
                            sql += ") ORDER BY No ";
                        }
                        else
                        {
                            sql = "SELECT pdes.FK_Emp AS No"
                                  + " FROM   Port_DeptEmpStation pdes"
                                  + "        INNER JOIN WF_NodeDept wnd"
                                  + "             ON  wnd.FK_Dept = pdes.FK_Dept"
                                  + "             AND wnd.FK_Node = " + nodeid
                                  + "        INNER JOIN WF_NodeStation wns"
                                  + "             ON  wns.FK_Station = pdes.FK_Station"
                                  + "             AND wnd.FK_Node =" + nodeid
                                  + " ORDER BY"
                                  + "        pdes.FK_Emp";
                        }
                        break;
                    case DeliveryWay.BySelected: //所有的人员多可以启动, 2016年11月开始约定此规则.
                        sql = "SELECT No as FK_Emp FROM Port_Emp ";
                        dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
                        if (dt.Rows.Count > 300)
                        {
                            if (SystemConfig.AppCenterDBType == BP.DA.DBType.MSSQL)
                                sql = "SELECT top 300 No as FK_Emp FROM Port_Emp ";

                            if (SystemConfig.AppCenterDBType == BP.DA.DBType.Oracle)
                                sql = "SELECT  No as FK_Emp FROM Port_Emp WHERE ROWNUM <300 ";

                            if (SystemConfig.AppCenterDBType == BP.DA.DBType.MySQL)
                                sql = "SELECT  No as FK_Emp FROM Port_Emp WHERE limit 0,300 ";
                        }
                        break;
                    case DeliveryWay.BySQL:
                        if (DataType.IsNullOrEmpty(nd.DeliveryParas))
                            return "err@您设置的按SQL访问开始节点,但是您没有设置sql.";
                        break;
                    default:
                        break;
                }

                dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
                if (dt.Rows.Count == 0)
                    return "err@您按照:" + nd.HisDeliveryWay + "的方式设置的开始节点的访问规则,但是开始节点没有人员。";

                if (dt.Rows.Count > 300)
                    return "err@可以发起开始节点的人员太多,会导致系统崩溃变慢,您需要在流程属性里设置可以发起的测试用户.";

                // 构造人员表.
                DataTable dtMyEmps = new DataTable();
                dtMyEmps.Columns.Add("No");
                dtMyEmps.Columns.Add("Name");
                dtMyEmps.Columns.Add("FK_DeptText");

                //处理发起人数据.
                string emps = "";
                foreach (DataRow dr in dt.Rows)
                {
                    string myemp = dr[0].ToString();
                    if (emps.Contains("," + myemp + ",") == true)
                        continue;

                    emps += "," + myemp + ",";
                    BP.Port.Emp emp = new Emp(myemp);

                    DataRow drNew = dtMyEmps.NewRow();

                    drNew["No"] = emp.No;
                    drNew["Name"] = emp.Name;
                    drNew["FK_DeptText"] = emp.FK_DeptText;

                    dtMyEmps.Rows.Add(drNew);
                }


                //检查物理表,避免错误.
                Nodes nds = new Nodes(this.FK_Flow);
                foreach (Node mynd in nds)
                {
                    mynd.HisWork.CheckPhysicsTable();
                }


                //返回数据源.
                return BP.Tools.Json.ToJson(dtMyEmps);
            }
            catch (Exception ex)
            {
                return "err@<h2>您没有正确的设置开始节点的访问规则,这样导致没有可启动的人员,<a href='http://bbs.ccflow.org/showtopic-4103.aspx' target=_blank ><font color=red>点击这查看解决办法</font>.</a>。</h2> 系统错误提示:" + ex.Message + "<br><h3>也有可能你你切换了OSModel导致的,什么是OSModel,请查看在线帮助文档 <a href='http://ccbpm.mydoc.io' target=_blank>http://ccbpm.mydoc.io</a>  .</h3>";
            }
        }

19 Source : WF_Admin_AttrFlow.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string NodesIcon_Init()
        {
            DataSet ds = new System.Data.DataSet();
            Nodes nds = new Nodes(this.FK_Flow);
            DataTable dt = nds.ToDataTableField("Nodes");
            ds.Tables.Add(dt);

            //把文件放入ds.
            string path = SystemConfig.PathOfWebApp + "\\WF\\Admin\\ClientBin\\NodeIcon\\";
            string[] strs = System.IO.Directory.GetFiles(path);
            DataTable dtIcon = new System.Data.DataTable();
            dtIcon.Columns.Add("No");
            dtIcon.Columns.Add("Name");
            foreach (string str in strs)
            {
                string fileName = str.Substring(str.LastIndexOf("\\") + 1);
                fileName = fileName.Substring(0, fileName.LastIndexOf("."));

                DataRow dr = dtIcon.NewRow();
                dr[0] = fileName;
                dr[1] = fileName;
                dtIcon.Rows.Add(dr);
            }

            dtIcon.TableName = "ICONs";
            ds.Tables.Add(dtIcon);

            return BP.Tools.Json.ToJson(ds);
        }

19 Source : DataSet2Json.cs
with GNU Lesser General Public License v3.0
from ccbpm

public static DataSet JsonToDataSet(string Json)
        {
            try
            {
                DataSet ds = new DataSet();
                JavaScriptSerializer JSS = new JavaScriptSerializer();


                object obj = JSS.DeserializeObject(Json);
                Dictionary<string, object> datajson = (Dictionary<string, object>)obj;

                foreach (var item in datajson)
                {
                    DataTable dt = new DataTable(item.Key);
                    object[] rows = (object[])item.Value;
                    foreach (var row in rows)
                    {
                        Dictionary<string, object> val = (Dictionary<string, object>)row;
                        DataRow dr = dt.NewRow();
                        foreach (KeyValuePair<string, object> sss in val)
                        {
                            if (!dt.Columns.Contains(sss.Key))
                            {
                                dt.Columns.Add(sss.Key);
                                dr[sss.Key] = sss.Value;
                            }
                            else
                                dr[sss.Key] = sss.Value;
                        }
                        dt.Rows.Add(dr);
                    }
                    ds.Tables.Add(dt);
                }
                return ds;
            }
            catch
            {
                return null;
            }
        }

19 Source : DataSet2Json.cs
with GNU Lesser General Public License v3.0
from ccbpm

public static DataTable ToDataTable(string json)
        {
            DataTable dataTable = new DataTable();  //实例化  
            try
            {
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值  
                ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
                if (arrayList.Count > 0)
                {
                    foreach (Dictionary<string, object> dictionary in arrayList)
                    {
                        if (dictionary.Keys.Count<string>() == 0)
                        {
                            return dataTable;
                        }
                        if (dataTable.Columns.Count == 0)
                        {
                            foreach (string current in dictionary.Keys)
                            {
                                if (dictionary[current] == null)
                                {
                                    dataTable.Columns.Add(current, typeof(string));
                                    continue;
                                }
                                dataTable.Columns.Add(current, dictionary[current].GetType());
                            }
                        }
                        DataRow dataRow = dataTable.NewRow();
                        foreach (string current in dictionary.Keys)
                        {
                            if (dictionary[current] == null)
                            {
                                dataTable.Columns[current].AllowDBNull = true;
                                dataRow[current] = DBNull.Value;
                                continue;
                            }
                            dataRow[current] = dictionary[current];
                        }
                        dataTable.Rows.Add(dataRow); //循环添加行到DataTable中  
                    }
                }
            }
            catch
            {
            }
            return dataTable;
        }

19 Source : WF_Admin_AttrFlow.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string NodeAttrs_Init()
        {
            var strFlowId = GetRequestVal("FK_Flow");
            if (DataType.IsNullOrEmpty(strFlowId))
            {
                return "err@参数错误!";
            }

            Nodes nodes = new Nodes();
            nodes.Retrieve("FK_Flow", strFlowId);
            //因直接使用nodes.ToJson()无法获取某些字段(e.g.HisFormTypeText,原因:Node没有自己的Attr类)
            //故此处手动创建前台所需的DataTable
            DataTable dt = new DataTable();
            dt.Columns.Add("NodeID");	//节点ID
            dt.Columns.Add("Name");		//节点名称
            dt.Columns.Add("HisFormType");		//表单方案
            dt.Columns.Add("HisFormTypeText");
            dt.Columns.Add("HisRunModel");		//节点类型
            dt.Columns.Add("HisRunModelT");

            dt.Columns.Add("HisDeliveryWay");	//接收方类型
            dt.Columns.Add("HisDeliveryWayText");
            dt.Columns.Add("HisDeliveryWayJsFnPara");
            dt.Columns.Add("HisDeliveryWayCountLabel");
            dt.Columns.Add("HisDeliveryWayCount");	//接收方Count

            dt.Columns.Add("HisCCRole");	//抄送人
            dt.Columns.Add("HisCCRoleText");
            dt.Columns.Add("HisFrmEventsCount");	//消息&事件Count
            dt.Columns.Add("HisFinishCondsCount");	//流程完成条件Count
            DataRow dr;
            foreach (Node node in nodes)
            {
                dr = dt.NewRow();
                dr["NodeID"] = node.NodeID;
                dr["Name"] = node.Name;
                dr["HisFormType"] = node.HisFormType;
                dr["HisFormTypeText"] = node.HisFormTypeText;
                dr["HisRunModel"] = node.HisRunModel;
                dr["HisRunModelT"] = node.HisRunModelT;
                dr["HisDeliveryWay"] = node.HisDeliveryWay;
                dr["HisDeliveryWayText"] = node.HisDeliveryWayText;

                //接收方数量
                var intHisDeliveryWayCount = 0;
                if (node.HisDeliveryWay == BP.WF.DeliveryWay.ByStation)
                {
                    dr["HisDeliveryWayJsFnPara"] = "ByStation";
                    dr["HisDeliveryWayCountLabel"] = "岗位";
                    BP.WF.Template.NodeStations nss = new BP.WF.Template.NodeStations();
                    intHisDeliveryWayCount = nss.Retrieve(BP.WF.Template.NodeStationAttr.FK_Node, node.NodeID);
                }
                else if (node.HisDeliveryWay == BP.WF.DeliveryWay.ByDept)
                {
                    dr["HisDeliveryWayJsFnPara"] = "ByDept";
                    dr["HisDeliveryWayCountLabel"] = "部门";
                    BP.WF.Template.NodeDepts nss = new BP.WF.Template.NodeDepts();
                    intHisDeliveryWayCount = nss.Retrieve(BP.WF.Template.NodeDeptAttr.FK_Node, node.NodeID);
                }
                else if (node.HisDeliveryWay == BP.WF.DeliveryWay.ByBindEmp)
                {
                    dr["HisDeliveryWayJsFnPara"] = "ByDept";
                    dr["HisDeliveryWayCountLabel"] = "人员";
                    BP.WF.Template.NodeEmps nes = new BP.WF.Template.NodeEmps();
                    intHisDeliveryWayCount = nes.Retrieve(BP.WF.Template.NodeStationAttr.FK_Node, node.NodeID);
                }
                dr["HisDeliveryWayCount"] = intHisDeliveryWayCount;

                //抄送
                dr["HisCCRole"] = node.HisCCRole;
                dr["HisCCRoleText"] = node.HisCCRoleText;

                //消息&事件Count
                BP.Sys.FrmEvents fes = new BP.Sys.FrmEvents();
                dr["HisFrmEventsCount"] = fes.Retrieve(BP.Sys.FrmEventAttr.FK_MapData, "ND" + node.NodeID);

                //流程完成条件Count
                BP.WF.Template.Conds conds = new BP.WF.Template.Conds(BP.WF.Template.CondType.Flow, node.NodeID);
                dr["HisFinishCondsCount"] = conds.Count;

                dt.Rows.Add(dr);
            }
            return BP.Tools.Json.ToJson(dt);
        }

19 Source : WF_Admin_CCFormDesigner_FrmEvent.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string ActionDtl_Init()
        {
            DataSet ds = new DataSet();

            //事件实体.
            FrmEvents ndevs = new FrmEvents();
            ndevs.Retrieve(FrmEventAttr.FK_MapData, this.FK_MapData);

            DataTable dt = ndevs.ToDataTableField("FrmEvents");
            ds.Tables.Add(dt);

            //业务单元集合.
            DataTable dtBuess = new DataTable();
            dtBuess.Columns.Add("No", typeof(string));
            dtBuess.Columns.Add("Name", typeof(string));
            dtBuess.TableName = "BuessUnits";
            ArrayList al = BP.En.ClreplacedFactory.GetObjects("BP.Sys.BuessUnitBase");
            foreach (BuessUnitBase en in al)
            {
                DataRow dr = dtBuess.NewRow();
                dr["No"] = en.ToString();
                dr["Name"] = en.replacedle;
                dtBuess.Rows.Add(dr);
            }

            ds.Tables.Add(dtBuess);

            return BP.Tools.Json.ToJson(ds);
        }

19 Source : WF_Admin_Cond.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string CondByFrm_Init()
        {
            DataSet ds = new DataSet();

            string fk_mainNode = this.GetRequestVal("FK_MainNode");
            string toNodeID = this.GetRequestVal("ToNodeID");

            Node nd = new Node(int.Parse(fk_mainNode));

            CondType condTypeEnum = (CondType)this.GetRequestValInt("CondType");

            //string mypk = fk_mainNode + "_" + toNodeID + "_" + condTypeEnum + "_" + ConnDataFrom.SQLTemplate.ToString();

            //增加条件集合.
            Conds conds = new Conds();
            conds.Retrieve(CondAttr.FK_Node, fk_mainNode, CondAttr.ToNodeID, toNodeID);
            ds.Tables.Add(conds.ToDataTableField("WF_Conds"));

            string noteIn = "'FID','PRI','PNodeID','PrjNo', 'PrjName', 'FK_NY','FlowDaySpan', 'MyNum','Rec','CDT','RDT','AtPara','WFSta','FlowNote','FlowStartRDT','FlowEnderRDT','FlowEnder','FlowSpanDays','WFState','OID','PWorkID','PFlowNo','PEmp','FlowEndNode','GUID'";

            //增加字段集合.
            string sql = "";
            if (SystemConfig.AppCenterDBType == DBType.Oracle)
            {
                sql = "SELECT KeyOfEn as No, KeyOfEn||' - '||Name as Name FROM Sys_MapAttr WHERE FK_MapData='ND" + int.Parse(nd.FK_Flow) + "Rpt'";
                sql += " AND KeyOfEn Not IN ("+noteIn+") ";
                sql += " AND MyDataType NOT IN (6,7) ";
            }
            else if (SystemConfig.AppCenterDBType == DBType.MySQL)
            {
                sql = "SELECT KeyOfEn as No, CONCAT(KeyOfEn,' - ', Name ) as Name FROM Sys_MapAttr WHERE FK_MapData='ND" + int.Parse(nd.FK_Flow) + "Rpt'";
                sql += " AND KeyOfEn Not IN (" + noteIn + ") ";
                sql += " AND MyDataType NOT IN (6,7) ";
            }
            else
            {
                sql = "SELECT KeyOfEn as No, KeyOfEn+' - '+Name as Name FROM Sys_MapAttr WHERE FK_MapData='ND" + int.Parse(nd.FK_Flow) + "Rpt'";
                sql += " AND KeyOfEn Not IN (" + noteIn + ") ";
                sql += " AND MyDataType NOT IN (6,7) ";
            }


            DataTable dt = DBAccess.RunSQLReturnTable(sql);
            dt.TableName = "Sys_MapAttr";
            dt.Columns[0].ColumnName = "No";
            dt.Columns[1].ColumnName = "Name";

            DataRow dr = dt.NewRow();
            dr[0] = "all";
            dr[1] = "请选择表单字段";
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);

            return BP.Tools.Json.DataSetToJson(ds, false); // cond.ToJson();
        }

19 Source : WF_Admin_FoolFormDesigner_SFTable.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string SF0_Init()
        {
            string cl = "BP.En.Enreplacedies";
            ArrayList al = ClreplacedFactory.GetObjects(cl);

            //定义容器.
            DataTable dt = new DataTable();
            dt.Columns.Add("No");
            dt.Columns.Add("Name");

            SFTables sfs = new SFTables();
            sfs.RetrieveAll();

            foreach (object obj in al)
            {
                Enreplacedies ens = obj as Enreplacedies;
                if (ens == null)
                    continue;

                try
                {
                    Enreplacedy en = ens.GetNewEnreplacedy;
                    if (en == null)
                        continue;

                    if (en.EnMap.Attrs.Contains("No") == false)
                        continue;

                    if (sfs.Contains(ens.ToString()) == true)
                        continue;

                    DataRow dr = dt.NewRow();
                    dr["No"] = ens.ToString();

                    if (en.IsTreeEnreplacedy)
                        dr["Name"] = en.EnMap.EnDesc + "(树结构) " + ens.ToString();
                    else
                        dr["Name"] = en.EnMap.EnDesc + " " + ens.ToString();

                    dt.Rows.Add(dr);
                }
                catch
                {

                }
            }
            return BP.Tools.Json.ToJson(dt);
        }

19 Source : WF_CommEntity.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string EnreplacedyOnly_Init()
        {
            try
            {
                //是否是空白记录.
                bool isBlank = DataType.IsNullOrEmpty(this.PKVal);

                //初始化enreplacedy.
                string enName = this.EnName;
                Enreplacedy en = null;
                if (isBlank == true)
                {
                    if (DataType.IsNullOrEmpty(this.EnsName) == true)
                        return "err@类名没有传递过来";
                    Enreplacedies ens = ClreplacedFactory.GetEns(this.EnsName);
                    en = ens.GetNewEnreplacedy;
                }
                else
                {
                    en = ClreplacedFactory.GetEn(this.EnName);
                }

                if (en == null)
                    return "err@参数类名不正确.";

                //获得描述.
                Map map = en.EnMap;
                string pkVal = this.PKVal;
                if (isBlank == false)
                {
                    en.PKVal = pkVal;
                    int i = en.RetrieveFromDBSources();
                    if (i == 0)
                        return "err@数据[" + map.EnDesc + "]主键为[" + pkVal + "]不存在,或者没有保存。";
                }
                else
                {
                    foreach (Attr attr in en.EnMap.Attrs)
                        en.SetValByKey(attr.Key, attr.DefaultVal);

                    //设置默认的数据.
                    en.ResetDefaultVal();

                    en.SetValByKey("RefPKVal", this.RefPKVal);

                    //自动生成一个编号.
                    if (en.IsNoEnreplacedy == true && en.EnMap.IsAutoGenerNo == true)
                        en.SetValByKey("No", en.GenerNewNoByKey("No"));
                }


                //定义容器.
                DataSet ds = new DataSet();

                //定义Sys_MapData.
                MapData md = new MapData();
                md.No = this.EnName;
                md.Name = map.EnDesc;

                //附件类型.
                md.SetPara("BPEnreplacedyAthType", (int)map.HisBPEnreplacedyAthType);

                #region 加入权限信息.
                //把权限加入参数里面.
                if (en.HisUAC.IsInsert)
                    md.SetPara("IsInsert", "1");
                if (en.HisUAC.IsUpdate)
                    md.SetPara("IsUpdate", "1");
                if (isBlank == true)
                {                   
                    if (en.HisUAC.IsDelete)
                        md.SetPara("IsDelete", "0");
                }
                else
                {
                    if (en.HisUAC.IsDelete)
                        md.SetPara("IsDelete", "1");
                }
                #endregion 加入权限信息.


                ds.Tables.Add(md.ToDataTableField("Sys_MapData"));

                //把主数据放入里面去.
                DataTable dtMain = en.ToDataTableField("MainTable");
                ds.Tables.Add(dtMain);

                #region 增加上分组信息.
                EnCfg ec = new EnCfg(this.EnName);
                string groupreplacedle = ec.Groupreplacedle;
                if (DataType.IsNullOrEmpty(groupreplacedle) == true)
                    groupreplacedle = "@" + en.PK + ",基本信息," + map.EnDesc + "";

                //增加上.
                DataTable dtGroups = new DataTable("Sys_GroupField");
                dtGroups.Columns.Add("OID");
                dtGroups.Columns.Add("Lab");
                dtGroups.Columns.Add("Tip");
                dtGroups.Columns.Add("CtrlType");
                dtGroups.Columns.Add("CtrlID");

                string[] strs = groupreplacedle.Split('@');
                foreach (string str in strs)
                {
                    if (DataType.IsNullOrEmpty(str))
                        continue;

                    string[] vals = str.Split('=');
                    if (vals.Length == 1)
                        vals = str.Split(',');

                    if (vals.Length == 0)
                        continue;

                    DataRow dr = dtGroups.NewRow();
                    dr["OID"] = vals[0];
                    dr["Lab"] = vals[1];
                    if (vals.Length == 3)
                        dr["Tip"] = vals[2];
                    dtGroups.Rows.Add(dr);
                }
                ds.Tables.Add(dtGroups);

                #endregion 增加上分组信息.

                #region 字段属性.
                MapAttrs attrs = en.EnMap.Attrs.ToMapAttrs;
                DataTable sys_MapAttrs = attrs.ToDataTableField("Sys_MapAttr");
                sys_MapAttrs.Columns.Remove(MapAttrAttr.GroupID);
                sys_MapAttrs.Columns.Add("GroupID");


                //sys_MapAttrs.Columns[MapAttrAttr.GroupID].DataType = typeof(string); //改变列类型.

                //给字段增加分组.
                string currGroupID = "";
                foreach (DataRow drAttr in sys_MapAttrs.Rows)
                {
                    if (currGroupID.Equals("") == true)
                        currGroupID = dtGroups.Rows[0]["OID"].ToString();

                    string keyOfEn = drAttr[MapAttrAttr.KeyOfEn].ToString();
                    foreach (DataRow drGroup in dtGroups.Rows)
                    {
                        string field = drGroup["OID"].ToString();
                        if (keyOfEn.Equals(field))
                        {
                            currGroupID = field;
                        }
                    }
                    drAttr[MapAttrAttr.GroupID] = currGroupID;
                }
                ds.Tables.Add(sys_MapAttrs);
                #endregion 字段属性.

                #region 加入扩展属性.
                MapExts mapExts = new MapExts(this.EnName+"s");
                DataTable Sys_MapExt = mapExts.ToDataTableField("Sys_MapExt");
                ds.Tables.Add(Sys_MapExt);
                #endregion 加入扩展属性.

                #region 把外键与枚举放入里面去.

                //加入外键.
                foreach (DataRow dr in sys_MapAttrs.Rows)
                {
                    string uiBindKey = dr["UIBindKey"].ToString();
                    string lgType = dr["LGType"].ToString();
                    if (lgType.Equals("2")==false)
                        continue;

                    string UIIsEnable = dr["UIVisible"].ToString();

                    if (UIIsEnable.Equals("0") == true)
                        continue;

                    if (DataType.IsNullOrEmpty(uiBindKey) == true)
                    {
                        string myPK = dr["MyPK"].ToString();
                        /*如果是空的*/
                        //   throw new Exception("@属性字段数据不完整,流程:" + fl.No + fl.Name + ",节点:" + nd.NodeID + nd.Name + ",属性:" + myPK + ",的UIBindKey IsNull ");
                    }

                    // 检查是否有下拉框自动填充。
                    string keyOfEn = dr["KeyOfEn"].ToString();
                    string fk_mapData = dr["FK_MapData"].ToString();

                    // 判断是否存在.
                    if (ds.Tables.Contains(uiBindKey) == true)
                        continue;

                    DataTable dt = BP.Sys.PubClreplaced.GetDataTableByUIBineKey(uiBindKey);
                    dt.TableName = keyOfEn;

                    ds.Tables.Add(dt);
                }

                //加入sql模式的外键.
                foreach (Attr attr in en.EnMap.Attrs)
                {
                    if (attr.IsRefAttr == true)
                        continue;

                    if (DataType.IsNullOrEmpty(attr.UIBindKey) || attr.UIBindKey.Length <= 10)
                        continue;

                    if (attr.UIIsReadonly == true)
                        continue;

                    if (attr.UIBindKey.Contains("SELECT") == true || attr.UIBindKey.Contains("select") == true)
                    {
                        /*是一个sql*/
                        string sqlBindKey = attr.UIBindKey.Clone() as string;
                        sqlBindKey = BP.WF.Glo.DealExp(sqlBindKey, en, null);

                        DataTable dt = DBAccess.RunSQLReturnTable(sqlBindKey);
                        dt.TableName = attr.Key;

                        //@杜. 翻译当前部分.
                        if (SystemConfig.AppCenterDBType == DBType.Oracle)
                        {
                            dt.Columns["NO"].ColumnName = "No";
                            dt.Columns["NAME"].ColumnName = "Name";
                        }

                        ds.Tables.Add(dt);
                    }
                }

                //加入枚举的外键.
                string enumKeys = "";
                foreach (Attr attr in map.Attrs)
                {
                    if (attr.MyFieldType == FieldType.Enum)
                    {
                        enumKeys += "'" + attr.UIBindKey + "',";
                    }
                }

                if (enumKeys.Length > 2)
                {
                    enumKeys = enumKeys.Substring(0, enumKeys.Length - 1);
                    // Sys_Enum
                    string sqlEnum = "SELECT * FROM Sys_Enum WHERE EnumKey IN (" + enumKeys + ")";
                    DataTable dtEnum = DBAccess.RunSQLReturnTable(sqlEnum);
                    dtEnum.TableName = "Sys_Enum";

                    if (SystemConfig.AppCenterDBType == DBType.Oracle)
                    {
                        dtEnum.Columns["MYPK"].ColumnName = "MyPK";
                        dtEnum.Columns["LAB"].ColumnName = "Lab";
                        dtEnum.Columns["ENUMKEY"].ColumnName = "EnumKey";
                        dtEnum.Columns["INTKEY"].ColumnName = "IntKey";
                        dtEnum.Columns["LANG"].ColumnName = "Lang";
                    }

                    ds.Tables.Add(dtEnum);
                }
                #endregion 把外键与枚举放入里面去.


                #region 增加 上方法.
                DataTable dtM = new DataTable("dtM");
                dtM.Columns.Add("No");
                dtM.Columns.Add("replacedle");
                dtM.Columns.Add("Tip");
                dtM.Columns.Add("Visable");

                dtM.Columns.Add("Url");
                dtM.Columns.Add("Target");
                dtM.Columns.Add("Warning");
                dtM.Columns.Add("RefMethodType");
                dtM.Columns.Add("GroupName");
                dtM.Columns.Add("W");
                dtM.Columns.Add("H");
                dtM.Columns.Add("Icon");
                dtM.Columns.Add("IsCanBatch");
                dtM.Columns.Add("RefAttrKey");

                RefMethods rms = map.HisRefMethods;
                foreach (RefMethod item in rms)
                {
                    string myurl = "";
                    if (item.RefMethodType != RefMethodType.Func)
                    {
                        myurl = item.Do(null) as string;
                        if (myurl == null)
                            continue;
                    }
                    else
                    {
                        myurl = "../RefMethod.htm?Index=" + item.Index + "&EnName=" + en.ToString() + "&EnsName=" + en.GetNewEnreplacedies.ToString() + "&PKVal=" + this.PKVal;
                    }

                    DataRow dr = dtM.NewRow();

                    dr["No"] = item.Index;
                    dr["replacedle"] = item.replacedle;
                    dr["Tip"] = item.ToolTip;
                    dr["Visable"] = item.Visable;
                    dr["Warning"] = item.Warning;

                    dr["RefMethodType"] = (int)item.RefMethodType;
                    dr["RefAttrKey"] = item.RefAttrKey;
                    dr["Url"] = myurl;
                    dr["W"] = item.Width;
                    dr["H"] = item.Height;
                    dr["Icon"] = item.Icon;
                    dr["IsCanBatch"] = item.IsCanBatch;
                    dr["GroupName"] = item.GroupName;

                    dtM.Rows.Add(dr); //增加到rows.
                }
                #endregion 增加 上方法.

                //增加方法。
                ds.Tables.Add(dtM);

                return BP.Tools.Json.ToJson(ds);
            }
            catch (Exception ex)
            {
                return "err@" + ex.Message;
            }
        }

19 Source : WF_CommEntity.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string Enreplacedy_Init()
        {
            try
            {
                //是否是空白记录.
                bool isBlank = DataType.IsNullOrEmpty(this.PKVal);
                //if (DataType.IsNullOrEmpty(this.PKVal) == true)
                //    return "err@主键数据丢失,不能初始化En.htm";

                //初始化enreplacedy.
                string enName = this.EnName;
                Enreplacedy en = null;
                if (DataType.IsNullOrEmpty(enName) == true)
                {
                    if (DataType.IsNullOrEmpty(this.EnsName) == true)
                        return "err@类名没有传递过来";
                    Enreplacedies ens = ClreplacedFactory.GetEns(this.EnsName);
                    en = ens.GetNewEnreplacedy;
                }
                else
                {
                    en = ClreplacedFactory.GetEn(this.EnName);
                }

                if (en == null)
                    return "err@参数类名不正确.";

                //获得描述.
                Map map = en.EnMap;

                string pkVal = this.PKVal;

                if (isBlank == false)
                {
                    en.PKVal = pkVal;
                    en.RetrieveFromDBSources();
                }

                //定义容器.
                DataSet ds = new DataSet();

                //把主数据放入里面去.
                DataTable dtMain = en.ToDataTableField("MainTable");
                ds.Tables.Add(dtMain);

                #region 增加 上方法.
                DataTable dtM = new DataTable("dtM");
                dtM.Columns.Add("No");
                dtM.Columns.Add("replacedle");
                dtM.Columns.Add("Tip");
                dtM.Columns.Add("Visable");

                dtM.Columns.Add("Url");
                dtM.Columns.Add("Target");
                dtM.Columns.Add("Warning");
                dtM.Columns.Add("RefMethodType");
                dtM.Columns.Add("GroupName");
                dtM.Columns.Add("W");
                dtM.Columns.Add("H");
                dtM.Columns.Add("Icon");
                dtM.Columns.Add("IsCanBatch");
                dtM.Columns.Add("RefAttrKey");
                //判断Func是否有参数
                dtM.Columns.Add("FunPara");
               

                RefMethods rms = map.HisRefMethods;
                foreach (RefMethod item in rms)
                {
                    string myurl = "";
                    if (item.RefMethodType == RefMethodType.LinkeWinOpen
                         || item.RefMethodType == RefMethodType.RightFrameOpen
                        || item.RefMethodType == RefMethodType.LinkModel)
                    {
                        try
                        {
                            myurl = item.Do(null) as string;
                            if (myurl == null)
                                continue;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception("err@系统错误:根据方法名生成url出现错误:@"+ex.Message+"@"+ex.InnerException+" @方法名:"+item.ClreplacedMethodName );
                        }
                    }
                    else
                    {
                        myurl = "../RefMethod.htm?Index=" + item.Index + "&EnName=" + en.ToString() + "&EnsName=" + en.GetNewEnreplacedies.ToString() + "&PKVal=" + this.PKVal;
                    }

                    DataRow dr = dtM.NewRow();

                    dr["No"] = item.Index;
                    dr["replacedle"] = item.replacedle;
                    dr["Tip"] = item.ToolTip;
                    dr["Visable"] = item.Visable;
                    dr["Warning"] = item.Warning;


                    dr["RefMethodType"] = (int)item.RefMethodType;
                    dr["RefAttrKey"] = item.RefAttrKey;
                    dr["Url"] = myurl;
                    dr["W"] = item.Width;
                    dr["H"] = item.Height;
                    dr["Icon"] = item.Icon;
                    dr["IsCanBatch"] = item.IsCanBatch;
                    dr["GroupName"] = item.GroupName;
                    Attrs attrs = item.HisAttrs;
                    if(attrs.Count ==0)
                        dr["FunPara"] = "false";
                    else
                        dr["FunPara"] = "true";

                    dtM.Rows.Add(dr); //增加到rows.
                }
                #endregion 增加 上方法.

                #region 加入一对多的实体编辑
                AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM;
                string sql = "";
                int i = 0;
                if (oneVsM.Count > 0)
                {
                    foreach (AttrOfOneVSM vsM in oneVsM)
                    {
                        //判断该dot2dot是否显示?
                        Enreplacedy enMM = vsM.EnsOfMM.GetNewEnreplacedy;
                        enMM.SetValByKey(vsM.AttrOfOneInMM, this.PKVal);
                        if (enMM.HisUAC.IsView == false)
                            continue;
                        DataRow dr = dtM.NewRow();
                        dr["No"] = enMM.ToString();
                        // dr["GroupName"] = vsM.GroupName;
                        if (en.PKVal != null)
                        {
                            //判断模式.
                            string url = "";
                            if (vsM.Dot2DotModel == Dot2DotModel.TreeDept)
                            {
                                //url = "Dot2DotTreeDeptModel.htm?EnsName=" + en.GetNewEnreplacedies.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString();
                                //  url = "Branches.htm?EnName=" + en.ToString() + "&AttrKey=" + vsM.EnsOfMM.ToString();

                                url = "Branches.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString();
                                // url += "&PKVal=" + en.PKVal;
                                url += "&Dot2DotEnName=" + vsM.EnsOfMM.GetNewEnreplacedy.ToString(); //存储实体类.
                                url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node
                                url += "&AttrOfMInMM=" + vsM.AttrOfMInMM; //dot2dot存储表那个与实体表.  比如:FK_Station.
                                url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体分组依据.  比如:FK_Station.
                                url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据.  

                            }
                            else if (vsM.Dot2DotModel == Dot2DotModel.TreeDeptEmp)
                            {
                                //   url = "Dot2DotTreeDeptEmpModel.htm?EnsName=" + en.GetNewEnreplacedies.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString();
                                // url = "Dot2Dot.aspx?EnsName=" + en.GetNewEnreplacedies.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString();
                                url = "BranchesAndLeaf.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString();
                                //   url += "&PKVal=" + en.PKVal;
                                url += "&Dot2DotEnName=" + vsM.EnsOfMM.GetNewEnreplacedy.ToString(); //存储实体类.
                                url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node
                                url += "&AttrOfMInMM=" + vsM.AttrOfMInMM; //dot2dot存储表那个与实体表.  比如:FK_Station.
                                url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体分组依据.  比如:FK_Station.
                                url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据.  比如:FK_Station.
                                //url += "&RootNo=" + vsM.RootNo; //默认的B实体分组依据.  比如:FK_Station.
                            }
                            else
                            {
                                // url = "Dot2Dot.aspx?EnsName=" + en.GetNewEnreplacedies.ToString() + "&EnName=" + this.EnName + "&AttrKey=" + vsM.EnsOfMM.ToString();
                                url = "Dot2Dot.htm?EnName=" + this.EnName + "&Dot2DotEnsName=" + vsM.EnsOfMM.ToString(); //比如:BP.WF.Template.NodeStations
                                url += "&AttrOfOneInMM=" + vsM.AttrOfOneInMM; //存储表那个与主表关联. 比如: FK_Node
                                url += "&AttrOfMInMM=" + vsM.AttrOfMInMM;  //dot2dot存储表那个与实体表.  比如:FK_Station.
                                url += "&EnsOfM=" + vsM.EnsOfM.ToString(); //默认的B实体.   //比如:BP.Port.Stations
                                url += "&DefaultGroupAttrKey=" + vsM.DefaultGroupAttrKey; //默认的B实体分组依据.  比如:FK_Station.

                                //+"&RefAttrEnsName=" + vsM.EnsOfM.ToString();
                                //url += "&RefAttrKey=" + vsM.AttrOfOneInMM + "&RefAttrEnsName=" + vsM.EnsOfM.ToString();
                            }

                            dr["Url"] = url + "&" + en.PK + "=" + en.PKVal + "&PKVal=" + en.PKVal;
                            dr["Icon"] = "../Img/M2M.png";

                        }

                        dr["W"] = "900";
                        dr["H"] = "500";
                        dr["RefMethodType"] = (int)RefMethodType.RightFrameOpen;


                        // 获得选择的数量.
                        try
                        {
                            sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEnreplacedy.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "='" + en.PKVal + "'";
                            i = DBAccess.RunSQLReturnValInt(sql);
                        }
                        catch
                        {
                            sql = "SELECT COUNT(*) as NUM FROM " + vsM.EnsOfMM.GetNewEnreplacedy.EnMap.PhysicsTable + " WHERE " + vsM.AttrOfOneInMM + "=" + en.PKVal;
                            try
                            {
                                i = DBAccess.RunSQLReturnValInt(sql);
                            }
                            catch
                            {
                                vsM.EnsOfMM.GetNewEnreplacedy.CheckPhysicsTable();
                            }
                        }
                        dr["replacedle"] = vsM.Desc + "(" + i + ")";
                        dtM.Rows.Add(dr);
                    }
                }
                #endregion 增加 一对多.

                #region 从表
                EnDtls enDtls = en.EnMap.Dtls;
                foreach (EnDtl enDtl in enDtls)
                {
                    //判断该dtl是否要显示?
                    Enreplacedy myEnDtl = enDtl.Ens.GetNewEnreplacedy; //获取他的en
                    myEnDtl.SetValByKey(enDtl.RefKey, this.PKVal);  //给refpk赋值.
                    if (myEnDtl.HisUAC.IsView == false)
                        continue;

                    DataRow dr = dtM.NewRow();
                    //string url = "Dtl.aspx?EnName=" + this.EnName + "&PK=" + this.PKVal + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString() ;
                    string url = "Dtl.htm?EnName=" + this.EnName + "&PK=" + this.PKVal + "&EnsName=" + enDtl.EnsName + "&RefKey=" + enDtl.RefKey + "&RefVal=" + en.PKVal.ToString() + "&MainEnsName=" + en.ToString();
                    try
                    {
                        i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEnreplacedy.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "='" + en.PKVal + "'");
                    }
                    catch
                    {
                        try
                        {
                            i = DBAccess.RunSQLReturnValInt("SELECT COUNT(*) FROM " + enDtl.Ens.GetNewEnreplacedy.EnMap.PhysicsTable + " WHERE " + enDtl.RefKey + "=" + en.PKVal);
                        }
                        catch
                        {
                            enDtl.Ens.GetNewEnreplacedy.CheckPhysicsTable();
                        }
                    }

                    dr["No"] = enDtl.EnsName;
                    dr["replacedle"] = enDtl.Desc + "(" + i + ")";
                    dr["Url"] = url;
                    dr["GroupName"] = enDtl.GroupName;

                    dr["RefMethodType"] = (int)RefMethodType.RightFrameOpen;

                    dtM.Rows.Add(dr);
                }
                #endregion 增加 从表.

                ds.Tables.Add(dtM); 
                


                return BP.Tools.Json.ToJson(ds);
            }
            catch (Exception ex)
            {
                return "err@Enreplacedy_Init错误:" + ex.Message;
            }
        }

19 Source : FindWorkerRole.cs
with GNU Lesser General Public License v3.0
from ccbpm

private DataTable GenerHisLeader(string empNo,string empDept)
        {
            DeptEmp de = new DeptEmp();

            DataTable dt=new DataTable();
            string leader=null;
            string tempDeptNo = "";

            switch (this.HisFindLeaderModel)
            {
                case FindLeaderModel.DirLeader: // 直接领导.
                    sql = "SELECT Leader FROM Port_DeptEmp WHERE FK_Emp='" + empNo + "' AND FK_Dept='" + empDept + "'";
                    dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
                    leader = dt.Rows[0][0] as string;
                    if (DataType.IsNullOrEmpty(leader))
                        throw new Exception("@系统管理员没有给(" + empNo + ")在部门(" + empDept + ")中设置直接领导.");
                    break;
                case FindLeaderModel.SpecDutyLevelLeader: // 特定职务级别的领导.
                    tempDeptNo = empDept.Clone() as string;
                    while (true)
                    {
                        sql = "SELECT FK_Emp FROM Port_DeptEmp WHERE DutyLevel='" + this.TagVal2 + "' AND FK_Dept='" + tempDeptNo + "'";
                        DataTable mydt = DBAccess.RunSQLReturnTable(sql);
                        if (mydt.Rows.Count != 0)
                            return mydt; /*直接反回.*/

                        Dept d = new Dept(tempDeptNo);
                        if (d.ParentNo == "0")
                            return null; /*如果到了跟节点.*/
                        tempDeptNo = d.ParentNo;
                    }
                    break;
                case FindLeaderModel.DutyLeader: // 特定职务的领导.
                    tempDeptNo = empDept.Clone() as string;
                    while (true)
                    {
                          sql = "SELECT FK_Emp FROM Port_DeptEmp WHERE FK_Duty='" + this.TagVal2 + "' AND FK_Dept='" + tempDeptNo + "'";
                          DataTable mydt = DBAccess.RunSQLReturnTable(sql);
                        if (mydt.Rows.Count != 0)
                            return mydt; /*直接反回.*/

                        Dept d = new Dept(tempDeptNo);
                        if (d.ParentNo == "0")
                            return null; /*如果到了跟节点.*/
                        tempDeptNo = d.ParentNo;
                    }
                    break;
                case FindLeaderModel.SpecStation: // 特定岗位的领导.
                    tempDeptNo = empDept.Clone() as string;
                    while (true)
                    {
                        sql = "SELECT FK_Emp FROM Port_DeptEmpStation WHERE FK_Station='" + this.TagVal2 + "' AND FK_Dept='" + tempDeptNo + "'";
                        DataTable mydt = DBAccess.RunSQLReturnTable(sql);
                        if (mydt.Rows.Count != 0)
                            return mydt; /*直接反回.*/

                        Dept d = new Dept(tempDeptNo);
                        if (d.ParentNo == "0")
                        {
                            /* 在直线领导中没有找到 */
                            return null; /*如果到了跟节点.*/
                        }
                        tempDeptNo = d.ParentNo;
                    }
                    break;
                default:
                    break;
            }

            // 增加列.
            dt.Columns.Add(new DataColumn("No", typeof(string)));
            DataRow dr = dt.NewRow();
            dr[0] = leader;
            dt.Rows.Add(dr);
            return dt;
        }

19 Source : JSON.cs
with GNU Lesser General Public License v3.0
from ccbpm

public static DataTable ToDataTableOneRow(string strJson)
        {
            ////杨玉慧  写  用这个写
            if (strJson.Trim().IndexOf('[') != 0)
            {
                strJson = "[" + strJson + "]";
            }
            DataTable dtt = (DataTable)JsonConvert.DeserializeObject<DataTable>(strJson);
            
            return dtt;

            //转换json格式
            
            //把 *  和# 先替换成别的符号
            string str1 = "@@@~~~+++";
            string str2 = "+++---$$$";
            strJson = strJson.Replace(str1, "");
            strJson = strJson.Replace(str2, "");

            //strJson = strJson.Replace("*", str1);
            //strJson = strJson.Replace("#", str2);

            strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString();


            //取出表名  
            var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
            string strName = rg.Match(strJson).Value;
            DataTable tb = null;
            //去除表名  
            try
            {
                strJson = strJson.Substring(strJson.IndexOf("[") + 1);
                strJson = strJson.Substring(0, strJson.IndexOf("]"));
            }
            catch (Exception ex)
            {

            }
            //获取数据  
            rg = new Regex(@"(?<={)[^}]+(?=})");
            MatchCollection mc = rg.Matches(strJson);
            for (int i = 0; i < mc.Count; i++)
            {
                string strRow = mc[i].Value;
                string[] strRows = strRow.Split('*');
                //创建表  
                if (tb == null)
                {
                    tb = new DataTable();
                    tb.TableName = strName;
                    foreach (string str in strRows)
                    {
                        if (str.Contains("#"))
                        {
                            var dc = new DataColumn();
                            string[] strCell = str.Split('#');
                            string columnName = string.Empty;
                            if (strCell[0].Substring(0, 1) == "\"")
                            {
                                int a = strCell[0].Length;
                                columnName = strCell[0].Substring(1, a - 2);
                            }
                            else
                            {
                                columnName = strCell[0];
                            }
                            columnName = columnName.Replace(str1, "*").Replace(str1, "#");
                            dc.ColumnName = columnName;

                            tb.Columns.Add(dc);
                        }
                        else
                        {
                            var dc = new DataColumn();
                            dc.ColumnName = "无" + i;
                            tb.Columns.Add(dc);
                        }
                    }
                    tb.AcceptChanges();
                }
                //增加内容  
                DataRow dr = tb.NewRow();
                string content = string.Empty;
                for (int r = 0; r < strRows.Length; r++)
                {
                    if (strRows[r].Contains("#"))
                    {
                        content = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
                        content = content.Replace(str1, "*").Replace(str1, "#");

                        dr[r] = content;
                    }
                }
                tb.Rows.Add(dr);
                tb.AcceptChanges();
            }
            return tb;
        }

19 Source : JSON.cs
with GNU Lesser General Public License v3.0
from ccbpm

public static string ToJsonEnreplacediesNoNameMode(Hashtable ht)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("No");
            dt.Columns.Add("Name");

            foreach (string key in ht.Keys)
            {
                DataRow dr = dt.NewRow();
                dr["No"] = key;
                dr["Name"] = ht[key];
                dt.Rows.Add(dr);

            }

            return BP.Tools.Json.DataTableToJson(dt, false);
        }

19 Source : CC.cs
with GNU Lesser General Public License v3.0
from ccbpm

public DataTable GenerCCers(Enreplacedy rpt, Int64 workid)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("No", typeof(string)));
            dt.Columns.Add(new DataColumn("Name", typeof(string)));

            DataTable mydt = new DataTable();
            string sql = "";
            if (this.CCIsDepts == true)
            {
                /*如果抄送到部门. */
                if (Glo.OSModel == BP.Sys.OSModel.OneOne)
                    sql = "SELECT A.No, A.Name FROM Port_Emp A, WF_CCDept B WHERE  A.FK_Dept=B.FK_Dept AND B.FK_Node=" + this.NodeID;
                else
                    sql = "SELECT A.No, A.Name FROM Port_Emp A, WF_CCDept B  WHERE  B.FK_Dept=A.FK_Dept AND B.FK_Node=" + this.NodeID;

                mydt = DBAccess.RunSQLReturnTable(sql);
                foreach (DataRow mydr in mydt.Rows)
                {
                    DataRow dr = dt.NewRow();
                    dr["No"] = mydr["No"];
                    dr["Name"] = mydr["Name"];
                    dt.Rows.Add(dr);
                }
            }

            if (this.CCIsEmps == true)
            {
                /*如果抄送到人员. */
                sql = "SELECT A.No, A.Name FROM Port_Emp A, WF_CCEmp B WHERE A.No=B.FK_Emp AND B.FK_Node=" + this.NodeID;
                mydt = DBAccess.RunSQLReturnTable(sql);
                foreach (DataRow mydr in mydt.Rows)
                {
                    DataRow dr = dt.NewRow();
                    dr["No"] = mydr["No"];
                    dr["Name"] = mydr["Name"];
                    dt.Rows.Add(dr);
                }
            }

            if (this.CCIsStations == true)
            {
                if (this.CCStaWay == WF.CCStaWay.StationOnly)
                {
                  
                        sql = "SELECT No,Name FROM Port_Emp A, Port_DeptEmpStation B, WF_CCStation C  WHERE A.No=B.FK_Emp AND B.FK_Station=C.FK_Station AND C.FK_Node=" + this.NodeID;

                    mydt = DBAccess.RunSQLReturnTable(sql);
                    foreach (DataRow mydr in mydt.Rows)
                    {
                        DataRow dr = dt.NewRow();
                        dr["No"] = mydr["No"];
                        dr["Name"] = mydr["Name"];
                        dt.Rows.Add(dr);
                    }
                }

                if (this.CCStaWay == WF.CCStaWay.StationSmartCurrNodeWorker || this.CCStaWay == WF.CCStaWay.StationSmartNextNodeWorker)
                {
                    /*按岗位智能计算*/
                    string deptNo = "";
                    if (this.CCStaWay == WF.CCStaWay.StationSmartCurrNodeWorker)
                        deptNo = BP.Web.WebUser.FK_Dept;
                    else
                        deptNo = DBAccess.RunSQLReturnStringIsNull("SELECT FK_Dept FROM WF_GenerWorkerlist WHERE WorkID=" + workid + " AND IsEnable=1 AND IsPreplaced=0", BP.Web.WebUser.FK_Dept);

                 
                        sql = "SELECT No,Name FROM Port_Emp A, Port_DeptEmpStation B, WF_CCStation C WHERE A.No=B.FK_Emp AND B.FK_Station=C.FK_Station  AND C.FK_Node=" + this.NodeID + " AND B.FK_Dept='" + deptNo + "'";

                    mydt = DBAccess.RunSQLReturnTable(sql);
                    foreach (DataRow mydr in mydt.Rows)
                    {
                        DataRow dr = dt.NewRow();
                        dr["No"] = mydr["No"];
                        dr["Name"] = mydr["Name"];
                        dt.Rows.Add(dr);
                    }
                }

                if (this.CCStaWay == WF.CCStaWay.StationAdndDept)
                {
                  
                        sql = "SELECT No,Name FROM Port_Emp A, Port_DeptEmpStation B, WF_CCStation C, WF_CCDept D WHERE A.No=B.FK_Emp AND B.FK_Station=C.FK_Station AND A.FK_Dept=D.FK_Dept AND B.FK_Dept=D.FK_Dept AND C.FK_Node="+this.NodeID+" AND D.FK_Node="+this.NodeID;

                    mydt = DBAccess.RunSQLReturnTable(sql);
                    foreach (DataRow mydr in mydt.Rows)
                    {
                        DataRow dr = dt.NewRow();
                        dr["No"] = mydr["No"];
                        dr["Name"] = mydr["Name"];
                        dt.Rows.Add(dr);
                    }
                }

                if (this.CCStaWay == CCStaWay.StationDeptUpLevelCurrNodeWorker ||
                    this.CCStaWay == CCStaWay.StationDeptUpLevelNextNodeWorker )
                {
                    // 求当事人的部门编号.
                    string deptNo = "";

                    if (this.CCStaWay == CCStaWay.StationDeptUpLevelCurrNodeWorker)
                        deptNo = BP.Web.WebUser.FK_Dept;

                    if (this.CCStaWay == CCStaWay.StationDeptUpLevelNextNodeWorker)
                        deptNo = DBAccess.RunSQLReturnStringIsNull("SELECT FK_Dept FROM WF_GenerWorkerlist WHERE WorkID="+workid+" AND IsEnable=1 AND IsPreplaced=0", BP.Web.WebUser.FK_Dept);

                    while (true)
                    {
                        BP.Port.Dept dept = new Dept(deptNo);

                      
                            sql = "SELECT No,Name FROM Port_Emp A, Port_DeptEmpStation B, WF_CCStation C WHERE A.No=B.FK_Emp AND B.FK_Station=C.FK_Station  AND C.FK_Node="+this.NodeID+" AND B.FK_Dept='"+deptNo+"'";

                        mydt = DBAccess.RunSQLReturnTable(sql);
                        foreach (DataRow mydr in mydt.Rows)
                        {
                            DataRow dr = dt.NewRow();
                            dr["No"] = mydr["No"];
                            dr["Name"] = mydr["Name"];
                            dt.Rows.Add(dr);
                        }

                        if (dept.ParentNo == "0")
                            break;

                        deptNo = dept.ParentNo;
                    }
                }
            }

            if (this.CCIsSQLs == true)
            {
                sql = this.CCSQL.Clone() as string;
                sql = sql.Replace("@WebUser.No", BP.Web.WebUser.No);
                sql = sql.Replace("@WebUser.Name", BP.Web.WebUser.Name);
                sql = sql.Replace("@WebUser.FK_Dept", BP.Web.WebUser.FK_Dept);
                if (sql.Contains("@") == true)
                    sql = BP.WF.Glo.DealExp(sql, rpt, null);

                /*按照SQL抄送. */
                mydt = DBAccess.RunSQLReturnTable(sql);
                foreach (DataRow mydr in mydt.Rows)
                {
                    DataRow dr = dt.NewRow();
                    dr["No"] = mydr["No"];
                    dr["Name"] = mydr["Name"];
                    dt.Rows.Add(dr);
                }
            }
            //将dt中的重复数据过滤掉  
            DataView myDataView = new DataView(dt);
            //此处可加任意数据项组合  
            string[] strComuns = { "No","Name" };
            dt = myDataView.ToTable(true, strComuns);

            return dt;
        }

19 Source : GenerBillByDataTable.cs
with GNU Lesser General Public License v3.0
from ccbpm

public override void Do()
        {
            #region 初始化数据。
            //初始化变量.
            fk_flow = "001";
            userNo = "zhangyifan";
            fl = new Flow(fk_flow);
            BP.WF.Dev2Interface.Port_Login(userNo);

            //创建空白的流程.
            this.workID = BP.WF.Dev2Interface.Node_CreateBlankWork(fk_flow, null, null, null, null);

            //创建主表数据. (费用主表)。
            Hashtable ht = new Hashtable();
            ht.Add("ZhaiYaoShuoMing", "摘要说明:ZhaiYaoShuoMing.");
            ht.Add("RPI", 1);

            // 创建从表数据。(费用明细)
            DataSet ds = new DataSet();

            DataTable dt = new DataTable();
            dt.TableName = "ND101Dtl1";
            dt.Columns.Add("RefPK", typeof(int)); //关联的主键,这里是workid.
            dt.Columns.Add("FYLX", typeof(int)); // 费用类型.
            dt.Columns.Add("JinE", typeof(decimal)); // 金额
            dt.Columns.Add("ShuLiang", typeof(decimal)); //数量.
            dt.Columns.Add("XiaoJi", typeof(decimal)); // 小计。

            DataRow dr = dt.NewRow();
            dr["RefPK"] = this.workID;
            dr["FYLX"] = 1;
            dr["JinE"] = 150;
            dr["ShuLiang"] = 2;
            dr["XiaoJi"] = 300;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["RefPK"] = this.workID;
            dr["FYLX"] = 2;
            dr["JinE"] = 250;
            dr["ShuLiang"] = 3;
            dr["XiaoJi"] = 750;
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);

            //执行发送.
            BP.WF.Dev2Interface.Node_SendWork(fk_flow, this.workID, ht, ds, 0, null);
            #endregion 初始化数据。

            #region 生成测试数据。
            //查询到保存数据库的数据源。
            string sql = "SELECT * FROM ND101 WHERE OID=" + this.workID;
            DataTable dtMain = DBAccess.RunSQLReturnTable(sql);

            sql = "SELECT * FROM ND101Dtl1 WHERE RefPK=" + this.workID;
            DataTable dtDtl = DBAccess.RunSQLReturnTable(sql);
            dtDtl.TableName = "ND101Dtl1";

            DataSet myds = new DataSet();
            myds.Tables.Add(dtDtl);
            #endregion 生成测试数据。

            string templeteFilePath = @"D:\ccflow\trunk\CCFlow\DataUser\CyclostyleFile\单据打印样本.rtf";
            BP.Pub.RTFEngine rpt = new BP.Pub.RTFEngine();

            rpt.MakeDocByDataSet(templeteFilePath, "C:\\", this.workID + ".doc", dtMain, myds);
        }

19 Source : WF_Admin_Cond.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string StandAloneFrm_Init()
        {
            ps = new Paras();
            ps.SQL = "SELECT m.No, m.Name, n.FK_Node, n.FK_Flow FROM WF_FrmNode n INNER JOIN Sys_MapData m ON n.FK_Frm=m.No WHERE n.FrmEnableRole!=5 AND n.FK_Node=" + SystemConfig.AppCenterDBVarStr + "FK_Node"; 
            ps.Add("FK_Node",this.FK_Node);
            //string sql = "SELECT m.No, m.Name, n.FK_Node, n.FK_Flow FROM WF_FrmNode n INNER JOIN Sys_MapData m ON n.FK_Frm=m.No WHERE n.FrmEnableRole!=5 AND n.FK_Node=" + this.FK_Node;
            DataTable dt = DBAccess.RunSQLReturnTable(ps);
            dt.TableName = "Frms";
            dt.Columns[0].ColumnName = "No";
            dt.Columns[1].ColumnName = "Name";

            DataRow dr = dt.NewRow();
            dr[0] = "all";
            dr[1] = "请选择表单";
            dt.Rows.Add(dr);

            DataSet ds = new DataSet();
            ds.Tables.Add(dt);

            //增加条件集合.
            string fk_mainNode = this.GetRequestVal("FK_MainNode");
            string toNodeID = this.GetRequestVal("ToNodeID");
            Conds conds = new Conds();
            conds.Retrieve(CondAttr.FK_Node, fk_mainNode, CondAttr.ToNodeID, toNodeID);
            ds.Tables.Add(conds.ToDataTableField("WF_Conds"));

            return BP.Tools.Json.DataSetToJson(ds, false); // cond.ToJson();
        }

19 Source : WF_Admin_Cond.cs
with GNU Lesser General Public License v3.0
from ccbpm

private string AttrCond(MapAttr attr)
        {
            //定义数据容器.
            DataSet ds = new DataSet();

            ds.Tables.Add(attr.ToDataTableField("Sys_MapAttr"));

            if (attr.LGType == FieldTypeS.Enum)
            {
                SysEnums ses = new SysEnums(attr.UIBindKey);
                ds.Tables.Add(ses.ToDataTableField("Enums"));
            }

            #region 增加操作符 number.
            if (attr.IsNum)
            {
                DataTable dtOperNumber = new DataTable();
                dtOperNumber.TableName = "Opers";
                dtOperNumber.Columns.Add("No", typeof(string));
                dtOperNumber.Columns.Add("Name", typeof(string));

                DataRow dr = dtOperNumber.NewRow();
                dr["No"] = "dengyu";
                dr["Name"] = "= 等于";
                dtOperNumber.Rows.Add(dr);

                dr = dtOperNumber.NewRow();
                dr["No"] = "dayu";
                dr["Name"] = " > 大于";
                dtOperNumber.Rows.Add(dr);

                dr = dtOperNumber.NewRow();
                dr["No"] = "dayudengyu";
                dr["Name"] = " >= 大于等于";
                dtOperNumber.Rows.Add(dr);

                dr = dtOperNumber.NewRow();
                dr["No"] = "xiaoyu";
                dr["Name"] = " < 小于";
                dtOperNumber.Rows.Add(dr);

                dr = dtOperNumber.NewRow();
                dr["No"] = "xiaoyudengyu";
                dr["Name"] = " <= 小于等于";
                dtOperNumber.Rows.Add(dr);

                dr = dtOperNumber.NewRow();
                dr["No"] = "budengyu";
                dr["Name"] = " != 不等于";
                dtOperNumber.Rows.Add(dr);

                ds.Tables.Add(dtOperNumber);
            }
            else
            {
                #region 增加操作符 string.
                DataTable dtOper = new DataTable();
                dtOper.TableName = "Opers";
                dtOper.Columns.Add("No", typeof(string));
                dtOper.Columns.Add("Name", typeof(string));

                DataRow dr = dtOper.NewRow();
                dr["No"] = "dengyu";
                dr["Name"] = "= 等于";
                dtOper.Rows.Add(dr);

                dr = dtOper.NewRow();
                dr["No"] = "like";
                dr["Name"] = " LIKE 包含";
                dtOper.Rows.Add(dr);

                dr = dtOper.NewRow();
                dr["No"] = "budengyu";
                dr["Name"] = " != 不等于";
                dtOper.Rows.Add(dr);
                ds.Tables.Add(dtOper);
                #endregion 增加操作符 string.
            }
            #endregion 增加操作符 number.

            return BP.Tools.Json.DataSetToJson(ds, false); // cond.ToJson();
        }

19 Source : WF_Comm_Sys.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string SystemClreplaced_Init()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("No");
            dt.Columns.Add("EnsName");
            dt.Columns.Add("Name");
            dt.Columns.Add("PTable");

            ArrayList al = null;
            al = BP.En.ClreplacedFactory.GetObjects("BP.En.Enreplacedy");
            foreach (Object obj in al)
            {
                Enreplacedy en = null;
                try
                {
                    en = obj as Enreplacedy;
                    string s = en.EnDesc;
                    if (en == null)
                        continue;
                }
                catch
                {
                    continue;
                }

                if (en.ToString() == null)
                    continue;


                DataRow dr = dt.NewRow();

                dr["No"] = en.ToString();
                try
                {
                    dr["EnsName"] = en.GetNewEnreplacedies.ToString();
                }
                catch
                {
                    dr["EnsName"] = en.ToString() + "s";
                }
                dr["Name"] = en.EnMap.EnDesc;
                dr["PTable"] = en.EnMap.PhysicsTable;
                dt.Rows.Add(dr);
            }

            return BP.Tools.Json.ToJson(dt);
        }

19 Source : CCFormAPI.cs
with GNU Lesser General Public License v3.0
from ccbpm

private static DataSet GenerDBForVSTOExcelFrmModelOfEnreplacedy(string enName, object pkval, string atParas, string specDtlFrmID = null)
		{
			DataSet myds = new DataSet();

			// 创建实体..
			Enreplacedies myens = BP.En.ClreplacedFactory.GetEns(enName + "s");

			#region 主表

			Enreplacedy en = myens.GetNewEnreplacedy;
			en.PKVal = pkval;
			en.RetrieveFromDBSources();

			//设置外部传入的默认值.
			if (BP.Sys.SystemConfig.IsBSsystem == true)
			{
				// 处理传递过来的参数。
				foreach (string k in System.Web.HttpContext.Current.Request.QueryString.AllKeys)
				{
					en.SetValByKey(k, System.Web.HttpContext.Current.Request.QueryString[k]);
				}
			}

			//主表数据放入集合.
			DataTable mainTable = en.ToDataTableField();
			mainTable.TableName = "MainTable";
			myds.Tables.Add(mainTable);

			#region 主表 Sys_MapData
			string sql = "SELECT * FROM Sys_MapData WHERE 1=2 ";
			DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
			dt.TableName = "Sys_MapData";

			Map map = en.EnMapInTime;
			DataRow dr = dt.NewRow();
			dr[MapDataAttr.No] = enName;
			dr[MapDataAttr.Name] = map.EnDesc;
			dr[MapDataAttr.PTable] = map.PhysicsTable;
			dt.Rows.Add(dr);
			myds.Tables.Add(dt);
			#endregion 主表 Sys_MapData

			#region 主表 Sys_MapAttr
			sql = "SELECT * FROM Sys_MapAttr WHERE 1=2 ";
			dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
			dt.TableName = "Sys_MapAttr";
			foreach (Attr attr in map.Attrs)
			{
				dr = dt.NewRow();
				dr[MapAttrAttr.MyPK] = enName + "_" + attr.Key;
				dr[MapAttrAttr.Name] = attr.Desc;

				dr[MapAttrAttr.MyDataType] = attr.MyDataType;   //数据类型.
				dr[MapAttrAttr.MinLen] = attr.MinLength;   //最小长度.
				dr[MapAttrAttr.MaxLen] = attr.MaxLength;   //最大长度.

				// 设置他的逻辑类型.
				dr[MapAttrAttr.LGType] = 0; //逻辑类型.
				switch (attr.MyFieldType)
				{
					case FieldType.Enum:
						dr[MapAttrAttr.LGType] = 1;
						dr[MapAttrAttr.UIBindKey] = attr.UIBindKey;

						//增加枚举字段.
						if (myds.Tables.Contains(attr.UIBindKey) == false)
						{
							string mysql = "SELECT IntKey AS No, Lab as Name FROM Sys_Enum WHERE EnumKey='" + attr.UIBindKey + "' ORDER BY IntKey ";
							DataTable dtEnum = DBAccess.RunSQLReturnTable(mysql);
							dtEnum.TableName = attr.UIBindKey;
							myds.Tables.Add(dtEnum);
						}

						break;
					case FieldType.FK:
						dr[MapAttrAttr.LGType] = 2;

						Enreplacedies ens = attr.HisFKEns;
						dr[MapAttrAttr.UIBindKey] = ens.ToString();

						//把外键字段也增加进去.
						if (myds.Tables.Contains(ens.ToString()) == false && attr.UIIsReadonly == false)
						{
							ens.RetrieveAll();
							DataTable mydt = ens.ToDataTableDescField();
							mydt.TableName = ens.ToString();
							myds.Tables.Add(mydt);
						}
						break;
					default:
						break;
				}

				// 设置控件类型.
				dr[MapAttrAttr.UIContralType] = (int)attr.UIContralType;
				dt.Rows.Add(dr);
			}
			myds.Tables.Add(dt);
			#endregion 主表 Sys_MapAttr

			#region //主表 Sys_MapExt 扩展属性
			////主表的配置信息.
			//sql = "SELECT * FROM Sys_MapExt WHERE 1=2";
			//dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
			//dt.TableName = "Sys_MapExt";
			//myds.Tables.Add(dt);
			#endregion //主表 Sys_MapExt 扩展属性

			#endregion

			#region 从表
			foreach (EnDtl item in map.Dtls)
			{
				#region  把从表的数据放入集合.

				Enreplacedies dtls = item.Ens;

				QueryObject qo = qo = new QueryObject(dtls);

                if (dtls.ToString().Contains("CYSheBeiUse") == true)
                    qo.addOrderBy("RDT"); //按照日期进行排序,不用也可以.

				qo.AddWhere(item.RefKey, pkval);
				DataTable dtDtl = qo.DoQueryToTable();

				dtDtl.TableName = item.EnsName; //修改明细表的名称.
				myds.Tables.Add(dtDtl); //加入这个明细表.

				#endregion 把从表的数据放入.

				#region 从表 Sys_MapDtl (相当于mapdata)

				Enreplacedy dtl = dtls.GetNewEnreplacedy;
				map = dtl.EnMap;

				//明细表的 描述 . 
				sql = "SELECT * FROM Sys_MapDtl WHERE 1=2";
				dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
				dt.TableName = "Sys_MapDtl_For_" + item.EnsName;

				dr = dt.NewRow();
				dr[MapDtlAttr.No] = item.EnsName;
				dr[MapDtlAttr.Name] = item.Desc;
				dr[MapDtlAttr.PTable] = dtl.EnMap.PhysicsTable;
				dt.Rows.Add(dr);
				myds.Tables.Add(dt);

				#endregion 从表 Sys_MapDtl (相当于mapdata)

				#region 明细表 Sys_MapAttr
				sql = "SELECT * FROM Sys_MapAttr WHERE 1=2";
				dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
				dt.TableName = "Sys_MapAttr_For_" + item.EnsName;
				foreach (Attr attr in map.Attrs)
				{
					dr = dt.NewRow();
					dr[MapAttrAttr.MyPK] = enName + "_" + attr.Key;
					dr[MapAttrAttr.Name] = attr.Desc;

					dr[MapAttrAttr.MyDataType] = attr.MyDataType;   //数据类型.
					dr[MapAttrAttr.MinLen] = attr.MinLength;   //最小长度.
					dr[MapAttrAttr.MaxLen] = attr.MaxLength;   //最大长度.

					// 设置他的逻辑类型.
					dr[MapAttrAttr.LGType] = 0; //逻辑类型.
					switch (attr.MyFieldType)
					{
						case FieldType.Enum:
							dr[MapAttrAttr.LGType] = 1;
							dr[MapAttrAttr.UIBindKey] = attr.UIBindKey;

							//增加枚举字段.
							if (myds.Tables.Contains(attr.UIBindKey) == false)
							{
								string mysql = "SELECT IntKey AS No, Lab as Name FROM Sys_Enum WHERE EnumKey='" + attr.UIBindKey + "' ORDER BY IntKey ";
								DataTable dtEnum = DBAccess.RunSQLReturnTable(mysql);
								dtEnum.TableName = attr.UIBindKey;
								myds.Tables.Add(dtEnum);
							}
							break;
						case FieldType.FK:
							dr[MapAttrAttr.LGType] = 2;

							Enreplacedies ens = attr.HisFKEns;
							dr[MapAttrAttr.UIBindKey] = ens.ToString();

							//把外键字段也增加进去.
							if (myds.Tables.Contains(ens.ToString()) == false && attr.UIIsReadonly == false)
							{
								ens.RetrieveAll();
								DataTable mydt = ens.ToDataTableDescField();
								mydt.TableName = ens.ToString();
								myds.Tables.Add(mydt);
							}
							break;
						default:
							break;
					}

					// 设置控件类型.
					dr[MapAttrAttr.UIContralType] = (int)attr.UIContralType;
					dt.Rows.Add(dr);
				}
				myds.Tables.Add(dt);
				#endregion 明细表 Sys_MapAttr

			}
			#endregion

			return myds;
		}

19 Source : WF_Comm_Sys.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string UnitTesting_Init()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("No");
            dt.Columns.Add("Name");
            dt.Columns.Add("Note");

            ArrayList al = null;
            al = BP.En.ClreplacedFactory.GetObjects("BP.UnitTesting.TestBase");
            foreach (Object obj in al)
            {
                BP.UnitTesting.TestBase en = null;
                try
                {
                    en = obj as BP.UnitTesting.TestBase;
                    if (en == null)
                        continue;
                    string s = en.replacedle;
                    if (en == null)
                        continue;
                }
                catch
                {
                    continue;
                }

                if (en.ToString() == null)
                    continue;

                DataRow dr = dt.NewRow();
                dr["No"] = en.ToString();
                dr["Name"] = en.replacedle;
                dr["Note"] = en.Note;
                dt.Rows.Add(dr);
            }
            return BP.Tools.Json.ToJson(dt);
        }

19 Source : WF_Comm_Sys.cs
with GNU Lesser General Public License v3.0
from ccbpm

public string javaScriptFiles()
        {
            String savePath = BP.Sys.SystemConfig.PathOfDataUser + "JSLibData";

            DirectoryInfo di = new DirectoryInfo(savePath);
            //找到该目录下的文件 
            FileInfo[] fileList = di.GetFiles();

            if (fileList == null || fileList.Length == 0)
                return "";
            DataTable dt = new DataTable();
            dt.Columns.Add("FileName");
            dt.Columns.Add("ChangeTime");
            foreach (FileInfo file in fileList)
            {
                DataRow dr = dt.NewRow();
                dr["FileName"] = file.Name;
                dr["ChangeTime"] = file.LastAccessTime.ToString();

                dt.Rows.Add(dr);
            }
            return BP.Tools.Json.ToJson(dt);

        }

19 Source : FindWorkerRole.cs
with GNU Lesser General Public License v3.0
from ccbpm

private DataTable GenerHisSpecEmps(string empNo, string empDept)
        {
            DeptEmp de = new DeptEmp();

            DataTable dt = new DataTable();
            string leader = null;
            string tempDeptNo = "";

            switch (this.HisFindColleague)
            {
                case FindColleague.All: // 所有该部门性质下的人员.
                    sql = "SELECT Leader FROM Port_DeptEmp WHERE FK_Emp='" + empNo + "' AND FK_Dept='" + empDept + "'";
                    dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
                    leader = dt.Rows[0][0] as string;
                    if (DataType.IsNullOrEmpty(leader))
                        throw new Exception("@系统管理员没有给(" + empNo + ")在部门(" + empDept + ")中设置直接领导.");

                    break;
                case FindColleague.SpecDuty: // 特定职务级别的领导.
                    tempDeptNo = empDept.Clone() as string;
                    while (true)
                    {
                        sql = "SELECT FK_Emp FROM Port_DeptEmp WHERE DutyLevel='" + this.TagVal2 + "' AND FK_Dept='" + tempDeptNo + "'";
                        DataTable mydt = DBAccess.RunSQLReturnTable(sql);
                        if (mydt.Rows.Count != 0)
                            return mydt; /*直接反回.*/

                        Dept d = new Dept(tempDeptNo);
                        if (d.ParentNo == "0")
                            return null; /*如果到了跟节点.*/
                        tempDeptNo = d.ParentNo;
                    }
                    break;
                case FindColleague.SpecStation: // 特定岗位的领导.
                    tempDeptNo = empDept.Clone() as string;
                    while (true)
                    {
                        sql = "SELECT FK_Emp FROM Port_DeptEmpStation WHERE FK_Station='" + this.TagVal2 + "' AND FK_Dept='" + tempDeptNo + "'";
                        DataTable mydt = DBAccess.RunSQLReturnTable(sql);
                        if (mydt.Rows.Count != 0)
                            return mydt; /*直接反回.*/

                        Dept d = new Dept(tempDeptNo);
                        if (d.ParentNo == "0")
                        {
                            /* 在直线领导中没有找到 */
                            return null; /*如果到了跟节点.*/
                        }
                        tempDeptNo = d.ParentNo;
                    }
                    break;
                default:
                    break;
            }

            // 增加列.
            dt.Columns.Add(new DataColumn("No", typeof(string)));
            DataRow dr = dt.NewRow();
            dr[0] = leader;
            dt.Rows.Add(dr);
            return dt;
        }

19 Source : ExcelHelper.cs
with GNU General Public License v3.0
from chenyinxin

public static DataTable ExcelToDataTable(string fileName, string sheetName, bool firstRowHead = true)
        {
            IWorkbook workbook = null;
            ISheet sheet = null;
            DataTable data = new DataTable();
            int startRow = 0;
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            if (fileName.IndexOf(".xlsx") > 0) // 2007版本  
                workbook = new XSSFWorkbook(fs);
            else if (fileName.IndexOf(".xls") > 0) // 2003版本  
                workbook = new HSSFWorkbook(fs);

            if (sheetName != null)
            {
                sheet = workbook.GetSheet(sheetName);
                if (sheet == null) //如果没有找到指定的sheetName对应的sheet,则尝试获取第一个sheet  
                {
                    sheet = workbook.GetSheetAt(0);
                }
            }
            else
            {
                sheet = workbook.GetSheetAt(0);
            }
            if (sheet != null)
            {
                IRow firstRow = sheet.GetRow(0);
                int cellCount = firstRow.LastCellNum; //一行最后一个cell的编号 即总的列数  

                if (firstRowHead)
                {
                    for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
                    {
                        ICell cell = firstRow.GetCell(i);
                        if (cell == null) continue;

                        string cellValue = cell.StringCellValue;
                        if (cellValue == null) continue;

                        DataColumn column = new DataColumn(cellValue);
                        data.Columns.Add(column);
                    }
                    startRow = sheet.FirstRowNum + 1;
                }
                else
                {
                    for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
                    {
                        DataColumn column = new DataColumn("F" + i);
                        data.Columns.Add(column);
                    }
                    startRow = sheet.FirstRowNum;
                }

                //最后一列的标号  
                int rowCount = sheet.LastRowNum;
                for (int i = startRow; i <= rowCount; ++i)
                {
                    IRow row = sheet.GetRow(i);
                    if (row == null) continue; //没有数据的行默认是null         

                    DataRow dataRow = data.NewRow();
                    for (int j = row.FirstCellNum; j < cellCount; ++j)
                    {
                        if (row.GetCell(j) != null) //同理,没有数据的单元格都默认是null  
                            dataRow[j] = row.GetCell(j).ToString();
                    }
                    data.Rows.Add(dataRow);
                }
            }
            return data;
        }

19 Source : ExcelHelper.cs
with MIT License
from chi8708

public static DataTable SpecialExcelToDataTable(string strFileName)
        {
            DataTable dt = new DataTable();
            FileStream file = null;
            IWorkbook Workbook = null;
            try
            {

                using (file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))//C#文件流读取文件
                {
                    if (strFileName.IndexOf(".xlsx") > 0)
                        //把xlsx文件中的数据写入Workbook中
                        Workbook = new XSSFWorkbook(file);

                    else if (strFileName.IndexOf(".xls") > 0)
                        //把xls文件中的数据写入Workbook中
                        Workbook = new HSSFWorkbook(file);

                    if (Workbook != null)
                    {
                        ISheet sheet = Workbook.GetSheetAt(0);//读取第一个sheet
                        System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
                        //得到Excel工作表的行 
                        IRow headerRow = sheet.GetRow(0);
                        //得到Excel工作表的总列数  
                        int cellCount = 7;

                        for (int j = 0; j < cellCount; j++)
                        {
                            //得到Excel工作表指定行的单元格  
                            //ICell cell = headerRow.GetCell(j);
                            dt.Columns.Add(j.ToString());
                        }

                        for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
                        {
                            IRow row = sheet.GetRow(i);
                            DataRow dataRow = dt.NewRow();

                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                    dataRow[j] = row.GetCell(j).ToString();
                            }
                            dt.Rows.Add(dataRow);
                        }
                    }
                    return dt;
                }
            }

            catch (Exception ex)
            {
                if (file != null)
                {
                    file.Close();//关闭当前流并释放资源
                }
                return null;
            }

        }

19 Source : ExcelHelper.cs
with MIT License
from chi8708

public static DataTable ExcelToDataTable(string strFileName)
        {
            DataTable dt = new DataTable();
            FileStream file = null;
            IWorkbook Workbook = null;
            try
            {

                using (file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))//C#文件流读取文件
                {
                    if (strFileName.IndexOf(".xlsx") > 0)
                        //把xlsx文件中的数据写入Workbook中
                        Workbook = new XSSFWorkbook(file);

                    else if (strFileName.IndexOf(".xls") > 0)
                        //把xls文件中的数据写入Workbook中
                        Workbook = new HSSFWorkbook(file);

                    if (Workbook != null)
                    {
                        ISheet sheet = Workbook.GetSheetAt(0);//读取第一个sheet
                        System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
                        //得到Excel工作表的行 
                        IRow headerRow = sheet.GetRow(0);
                        //得到Excel工作表的总列数  
                        int cellCount = headerRow.LastCellNum;

                        for (int j = 0; j < cellCount; j++)
                        {
                            //得到Excel工作表指定行的单元格  
                            ICell cell = headerRow.GetCell(j);
                            dt.Columns.Add(cell.ToString());
                        }

                        for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
                        {
                            IRow row = sheet.GetRow(i);
                            DataRow dataRow = dt.NewRow();

                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                    dataRow[j] = row.GetCell(j).ToString();
                            }
                            dt.Rows.Add(dataRow);
                        }
                    }
                    return dt;
                }
            }

            catch (Exception ex)
            {
                if (file != null)
                {
                    file.Close();//关闭当前流并释放资源
                }
                return null;
            }

        }

19 Source : ExcelHelper.cs
with MIT License
from chi8708

public static DataTable RenderDataTableFromExcel(IWorkbook workbook, string SheetName, int HeaderRowIndex)
        {
            ISheet sheet = workbook.GetSheet(SheetName);
            DataTable table = new DataTable();
            try
            {
                IRow headerRow = sheet.GetRow(HeaderRowIndex);
                int cellCount = headerRow.LastCellNum;

                for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                {
                    DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                    table.Columns.Add(column);
                }

                int rowCount = sheet.LastRowNum;

                #region 循环各行各列,写入数据到DataTable
                for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
                {
                    IRow row = sheet.GetRow(i);
                    DataRow dataRow = table.NewRow();
                    for (int j = row.FirstCellNum; j < cellCount; j++)
                    {
                        ICell cell = row.GetCell(j);
                        if (cell == null)
                        {
                            dataRow[j] = null;
                        }
                        else
                        {
                            //dataRow[j] = cell.ToString();   
                            switch (cell.CellType)
                            {
                                case CellType.Blank:
                                    dataRow[j] = null;
                                    break;
                                case CellType.Boolean:
                                    dataRow[j] = cell.BooleanCellValue;
                                    break;
                                case CellType.Numeric:
                                    dataRow[j] = cell.ToString();
                                    break;
                                case CellType.String:
                                    dataRow[j] = cell.StringCellValue;
                                    break;
                                case CellType.Error:
                                    dataRow[j] = cell.ErrorCellValue;
                                    break;
                                case CellType.Formula:
                                default:
                                    dataRow[j] = "=" + cell.CellFormula;
                                    break;
                            }
                        }
                    }
                    table.Rows.Add(dataRow);
                    //dataRow[j] = row.GetCell(j).ToString();   
                }
                #endregion
            }
            catch (System.Exception ex)
            {
                table.Clear();
                table.Columns.Clear();
                table.Columns.Add("出错了");
                DataRow dr = table.NewRow();
                dr[0] = ex.Message;
                table.Rows.Add(dr);
                return table;
            }
            finally
            {
                //sheet.Dispose();   
                workbook = null;
                sheet = null;
            }
            #region 清除最后的空行
            for (int i = table.Rows.Count - 1; i > 0; i--)
            {
                bool isnull = true;
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (table.Rows[i][j] != null)
                    {
                        if (table.Rows[i][j].ToString() != "")
                        {
                            isnull = false;
                            break;
                        }
                    }
                }
                if (isnull)
                {
                    table.Rows[i].Delete();
                }
            }
            #endregion
            return table;
        }

19 Source : ManageEntityStaticDataForm.cs
with MIT License
from circles-arrows

private void AddRow(DataTable table)
        {
            DataRow newRow = table.NewRow();
            table.Rows.Add(newRow);
        }

19 Source : OrclPower.cs
with GNU General Public License v3.0
from ClayLipscomb

public static DataTable ReadResult(OracleDataReader reader, bool convertColumnNameToreplacedleCaseInCaption = false, UInt32? optionalMaximumNumberOfRowsToRead = null) {

            // determine name and type of each column in result set and build empty datatable
            DataTable dt = new DataTable();
            DataColumn dc;
            List<string> colName = new List<string>();

            // column names and respective Oracle type from the reader
            List<Column> readerColumns = GetReaderColumnTypes(reader);

            // build empty datatable with column names and correct C# type
            foreach (Column col in readerColumns) {

                // add column to list 
                colName.Add(col.ColumnName);

                // create data column object based on Oracle column type, save column type to array
                if (col.ColumnType == typeof(OracleString)) {
                    dc = new DataColumn(col.ColumnName, typeof(System.String));
                } else if (col.OracleDataTypeName.Equals(OracleDbType.BinaryDouble.ToString())) {
                    dc = new DataColumn(col.ColumnName, typeof(System.Double));
                } else if (col.OracleDataTypeName.Equals(OracleDbType.BinaryFloat.ToString())) {
                    dc = new DataColumn(col.ColumnName, typeof(System.Single));
                } else if (col.ColumnType == typeof(OracleDecimal)) {
                    dc = new DataColumn(col.ColumnName, typeof(OracleDecimal));
                } else if (col.ColumnType == typeof(OracleDate) ) {
                    dc = new DataColumn(col.ColumnName, typeof(OracleDate));
                } else if (col.ColumnType == typeof(OracleTimeStamp) ) {
                    dc = new DataColumn(col.ColumnName, typeof(OracleTimeStamp));
                } else if (col.ColumnType == typeof(OracleTimeStampLTZ) ) {
                    dc = new DataColumn(col.ColumnName, typeof(OracleTimeStampLTZ));
                } else if (col.ColumnType == typeof(OracleTimeStampTZ) ) {
                    dc = new DataColumn(col.ColumnName, typeof(OracleTimeStampTZ));
                } else
                    dc = new DataColumn(col.ColumnName, typeof(Object));
                //throw new Exception("Oracle column type not recognized in 'DataTable Hydrator.ReadResult()' for database column " + col.ColumnName);

                dc.Caption = 
                    convertColumnNameToreplacedleCaseInCaption ? 
                    CaseConverter.ConvertSnakeCaseToLabel(col.ColumnName)
                    : col.ColumnName
                    ;
                dt.Columns.Add(dc);
            }

            // add rows to data table
            DataRow drow;
            Int32 numRowsRead = 0;
            if (reader != null && reader.HasRows) {
                while (reader.Read()) {
                    // create the row and set column data based on result set row
                    drow = dt.NewRow();
                    for (int c = 0; c < colName.Count; c++) {
                        if (reader.IsDBNull(reader.GetOrdinal(colName[c])))
                            drow[colName[c]] = DBNull.Value;
                        else if (readerColumns[c].OracleDataTypeName.Equals(OracleDbType.BinaryDouble.ToString()))
                            drow[colName[c]] = (Double?)reader.GetDouble(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].OracleDataTypeName.Equals(OracleDbType.BinaryFloat.ToString()))
                            drow[colName[c]] = (Single?)reader.GetFloat(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].ColumnType == typeof(OracleString))
                            drow[colName[c]] = (String)reader.GetOracleString(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].ColumnType == typeof(OracleDecimal))
                            drow[colName[c]] = (OracleDecimal?)OracleDecimal.SetPrecision(reader.GetOracleDecimal(reader.GetOrdinal(colName[c])), 28);
                        else if (readerColumns[c].ColumnType == typeof(OracleDate))
                            drow[colName[c]] = (OracleDate?)reader.GetOracleDate(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].ColumnType == typeof(OracleTimeStamp))
                            drow[colName[c]] = (OracleTimeStamp?)reader.GetOracleTimeStamp(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].ColumnType == typeof(OracleTimeStampLTZ))
                            drow[colName[c]] = (OracleTimeStampLTZ?)reader.GetOracleTimeStampLTZ(reader.GetOrdinal(colName[c]));
                        else if (readerColumns[c].ColumnType == typeof(OracleTimeStampTZ))
                            drow[colName[c]] = (OracleTimeStampTZ?)reader.GetOracleTimeStampTZ(reader.GetOrdinal(colName[c]));
                        else
                            drow[colName[c]] = reader.GetValue(reader.GetOrdinal(colName[c]));
                    }

                    // Add the hydrated row to the datatable
                    dt.Rows.Add(drow);

                    if (optionalMaximumNumberOfRowsToRead != null) {
                        numRowsRead++;
                        if (numRowsRead >= optionalMaximumNumberOfRowsToRead) break;
                    }
                }
            }

            // this is necessary in order for DataRowVersion status to be correct
            dt.AcceptChanges();

            return dt;
        }

19 Source : Form1.cs
with GNU General Public License v3.0
from CoderJoeW

private void InsertRowAfter() {
            int tabCIndex = tabControl1.SelectedIndex;

            GridDataBoundGrid dbg = tabControl1.SelectedTab.Controls.OfType<GridDataBoundGrid>().First();
            DataRow dr;
            dr = ds.Tables[tabCIndex.ToString()].NewRow();
            int index = dbg.CurrentCell.RowIndex;
            ds.Tables[tabCIndex.ToString()].Rows.InsertAt(dr, index);
            dbg.Refresh();
        }

19 Source : Form1.cs
with GNU General Public License v3.0
from CoderJoeW

private void InsertRowBefore() {
            int tabCIndex = tabControl1.SelectedIndex;

            GridDataBoundGrid dbg = tabControl1.SelectedTab.Controls.OfType<GridDataBoundGrid>().First();
            DataRow dr;
            dr = ds.Tables[tabCIndex.ToString()].NewRow();
            int index = dbg.CurrentCell.RowIndex - 1;
            ds.Tables[tabCIndex.ToString()].Rows.InsertAt(dr, index);
        }

19 Source : Extention.ExpandoObject.cs
with Apache License 2.0
from Coldairarrow

public static DataTable ToDataTable(this IEnumerable<ExpandoObject> dataList)
        {
            DataTable dt = new DataTable();
            if (dataList.IsNullOrEmpty())
                return null;
            else if (dataList.Count() == 0)
                return dt;
            else
            {
                var aEnreplacedy = dataList.FirstOrDefault();
                var properties = aEnreplacedy.GetProperties();
                properties.ForEach(aProperty =>
                {
                    dt.Columns.Add(aProperty);
                });
                dataList.ForEach((aData,index) =>
                {
                    dt.Rows.Add(dt.NewRow());
                    properties.ForEach(aProperty =>
                    {
                        dt.Rows[index][aProperty] = aData.GetProperty(aProperty);
                    });
                });
            }
            
            return dt;
        }

19 Source : NPOIHelper.cs
with Apache License 2.0
from Coldairarrow

public static DataTable ReadExcel(byte[] fileBytes, int dataIndex = 1, int columnNameIndex = 0, bool xlsx = true)
        {
            using var fs = new MemoryStream(fileBytes);

            IWorkbook workbook = xlsx ? (IWorkbook)new XSSFWorkbook(fs) : new HSSFWorkbook(fs);

            if (workbook == null)
            {
                throw new Exception("读取失败");
            }

            var sheet = workbook.GetSheetAt(0);
            var dataTable = new DataTable();

            if (sheet == null)
            {
                throw new Exception("读取失败");
            }

            int rowCount = sheet.LastRowNum;//总行数

            if (rowCount == 0)
            {
                throw new Exception("无数据");
            }

            IRow columnNameRow = sheet.GetRow(columnNameIndex);//列名行
            int cellCount = columnNameRow.LastCellNum;//列数

            ICell cell;
            DataColumn column;
            //构建datatable的列
            if (columnNameIndex >= 0)
            {
                for (int i = columnNameRow.FirstCellNum; i < cellCount; ++i)
                {
                    cell = columnNameRow.GetCell(i);
                    if (cell != null)
                    {
                        if (cell.StringCellValue != null)
                        {
                            column = new DataColumn(cell.StringCellValue);
                            dataTable.Columns.Add(column);
                        }
                    }
                }
            }
            else
            {
                for (int i = columnNameRow.FirstCellNum; i < cellCount; ++i)
                {
                    column = new DataColumn("column" + (i + 1));
                    dataTable.Columns.Add(column);
                }
            }

            //填充行
            for (int i = dataIndex; i <= rowCount; ++i)
            {
                var row = sheet.GetRow(i);
                if (row == null)
                {
                    continue;
                }

                var dataRow = dataTable.NewRow();
                for (int j = row.FirstCellNum; j < cellCount; ++j)
                {
                    cell = row.GetCell(j);
                    if (cell == null)
                    {
                        dataRow[j] = "";
                    }
                    else
                    {
                        //CellType(Unknown = -1,Numeric = 0,String = 1,Formula = 2,Blank = 3,Boolean = 4,Error = 5,)
                        switch (cell.CellType)
                        {
                            case CellType.Blank:
                                dataRow[j] = "";
                                break;
                            case CellType.Numeric:
                                short format = cell.CellStyle.DataFormat;
                                //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
                                if (format == 14 || format == 31 || format == 57 || format == 58)
                                {
                                    dataRow[j] = cell.DateCellValue;
                                }
                                else
                                {
                                    dataRow[j] = cell.NumericCellValue;
                                }

                                break;
                            case CellType.String:
                                dataRow[j] = cell.StringCellValue;
                                break;
                        }
                    }
                }
                dataTable.Rows.Add(dataRow);
            }

            return dataTable;
        }

19 Source : Extention.IEnumerable.cs
with Apache License 2.0
from Coldairarrow

public static DataTable ToDataTable<T>(this IEnumerable<T> iEnumberable)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            DataTable table = new DataTable();
            foreach (PropertyDescriptor prop in properties)
                table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
            foreach (T item in iEnumberable)
            {
                DataRow row = table.NewRow();
                foreach (PropertyDescriptor prop in properties)
                    row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
                table.Rows.Add(row);
            }
            return table;
        }

19 Source : RedmineDataAccess.cs
with Microsoft Public License
from combit

private DataTable CreateChangeSetTable(string projectId, string dateSQL)
        {

            string sql = "SELECT repositories.id FROM repositories"
                       + " INNER JOIN projects ON projects.parent_id = " + String.Format(GetParameterFormat(), "PROJECTID")
                       + " WHERE repositories.project_id = projects.id"
                       + " OR repositories.project_id = " + String.Format(GetParameterFormat(), "PROJECTID")  
                       + " ORDER BY id";
            
            List<IDbDataParameter> parameters = new List<IDbDataParameter>();
            IDbDataParameter param = GetParameter();
            parameters.Add(param);
            param.ParameterName = String.Format(GetParameterFormat(), "PROJECTID");
            param.Value = projectId;

            DataTable dtProjects = GetDataTable(sql, parameters.ToArray<IDbDataParameter>(), false);
            DataTable dtChangeSets = new DataTable();
            dtChangeSets.Columns.Add("Committed_on", typeof(DateTime));
            dtChangeSets.Columns.Add("Committer");
            dtChangeSets.Columns.Add("Changes", typeof(int));
            dtChangeSets.Columns.Add("Committer_status");

            // loop trough each project
            foreach (DataRow project in dtProjects.Rows)
            {
                sql = "SELECT changesets.id, changesets.committed_on, changesets.repository_id , changesets.committer, users.status AS Committer_status FROM changesets"
                +" INNER JOIN  users ON changesets.user_id = users.id WHERE changesets.repository_id = " + project[0].ToString() + dateSQL;
                DataTable dtChangeSetsThisProject = GetDataTable(sql);
                // loop trough each changeSet in project
                foreach (DataRow changeSet in dtChangeSetsThisProject.Rows)
                {
                    sql = "SELECT COUNT(1) FROM changes WHERE changes.changeset_id = " + changeSet["id"].ToString() + "";
                    DataTable dtCountChanges = GetDataTable(sql);
                    DataRow rowForChangeSet = dtChangeSets.NewRow();

                    rowForChangeSet["committed_on"] = changeSet["committed_on"];
                    rowForChangeSet["committer"] = changeSet["committer"].ToString();
                    rowForChangeSet["changes"] = dtCountChanges.Rows[0][0];
                    rowForChangeSet["Committer_status"] = changeSet["Committer_status"].ToString();
                    dtChangeSets.Rows.Add(rowForChangeSet);
                }
            }
            dtChangeSets.TableName = "ChangeSets";
            return dtChangeSets;
        }

19 Source : RedmineDataAccess.cs
with Microsoft Public License
from combit

private void DoIssueHistoryTableJob(bool isDateTime, string _projectId, string _sqlCommand, string _trackerIds,
                                        int _startDate, DateTime _fromDate = new DateTime(), DateTime _toDate = new DateTime())

        {        
            DataTable dtIssueIds;
            DataTable dtDefaultStatus;
            DataTable dtIssueStatuses;
            DataTable currentHistory;
            DataRow drDefaultStatus;

            // set default status for a ticket
            int newTicketStatusID = 1;
            // object to hold the history table per id
            Dictionary<int, DataTable> historyTable = new Dictionary<int, DataTable>();

            // create parameters
            List<IDbDataParameter> parameters = CreateParameters(_projectId);

            // get all matching issue ids for current filter settings
            string sql = GetMatchingIssueSql(_sqlCommand, _trackerIds);

            dtIssueIds = GetDataTable(sql, parameters.ToArray<IDbDataParameter>(), false);

            try
            {
                sql = "SELECT issue_statuses.id FROM issue_statuses WHERE issue_statuses.is_default = '1'";
                dtDefaultStatus = GetDataTable(sql, null, true);
                drDefaultStatus = dtDefaultStatus.Rows[0];

                // get the default status for a new ticket
                newTicketStatusID = int.Parse(drDefaultStatus[0].ToString());
            }
            catch (MySql.Data.MySqlClient.MySqlException)
            {
                // might fail if there is no default, replacedume the first then
            }

            foreach (DataRow dr in dtIssueIds.Rows)
            {
                // fetches the history for the current id
                currentHistory = CreateIssueHistoryTable((int)dr[1], _trackerIds);

                // add it to our history object
                historyTable[(int)dr[1]] = currentHistory;
            }

            // Get all available statuses
            sql = "SELECT issue_statuses.id, issue_statuses.name, issue_statuses.is_closed, issue_statuses.default_done_ratio FROM issue_statuses";
            dtIssueStatuses = GetDataTable(sql);

            // create the result table
            theGiantHistory = new DataTable();

            // add date column
            DataColumn dateCol = new DataColumn("Date", typeof(DateTime));
            theGiantHistory.Columns.Add(dateCol);

            // add one column for each status id
            foreach (DataRow dr in dtIssueStatuses.Rows)
            {
                DataColumn dc = new DataColumn(dr["id"].ToString(), typeof(int));
                theGiantHistory.Columns.Add(dc);
            }

            // add meta columns for open and closed issues
            DataColumn openCount = new DataColumn("OpenCount", typeof(int));
            theGiantHistory.Columns.Add(openCount);
            DataColumn solvedCount = new DataColumn("SolvedCount", typeof(int));
            theGiantHistory.Columns.Add(solvedCount);
            DataColumn closedCount = new DataColumn("ClosedCount", typeof(int));
            theGiantHistory.Columns.Add(closedCount);
            DataColumn createdIssues = new DataColumn("CreatedIssues", typeof(int));
            theGiantHistory.Columns.Add(createdIssues);
            DataColumn changedIssues = new DataColumn("ChangedIssues", typeof(int));
            theGiantHistory.Columns.Add(changedIssues);

            // now loop through history
            for (int days = -_startDate; days <= 0; days++)
            {
                DateTime currentDay;
                if (isDateTime)
                {
                    currentDay = _toDate.AddDays(days);
                }
                else
                {
                    currentDay = DateTime.Now.AddDays(days);
                }
                int creationCount = 0;
                int changesCount = 0;

                // this object holds the issue count per issue status for the current day
                Dictionary<int, int> issueCounts = new Dictionary<int, int>();

                // loop through all issues
                foreach (DataRow issueRow in dtIssueIds.Rows)
                {
                    int issueId = int.Parse(issueRow[1].ToString());
                    DateTime creationDate = (DateTime)(issueRow["created_on"]);

                    // will be created in the future -> skip
                    if (creationDate.Date > currentDay.Date)
                    {
                        continue;
                    }

                    // created today - count
                    if (creationDate.Date == currentDay.Date)
                    {
                        creationCount++;
                    }

                    // get current issue's history
                    if (historyTable[issueId].Rows.Count == 0)
                    {
                        // history-less issue (i.e. new and never edited or similar)
                        // create virtual increment and replacedign current status
                        int currentStatusId = (int)issueRow["status_id"];

                        if (!issueCounts.ContainsKey(currentStatusId))
                        {
                            issueCounts.Add(currentStatusId, 0);
                        }
                        issueCounts[currentStatusId]++;
                        continue;
                    }

                    DataView dvCurrentIssueHistory = new DataView(historyTable[issueId]);

                    int lastStatusId = newTicketStatusID;

                    // sort by end date
                    dvCurrentIssueHistory.Sort = "Enddate ASC";

                    // loop through history entries (aka journal_details)
                    foreach (DataRowView dr in dvCurrentIssueHistory)
                    {
                        DateTime currentStatusStart = (DateTime)dr["Startdate"];
                        DateTime currentStatusEnd = (DateTime)dr["Enddate"];

                        // changed today - count
                        if (currentStatusEnd.Date == currentDay.Date)
                        {
                            changesCount++;
                        }

                        // not in this timeframe - ticket was created "in the future" -> skip
                        if (currentStatusStart.Date > currentDay.Date)
                            break;

                        // fetch last status and remember it
                        if (currentStatusEnd.Date <= currentDay.Date)
                        {
                            lastStatusId = Int32.Parse(dr["Status"].ToString());
                            continue;
                        }
                        break;
                    }

                    // if we reach this point, the next status change will be in the "future" or there is none, thus count this issue
                    if (!issueCounts.ContainsKey(lastStatusId))
                    {
                        issueCounts.Add(lastStatusId, 0);
                    }
                    issueCounts[lastStatusId]++;
                }

                // we now have a Dictionary for the current day, containing all the counts for the ticket statuses
                // create datarow in result table (one row per day)
                DataRow rowForToday = theGiantHistory.NewRow();
                rowForToday["Date"] = currentDay.Date;
                rowForToday["CreatedIssues"] = creationCount;
                rowForToday["ChangedIssues"] = changesCount;
                int openCounter = 0, closedCounter = 0, solvedCounter = 0;

                foreach (int statusId in issueCounts.Keys)
                {
                    // set issue id column of result table to resulting count for this status id
                    rowForToday[statusId.ToString()] = issueCounts[statusId];

                    // find the status id in the statuses table
                    foreach (DataRow dr in dtIssueStatuses.Rows)
                    {
                        if (dr["id"].ToString() == statusId.ToString())
                        {
                            // increment open or closed counter
                            if ((bool)dr["is_closed"])
                                closedCounter += issueCounts[statusId];
                            else
                            {
                                if ((dr["default_done_ratio"] != System.DBNull.Value) && ((int)dr["default_done_ratio"] == 100))
                                {
                                    solvedCounter += issueCounts[statusId];
                                }
                                else
                                    openCounter += issueCounts[statusId];
                            }
                            break;
                        }
                    }
                }

                rowForToday["OpenCount"] = openCounter;
                rowForToday["ClosedCount"] = closedCounter;
                rowForToday["SolvedCount"] = solvedCounter;

                // add the row for this day
                theGiantHistory.Rows.Add(rowForToday);
            }
        }

19 Source : DemoGlobal.cs
with MIT License
from comsmobiler

internal static DataTable GetChartDemoTable()
        {
            DataTable dt = new DataTable("Table");
            dt.Columns.Add(new DataColumn("S", typeof(string)));
            dt.Columns.Add(new DataColumn("X", typeof(string)));
            dt.Columns.Add(new DataColumn("Y", typeof(float)));
            dt.Columns.Add(new DataColumn("Z", typeof(float)));
            dt.Columns.Add(new DataColumn("VH", typeof(float)));
            dt.Columns.Add(new DataColumn("VL", typeof(float)));
            dt.Columns.Add(new DataColumn("VO", typeof(float)));
            dt.Columns.Add(new DataColumn("VC", typeof(float)));
            dt.Columns.Add(new DataColumn("SP", typeof(int)));
            for (int s = 1; s <= 12; s++)
            {
                for (int i = 1; i <= 1; i++)
                {
                    DataRow row = dt.NewRow();
                    row["S"] = s.ToString();
                    row["X"] = "数值";
                    row["Y"] = i * s;
                    row["Z"] = i * s;
                    row["VH"] = i * s + i;
                    row["VL"] = i * s - i;
                    row["VO"] = i * s - s;
                    row["VC"] = i * s + s;
                    row["SP"] = rd.Next(0, 5);
                    dt.Rows.Add(row);
                }
            }
            return dt;
        }

19 Source : frmFileDetail.cs
with MIT License
from comsmobiler

public void Bind()
        {

            try
            {
                listView1.Rows.Clear();//��������

                this.Client.File.List((obj, args) =>
                {
                    Smobiler.Core.RPC.FileListArgs.FileListData[] filelist = args.Lists;
                    if (filelist.Length > 0)
                    {
                        DataTable table = new DataTable();
                        table.Columns.Add("FImg", typeof(System.String));
                        table.Columns.Add("FileName", typeof(System.String));
                        foreach (Smobiler.Core.RPC.FileListArgs.FileListData filedata in filelist)
                        {
                            DataRow row = table.NewRow();
                            switch (filedata.Name.Split('.')[1])
                            {
                                case "doc":
                                    row["FImg"] = "word";
                                    break;
                                case "xls":
                                    row["FImg"] = "Excel";
                                    break;
                                case "ppt":
                                    row["FImg"] = "ppt";
                                    break;
                                case "rar":
                                    row["FImg"] = "zip";
                                    break;
                            }
                            row["FileName"] = filedata.Name;
                            table.Rows.Add(row);
                        }
                        listView1.DataSource = table;
                        listView1.DataBind();
                    }
                });
            }
            catch (Exception ex)
            {
                Toast(ex.Message, ToastLength.SHORT);
            }

        }

19 Source : DataCheckPoplist.cs
with MIT License
from comsmobiler

public DataTable GetPendingCheckPopItem()
        {
            DataTable table = new DataTable();
            table.Columns.Add("PopItemID", typeof(System.String));
            table.Columns.Add("PopItemName", typeof(System.String));
            table.Columns.Add("ParentID", typeof(System.String));
            table.Columns.Add("Status", typeof(System.Int32));
            int  nrow = 0;
            DataRow dr1 = table.NewRow();
            nrow += 1;
            dr1["PopItemID"] = nrow;
            dr1["PopItemName"] = "待审批";
            dr1["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.请假.ToString());
            dr1["Status"] = (int)Enum.Parse(typeof(L_Status), L_Status.新建.ToString());
            table.Rows.Add(dr1);

            DataRow dr2 = table.NewRow();
            nrow += 1;
            dr2["PopItemID"] = nrow;
            dr2["PopItemName"] = "待责任人审批";
            dr2["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr2["Status"] = (int)Enum.Parse(typeof(RB_Status), RB_Status.新建.ToString());
            table.Rows.Add(dr2);

            DataRow dr3 = table.NewRow();
            nrow += 1;
            dr3["PopItemID"] = nrow;
            dr3["PopItemName"] = "待行政人审批";
            dr3["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr3["Status"] =  (int)Enum.Parse(typeof(RB_Status), RB_Status.责任人审批.ToString());
            table.Rows.Add(dr3);

            DataRow dr4 = table.NewRow();
            nrow += 1;
            dr4["PopItemID"] = nrow;
            dr4["PopItemName"] = "待财务人审批";
            dr4["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr4["Status"] =  (int)Enum.Parse(typeof(RB_Status), RB_Status.行政审批.ToString());
            table.Rows.Add(dr4);
            return table;
        }

19 Source : DataCheckPoplist.cs
with MIT License
from comsmobiler

public DataTable GetCheckPopItem()
        {
            DataTable table = new DataTable();
            table.Columns.Add("PopItemID", typeof(System.String));
            table.Columns.Add("PopItemName", typeof(System.String));
            table.Columns.Add("ParentID", typeof(System.String));
            table.Columns.Add("Status", typeof(System.String));
            int nrow = 0;
            DataRow dr1 = table.NewRow();
            nrow += 1;
            dr1["PopItemID"] = nrow;
           dr1["PopItemName"] = "请假已审批";
           dr1["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.请假.ToString());
           dr1["Status"] = (int)Enum.Parse(typeof(L_Status), L_Status.已审批.ToString());
           table.Rows.Add(dr1);

           DataRow dr2= table.NewRow();
            nrow += 1;
            dr2["PopItemID"] = nrow;
            dr2["PopItemName"] = "请假已拒绝";
            dr2["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.请假.ToString());
            dr2["Status"] = (int)Enum.Parse(typeof(L_Status), L_Status.已拒绝.ToString());
            table.Rows.Add(dr2);

            DataRow dr3 = table.NewRow();
            nrow += 1;
            dr3["PopItemID"] = nrow;
            dr3["PopItemName"] = "报销责任人已审批";
            dr3["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr3["Status"] = (int)Enum.Parse(typeof(RB_Status), RB_Status.责任人审批.ToString());
            table.Rows.Add(dr3);

            DataRow dr4 = table.NewRow();
            nrow += 1;
            dr4["PopItemID"] = nrow;
            dr4["PopItemName"] = "报销行政人已审批";
            dr4["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr4["Status"] = (int)Enum.Parse(typeof(RB_Status), RB_Status.行政审批.ToString());
            table.Rows.Add(dr4);

            DataRow dr5 = table.NewRow();
            nrow += 1;
            dr5["PopItemID"] = nrow;
            dr5["PopItemName"] = "报销财务人已审批";
            dr5["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr5["Status"] = (int)Enum.Parse(typeof(RB_Status), RB_Status.财务审批.ToString());
            table.Rows.Add(dr5);

            DataRow dr6 = table.NewRow();
            nrow += 1;
            dr6["PopItemID"] = nrow;
            dr6["PopItemName"] = "报销已拒绝";
            dr6["ParentID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr6["Status"] = (int)Enum.Parse(typeof(RB_Status), RB_Status.已拒绝.ToString());
            table.Rows.Add(dr6);
            return table;
        }

19 Source : frmCostCenterFXDetail.cs
with MIT License
from comsmobiler

private  void getCCFXDate()
        {

            try
            {
                DataTable table = new DataTable();
                table.Columns.Add("Type", typeof(System.String));
                table.Columns.Add("Amount", typeof(System.Decimal));
                if (CC_Amount > 0)
                {
                    DataRow dr1 = table.NewRow();

                    dr1["Type"] = "�ѱ���";
                    dr1["Amount"] = CC_confirmAmount;
                    table.Rows.Add(dr1);
                    DataRow dr2 = table.NewRow();
                    dr2["Type"] = "������";
                    dr2["Amount"] = CC_createAmount;
                    table.Rows.Add(dr2);
                    DataRow dr3 = table.NewRow();
                    dr3["Type"] = "ʣ����";
                    dr3["Amount"] =CC_Amount - CC_confirmAmount- CC_createAmount;
                    table.Rows.Add(dr3);
                   
                    pieChart1.DataSource = table;
                    pieChart1.DataBind();
                }
                   


            }
            catch (Exception ex)
            {
                Toast(ex.Message, ToastLength.SHORT);
            }

        }

19 Source : frmCostCenterFXDetail.cs
with MIT License
from comsmobiler

private  void getBindtableDate(string type)
        {

            try
            {
                tableView1.Rows.Clear();  
                //�������������������0����������
                if (listRBDto.Count > 0 & (type.Equals("�ѱ���") || type.Equals("������")))
                {
                    DataTable rbtable = new DataTable();
                    rbtable.Columns.Add("RB_ID", typeof(System.String));
                    rbtable.Columns.Add("R_ConsumeDate", typeof(System.String ));
                    rbtable.Columns.Add("R_TypeName", typeof(System.String));
                    rbtable.Columns.Add("R_Amount", typeof(System.String));
                    rbtable.Columns.Add("R_CreateUser", typeof(System.String));
                    List<string> listRBNO = new List<string>();
                    foreach (ReimbursementDto reimbursement in listRBDto)
                    {
                        if ((type.Equals("�ѱ���") & reimbursement.RB_Status.Equals((int)RB_Status.��������)) || (type.Equals("������")&(reimbursement.RB_Status.Equals((int)RB_Status.�½�)|| reimbursement.RB_Status.Equals((int)RB_Status.���������� )|| reimbursement.RB_Status.Equals((int)RB_Status.��������))))
                        {
                            listRBNO.Add(reimbursement.RB_ID);
                        }
                    }
                    if (listRBNO.Count  >0)
                    {
                        foreach (string  rbNO in listRBNO)
                        {
                            List<RB_RowsDto> Rows = AutofacConfig.rBService.GetRowByRBID(rbNO);         //���ұ����������Ѽ�¼��Ϣ
                            if (Rows .Count >0)
                            {
                                foreach (RB_RowsDto Row in Rows)
                                {
                                    DataRow dr = rbtable.NewRow();
                                    dr["RB_ID"] = Row.RB_ID ;
                                    dr["R_ConsumeDate"] = Row.R_ConsumeDate.ToString("yyyy/MM/dd");
                                    dr["R_TypeName"] = Row.R_TypeName;
                                    dr["R_Amount"] = "��" + Row.R_Amount.ToString();
                                    UserDetailDto user = AutofacConfig.userService.GetUserByUserID(Row.R_CreateUser);
                                    if (user != null & string.IsNullOrEmpty(user.U_Name) == false)
                                    {
                                        dr["R_CreateUser"] = user.U_Name;
                                    }
                                      
                                    rbtable.Rows.Add(dr);
                                }
                            }
                           
                        }
                      }
                    tableView1.DataSource = rbtable;
                    tableView1.DataBind();
                }
                }
                    catch (Exception ex)
            {
                Toast(ex.Message, ToastLength.SHORT);
            }

        }

19 Source : DataCheckPoplist.cs
with MIT License
from comsmobiler

public DataTable GetPopGroup()
        {
            DataTable table = new DataTable();
            table.Columns.Add ("GroupID", typeof(System.Int32));
            table.Columns.Add("GroupName", typeof(System.String));
            DataRow dr1 = table.NewRow();
            dr1["GroupID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.请假.ToString());
            dr1["GroupName"] = DataGridviewType.请假;
            table.Rows.Add(dr1);

            DataRow dr2 = table.NewRow();
            dr2["GroupID"] = (int)Enum.Parse(typeof(DataGridviewType), DataGridviewType.报销.ToString());
            dr2["GroupName"] = DataGridviewType.报销;
            table.Rows.Add(dr2);
            return table;
        }

19 Source : UserSex.cs
with MIT License
from comsmobiler

public DataTable GetSex()
        {
            DataTable table = new DataTable();
            table.Columns.Add("SexID", typeof(System.Int32));
            table.Columns.Add("SexName", typeof(System.String));
            DataRow dr1 = table.NewRow();
            dr1["SexID"] = (int)Enum.Parse(typeof(Sex), Sex.男.ToString());
            dr1["SexName"] = Sex.男;
            table.Rows.Add(dr1);

            DataRow dr2 = table.NewRow();
            dr2["SexID"] = (int)Enum.Parse(typeof(Sex), Sex.女.ToString());
            dr2["SexName"] = Sex.女;
            table.Rows.Add(dr2);
            return table;
        }

19 Source : LINQToDataTable.cs
with MIT License
from comsmobiler

public static DataTable ToDataTable<T>(IEnumerable<T> varlist)
        {
            DataTable dtReturn = new DataTable();
            // column names 
            PropertyInfo[] oProps = null;
            if (varlist == null)
                return dtReturn;
            foreach (T rec in varlist)
            {
                if (oProps == null)
                {
                    oProps = ((Type)rec.GetType()).GetProperties();
                    foreach (PropertyInfo pi in oProps)
                    {
                        Type colType = pi.PropertyType;
                        if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition()
                                                        == typeof(Nullable<>)))
                        {
                            colType = colType.GetGenericArguments()[0];
                        }
                        dtReturn.Columns.Add(new DataColumn(pi.Name, colType));
                    }
                }
                DataRow dr = dtReturn.NewRow();
                foreach (PropertyInfo pi in oProps)
                {
                    dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue
                        (rec, null);
                }
                dtReturn.Rows.Add(dr);
            }
            return dtReturn;
        }

19 Source : frmAssInventoryResult.cs
with MIT License
from comsmobiler

private void frmreplacedInventoryResult_Load(object sender, EventArgs e)
        {
            try
            {
                //��Ӹ�������
                if (waiTable.Columns.Count == 0)
                {

                    waiTable.Columns.Add("RESULTNAME");
                    waiTable.Columns.Add("replacedID");
                    waiTable.Columns.Add("Image");
                    waiTable.Columns.Add("LocationName");
                    waiTable.Columns.Add("Name");
                    waiTable.Columns.Add("Price");
                    waiTable.Columns.Add("SN");
                    waiTable.Columns.Add("TypeName");
                    waiTable.Columns.Add("Specification");


                }
                DataColumn[] keys = new DataColumn[1];
                keys[0] = waiTable.Columns["replacedID"];
                waiTable.PrimaryKey = keys;

                //��Ӹ�������
                if (alreadyTable.Columns.Count == 0)
                {

                    alreadyTable.Columns.Add("RESULTNAME");
                    alreadyTable.Columns.Add("replacedID");
                    alreadyTable.Columns.Add("Image");
                    alreadyTable.Columns.Add("LocationName");
                    alreadyTable.Columns.Add("Name");
                    alreadyTable.Columns.Add("Price");
                    alreadyTable.Columns.Add("SN");
                    alreadyTable.Columns.Add("TypeName");
                    alreadyTable.Columns.Add("Specification");
                }
                DataColumn[] keys2 = new DataColumn[1];
                keys2[0] = alreadyTable.Columns["replacedID"];
                alreadyTable.PrimaryKey = keys2;

                UserId = Client.Session["UserID"].ToString();

                //��Ӹ�������
                if (allreplacedTable.Columns.Count == 0)
                {

                    //                    allreplacedTable.Columns.Add("RESULTNAME");
                    allreplacedTable.Columns.Add("replacedID");
                    allreplacedTable.Columns.Add("Image");
                    allreplacedTable.Columns.Add("LocationName");
                    allreplacedTable.Columns.Add("Name");
                    allreplacedTable.Columns.Add("Price");
                    allreplacedTable.Columns.Add("SN");
                    allreplacedTable.Columns.Add("TypeName");
                    allreplacedTable.Columns.Add("Specification");


                }
                DataColumn[] keys3 = new DataColumn[1];
                keys[0] = allreplacedTable.Columns["SN"];
                allreplacedTable.PrimaryKey = keys;

                var allreplacedTable1 = _autofacConfig.SettingService.GetAllreplaced("");
                foreach (DataRow row in allreplacedTable1.Rows)
                {
                    DataRow Row = allreplacedTable.NewRow();
                    Row["replacedID"] = row["replacedID"].ToString();
                    Row["Image"] = row["Image"].ToString();
                    Row["LocationName"] = row["LocationName"].ToString();
                    Row["Name"] = row["Name"].ToString();
                    Row["Price"] = row["Price"].ToString();
                    Row["SN"] = row["SN"].ToString();
                    Row["TypeName"] = row["TypeName"].ToString();
                    Row["Specification"] = row["Specification"].ToString();


                    allreplacedTable.Rows.Add(Row);
                }


                //���ListView��tabpageview
                waitListView.TemplateControlName = "frmAIResultLayout";
                waitListView.ShowSplitLine = true;
                waitListView.SplitLineColor = Color.FromArgb(230, 230, 230);
                waitListView.Dock = DockStyle.Fill;
                tabPageView1.Controls.Add(waitListView);

                alreadyListView.TemplateControlName = "frmAIResultLayout";
                alreadyListView.ShowSplitLine = true;
                alreadyListView.SplitLineColor = Color.FromArgb(230, 230, 230);
                alreadyListView.Dock = DockStyle.Fill;
                tabPageView1.Controls.Add(alreadyListView);

                var inventory = _autofacConfig.replacedInventoryService.GetreplacedInventoryById(IID);
                txtName.Text = inventory.NAME;
                txtHandleMan.Text = inventory.HANDLEMANNAME;
                txtCount.Text = inventory.TOTAL.ToString();
                txtLocatin.Text = inventory.LOCATIONNAME;
                txtDep.Text = string.IsNullOrEmpty(inventory.DEPARTMENTID) ? "ȫ��" : inventory.DEPARTMENTNAME;
                txtType.Text = string.IsNullOrEmpty(inventory.TYPEID) ? "ȫ��" : inventory.TYPENAME;
                Status = (InventoryStatus)inventory
                    .STATUS;

                //�����Ҫ�̵���ʲ��б�
                replacedList = _autofacConfig.replacedInventoryService.GetPendingInventoryList(IID);

                //�õ��̵㵥��ǰ����������
                replacedDictionary = _autofacConfig.replacedInventoryService.GetResultDictionary(IID);

                //�õ����̵���ʲ��б�
                var waiTable1 = _autofacConfig.replacedInventoryService.GetPendingInventoryTable(IID, LocationId, typeId,
                    DepartmentId);
                foreach (DataRow row in waiTable1.Rows)
                {
                    DataRow Row = waiTable.NewRow();
                    Row["replacedID"] = row["replacedID"].ToString();
                    Row["RESULTNAME"] = row["RESULTNAME"].ToString();
                    Row["Image"] = row["Image"].ToString();
                    Row["LocationName"] = row["LocationName"].ToString();
                    Row["Name"] = row["Name"].ToString();
                    Row["Price"] = row["Price"].ToString();
                    Row["SN"] = row["SN"].ToString();
                    Row["TypeName"] = row["TypeName"].ToString();
                    Row["Specification"] = row["Specification"].ToString();


                    waiTable.Rows.Add(Row);
                }
                if (inventory.TOTAL == 0)
                {
                    txtCount.Text = waiTable1.Rows.Count.ToString();
                }


                //�õ����̵���ʲ��б�
                var alreadyTable1 = _autofacConfig.replacedInventoryService.GetreplacedInventoryResultsByIID(IID, ResultStatus.����);
                foreach (DataRow row in alreadyTable1.Rows)
                {
                    DataRow Row = alreadyTable.NewRow();
                    Row["replacedID"] = row["replacedID"].ToString();
                    Row["RESULTNAME"] = row["RESULTNAME"].ToString();
                    Row["Image"] = row["Image"].ToString();
                    Row["LocationName"] = row["LocationName"].ToString();
                    Row["Name"] = row["Name"].ToString();
                    Row["Price"] = row["Price"].ToString();
                    Row["SN"] = row["SN"].ToString();
                    Row["TypeName"] = row["TypeName"].ToString();
                    Row["Specification"] = row["Specification"].ToString();

                    alreadyTable.Rows.Add(Row);
                }

                if (Status == InventoryStatus.�̵���� || Status == InventoryStatus.�̵�δ��ʼ)
                {
                    Form.ActionButton.Enabled = false;
                    plButton.Visible = false;
                }

                //������
                Bind();
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }

See More Examples