// Start =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// General information section.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// $Author:yongkiang$ User who last changed the file
// $Date:1/2/2013 12:16:08 PM$ Date and time of last check in
// $Revision:1.0$ Visual SourceSafe version number
// $Workfile::   DatalogLotHistoryPage.h                               $ Filename
// End =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// {{AFX_INCLUDES()
#include "MyPropertyPage.h"
// }}AFX_INCLUDES
#if !defined(AFX_DATALOGLOTHISTORYPAGE_H__51BCF034_939F_11D6_A80B_005004C029CA__INCLUDED_)
#define AFX_DATALOGLOTHISTORYPAGE_H__51BCF034_939F_11D6_A80B_005004C029CA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DatalogLotHistoryPage.h : header file
//

#include "CombineLot.h"
#include "ShadeButtonST.h"

#ifdef  BUILD_GUIDLL
#define     DLLCLASS    __declspec(dllexport)
#else
#define     DLLCLASS    __declspec(dllimport)
#endif

/////////////////////////////////////////////////////////////////////////////
// CDatalogLotHistoryPage dialog

class DLLCLASS CDatalogLotHistoryPage : public CMyPropertyPage // public CPropertyPage
{
DECLARE_DYNCREATE(CDatalogLotHistoryPage)

// Construction
public:
    CDatalogLotHistoryPage();
    ~CDatalogLotHistoryPage();

// Dialog Data
// {{AFX_DATA(CDatalogLotHistoryPage)
    enum {
        IDD = IDD_DATALOG_LOT_HISTORY_PAGE
    };
    CShadeButtonST m_fileBtn;
    CShadeButtonST m_exitBtn;
    CShadeButtonST m_prevBtn;
    CShadeButtonST m_nextBtn;
    CShadeButtonST m_deleteBtn;
    CShadeButtonST m_pageSetupBtn;
    CShadeButtonST m_printBtn;
    CListCtrl      m_listCtrl;
// }}AFX_DATA

// Overrides
// ClassWizard generate virtual function overrides
// {{AFX_VIRTUAL(CDatalogLotHistoryPage)
public:
    virtual BOOL OnSetActive();
    virtual BOOL OnKillActive();
protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL

// Implementation
public:
    virtual void SetPagesTabText();
    void         SetRefresh(BOOL bRefresh);
    void         SetSelectionInfo(CStringArray *csaLotNumber, CArray<double, double> *daStartDateTime, BOOL bCombine = FALSE);
    afx_msg void OnExitButton();
protected:
// Generated message map functions
// {{AFX_MSG(CDatalogLotHistoryPage)
    virtual BOOL OnInitDialog();
    afx_msg void OnDeleteButton();
    afx_msg void OnPageSetupButton();
    afx_msg void OnPrintButton();
    afx_msg void OnFileButton();
    afx_msg void OnNextButton();
    afx_msg void OnPreviousButton();
// }}AFX_MSG
    DECLARE_MESSAGE_MAP()

protected:
    CCombineLot m_combineLot;

    CStringArray m_csaLotNumber;

private:
    BOOL                    DeleteLotRecord(CString csLotNumber, double dStartDateTime);
    virtual void            UpdateListCtrl(CDaoRecordset *LotInfoRS);
    virtual double          GetStartLotTime(CDaoRecordset *LotInfoRS);
    virtual CDaoRecordset * GetRecordset(void);
    void                    EnableNextPrev(BOOL bNext, BOOL bPrev);
    void                    ClearArray(void);
    void                    DisplayIn2ndLang();
    void                    UpdateListCtrlData(int nIndex = 0);
    void                    InitIconButtons();
    virtual void            InitListCtrl();

//  update list ctrl when combine lot
    virtual void CombineUpdateListCtrl(int nIndex);

//  combine lot for semiE10 data
    virtual void CombineSemiE10Data(int iNextRowCount, int nIndex);

//  display SemiE10 timimg
    virtual void DisplaySemiE10Time(int& NextRowCount, StSemiE10 stSemiE10);

//  display SemiE10 equipment state timimg
    virtual void DisplayEquipStateTime(int& NextRowCount, StSemiE10 stSemiE10);

//  display SemiE10 Ram timimg
    virtual void DisplayRamTime(int& NextRowCount, StSemiE10 stSemiE10);

//  display SemiE10 interrupt timimg
    virtual void DisplayInterruptTime(int& NextRowCount, StSemiE10 stSemiE10);

//  display SemiE10 long timimg
    virtual void DisplayLongTime(int& NextRowCount, StSemiE10 stSemiE10);

    CArray<double, double> m_daStartDateTime;
// CLotInfoRS        m_lotInfoRS;
    CDaoRecordset *m_lotInfoRS;
    int            m_nCurrentSelect;
    int            m_nTotalSelect;
    BOOL           m_bRefresh;

    BOOL m_bCombine; // flag to determine combine lot

//  true = operator cannot delete lot report false = operator can delete lot report
    bool m_bTechAndAboveCanDelLotReport;
};

// {{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DATALOGLOTHISTORYPAGE_H__51BCF034_939F_11D6_A80B_005004C029CA__INCLUDED_)
