#if !defined(AFX_LOTREPORTPAGE_H__77693611_C6DF_11D7_89A2_000629A6E157__INCLUDED_)
#define AFX_LOTREPORTPAGE_H__77693611_C6DF_11D7_89A2_000629A6E157__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// LotReportPage.h : header file
//
#include "MyPropertyPage.h"
#include "ShadeButtonST.h"
#include "ShadeCheckButtonST.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLotReportPage dialog

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

// Construction
public:
    virtual void SetPagesTabText();
    void         RefreshSearch(void);
    virtual void DisplaySubPages(CStringArray *csaLotNumber, CArray<double, double> *daStart, CStringArray *csaPackageName, BOOL bCombine = FALSE);
    virtual void Close(void);
    virtual void DisplaySubPages(CString csLotNumber, double dStart, BOOL bCombine = FALSE);
    CLotReportPage();
    ~CLotReportPage();

// Dialog Data
// {{AFX_DATA(CLotReportPage)
    enum {
        IDD = IDD_DATALOG_LOT_SELECT_PAGE
    };
    CEdit               m_ceLotNo;
    CListCtrl           m_clLotReport;
    CDateTimeCtrl       m_dtcStartDate;
    CDateTimeCtrl       m_dtcEndDate;
    CMonthCalCtrl       m_dateControl;
    CShadeCheckButtonST m_cbSelDate;
    CShadeCheckButtonST m_cbSelLotNo;
    CShadeCheckButtonST m_cbSelAll;
    CShadeButtonST      m_deleteBtn;
    CShadeButtonST      m_cbCombineBtn;
    CShadeButtonST      m_cbViewBtn;
    CShadeButtonST      m_cbSearch;
// }}AFX_DATA

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

// Implementation
protected:
// Generated message map functions
// {{AFX_MSG(CLotReportPage)
    afx_msg void OnByDate();
    afx_msg void OnByLotnumber();
    afx_msg void OnAll();
    afx_msg void OnSearchButton();
    virtual BOOL OnInitDialog();
    afx_msg void OnDeleteButton();
    afx_msg void OnViewButton();
    afx_msg void OnColumnclickLotReportList(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnCombineLotButton();
    afx_msg void OnDblclkLotReportList(NMHDR* pNMHDR, LRESULT* pResult);
// }}AFX_MSG
    DECLARE_MESSAGE_MAP()

private:
    void    DeleteLot(int nItem);
    CString GetStartEndDateSQL(BOOL bWithLot = FALSE);
    void    ClearCheck(void);
    void    ClearList(void);
    void    InitListCtrl(void);
    void    InitIconButtons();
    void    ClearAll(void);
    void    DisplayLot(CString csSQL);

//  check if any item is selected
    bool AnyItemSelected(POSITION &pos);

//  get lot number from text control
    CString GetLotNo();

    CTime ctStartDate;
    CTime ctEndDate;

    CArray<double, double> m_dArray;
    CStringArray           m_csaPackageName;
//  CFont   m_font;

    CStringArray           m_csaLotNumber;
    CArray<double, double> m_daStartDateTime;
    CStringArray           m_csaPackageNameSelected;
    CString                m_csSort;
    CString                m_csOrder;
    BOOL                   m_bAscend;
    int                    nCurrentSubItem;

//  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_LOTREPORTPAGE_H__77693611_C6DF_11D7_89A2_000629A6E157__INCLUDED_)
