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.
141 lines
4.7 KiB
C++
141 lines
4.7 KiB
C++
// CombineLot.h: interface for the CCombineLot class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_COMBINELOT_H__987A2D4D_854E_4CD6_BB50_16FF1F1A5348__INCLUDED_)
|
|
#define AFX_COMBINELOT_H__987A2D4D_854E_4CD6_BB50_16FF1F1A5348__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "MyStringArray.h"
|
|
#include "SemiE10.h"
|
|
#include <afxdao.h>
|
|
#include <Afxcmn.h>
|
|
|
|
#ifdef BUILD_MCCTRDLL
|
|
#define MCCTRDLLCLASS __declspec(dllexport)
|
|
#else
|
|
#define MCCTRDLLCLASS __declspec(dllimport)
|
|
#endif
|
|
|
|
class MCCTRDLLCLASS CCombineLot
|
|
{
|
|
public:
|
|
// constructor to set database file name, table name, field name, lot number, lot start time,
|
|
// lot stop time and sort criteria
|
|
CCombineLot(const char *ccsDbFileName = NULL, const char *ccsTableName = NULL,
|
|
CStringArray *csaFieldName = NULL, CStringArray *csaFieldNameUnit = NULL,
|
|
CStringArray *csaAvgFieldName = NULL, CStringArray *csaAvgFieldNameUnit = NULL,
|
|
const char *ccsLotNum = NULL, double dStartTime = 0, double dStopTime = 0,
|
|
int iSort = SORT_BY_LOT_NUM);
|
|
|
|
// default destructor
|
|
virtual ~CCombineLot();
|
|
|
|
// set Database file name
|
|
void SetDbFileName(const char *ccsDbFileName);
|
|
|
|
// set table name
|
|
void SetTableName(const char *ccsTableName);
|
|
|
|
// set Field name
|
|
void SetSumFieldName(CMyStringArray csaFieldName);
|
|
|
|
// set Field name unit
|
|
void SetSumFieldNameUnit(CMyStringArray csaFieldNameUnit);
|
|
|
|
// set field name for average
|
|
void SetAvgFieldName(CMyStringArray csaAvgFieldName);
|
|
|
|
// set field name unit for average
|
|
void SetAvgFieldNameUnit(CMyStringArray csaAvgFieldNameUnit);
|
|
|
|
// set Lot Number
|
|
void SetLotNo(const char *ccsLotNo);
|
|
|
|
// set start and end time in double data type
|
|
void SetStartEndTime(double dStartTime, double dStopTime);
|
|
|
|
// set start and end time in COleDateTime data type
|
|
void SetStartEndTime(COleDateTime odtStartTime, COleDateTime odtStopTime);
|
|
|
|
// set start and end time CString
|
|
void SetStartEndTime(CString csStartTime, CString csStopTime);
|
|
|
|
// combine lot and display on list cotrol
|
|
void DisplayCombineLotData(CListCtrl &listCtrl, int &iNextRowCount, CString csHeader);
|
|
|
|
// Get All FieldName from database
|
|
// void GetAllFieldName(int iStartFieldNo);
|
|
|
|
// get field value in CString data type
|
|
static CString GetFieldValue(short nType, COleVariant ovFieldValue);
|
|
|
|
// Get SemiE10 combine lot data
|
|
StSemiE10 GetSemiE10CombineLotData(StSemiE10 stSemiE10);
|
|
|
|
// read sum or avg combine lot data
|
|
void ReadData(CMyStringArray csaFieldName, CMyStringArray &csaResult, CDaoRecordset &rs,
|
|
CDaoRecordset &rsDataType, int &iFieldCnt);
|
|
|
|
// Read combine lot data
|
|
void ReadCombineLotData();
|
|
|
|
// return combine lot sum result
|
|
CMyStringArray GetSumData();
|
|
|
|
// return combine lot Avg result
|
|
CMyStringArray GetAvgData();
|
|
|
|
enum
|
|
{
|
|
SORT_BY_LOT_NUM,
|
|
SORT_BY_DATE,
|
|
SORT_BY_LOT_NUM_AND_DATE,
|
|
};
|
|
|
|
private:
|
|
// set sort criteria
|
|
void SetSortCriteria(int iSort);
|
|
|
|
// format sql statement
|
|
CString FormatSqlStatement(int iStartFieldNo);
|
|
|
|
// format data type sql statement
|
|
CString FormatDataTypeSqlStatement(int iStartFieldNo);
|
|
|
|
// insert ',' if not last loop
|
|
void InsertComma(CString &csSQL, int iStartFieldNo, int iFieldNameSize, int iCount);
|
|
|
|
// format sql Criteria statement
|
|
void FormatSqlCriteria(CString &csSQL);
|
|
|
|
// get field value and format to CString data type
|
|
CString GetFieldValue(short nOrgType, short nFromatType, COleVariant ovFieldValue);
|
|
|
|
CString m_csDbFileName; // database file name
|
|
CString m_csTableName; // table name
|
|
CString m_csLotNo; // lot number
|
|
|
|
CMyStringArray m_csaSumFieldName; // string array cotains field name
|
|
CMyStringArray m_csaSumFieldNameUnit; // string array cotains field name unit
|
|
CMyStringArray m_csaSumResult; // string array containing sum results of combine lot
|
|
|
|
CMyStringArray m_csaAvgFieldName; // string array contains the field name to average
|
|
CMyStringArray m_csaAvgFieldNameUnit; // string array contains the field unit name to average
|
|
CMyStringArray m_csaAvgResult; // string array containing Average results of combine lot
|
|
|
|
CString m_csStartTime; // start lot time
|
|
CString m_csStopTime; // stop lot time
|
|
|
|
int m_iSort; // sort criteria
|
|
enum
|
|
{
|
|
READ_MAX_NUM_FIELDS = 31,
|
|
};
|
|
};
|
|
|
|
#endif // !defined(AFX_COMBINELOT_H__987A2D4D_854E_4CD6_BB50_16FF1F1A5348__INCLUDED_)
|