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

📄 findrepaired.cpp

📁 一个用vc++做的数据库系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FindRepaired.cpp : implementation file
//

#include "stdafx.h"
#include "FixedAssets.h"
#include "FindRepaired.h"
#include "CRACK.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFindRepaired dialog


CFindRepaired::CFindRepaired(CWnd* pParent /*=NULL*/)
	: CDialog(CFindRepaired::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFindRepaired)
	m_strAssetID = _T("");
	m_CKAssetID = FALSE;
	m_CKName = FALSE;
	m_CKRDDate = FALSE;
	m_CKRepairer = FALSE;
	m_CKSDDate = FALSE;
	m_CKSender = FALSE;
	m_CKSort = FALSE;
	m_CKSum = FALSE;
	m_CKType = FALSE;
	m_strName = _T("");
	m_strPosition = _T("");
	m_RDDate1 = -1;
	m_RDDate2 = -1;
	m_SDDate1 = -1;
	m_SDDate2 = -1;
	m_strSender = _T("");
	m_dSum1 = 0.0;
	m_dSum2 = 0.0;
	m_strType = _T("");
	m_strRepairer = _T("");
	m_CKPosition = FALSE;
	//}}AFX_DATA_INIT
	flag1=0;
	flag2=0;
}


void CFindRepaired::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFindRepaired)
	DDX_Control(pDX, IDC_FDRD_TYPE, m_CtrlCBType);
	DDX_Control(pDX, IDC_FDRD_SORT, m_CtrlCBSort);
	DDX_Control(pDX, IDC_FDRD_SENDER, m_CtrlCBSender);
	DDX_Control(pDX, IDC_FDRD_REPAIRER, m_CtrlCBRepairer);
	DDX_Control(pDX, IDC_FDRD_POSITION, m_CtrlCBPosition);
	DDX_Control(pDX, IDC_FDRD_NAME, m_CtrlCBName);
	DDX_Control(pDX, IDC_FDRD_LIST, m_CtrlList);
	DDX_Control(pDX, IDC_FDRD_ASSETID, m_CtrlCBAssetID);
	DDX_CBString(pDX, IDC_FDRD_ASSETID, m_strAssetID);
	DDX_Check(pDX, IDC_FDRD_CKASSETID, m_CKAssetID);
	DDX_Check(pDX, IDC_FDRD_CKNAME, m_CKName);
	DDX_Check(pDX, IDC_FDRD_CKRDDATE, m_CKRDDate);
	DDX_Check(pDX, IDC_FDRD_CKREPAIRER, m_CKRepairer);
	DDX_Check(pDX, IDC_FDRD_CKSDDATE, m_CKSDDate);
	DDX_Check(pDX, IDC_FDRD_CKSENDER, m_CKSender);
	DDX_Check(pDX, IDC_FDRD_CKSORT, m_CKSort);
	DDX_Check(pDX, IDC_FDRD_CKSUM, m_CKSum);
	DDX_Check(pDX, IDC_FDRD_CKTYPE, m_CKType);
	DDX_CBString(pDX, IDC_FDRD_NAME, m_strName);
	DDX_CBString(pDX, IDC_FDRD_POSITION, m_strPosition);
	DDX_DateTimeCtrl(pDX, IDC_FDRD_RDDATE1, m_RDDate1);
	DDX_DateTimeCtrl(pDX, IDC_FDRD_RDDATE2, m_RDDate2);
	DDX_DateTimeCtrl(pDX, IDC_FDRD_SDDATE1, m_SDDate1);
	DDX_DateTimeCtrl(pDX, IDC_FDRD_SDDATE2, m_SDDate2);
	DDX_CBString(pDX, IDC_FDRD_SENDER, m_strSender);
	DDX_Text(pDX, IDC_FDRD_SUM1, m_dSum1);
	DDV_MinMaxDouble(pDX, m_dSum1, 0., 1.e+026);
	DDX_Text(pDX, IDC_FDRD_SUM2, m_dSum2);
	DDV_MinMaxDouble(pDX, m_dSum2, 0., 1.e+023);
	DDX_CBString(pDX, IDC_FDRD_TYPE, m_strType);
	DDX_CBString(pDX, IDC_FDRD_REPAIRER, m_strRepairer);
	DDX_Check(pDX, IDC_FDRD_CKPOSITION, m_CKPosition);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFindRepaired, CDialog)
	//{{AFX_MSG_MAP(CFindRepaired)
	ON_BN_CLICKED(IDC_FDRD_CKSDDATE, OnFdrdCksddate)
	ON_BN_CLICKED(IDC_FDRD_CKRDDATE, OnFdrdCkrddate)
	ON_BN_CLICKED(IDC_FDRD_CKSUM, OnFdrdCksum)
	ON_BN_CLICKED(IDC_FDRD_CKNAME, OnFdrdCkname)
	ON_BN_CLICKED(IDC_FDRD_CKASSETID, OnFdrdCkassetid)
	ON_BN_CLICKED(IDC_FDRD_CKTYPE, OnFdrdCktype)
	ON_BN_CLICKED(IDC_FDRD_CKSORT, OnFdrdCksort)
	ON_BN_CLICKED(IDC_FDRD_CKREPAIRER, OnFdrdCkrepairer)
	ON_BN_CLICKED(IDC_FDRD_CKSENDER, OnFdrdCksender)
	ON_BN_CLICKED(IDC_FDRD_CKPOSITION, OnFdrdCkposition)
	ON_EN_CHANGE(IDC_FDRD_SUM1, OnChangeFdrdSum1)
	ON_EN_CHANGE(IDC_FDRD_SUM2, OnChangeFdrdSum2)
	ON_BN_CLICKED(IDC_FDRD_FIND, OnFdrdFind)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFindRepaired message handlers

int CFindRepaired::DoModal() 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::DoModal();
}

BOOL CFindRepaired::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	m_pDatabase->Close();
	delete m_pDatabase;
	m_pDatabase=NULL;
	return CDialog::DestroyWindow();
}

BOOL CFindRepaired::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_CtrlList.SetExtendedStyle(LVS_EX_GRIDLINES); 
	//连接数据库
    m_pDatabase=new CDaoDatabase;
	try{
		m_pDatabase->Open("FixedAssets");
        m_pRecordset=new CDaoRecordset(m_pDatabase);
	}
	catch(CDaoException *e)
	{
		e->ReportError();
		delete m_pDatabase;
		m_pDatabase=NULL;
		e->Delete();
	}	
	if(!m_pDatabase->IsOpen()) return 0;
	if(!m_pRecordset) return 0;
	if(m_pRecordset->IsOpen()) m_pRecordset->Close();
	CString strSelect;
	try
	{   
		// 资产类别
		strSelect = _T("Select 资产类别ID,资产类别 From 资产类别");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_uaSort.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saSort.Add(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
        
        strSelect = _T("Select DISTINCT 送修人 From 维修资产");
	    m_pRecordset->Open(dbOpenDynaset,strSelect);
	    while (!m_pRecordset->IsEOF())
	    {
		    COleVariant var;
		    var = m_pRecordset->GetFieldValue(0);
		    m_CtrlCBSender.AddString(CCrack::strVARIANT(var));
            m_pRecordset->MoveNext();
		} 
	    m_pRecordset->Close();

        strSelect = _T("Select DISTINCT 资产名称 From 资产信息");
	    m_pRecordset->Open(dbOpenDynaset,strSelect);
	    while (!m_pRecordset->IsEOF())
	    {
		    COleVariant var;
		    var = m_pRecordset->GetFieldValue(0);
		    m_CtrlCBName.AddString(CCrack::strVARIANT(var));
		    m_pRecordset->MoveNext();
	    }
	    m_pRecordset->Close();

	    strSelect = _T("Select DISTINCT 资产编号 From 资产信息");
	    m_pRecordset->Open(dbOpenDynaset,strSelect);
	    while (!m_pRecordset->IsEOF())
	    {
		    COleVariant var;
		    var = m_pRecordset->GetFieldValue(0);
		    m_CtrlCBAssetID.AddString(CCrack::strVARIANT(var));
            m_pRecordset->MoveNext();
	    }
	    m_pRecordset->Close();
	
	    strSelect = _T("Select DISTINCT 型号 From 资产信息");
	    m_pRecordset->Open(dbOpenDynaset,strSelect);
	    while (!m_pRecordset->IsEOF())
	    {
		    COleVariant var;
		    var = m_pRecordset->GetFieldValue(0);
		    m_CtrlCBType.AddString(CCrack::strVARIANT(var));
		    m_pRecordset->MoveNext();
	    }
	    m_pRecordset->Close();

		strSelect = _T("Select DISTINCT 维修人 From 维修资产");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_CtrlCBRepairer.AddString(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
	
		strSelect = _T("Select DISTINCT 维修地点 From 维修资产");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_CtrlCBPosition.AddString(CCrack::strVARIANT(var));
        	m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
	}
	catch (CDaoException* e)
	{
		e->ReportError(); 
		e->Delete();
		return 0;
	}
	int nIndex,i;
	for(i=0;i<m_saSort.GetSize();i++)  //初始化类别
	{
	   nIndex =m_CtrlCBSort.AddString(m_saSort.GetAt(i));
	   m_CtrlCBSort.SetItemData(nIndex, m_uaSort.GetAt(i));
	} 
		
	strSelect=_T("Select * From 维修资产");
	Refresh(strSelect);
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CFindRepaired::Refresh(CString strSelect)//刷新
{
    m_strTableName = _T("维修资产");
	if(!m_pDatabase->IsOpen()) return;
	if(!m_pRecordset) return;
	if(m_pRecordset->IsOpen()) m_pRecordset->Close();
	//清空list控件
	m_CtrlList.DeleteAllItems();
	while(m_CtrlList.DeleteColumn(0));
	CDaoFieldInfo fieldInfo;
	int nFields;

	CDaoTableDef td(m_pDatabase);
	try
	{
		td.Open(m_strTableName);
		nFields = td.GetFieldCount();
		int nWidth;
		for (int j=0; j < nFields; j++)
		{
			td.GetFieldInfo(j,fieldInfo);
			nWidth = m_CtrlList.GetStringWidth(fieldInfo.m_strName) + 15;
			if(j>=2)
			  m_CtrlList.InsertColumn(j+2,fieldInfo.m_strName, LVCFMT_LEFT, nWidth);
			else
			  m_CtrlList.InsertColumn(j,fieldInfo.m_strName, LVCFMT_LEFT, nWidth);
		}
		nWidth=100;
		m_CtrlList.InsertColumn(2,"资产编号", LVCFMT_LEFT, nWidth);
		m_CtrlList.InsertColumn(3,"资产名称", LVCFMT_LEFT, nWidth);
	}
	catch (CDaoException* e)
	{
		e->ReportError(); 
		e->Delete();
		return;
	}
	td.Close();

	int nItem = 0,i;
	try
	{
		CString select;
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
		
            //判断送修日期是否在用户规定的时间内
            if(m_CKSDDate)   //送修日期
			{
	           if(m_SDDate1>m_SDDate2)
			   { 
	               CTime temp;
		           temp=m_SDDate1;m_SDDate1=m_SDDate2;m_SDDate2=temp;
			   } 
			   var = m_pRecordset->GetFieldValue(6);
	           CString year,month,day,str;
			   str=CCrack::strVARIANT(var);
			   if(str.GetAt(6)=='0') 
			      year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
		       else
			      year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
		       month.Format("%c%c",str.GetAt(0),str.GetAt(1));
		       day.Format("%c%c",str.GetAt(3),str.GetAt(4));
		       CTime time(atoi(year),atoi(month),atoi(day),m_SDDate1.GetHour(),m_SDDate1.GetMinute(),m_SDDate1.GetSecond());
	           if(time<m_SDDate1||time>m_SDDate2) 
			   {
			      m_pRecordset->MoveNext();
			      continue;
			   }
			}
			//判断维修日期是否在用户规定的时间内
			if(m_CKRDDate)   //维修日期
			{
	           if(m_RDDate1>m_RDDate2)
			   { 
	               CTime temp;
		           temp=m_RDDate1;m_RDDate1=m_RDDate2;m_RDDate2=temp;
			   } 
			   var = m_pRecordset->GetFieldValue(8);
	           CString year,month,day,str;
			   str=CCrack::strVARIANT(var);
			   if(str.GetAt(6)=='0') 
			      year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
		       else
			      year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
		       month.Format("%c%c",str.GetAt(0),str.GetAt(1));
		       day.Format("%c%c",str.GetAt(3),str.GetAt(4));
		       CTime time(atoi(year),atoi(month),atoi(day),m_RDDate1.GetHour(),m_RDDate1.GetMinute(),m_RDDate1.GetSecond());
	           if(time<m_RDDate1||time>m_RDDate2) 
			   {
			      m_pRecordset->MoveNext();
			      continue;
			   }

⌨️ 快捷键说明

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