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

📄 clearassets.cpp

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

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

/////////////////////////////////////////////////////////////////////////////
// CClearAssets dialog


CClearAssets::CClearAssets(CWnd* pParent /*=NULL*/)
	: CDialog(CClearAssets::IDD, pParent)
{
	//{{AFX_DATA_INIT(CClearAssets)
	m_ClearDate = -1;
	m_strFactory = _T("");
	m_InDate = -1;
	m_strInterID = _T("");
	m_LFDate = -1;
	m_strName = _T("");
	m_strReason = _T("");
	m_strType = _T("");
	m_strUseInfo = _T("");
	m_strRemark = _T("");
	m_strPerson = _T("");
	m_strAssetID = _T("");
	m_LRatio = 0.0;
	m_LeftValue = 0.0;
	m_OrigValue = 0.0;
	m_YearNum = 0;
	//}}AFX_DATA_INIT
}


void CClearAssets::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClearAssets)
	DDX_Control(pDX, IDC_LER_PERSON, m_CtrlCBPerson);
	DDX_Control(pDX, IDC_CLE_REASON, m_CtrlEditReason);
	DDX_Control(pDX, IDC_LIST_ADDASSERT, m_CtrlList);
	DDX_Control(pDX, IDC_CLR_CLEARTYPE, m_CtrlCBClearType);
	DDX_Control(pDX, IDC_CLE_SORT, m_CtrlCBSort);
	DDX_Control(pDX, IDC_CLE_KEEPER, m_CtrlCBKeeper);
	DDX_Control(pDX, IDC_CLE_DEPRECIATION, m_CtrlCBDepreciation);
	DDX_Control(pDX, IDC_CLE_DEPOSITARY, m_CtrlCBDepositary);
	DDX_Control(pDX, IDC_CLE_DEPARTMENT, m_CtrlCBDepartment);
	DDX_Control(pDX, IDC_CLE_ADDTYPE, m_CtrlCBAddType);
	DDX_DateTimeCtrl(pDX, IDC_CLE_CLEARDATE, m_ClearDate);
	DDX_CBString(pDX, IDC_CLE_FACTORY, m_strFactory);
	DDX_DateTimeCtrl(pDX, IDC_CLE_INDATE, m_InDate);
	DDX_Text(pDX, IDC_CLE_INTERID, m_strInterID);
	DDX_DateTimeCtrl(pDX, IDC_CLE_LFDATE, m_LFDate);
	DDX_Text(pDX, IDC_CLE_NAME, m_strName);
	DDX_Text(pDX, IDC_CLE_REASON, m_strReason);
	DDX_Text(pDX, IDC_CLE_TYPE, m_strType);
	DDX_CBString(pDX, IDC_CLE_USEINFO, m_strUseInfo);
	DDX_Text(pDX, IDC_CLE_REMARK, m_strRemark);
	DDX_CBString(pDX, IDC_LER_PERSON, m_strPerson);
	DDX_Text(pDX, IDC_ASSETID, m_strAssetID);
	DDX_Text(pDX, IDC_CLE_LRATIO, m_LRatio);
	DDV_MinMaxDouble(pDX, m_LRatio, 0., 1.);
	DDX_Text(pDX, IDC_CLE_LEFTVALUE, m_LeftValue);
	DDX_Text(pDX, IDC_CLE_ORIGVALUE, m_OrigValue);
	DDV_MinMaxDouble(pDX, m_OrigValue, 0., 9.e+055);
	DDX_Text(pDX, IDC_YEARNUM, m_YearNum);
	DDV_MinMaxInt(pDX, m_YearNum, 0, 1000);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CClearAssets, CDialog)
	//{{AFX_MSG_MAP(CClearAssets)
	ON_BN_CLICKED(IDD_CLEAR, OnClear)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_ADDASSERT, OnItemchangedListAddassert)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClearAssets message handlers

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

BOOL CClearAssets::OnInitDialog() 
{   
	CDialog::OnInitDialog(); 
	m_CtrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|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 清理方式ID,清理方式 From 清理方式");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(0);
			m_uaClear.Add(var.lVal);
			var = m_pRecordset->GetFieldValue(1);
			m_saClear.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_CtrlCBPerson.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_saDepartment.GetSize();i++)  //初始化 部门
	{
	   nIndex =m_CtrlCBDepartment.AddString(m_saDepartment.GetAt(i));
	   m_CtrlCBDepartment.SetItemData(nIndex, m_uaDepartment.GetAt(i));
	} 
	for(i=0;i<m_saDepositary.GetSize();i++)  //初始化 存放地点
	{
	   nIndex =m_CtrlCBDepositary.AddString(m_saDepositary.GetAt(i));
	   m_CtrlCBDepositary.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_saSort.GetSize();i++)  //初始化 类别
	{
	   nIndex =m_CtrlCBSort.AddString(m_saSort.GetAt(i));
	   m_CtrlCBSort.SetItemData(nIndex, m_uaSort.GetAt(i));
	} 
	for(i=0;i<m_saClear.GetSize();i++)  //清理方式 类别
	{
	   nIndex =m_CtrlCBClearType.AddString(m_saClear.GetAt(i));
	   m_CtrlCBClearType.SetItemData(nIndex, m_uaClear.GetAt(i));
	} 
	m_CtrlCBDepreciation.InsertString(0,"平均年限法");  //初始化折旧方法
	m_CtrlCBDepreciation.InsertString(1,"工作量法");
	m_CtrlCBDepreciation.InsertString(2,"双倍余额递减法");
	m_CtrlCBDepreciation.InsertString(3,"年数总和法");
	
	Refresh();
	Empty();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CClearAssets::Refresh()//刷新
{
    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();
		for (int j=0; j < nFields; j++)
		{
			td.GetFieldInfo(j,fieldInfo);

⌨️ 快捷键说明

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