using System; using System.Data; using static iMESCore.Base.iMESConst; using static iMESCore.DataBase.iMESSql; using iMESCore.Settings; using Microsoft.VisualBasic.CompilerServices; using System.Data.Common; namespace udScriptFunction_Customer { public class clsScriptFunction : IDisposable { // 2007/04/03,sammi.整合modUD. private AppSettings objSetting = new AppSettings(); private IDbConnection cnnTemp; private string strConnectionString; // Connection string private string strDataBaseType; // DataBase Type:oracle, mysql, access private string strMQType; // MessageQueue Type:TIBCO, MQSeries, MSMQ private int intGetMethod = 1; // 0.Simulation, 1.Production private DataTable dtLotAttrib = null; private DataTable dtCompAttrib = null; private string strLotNo; private string strOPNo; private string strComponentNo; private string strENGNo; private string strENGVersion; private string strRecipeNo; private string strRecipeVersion; private string strPropertyNo; #region --- Property --- public string ConnectionString { get { return strConnectionString; } } public string DataBaseType { get { return strDataBaseType; } } public string MQType { get { return strMQType; } } // 當intGetMethod 為 0 時 Function 本身必須自行 Return Value,當 1 時可依實際需求取得實際值 public int GetMethod { get { return intGetMethod; } set { intGetMethod = value; } } // 部分之Function 需要提供LotNo的屬性 public string LotNo { set { strLotNo = value; } } // 部分之Function 需要提供OPNo的屬性 public string OPNo { set { strOPNo = value; } } // 部分之Function 需要提供OPNo的屬性 public string ComponentNo { set { strComponentNo = value; } } // 部分之Function 需要提供ComponentAttrib public DataTable ComponentAttrib { set { dtCompAttrib = value; } } // 部分之Function 需要提供ComponentAttrib public DataTable LotAttrib { set { dtLotAttrib = value; } } #endregion // //Initial Object-------------------------------------------------------------------------------------------------------------------------------- public clsScriptFunction() { // //Get database type strDataBaseType = objSetting.GetDataBaseType(); // //Get connection string strConnectionString = objSetting.GetConnectionString(strDataBaseType); // //Get Message Queue Type strMQType = objSetting.GetMQType(); } #region IDisposable Support private bool disposedValue; // 偵測多餘的呼叫 // IDisposable protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: 處置 Managed 狀態 (Managed 物件)。 } // 釋放 Unmanaged 資源 (Unmanaged 物件) 並覆寫下方的 Finalize()。 if (objSetting != null) objSetting = null; // 將大型欄位設為 null。 } disposedValue = true; } // TODO: 只有當上方的 Dispose(disposing As Boolean) 具有要釋放 Unmanaged 資源的程式碼時,才覆寫 Finalize()。 // Protected Overrides Sub Finalize() // ' 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 // Dispose(False) // MyBase.Finalize() // End Sub // Visual Basic 加入這個程式碼的目的,在於能正確地實作可處置的模式。 public void Dispose() { // 請勿變更這個程式碼。請將清除程式碼放在上方的 Dispose(disposing As Boolean) 中。 Dispose(true); // TODO: 覆寫上列 Finalize() 時,取消下行的註解狀態。 // GC.SuppressFinalize(Me) } #endregion // 2018/05/22 OwenLiu, Mantis:0047207 Script Function同時支援標準迭代與個案客製 // FunctionName 必須以 funSCC_ 作為名稱的前綴字串,才可以正常運作 //public int funSCC_GetAPPreviousDate() //{ // int intResult = defInteger; // string strFunctionName = System.Reflection.MethodBase.GetCurrentMethod().Name; // string strSQL = string.Empty; // var datServerTime = DateTime.Now; // try // { // // Simulation // if (intGetMethod == 0) // { // intResult = 1; // return intResult; // } // // Production // // Create Connection // cnnTemp = CreateConnection_None(strConnectionString, strDataBaseType); // if (strDataBaseType.ToLower() == "oracle") // { // strSQL = "SELECT sysdate AS ServerTime FROM dual"; // } // else // { // strSQL = "SELECT getdate() AS ServerTime"; // } // using (DbDataReader drTemp = ExecuteSQLQuery_Reader(strSQL, cnnTemp)) // { // if (drTemp.Read()) // { // datServerTime = Conversions.ToDate(drTemp["ServerTime"]); // intResult = Conversions.ToInteger(datServerTime.AddDays(-1).ToString("yyyyMMdd")); // } // drTemp.Close(); // } // } // catch (Exception ex) // { // throw; // } // finally // { // CloseConnection(cnnTemp); // } // return intResult; //} } }