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
19
Source : GloEntity.cs
with GNU Lesser General Public License v3.0
from ccbpm
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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