⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_transdlg.h

📁 mcgs的数据导出源代码
💻 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 + -