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

📄 dlghf.cpp

📁 进销存管理系统介绍了企业的现状以及进销存数据管理系统的特点、功能和使用对象
💻 CPP
字号:
// DlgHF.cpp : implementation file
//

#include "stdafx.h"
#include "a1.h"
#include "DlgHF.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

  
/////////////////////////////////////////////////////////////////////////////
// CDlgHF dialog


CDlgHF::CDlgHF(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgHF::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgHF)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgHF::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgHF)
	DDX_Control(pDX, IDC_DATETIMEPICKER1, m_tcRq);
	DDX_Control(pDX, IDC_LIST1, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgHF, CDialog)
	//{{AFX_MSG_MAP(CDlgHF)
	ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER1, OnDatetimechangeDatetimepicker1)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
	ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgHF message handlers

BOOL CDlgHF::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CRect rect;
	m_list.SetExtendedStyle( LVS_EX_FULLROWSELECT |		//允许整行选中
	//	LVS_EX_HEADERDRAGDROP |		//允许整列拖动
		LVS_EX_GRIDLINES |	//画出网格线
	//	LVS_EX_ONECLICKACTIVATE |	//单击选中表项
		LVS_EX_FLATSB				//扁平风格的滚动条	
	//	LVS_EX_UNDERLINEHOT 
		);	
		this->m_list.GetClientRect(rect);
		m_list.InsertColumn(0,"数据备份编号");
		m_list.InsertColumn(1,"路径");

		m_list.SetColumnWidth(0,rect.Width()/2);
		m_list.SetColumnWidth(1,rect.Width()/2);

		CTime t=CTime::GetCurrentTime();
		this->m_tcRq.SetTime(&t);
		this->InitList();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

bool CDlgHF::InitList()
{
	CString rq;
	this->m_tcRq.GetWindowText(rq);
	try{
	int i=0;
	CString sql;
	_variant_t value;
	sql.Format("select * from tabbf  where rq >= '%s' order by bf_id asc",rq);
	this->m_runsql.CheckSQLResult(sql);
	m_list.DeleteAllItems();
	m_list.SetRedraw(false);
	while(!m_runsql.m_recordset->adoEOF)
	{
		value=m_runsql.m_recordset->GetCollect("bf_id");
		this->m_list.InsertItem(i,(char*)(_bstr_t)value);
		value=m_runsql.m_recordset->GetCollect("bf_path");
		if(value.vt!=VT_NULL)
		this->m_list.SetItemText(i,1,(char*)(_bstr_t)value);

		i++;
		m_runsql.m_recordset->MoveNext();
	}
	m_list.SetRedraw(true);
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.ErrorMessage());
		m_list.SetRedraw(true);
		return false;	
	}	
	return true;
}

void CDlgHF::OnOK() 
{
	int mark = this->m_list.GetSelectionMark();
	if(mark<0)
	{
		MessageBox("请选择要恢复的数据");
		return;
	}
	else
	{

		this->BeginWaitCursor();
		CString sql;_variant_t value;
		CStringList		m_pstrlist[3];
		sql.Format("select * from tabbf order by bf_id asc");
		if(m_runsql.CheckSQLResult(sql))
			while(!m_runsql.m_recordset->adoEOF){
			value=m_runsql.m_recordset->GetCollect("bf_id");
			if(value.vt!=VT_NULL)
				m_pstrlist[0].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("rq");
			if(value.vt!=VT_NULL)
				m_pstrlist[1].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("bf_path");
			if(value.vt!=VT_NULL)
				m_pstrlist[2].AddTail((char*)(_bstr_t)value);
			m_runsql.m_recordset->MoveNext();
			}
		
		LONG result;
		HKEY hKey;
		TCHAR data[200];
		DWORD dataSize;
		result=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ODBC\\ODBC.INI\\yaopin",
			0,KEY_QUERY_VALUE,&hKey);
		if(result==ERROR_SUCCESS)
		{	
			dataSize=sizeof(data);
			::RegQueryValueEx(hKey,"DBQ",NULL,NULL,(LPBYTE)&data,&dataSize);
		}
		CString path=m_list.GetItemText(mark,1);
		LRunSql::Close();

		if(::CopyFile(path,data,false))
		{
			this->EndWaitCursor();
			MessageBox("OK","医药管理系统");
			if(!LRunSql::ConnectDataBase())
			MessageBox("数据库连接错误!");

			POSITION pos=NULL;
			POSITION pos1=m_pstrlist[1].GetHeadPosition();
			POSITION pos2=m_pstrlist[2].GetHeadPosition();
			for(pos=m_pstrlist[0].GetHeadPosition();pos!=NULL;)
			{
				sql.Format("insert into tabbf(bf_id,rq,bf_path) values('%s','%s','%s')"
					,m_pstrlist[0].GetNext(pos),m_pstrlist[1].GetNext(pos1),m_pstrlist[2].GetNext(pos2));
				m_runsql.RunSQL(sql);
			}

		}
		else
		{
			this->EndWaitCursor();
			MessageBox("文件拷贝错误!","错误");
			if(!LRunSql::ConnectDataBase())
			MessageBox("数据库连接错误!");
		}
	}
	CDialog::OnOK();
}

void CDlgHF::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	this->InitList();
	*pResult = 0;
}

void CDlgHF::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	this->OnOK();
	*pResult = 0;
}
void CDlgHF::OnButtonDelete() 
{
	int mark = this->m_list.GetSelectionMark();
	if(mark<0)
	{
		MessageBox("请选择要删除的数据");
		return;
	}	
	if(MessageBox("确定删除备份文件吗?","注意!",MB_YESNO)!=IDYES)
	{
		return;
	}
	else
	{
		CString bf_id=m_list.GetItemText(mark,0);
		CString sql,path;
		_variant_t value;
		sql.Format("select bf_path from tabbf where bf_id = '%s'",bf_id);
		if(m_runsql.CheckSQLResult(sql))
		{
			value=m_runsql.m_recordset->GetCollect("bf_path");
			if(value.vt!=VT_NULL)
				path=(char*)(_bstr_t)value;
		}
		else
		{
			MessageBox("没有该备份","错误");
			return ;
		}
		if(!::DeleteFile(path))
		{
			MessageBox("删除文件错误","错误");
			return;
		}

		sql.Format("delete * from tabbf where bf_id = '%s'",bf_id);
		m_runsql.RunSQL(sql);
		this->m_list.DeleteItem(mark);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -