示例#1
0
        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);
        }
示例#3
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 초기화 함수
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        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);
        }
示例#4
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 초기화 함수
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        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);
            }
        }
示例#6
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 폼 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        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);
                }
            }
        }