using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Collections; using System.Data.OracleClient; namespace CCSTrace.CCS.Object { public class Dept_Contrast { private ArrayList m_TotalData = null; public static String DefaultDept = "市區巡修課"; public Dept_Contrast(OracleConnection _ConnectionTPC,OracleTransaction _Trx) { if (m_TotalData == null) this.Initial(_ConnectionTPC,_Trx); } public int getDept_Code(String m_Meter) { //int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept); int Result = -1; try { for (int i = 0; i < m_TotalData.Count; i++) { ArrayList TmpData = (ArrayList)m_TotalData[i]; if (TmpData[2] == null) { Result = Convert.ToInt32(TmpData[1].ToString()); break; } else {// 一對多(需作比對) long MinMeter = Convert.ToInt64(TmpData[3].ToString()); long MaxMeter = Convert.ToInt64(TmpData[2].ToString()); long CustMeter = Convert.ToInt64(m_Meter); if ((CustMeter > MinMeter) && (CustMeter < MaxMeter)) { Result = Convert.ToInt32(TmpData[1].ToString()); break; } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } return Result; } public int getDept_Code(int SC_Code, String Meter) { int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept); try { for (int i = 0; i < m_TotalData.Count; i++) { ArrayList TmpData = (ArrayList)m_TotalData[i]; int Tmp_Dept = Convert.ToInt32(TmpData[0].ToString()); if (Tmp_Dept == SC_Code) { // 一對一(無最大最小電號限制) if (TmpData[2] == null) { Result = Convert.ToInt32(TmpData[1].ToString()); break; } else {// 一對多(需作比對) long MinMeter = Convert.ToInt64(TmpData[3].ToString()); long MaxMeter = Convert.ToInt64(TmpData[2].ToString()); long CustMeter = Convert.ToInt64(Meter); if ((CustMeter > MinMeter) && (CustMeter < MaxMeter)) { Result = Convert.ToInt32(TmpData[1].ToString()); break; } } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } return Result; } private void Initial(OracleConnection _ConnectionTPC,OracleTransaction _Trx) { String SqlStmt; m_TotalData = new ArrayList(); SqlStmt = "SELECT SC_CODE,DEPT_CODE,MAX_METER,MIN_METER FROM CCS.DEPT_CONTRAST"; OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC,_Trx); OracleDataReader reader = Command.ExecuteReader(); try { while (reader.Read()) { ArrayList Record = new ArrayList(); int SC_Code = Convert.ToInt32(reader["SC_CODE"].ToString()); Record.Add(SC_Code); Record.Add(Convert.ToInt32(reader["Dept_Code"].ToString())); Record.Add(reader["Max_Meter"].ToString()); Record.Add(reader["Min_Meter"].ToString()); m_TotalData.Add(Record); } } catch (Exception e) { Console.WriteLine(e.StackTrace); } finally { reader.Close(); Command.Dispose(); } } } }