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

📄 findother.cpp

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

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

/////////////////////////////////////////////////////////////////////////////
// CFindOther dialog


CFindOther::CFindOther(CWnd* pParent /*=NULL*/)
	: CDialog(CFindOther::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFindOther)
	m_strAssetID = _T("");
	m_CKAddType = FALSE;
	m_CKAssetID = FALSE;
	m_CKDepartment = FALSE;
	m_CKInDate = FALSE;
	m_CKInterID = FALSE;
	m_CKKeeper = FALSE;
	m_CKLFDate = FALSE;
	m_CKName = FALSE;
	m_CKPosition = FALSE;
	m_CKSort = FALSE;
	m_CKType = FALSE;
	m_CKUseInfo = FALSE;
	m_CKYearNum = FALSE;
	m_InDate1 = -1;
	m_InDate2 = -1;
	m_strInterID = _T("");
	m_LFDate1 = -1;
	m_LFDate2 = -1;
	m_strName = _T("");
	m_strType = _T("");
	m_strUseInfo = _T("");
	m_nYearNum1 = 0;
	m_nYearNum2 = 0;
	//}}AFX_DATA_INIT
	flag=0;
}


void CFindOther::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFindOther)
	DDX_Control(pDX, IDC_FDOR_USEINFO, m_CtrlCBUseInfo);
	DDX_Control(pDX, IDC_FDOR_TYPE, m_CtrlCBType);
	DDX_Control(pDX, IDC_FDOR_SORT, m_CtrlCBSort);
	DDX_Control(pDX, IDC_FDOR_POSITION, m_CtrlCBPosition);
	DDX_Control(pDX, IDC_FDOR_NAME, m_CtrlCBName);
	DDX_Control(pDX, IDC_FDOR_LIST, m_CtrlList);
	DDX_Control(pDX, IDC_FDOR_ADDTYPE, m_CtrlCBAddType);
	DDX_Control(pDX, IDC_FDOR_DEPARTMENT, m_CtrlCBDepartment);
	DDX_Control(pDX, IDC_FDOR_KEEPER, m_CtrlCBKeeper);
	DDX_Control(pDX, IDC_FDOR_INTERID, m_CtrlCBInterID);
	DDX_Control(pDX, IDC_FDOR_ASSETID, m_CtrlCBAssetID);
	DDX_CBString(pDX, IDC_FDOR_ASSETID, m_strAssetID);
	DDX_Check(pDX, IDC_FDOR_CKADDTYPE, m_CKAddType);
	DDX_Check(pDX, IDC_FDOR_CKASSETID, m_CKAssetID);
	DDX_Check(pDX, IDC_FDOR_CKDEPARTMENT, m_CKDepartment);
	DDX_Check(pDX, IDC_FDOR_CKINDATE, m_CKInDate);
	DDX_Check(pDX, IDC_FDOR_CKINTERID, m_CKInterID);
	DDX_Check(pDX, IDC_FDOR_CKKEEPER, m_CKKeeper);
	DDX_Check(pDX, IDC_FDOR_CKLFDATE, m_CKLFDate);
	DDX_Check(pDX, IDC_FDOR_CKNAME, m_CKName);
	DDX_Check(pDX, IDC_FDOR_CKPOSITION, m_CKPosition);
	DDX_Check(pDX, IDC_FDOR_CKSORT, m_CKSort);
	DDX_Check(pDX, IDC_FDOR_CKTYPE, m_CKType);
	DDX_Check(pDX, IDC_FDOR_CKUSEINFO, m_CKUseInfo);
	DDX_Check(pDX, IDC_FDOR_CKYEARNUM, m_CKYearNum);
	DDX_DateTimeCtrl(pDX, IDC_FDOR_INDATE1, m_InDate1);
	DDX_DateTimeCtrl(pDX, IDC_FDOR_INDATE2, m_InDate2);
	DDX_CBString(pDX, IDC_FDOR_INTERID, m_strInterID);
	DDX_DateTimeCtrl(pDX, IDC_FDOR_LFDATE1, m_LFDate1);
	DDX_DateTimeCtrl(pDX, IDC_FDOR_LFDATE2, m_LFDate2);
	DDX_CBString(pDX, IDC_FDOR_NAME, m_strName);
	DDX_CBString(pDX, IDC_FDOR_TYPE, m_strType);
	DDX_CBString(pDX, IDC_FDOR_USEINFO, m_strUseInfo);
	DDX_Text(pDX, IDC_FDOR_YEARNUM1, m_nYearNum1);
	DDV_MinMaxInt(pDX, m_nYearNum1, 0, 1000);
	DDX_Text(pDX, IDC_FDOR_YEARNUM2, m_nYearNum2);
	DDV_MinMaxInt(pDX, m_nYearNum2, 0, 1000);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFindOther, CDialog)
	//{{AFX_MSG_MAP(CFindOther)
	ON_BN_CLICKED(IDC_FDOR_CKNAME, OnFdorCkname)
	ON_BN_CLICKED(IDC_FDOR_CKASSETID, OnFdorCkassetid)
	ON_BN_CLICKED(IDC_FDOR_CKSORT, OnFdorCksort)
	ON_BN_CLICKED(IDC_FDOR_CKTYPE, OnFdorCktype)
	ON_BN_CLICKED(IDC_FDOR_CKLFDATE, OnFdorCklfdate)
	ON_BN_CLICKED(IDC_FDOR_CKINDATE, OnFdorCkindate)
	ON_BN_CLICKED(IDC_FDOR_CKYEARNUM, OnFdorCkyearnum)
	ON_BN_CLICKED(IDC_FDOR_CKADDTYPE, OnFdorCkaddtype)
	ON_BN_CLICKED(IDC_FDOR_CKUSEINFO, OnFdorCkuseinfo)
	ON_BN_CLICKED(IDC_FDOR_CKDEPARTMENT, OnFdorCkdepartment)
	ON_BN_CLICKED(IDC_FDOR_CKINTERID, OnFdorCkinterid)
	ON_BN_CLICKED(IDC_FDOR_CKPOSITION, OnFdorCkposition)
	ON_BN_CLICKED(IDC_FDOR_CKKEEPER, OnFdorCkkeeper)
	ON_EN_CHANGE(IDC_FDOR_YEARNUM1, OnChangeFdorYearnum1)
	ON_EN_CHANGE(IDC_FDOR_YEARNUM2, OnChangeFdorYearnum2)
	ON_BN_CLICKED(IDC_FDOR_FIND, OnFdorFind)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFindOther message handlers

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

BOOL CFindOther::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 CFindOther::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	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_uaKeeper.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saKeeper.Add(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		// 部门
		strSelect = _T("Select 部门ID,部门名称 From 部门");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_uaDepartment.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saDepartment.Add(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		// 存放地点
		strSelect = _T("Select 存放地点ID,存放地点 From 存放地点");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_uaDepositary.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saDepositary.Add(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
	    m_pRecordset->Close();
		
		// 增加方式
		strSelect = _T("Select 增加方式ID,增加方式 From 增加方式");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_uaAddType.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saAddType.Add(CCrack::strVARIANT(var));
			m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
		// 资产类别
		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();
		}
		// close recordset
		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_CtrlCBInterID.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_CtrlCBUseInfo.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_saKeeper.GetSize();i++)  //初始化 保管人员
	{
	   nIndex =m_CtrlCBKeeper.AddString(m_saKeeper.GetAt(i));
	   m_CtrlCBKeeper.SetItemData(nIndex, m_uaKeeper.GetAt(i));
	} 
	for(i=0;i<m_saDepositary.GetSize();i++)  //初始化 存放地点
	{
	   nIndex =m_CtrlCBPosition.AddString(m_saDepositary.GetAt(i));
	   m_CtrlCBPosition.SetItemData(nIndex, m_uaDepositary.GetAt(i));
	} 
	for(i=0;i<m_saAddType.GetSize();i++)  //初始化 增加方式
	{
	   nIndex =m_CtrlCBAddType.AddString(m_saAddType.GetAt(i));
	   m_CtrlCBAddType.SetItemData(nIndex, m_uaAddType.GetAt(i));
	} 
	for(i=0;i<m_saDepartment.GetSize();i++)  //初始化 部门
	{
	   nIndex =m_CtrlCBDepartment.AddString(m_saDepartment.GetAt(i));
	   m_CtrlCBDepartment.SetItemData(nIndex, m_uaDepartment.GetAt(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);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CFindOther::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;
			m_CtrlList.InsertColumn(j+2,fieldInfo.m_strName, 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_CKLFDate)   //出厂日期
			{
	           if(m_LFDate1>m_LFDate2)
			   { 
	               CTime temp;
		           temp=m_LFDate1;m_LFDate1=m_LFDate2;m_LFDate2=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_LFDate1.GetHour(),m_LFDate1.GetMinute(),m_LFDate1.GetSecond());
	           if(time<m_LFDate1||time>m_LFDate2) 
			   {
			      m_pRecordset->MoveNext();
			      continue;
			   }
			}
			if(m_CKInDate)   //入库日期
			{
	           if(m_InDate1>m_InDate2)
			   { 
	               CTime temp;
		           temp=m_InDate1;m_InDate1=m_InDate2;m_InDate2=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_InDate1.GetHour(),m_InDate1.GetMinute(),m_InDate1.GetSecond());
			   if(time<m_InDate1||time>m_InDate2) 
			   {
			      m_pRecordset->MoveNext();
			      continue;
			   }
			}
		

/////////////////////////////////////////////////////////////////////////////////
			var = m_pRecordset->GetFieldValue(0);
			m_CtrlList.InsertItem(nItem,CCrack::strVARIANT(var));
			for (i=0; i < nFields; i++)
			{
				var = m_pRecordset->GetFieldValue(i);
				if(i==3||i==15||i==16||i==17||i==18)  
				{
				    CString item;

⌨️ 快捷键说明

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