public void UpdateDisplayResultHistory(string strCellID) { var pDocument = CDocument.GetDocument; var pFormCommon = CFormCommon.GetFormCommon; do { string strQuery = null; // History Align CManagerTable objManagerTableHistoryAlign = pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryAlign; try { strQuery = string.Format("select * from {0} ", objManagerTableHistoryAlign.HLGetTableName()); strQuery += string.Format("where {0} = '{1}'", objManagerTableHistoryAlign.HLGetTableSchemaName()[( int )CDatabaseDefine.enumHistoryAlign.CELL_ID], strCellID); DataTable objDataTable = new DataTable(); pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objSQLite.HLReload(strQuery, ref objDataTable); DataRow[] objDataRow = objDataTable.Select("", objManagerTableHistoryAlign.HLGetTableSchemaName()[( int )CDatabaseDefine.enumHistoryAlign.CELL_ID] + " " + CDatabaseDefine.DEF_ASC); for (int iLoopCount = 0; iLoopCount < objDataRow.Length; iLoopCount++) { UpdateDisplay(objDataRow[iLoopCount]); } } catch (Exception ex) { Trace.WriteLine(ex.Message); } } while(false); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 히스토리 삭제 쿼리 날려줌 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private void SetDeleteHistory(CManagerTable objManagerTable, int iIndex, int iDeletePeriod) { // 금일을 기준으로 특정일을 계산해야함 DateTime objDate = DateTime.Today; string strQuery = string.Format("delete from {0} where {1} < datetime('{2}')", objManagerTable.HLGetTableName(), objManagerTable.HLGetTableSchemaName()[iIndex], string.Format("{0} 23:59:59", objDate.AddDays(-1 * Math.Abs(iDeletePeriod)).ToString(CDatabaseDefine.DEF_DATE_FORMAT))); m_objSQLite.HLExecute(strQuery); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 초기화 함수 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public bool Initialize(CProcessDatabase objProcessDatabase) { bool bReturn = false; var pDocument = CDocument.GetDocument; do { // 상위 클래스 이어줌 base.m_objProcessDatabase = objProcessDatabase; CConfig objConfig = pDocument.m_objConfig; // 데이터베이스 파라메터 CConfig.CDatabaseParameter objDatabaseParameter = objConfig.GetDatabaseParameter(); // SQLite 초기화 m_objSQLite = new CSQLite(); CErrorReturn objReturn = m_objSQLite.HLInitialize(string.Format(@"{0}\{1}.db3", objConfig.GetDatabaseHistoryPath(), objDatabaseParameter.strDatabaseHistory)); if (true == objReturn.m_bError) { break; } // SQLite Connect objReturn = m_objSQLite.HLConnect(); if (true == objReturn.m_bError) { break; } // History Align 초기화 m_objManagerTableHistoryAlign = new CManagerTable(); if (false == m_objManagerTableHistoryAlign.HLInitialize( m_objSQLite, string.Format(@"{0}\{1}.txt", objConfig.GetDatabaseTablePath(), objDatabaseParameter.strTableHistoryAlign), "")) { break; } // // History Inspection 초기화 // m_objManagerTableHistoryInspection = new CManagerTable(); // if( false == m_objManagerTableHistoryInspection.HLInitialize( // m_objSQLite, // string.Format( @"{0}\{1}.txt", objConfig.GetDatabaseTablePath(), objDatabaseParameter.strTableHistoryInspection ), "" ) ) break; // Process History Delete 초기화 m_objProcessDatabaseHistoryDelete = new CProcessDatabaseHistoryDelete(); if (false == m_objProcessDatabaseHistoryDelete.Initialize(m_objProcessDatabase, m_objSQLite)) { break; } bReturn = true; } while(false); return(bReturn); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 초기화 함수 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public bool Initialize(CProcessDatabase objProcessDatabase) { bool bReturn = false; var pDocument = CDocument.GetDocument; do { // 상위 클래스 이어줌 base.m_objProcessDatabase = objProcessDatabase; CConfig objConfig = pDocument.m_objConfig; // 데이터베이스 파라메터 CConfig.CDatabaseParameter objDatabaseParameter = objConfig.GetDatabaseParameter(); // SQLite 초기화 m_objSQLite = new CSQLite(); CErrorReturn objReturn = m_objSQLite.HLInitialize(string.Format(@"{0}\{1}.db3", objConfig.GetCurrentPath(), objDatabaseParameter.strDatabaseInformation)); if (true == objReturn.m_bError) { break; } // SQLite Connect objReturn = m_objSQLite.HLConnect(); if (true == objReturn.m_bError) { break; } // Information UI Text 초기화 m_objManagerTableInformationUIText = new CManagerTable(); if (false == m_objManagerTableInformationUIText.HLInitialize( m_objSQLite, string.Format(@"{0}\{1}.txt", objConfig.GetDatabaseTablePath(), objDatabaseParameter.strTableInformationUIText), string.Format(@"{0}\{1}.txt", objConfig.GetDatabaseRecordPath(), objDatabaseParameter.strRecordInformationUIText))) { break; } // Information User Message 초기화 m_objManagerTableInformationUserMessage = new CManagerTable(); if (false == m_objManagerTableInformationUserMessage.HLInitialize( m_objSQLite, string.Format(@"{0}\{1}.txt", objConfig.GetDatabaseTablePath(), objDatabaseParameter.strTableInformationUserMessage), string.Format(@"{0}\{1}.txt", objConfig.GetDatabaseRecordPath(), objDatabaseParameter.strRecordInformationUserMessage))) { break; } bReturn = true; } while(false); return(bReturn); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 히스토리 삭제 쿼리 날려줌 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private void SetDeleteHistory(Object state) { var pDocument = CDocument.GetDocument; CConfig.CDatabaseParameter objDatabaseParameter = pDocument.m_objConfig.GetDatabaseParameter(); CManagerTable objHistoryAlign = m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryAlign; CManagerTable objHistoryInspection = m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryInspection; // 트랜잭션 시작 lock ( m_objSQLite ) { var objTransaction = m_objSQLite.HLBeginTransaction(); // 특정 기간 이전 히스토리를 삭제하는 쿼리 SetDeleteHistory(objHistoryAlign, ( int )CDatabaseDefine.enumHistoryAlign.DATE, pDocument.m_objConfig.GetSystemParameter().iPeriodDatabase); // 커밋 m_objSQLite.HLCommit(objTransaction); } }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 폼 초기화 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public bool InitializeForm() { var pDocument = CDocument.GetDocument; bool bReturn = false; do { // 폼 중앙에서 생성 this.CenterToParent(); // 폼 가장 위로 this.TopMost = true; // 텍스트 박스's 초기화 if (false == InitializeTextBox(this.TextBoxTitleAlarmType, m_strFontName, m_dFontSizeTitleAlarmType)) { break; } if (false == InitializeTextBox(this.TextBoxTitleAlarmTime, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxTitleAlarmCode, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxTitleAlarmObject, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxTitleAlarmPosition, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxAlarmTime, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxAlarmCode, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxAlarmObject, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxAlarmPosition, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } if (false == InitializeTextBox(this.TextBoxTitleAlarmDescription, m_strFontName, m_dFontSizeTitleAlarmEtc)) { break; } // 텍스트 박스 설정 초기화 if (false == InitializeRichTextBox(this.RichTextBoxAlarmDescriptionKorea)) { break; } if (false == InitializeRichTextBox(this.RichTextBoxAlarmDescriptionVietnam)) { break; } // 알람 시간 this.TextBoxAlarmTime.Text = DateTime.Now.ToString(CDatabaseDefine.DEF_DATE_TIME_FORMAT); // 알람 코드 this.TextBoxAlarmCode.Text = string.Format("{0}", m_objAlarmInformation.iAlarmCode); // 알람 오브젝트 this.TextBoxAlarmObject.Text = m_objAlarmInformation.strAlarmObject; // 알람 위치 this.TextBoxAlarmPosition.Text = m_objAlarmInformation.strAlarmFunction; // Key if (enumKeyString.KEY == m_eKeyString) { // 유저 메세지 데이터 테이블에서 언어 Row값 뽑아옴 CManagerTable objManagerTable = pDocument.m_objProcessDatabase.m_objProcessDatabaseInformation.m_objManagerTableInformationUserMessage; try { DataTable objDataTable = objManagerTable.HLGetDataTable(); DataRow[] objDataRow = objDataTable.Select(string.Format("{0} = '{1}'", objManagerTable.HLGetTableSchemaName()[( int )CDatabaseDefine.enumInformationUserMessage.ID], m_objAlarmInformation.iAlarmCode)); // 한국어 뿌려줌 this.RichTextBoxAlarmDescriptionKorea.Text = objDataRow[0].ItemArray[( int )CDatabaseDefine.enumInformationUserMessage.TEXT_KOREA].ToString(); // 언어에 따른 코드뿌려줌 CConfig.CSystemParameter objOptionParameter = pDocument.m_objConfig.GetSystemParameter(); this.RichTextBoxAlarmDescriptionVietnam.Text = objDataRow[0].ItemArray[(( int )objOptionParameter.eLanguage) + 1].ToString(); // 로그 pDocument.SetUpdateLog(CDefine.enumLogType.LOG_SYSTEM, objDataRow[0].ItemArray[( int )CDatabaseDefine.enumInformationUserMessage.TEXT_KOREA].ToString()); } catch (Exception ex) { Trace.WriteLine(ex.Message); } } // String else if (enumKeyString.STRING == m_eKeyString) { // 입력 받은 문자열 뿌려줌 this.RichTextBoxAlarmDescriptionKorea.Text = m_objAlarmInformation.strAlarmDescription; // 로그 pDocument.SetUpdateLog(CDefine.enumLogType.LOG_SYSTEM, m_objAlarmInformation.strAlarmDescription); } // 버튼 색상 정의 SetButtonColor(); // 버튼 언어 변경 SetChangeLanguage(); bReturn = true; } while(false); return(bReturn); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //생성 : //추가 : //목적 : 얼라인 히스토리 삽입 //설명 : ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public override void SetInsertHistoryAlign(object objData) { CDatabaseSendMessage.CHistoryAlign obj = objData as CDatabaseSendMessage.CHistoryAlign; var pDocument = CDocument.GetDocument; string strQuery = null; string strDate = DateTime.Now.ToString(CDatabaseDefine.DEF_DATE_TIME_FORMAT); CManagerTable objManagerTableAlign = pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objManagerTableHistoryAlign; lock (pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objSQLite) { try { // 트랜잭션 시작 var objTransaction = pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objSQLite.HLBeginTransaction(); // Align Data strQuery = string.Format("insert into {0} values (", objManagerTableAlign.HLGetTableName()); strQuery += string.Format("'{0}_{1}',", strDate, obj.m_objData.strCellID.ToString()); // inner id strQuery += string.Format("'{0}',", strDate); // date strQuery += string.Format("'{0}',", obj.m_objData.strCellID); // cell id strQuery += string.Format("{0:D},", obj.m_objData.iPosition); // position strQuery += string.Format("{0:D},", obj.m_objData.iTactTime); // tact time strQuery += string.Format("'{0}',", obj.m_objData.strResult); // Result strQuery += string.Format("'{0}',", obj.m_objData.strNgType); // Ng Type for (int iLoopCount = 0; iLoopCount < CDefine.DEF_MAX_COUNT_CROP_REGION; iLoopCount++) { // VIDI 결과 strQuery += string.Format("'{0:F2}',", obj.m_objData.dVidiScore[iLoopCount]); strQuery += string.Format("'{0}',", obj.m_objData.strVidiResult[iLoopCount]); } for (int iLoopCount = 0; iLoopCount < CDefine.DEF_MAX_COUNT_CROP_REGION; iLoopCount++) { //치수측정 strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureWidth[iLoopCount]); strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureHeight[iLoopCount]); strQuery += string.Format("'{0}',", obj.m_objData.strMeasureResult[iLoopCount]); } for (int iLoopCount = 0; iLoopCount < CDefine.DEF_MAX_COUNT_CROP_REGION; iLoopCount++) { //치수측정 strQuery += string.Format("'{0:F2}',", obj.m_objData.str3dHeightResult[iLoopCount]); } for (int iLoopCount = 0; iLoopCount < CDefine.DEF_MAX_COUNT_CROP_REGION; iLoopCount++) { //치수측정 strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureStartX[iLoopCount]); strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureStartY[iLoopCount]); strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureEndX[iLoopCount]); strQuery += string.Format("'{0:F2}',", obj.m_objData.dMeasureEndY[iLoopCount]); } strQuery += string.Format("'{0}',", obj.m_objData.iMeasureLineFindCount); strQuery += string.Format("'{0:F2}',", obj.m_objData.dPatternPositionX); strQuery += string.Format("'{0:F2}',", obj.m_objData.dPatternPositionY); // 마지막 구문 strQuery += string.Format("'{0}')", obj.m_objData.strImagePath); pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objSQLite.HLExecute(strQuery); // 커밋 pDocument.m_objProcessDatabase.m_objProcessDatabaseHistory.m_objSQLite.HLCommit(objTransaction); } catch (Exception ex) { Trace.WriteLine(ex.Message); } } }