You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitlib.pub/MITLIB/GuiDLL/RecipeManagementPage.h

194 lines
6.0 KiB
C++

// Start =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// General information section.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// $Author:yongkiang$ User who last changed the file
// $Date:1/2/2013 12:16:45 PM$ Date and time of last check in
// $Revision:1.0$ Visual SourceSafe version number
// $Workfile:: RecipeManagementPage.h $ Filename
// End =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// {{AFX_INCLUDES()
#include "GridTable.h"
#include "RecipeManagement.h"
#include "MyPropertyPage.h"
// }}AFX_INCLUDES
#if !defined(AFX_RECIPEMANAGEMENTPAGE_H__485D4E33_88A8_11D6_A806_005004C029CA__INCLUDED_)
#define AFX_RECIPEMANAGEMENTPAGE_H__485D4E33_88A8_11D6_A806_005004C029CA__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifdef BUILD_GUIDLL
#define DLLCLASS __declspec(dllexport)
#else
#define DLLCLASS __declspec(dllimport)
#endif
#include "ShadeButtonST.h"
// RecipeManagementPage.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CRecipeManagementPage dialog
class DLLCLASS CRecipeManagementPage : public CMyPropertyPage // public CPropertyPage
{
DECLARE_DYNCREATE(CRecipeManagementPage)
// Construction
public:
CRecipeManagementPage();
~CRecipeManagementPage();
static CString GetFieldName(int nCol);
static int GetEditType(int nCol);
// fill list box with items in database
static void FillListBoxItem(int nCol, CListBox* pList);
static CStringArray m_aFieldName;
static CStringArray m_aRecipeName;
static CUIntArray m_anEditType;
static BOOL m_bModified;
static CStringArray *m_aOutputMode;
CString GetSelectedRecipeName();
CString GetCurrentRecipe();
virtual bool CopyRecipeWizard();
virtual bool EditRecipeWizard();
virtual void CreateGridCtrlImageList();
virtual bool AddRecipeWizard();
virtual void SetPagesTabText();
// Gary 4Feb10, added option for custom sql command for sorting the data
// for grid ctrl
virtual CString ReadCustomGridCtrlSortSql();
virtual void CustomGridCtrl();
class CGridEx : public CGridTable
{
// Override this function to fill InPlaceListBoxes
void FillListItems(int nCol, LPARAM cltList);
public:
int m_nRecord;
CStringArray m_aPackage;
};
// flag to indicate whether to use Wizard method
bool m_bUseWizardMethod;
CImageList m_ImageList;
// Dialog Data
// {{AFX_DATA(CRecipeManagementPage)
enum {
IDD = IDD_RECIPE_MANAGEMENT_PAGE
};
CShadeButtonST m_syncBtn;
CShadeButtonST m_cbCopyBtn;
CShadeButtonST m_undoBtn;
CShadeButtonST m_saveBtn;
CShadeButtonST m_deleteBtn;
CShadeButtonST m_addBtn;
// }}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
// {{AFX_VIRTUAL(CRecipeManagementPage)
public:
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
virtual bool SynchronizeRecipes();
// Generated message map functions
// {{AFX_MSG(CRecipeManagementPage)
virtual BOOL OnInitDialog();
afx_msg void OnAddButton();
afx_msg void OnDeleteButton();
#if _MSC_VER > 1200 // Version Higher than VC6
afx_msg void OnSaveButton();
#else // VC 6 Version
afx_msg BOOL OnSaveButton(BOOL bPrompt = TRUE);
#endif
afx_msg void OnGridCtrl();
afx_msg void OnDestroy();
afx_msg void OnUndoButton();
afx_msg void OnCopyButton();
afx_msg void OnSyncRecipesButton();
// }}AFX_MSG
DECLARE_MESSAGE_MAP()
// read form database and write to recipe file for sec gem
bool ReadDbWriteRecipeFile(const char *ccDb, FILE *fp, const char *ccTable,
const char *ccFieldName, const char *ccFieldValue);
// write recipe info to recipe file for secgem
bool WriteRecipeInfoFile(CString csRecipeName);
private:
bool CheckUseWizardMethod();
BOOL CheckLotInfoUsingRecipe(int nRow);
CString CheckCurrentRecipe(void);
void CheckRecipeNameModified(int row, BOOL bPrevious);
void DeleteRecipe(int nRow);
void ClearArray(void);
bool VerifyRecipeBeforeChange(CString csRecipeName /*CCellID cell*/);
void DisplayIn2ndLang();
void CheckModifiedRecipe(int row, BOOL bPrevious = FALSE);
BOOL SaveRecipe(BOOL bPrompt = TRUE);
void AddPackageToListBox();
void InitGridCtrlBox();
void InitIconButtons();
// Gary 02Nov09, change the method to private
// read form database and write to recipe file for sec gem
// bool ReadDbWriteRecipeFile(const char *ccDb, FILE *fp, const char *ccTable,
// const char *ccFieldName, const char *ccFieldValue);
// Gary 02Nov09, change the method to private
// write recipe info to recipe file for secgem
// bool WriteRecipeInfoFile(CString csRecipeName);
// delete recipe lot to file for SecGem
BOOL DeleteRecipeFile(CString csRecipeName);
// CFont m_fontLogo;
int nPrevRow;
int m_nNoOfRecipe;
CRecipeManagement m_recipeManagement;
/*
class CGridEx : public CGridTable
{
// Override this function to fill InPlaceListBoxes
void FillListItems(int nCol, LPARAM cltList);
public:
int m_nRecord;
CStringArray m_aPackage;
};
*/
CGridEx m_gridTable;
BOOL m_bSavePrevious;
BOOL m_bAddBefore;
#if _MSC_VER > 1200 // Version Higher than VC6
bool m_bPrompt;
bool m_bSaveSuccess;
#endif
public:
CRecipeManagementPage::CGridEx *GetGridCtrl();
};
// {{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_RECIPEMANAGEMENTPAGE_H__485D4E33_88A8_11D6_A806_005004C029CA__INCLUDED_)