/// <summary> /// 取从档数据 /// </summary> public DataTable GetDataTable(string whereString, string sortfield, string sortorder, string parentTableName, Dictionary<string, object> parentRow, int startIndex, int count) { var clientInfo = EFClientTools.ClientUtility.ClientInfo; EFClientTools.ClientUtility.RemoteName = RemoteName; var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { OrderParameters = new List<EFClientTools.EFServerReference.OrderParameter>(), WhereParameters = new List<EFClientTools.EFServerReference.WhereParameter>(), }; if (sortfield != null && sortfield != "" && IsMaster) { EFClientTools.EFServerReference.OrderParameter OrderParameter = new EFClientTools.EFServerReference.OrderParameter(); OrderParameter.Field = sortfield; if (sortorder.ToLower() == "asc") OrderParameter.Direction = EFClientTools.EFServerReference.OrderDirection.Ascending; else OrderParameter.Direction = EFClientTools.EFServerReference.OrderDirection.Descending; packetInfo.OrderParameters.Add(OrderParameter); } var commandName = CommandName; if (IsMaster) { packetInfo.StartIndex = startIndex; packetInfo.Count = count; packetInfo.WhereString = whereString; } else { if (parentRow == null) { packetInfo.OnlySchema = true; } else { packetInfo.StartIndex = 0; packetInfo.Count = -1; //detail packetrecord无效 commandName = parentTableName; foreach (var item in parentRow) { packetInfo.WhereParameters.Add(new EFClientTools.EFServerReference.WhereParameter() { And = true, Field = item.Key, Value = item.Value }); } } } var xml = (string)EFClientTools.ClientUtility.Client.GetDataSet(clientInfo, AssemblyName, commandName, packetInfo); StringReader reader = new StringReader(xml); var dataSet = new DataSet(); dataSet.ReadXml(reader, XmlReadMode.Auto); if (dataSet.Tables[TableName] == null) { throw new Exception(string.Format("Can not find table:'{0}'.(RemoteName:'{1}')", TableName, Data)); } if (!IsMaster) { DataView view = new DataView(dataSet.Tables[TableName]); if (!string.IsNullOrEmpty(sortfield)) { view.Sort = string.Format("{0} {1}", sortfield, sortorder); } var table = view.ToTable(TableName); if (dataSet.Tables[TableName].PrimaryKey.Length > 0) { var primaryKey = new DataColumn[dataSet.Tables[TableName].PrimaryKey.Length]; for (int i = 0; i < dataSet.Tables[TableName].PrimaryKey.Length; i++) { primaryKey[i] = table.Columns[dataSet.Tables[TableName].PrimaryKey[i].ColumnName]; } table.PrimaryKey = primaryKey; } return table; } else { return dataSet.Tables[TableName]; } }
public DataTable GetTotalTable(string whereString, string parentTableName, Dictionary<string, object> parentRow, Dictionary<string, string> totals) { var clientInfo = EFClientTools.ClientUtility.ClientInfo; var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { OrderParameters = new List<EFClientTools.EFServerReference.OrderParameter>(), WhereParameters = new List<EFClientTools.EFServerReference.WhereParameter>(), }; var commandName = CommandName; if (IsMaster) { packetInfo.StartIndex = 0; packetInfo.Count = -1; packetInfo.WhereString = whereString; } else { if (parentRow == null) { packetInfo.OnlySchema = true; } else { packetInfo.StartIndex = 0; packetInfo.Count = -1; //detail packetrecord无效 commandName = parentTableName; foreach (var item in parentRow) { packetInfo.WhereParameters.Add(new EFClientTools.EFServerReference.WhereParameter() { And = true, Field = item.Key, Value = item.Value }); } } } var xml = (string)EFClientTools.ClientUtility.Client.GetDataTotal(clientInfo, AssemblyName, TableName, packetInfo, totals); StringReader reader = new StringReader(xml); var dataSet = new DataSet(); dataSet.ReadXml(reader, XmlReadMode.Auto); return dataSet.Tables[TableName]; }
/// <summary> /// 取结构和更新数据 /// </summary> public DataSet GetDataSet(Dictionary<string, object> keyValues) { var clientInfo = EFClientTools.ClientUtility.ClientInfo; var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { OrderParameters = new List<EFClientTools.EFServerReference.OrderParameter>(), WhereParameters = new List<EFClientTools.EFServerReference.WhereParameter>(), }; if (keyValues == null) { packetInfo.OnlySchema = true; } else { foreach (var item in keyValues) { packetInfo.WhereParameters.Add(new EFClientTools.EFServerReference.WhereParameter() { And = true, Field = item.Key, Value = item.Value }); } } var xml = (string)EFClientTools.ClientUtility.Client.GetDataSet(clientInfo, AssemblyName, TableName, packetInfo); StringReader reader = new StringReader(xml); var dataSet = new DataSet(); dataSet.ReadXml(reader, XmlReadMode.Auto); return dataSet; }
/// <summary> /// 取主档数据笔数 /// </summary> public int GetDataCount(string whereString) { var clientInfo = EFClientTools.ClientUtility.ClientInfo; var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { OrderParameters = new List<EFClientTools.EFServerReference.OrderParameter>(), WhereParameters = new List<EFClientTools.EFServerReference.WhereParameter>(), WhereString = whereString }; return EFClientTools.ClientUtility.Client.GetDataCount(clientInfo, AssemblyName, CommandName, packetInfo); }
public EFClientTools.EFServerReference.LockStatus DoRecordLock(Dictionary<string, object> row, EFClientTools.EFServerReference.LockType type) { var clientInfo = EFClientTools.ClientUtility.ClientInfo; var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { OrderParameters = new List<EFClientTools.EFServerReference.OrderParameter>(), WhereParameters = new List<EFClientTools.EFServerReference.WhereParameter>(), }; foreach (var item in row) { packetInfo.WhereParameters.Add(new EFClientTools.EFServerReference.WhereParameter() { And = true, Field = item.Key, Value = item.Value }); } return EFClientTools.ClientUtility.Client.DoRecordLock(clientInfo, AssemblyName, CommandName, packetInfo, type); }
private DataSet GetDataSet() { var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { StartIndex = LastIndex, Count = PacketRecords, OrderParameters = new List<EFServerReference.OrderParameter>(), WhereParameters = WhereParams, WhereString = Where }; var clientInfo = EFClientTools.ClientUtility.ClientInfo; //clientInfo.IsSDModule = true; clientInfo.UseDataSet = true; if (string.IsNullOrEmpty(clientInfo.Solution)) { clientInfo.Solution = PreviewSolution; clientInfo.Database = PreviewDatabase; } var dataSet = new DataSet(); string xml = ""; if (String.IsNullOrEmpty(SelectCommand)) { var assemblyName = RemoteName.Split('.')[0]; var commandName = RemoteName.Split('.')[1]; xml = (string)EFClientTools.ClientUtility.Client.GetDataSet(clientInfo, assemblyName, commandName, packetInfo); } else { xml = (string)EFClientTools.ClientUtility.Client.ExecuteSQL(clientInfo, DBAlias, SelectCommand, packetInfo); } StringReader reader = new StringReader(xml); dataSet.ReadXml(reader, XmlReadMode.Auto); var count = dataSet.Tables[0].Rows.Count; LastIndex += count; return dataSet; }
public int GetRecordsCount() { if (String.IsNullOrEmpty(RemoteName)) return 0; int i = 0; int iPos = RemoteName.IndexOf('.'); if (iPos > 0) { var packetInfo = new EFClientTools.EFServerReference.PacketInfo() { StartIndex = LastIndex, Count = PacketRecords, OrderParameters = new List<EFServerReference.OrderParameter>(), WhereParameters = WhereParams, WhereString = Where }; string assemblyName = RemoteName.Substring(0, iPos); string commandName = RemoteName.Substring(iPos + 1); var clientInfo = EFClientTools.ClientUtility.ClientInfo; clientInfo.IsSDModule = true; clientInfo.UseDataSet = true; if (string.IsNullOrEmpty(clientInfo.Solution)) { clientInfo.Solution = PreviewSolution; clientInfo.Database = PreviewDatabase; } i = EFClientTools.ClientUtility.Client.GetDataCount(clientInfo, assemblyName, commandName, packetInfo); //i = CliUtils.GetRecordsCount(sModule, sDataSet, strWhere, CliUtils.fCurrentProject); } return i; //return InnerDataSet.Tables[0].Rows.Count; }