📄 data_transdlg.h
字号:
// Data_TransDlg.h : header file
//
#if !defined(AFX_DATA_TRANSDLG_H__D01BD2CC_9DCB_48A3_8BA7_4BF36EE7BD00__INCLUDED_)
#define AFX_DATA_TRANSDLG_H__D01BD2CC_9DCB_48A3_8BA7_4BF36EE7BD00__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CData_TransDlg dialog
class CVirtualInfoFile;
#include "OwnerArchive.h" //硫化文件
#include "TextProgressCtrl.h"
enum SAVEDATA_VALUE_STATUS{SAVEDATAVALUE_STATUS_NOCHANGE = 0,
SAVEDATAVALUE_STATUS_ADD,
SAVEDATAVALUE_STATUS_DEL,
SAVEDATAVALUE_STATUS_MODIFY,
SAVEDATAVALUE_STATUS_NOUSED} ;
class CSaveDataValue //保存存盘数据的值
{
public:
CSaveDataValue(){};
CSaveDataValue(const CSaveDataValue& b)
{
ARRAYRESIZE(m_ValueArray,ARRAYSIZE(b.m_ValueArray));
for (int i = 0 ; i < (int)ARRAYSIZE(m_ValueArray) ; i ++)
{
m_ValueArray[i] = b.m_ValueArray[i];
}
m_Status = b.m_Status;
};
CSaveDataValue& operator = (const CSaveDataValue& b)
{
ARRAYRESIZE(m_ValueArray,ARRAYSIZE(b.m_ValueArray));
for (int i = 0 ; i < (int)ARRAYSIZE(m_ValueArray) ; i ++)
{
m_ValueArray[i] = b.m_ValueArray[i];
}
m_Status = b.m_Status;
return *this;
};
#ifdef E_MCGSRUN
vector<COleVariant> m_ValueArray;
#else //E_MCGSRUN
CArray<COleVariant,COleVariant> m_ValueArray;
#endif //E_MCGSRUN
int m_iID;
SAVEDATA_VALUE_STATUS m_Status;
#if defined(E_MCGSRUN) | defined(MCGS_WCE)
void Serialize(COwnerArchive& ar)
{
ASSERT(FALSE);
};
#else //E_MCGSRUN
void Serialize(CArchive& ar)
{
if (ar.IsStoring ())
{
ar << m_iID;
ar << (DWORD)m_Status;
ar << (DWORD)m_ValueArray.GetSize();
for (int i = 0 ; i < m_ValueArray.GetSize() ; i ++)
{
ar << m_ValueArray[i];
}
}
else
{
ar >> m_iID;
DWORD dwTemp;
ar >> dwTemp;
m_Status = (SAVEDATA_VALUE_STATUS)dwTemp;
ar >> dwTemp;
m_ValueArray.SetSize(dwTemp);
for (int i = 0 ; i < m_ValueArray.GetSize() ; i ++)
{
ar >> m_ValueArray[i];
}
};
};
#endif //E_MCGSRUN
};
//对应的表结构
struct TABLESTRUCT
{
CStringArray name;
CArray<short,short> type;
CArray<short,short> length;
};
class CData_TransDlg : public CDialog
{
// Construction
public:
CData_TransDlg(CWnd* pParent = NULL); // standard constructor
CRect rectPage; //每页显示的框
UINT nPageCount;//页的总数
UINT nCurrentPage; //显示的当前页
void SetWizButton(UINT uFlag);
void ShowPage(UINT nPos);
void AddPage(CDialog* pDialog, UINT nID);
UINT m_Type; //增加列数
CRect m_DrawRect; //图片区域
typedef struct PAGELINK{
UINT nNum;
CDialog* pDialog;
struct PAGELINK* Next;
};
PAGELINK* pPageLink; //用来链接所有的页
CDaoDatabase* m_pDBSave; //用来连接数据库的数据源对象
bool m_iDesOrder;
int m_iType; //历史数据文件转换的类型,0:表示文本文件
CArray<CStringArray, CStringArray> m_strArray;
CString m_ConnectSql;
CString m_ConectTest; //数据库的测试
bool m_bFinish;
int m_iStep;
UINT m_timer;
CDaoTableDef* SvrCreateTable(int iPos,CString &DateName,TABLESTRUCT &pDef);
//读取对应的对象的历史数据
//1。历史数据对象名称,2。读取数据的开始时间,3。结束时间,4.转换程序的类型0:文本文件
//返回值>=0表示读取数据成功,小于0表示失败
int SvrFecthData(CString DataName ,COleDateTime &startTime,COleDateTime &endTime,int iType);
CString m_strFileName ; //具体工程历史数据备份的文件名称
CString m_strDataName; //要查询的对象名称
COleDateTime m_startTime; //查询开始时间
COleDateTime m_endTime; //查询结束时间
HICON m_hIcon;
CArray<CVirtualInfoFile*, CVirtualInfoFile*> m_arrayInfoFile;
//对数据库的操作
BYTE m_databaseType; //0,sql库,1.表示access,2.oracle
bool m_RemoveFirst; //是否去掉第一条查询的数据
int mfAddDatetoDatabase(CDaoRecordset &theSet,CArray<CList<COleVariant,COleVariant>*,CList<COleVariant,COleVariant>*> &listValueBuffer,COleDateTime &endTime);
int mfQueryFromDatabase(int iPos,CString &DataName,COleDateTime &timeEnd);
CMap< CString, LPCSTR, TABLESTRUCT*, TABLESTRUCT* > m_TableDef;
// CDaoTableDef** m_pTableDef;//表指针
CMap< CString, LPCSTR, CDaoTableDef*, CDaoTableDef* > m_pTableDef;
// CMap<int,int,TABLESTRUCT*,TABLESTRUCT*> m_TableDef;
// Dialog Data
//{{AFX_DATA(CData_TransDlg)
enum { IDD = IDD_DATA_TRANS_DIALOG2 };
CTextProgressCtrl m_ctrlprocess;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CData_TransDlg)
public:
virtual BOOL DestroyWindow();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//把数组listValueBuffer的信息保存在文件FileName中penghong add
//1。对应的文件名,2。对应的要保存的信息3,传递最后一条的时间penghong add
//返回值:0表示没有数据,>0表示一共多少条数据
int mfSaveToFile(CString &FileName,CArray<CList<COleVariant,COleVariant>*,CList<COleVariant,COleVariant>*> &listValueBuffer,COleDateTime &endTime);
//把查询的数据保存到数据库1。对应的要保存的信息2,传递最后一条的时间penghong add
//返回值:0表示没有数据,>0表示一共多少条数据
int mfSaveToDatabase(CString &DateName,CArray<CList<COleVariant,COleVariant>*,CList<COleVariant,COleVariant>*> &listValueBuffer,COleDateTime &endTime,int iPos);
// Generated message map functions
//{{AFX_MSG(CData_TransDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg void OnCancel();
afx_msg void OnPrev();
afx_msg void OnNext();
afx_msg void OnFinish();
afx_msg void OnClose();
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DATA_TRANSDLG_H__D01BD2CC_9DCB_48A3_8BA7_4BF36EE7BD00__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -