using System; using System.Runtime.Remoting; using System.Linq; using System.Data.Linq; using System.Xml; using System.IO; using ICSSoft.Base.Config.AppConfig; using System.Collections.Specialized; using ICSSoft.Frame.Helper; using ICSSoft.Frame.Data.Entity; using ICSSoft.Frame.DataConnect.Action; using System.Data; using ICSSoft.Base.Config.DBHelper; using System.Collections.Generic; namespace ICSSoft.Frame.DataConnect { /// /// ReportFacade 的摘要说明。 /// 文件名: ReportFacade.cs /// 修改人: /// 修改日期: /// 描 述: /// 版 本: /// public class ICSReport : MarshalByRefObject { private FramDataContext _domainDataProvider = null; public ICSReport() { } public override object InitializeLifetimeService() { return null; } public ICSReport(FramDataContext domainDataProvider) { this._domainDataProvider = domainDataProvider; } public FramDataContext DataProvider { get { if (_domainDataProvider == null) { _domainDataProvider = new FramDataContext(AppConfig.AppConnectString); } return _domainDataProvider; } } #region TimeDimension时间维度 /// /// /// public object GetTimeDimension(int Date) { //return this.DataProvider.CustomSearch(typeof(TimeDimension), new object[] { Date }); string sql = @"select * from ICSTimeDimension where DDATE='"+Date+"'"; var objs = this._domainDataProvider.ExecuteQuery(sql).ToList(); if (objs == null || objs.Count < 1) return null; else return (ICSTimeDimension)objs[0]; } public object[] QueryTimeDimensionYears() { //string sql = "SELECT DISTINCT YEAR FROM ICSTimeDimension ORDER BY YEAR"; //return this.DataProvider.CustomQuery(typeof(TimeDimension), new SQLCondition(sql)); string sql = @"select * from ICSTimeDimension order by YEAR"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; List rtn = new List(); foreach (var item in dt.Rows) { rtn.Add(item as object); } return rtn.ToArray(); } public object[] QueryTimeDimensionMonthsByYear(int year) { //string sql = "SELECT DISTINCT Dmonth FROM ICSTimeDimension WHERE YEAR=" + year + " ORDER BY Dmonth"; //return this.DataProvider.CustomQuery(typeof(TimeDimension), new SQLCondition(sql)); string sql = @"select * from ICSTimeDimension where YEAR='" + year + "' order by DMONTH"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; List rtn = new List(); foreach (var item in dt.Rows) { rtn.Add(item as object); } return rtn.ToArray(); } public object[] QueryTimeDimensionWeeksByYear(int year) { //string sql = "SELECT DISTINCT dweek FROM ICSTimeDimension WHERE YEAR=" + year + " ORDER BY dweek"; //return this.DataProvider.CustomQuery(typeof(TimeDimension), new SQLCondition(sql)); string sql = @"select * from ICSTimeDimension where YEAR='" + year + "' order by DWEEK"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; List rtn = new List(); foreach (var item in dt.Rows) { rtn.Add(item as object); } return rtn.ToArray(); } #endregion #region 根据工作天、存货编码、资源代码查找生产订单号 public object[] QueryMOCodeFromReportSOQty(int shiftDay, string shiftCode, string resCode) { //object[] returnValue = null; string sql = string.Empty; sql += "select distinct MOCODE " + "\r\n"; sql += "from ICSRPTSOQTY,ICSMESEntityList " + "\r\n"; sql += "where ICSRPTSOQTY.ICSMESEntityList_serial=ICSMESEntityList.serial " + "\r\n"; //sql += "SELECT DISTINCT mocode " + "\r\n"; //sql += "FROM tblrptsoqty, tblmesentitylist " + "\r\n"; //sql += "WHERE tblrptsoqty.tblmesentitylist_serial = tblmesentitylist.serial " + "\r\n"; if (shiftDay > 0) { sql += "and ICSRPTSOQTY.SHIFTDAY = " + shiftDay.ToString() + " " + "\r\n"; } if (shiftCode.Trim().Length > 0) { sql += "and ICSMESEntityList.SHIFTCODE = '" + shiftCode.Trim().ToUpper() + "' " + "\r\n"; } if (resCode.Trim().Length > 0) { sql += "and ICSMESEntityList.RESCODE = '" + resCode.Trim().ToUpper() + "' " + "\r\n"; } //returnValue = this.DataProvider.CustomQuery(typeof(ReportSOQty), new SQLCondition(sql)); //return returnValue; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; List rtn = new List(); foreach (var item in dt.Rows) { rtn.Add(item as object); } return rtn.ToArray(); } //根据工作天、班次代码、资源代码、生产订单号查询通过该工序的个数 public object[] QueryOPCountSumFromReportSOQty(int shiftDay, string shiftCode, string resCode, string moCode) { //object[] returnValue = null; string sql = string.Empty; sql += "select SUM(ICSRPTSOQTY.OpCount) as opcount " + "\r\n"; sql += "from ICSRPTSOQTY,ICSMESEntityList " + "\r\n"; sql += "where ICSRPTSOQTY.ICSMESEntityList_serial=ICSMESEntityList.serial " + "\r\n"; if (shiftDay > 0) { sql += "and ICSRPTSOQTY.SHIFTDAY = " + shiftDay.ToString() + " " + "\r\n"; } if (shiftCode.Trim().Length > 0) { sql += "and ICSMESEntityList.SHIFTCODE = '" + shiftCode.Trim().ToUpper() + "' " + "\r\n"; } if (resCode.Trim().Length > 0) { sql += "and ICSMESEntityList.RESCODE = '" + resCode.Trim().ToUpper() + "' " + "\r\n"; } if (moCode.Trim().Length > 0) { sql += "and ICSRPTSOQTY.MOCODE = '" + moCode.Trim().ToUpper() + "' " + "\r\n"; } //returnValue = this.DataProvider.CustomQuery(typeof(ReportSOQty), new SQLCondition(sql)); //return returnValue; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; List rtn = new List(); foreach (var item in dt.Rows) { rtn.Add(item as object); } return rtn.ToArray(); } #endregion } }