2023年-固定资产管理系统.docx
目录一 .摘要错误!未定义书签。1 .背景说明错误!未定义书签。2 .设计目的错误!未定义书签。3 .需求分析错误!未定义书签。二 .固定资产管理系统概述错误!未定义书签。1 .设计内容错误!未定义书签。2 .设计特点错误!未定义书签。三 .固定资产管理系统数据库分析与设计错误!未定义书签。1 .系统的功能模块图错误!未定义书签。2 .数据库结构设计错误!未定义书签。3 .概念模型设计(E-R图)错误!未定义书签。四 .窗体实现与设计81 .登陆界面82 .主界面错误!未定义书签。3 .部门信息管理界面错误!未定义书签。4 .资产类别管理界面错误!未定义书签。5 .固定资产信息编辑界面错误!未定义书签。6 .固定资产信息管理界面错误!未定义书签。7 .固定资产分配界面错误!未定义书签。8 .固定资产变更界面错误!未定义书签。9 .固定资产折旧界面错误!未定义书签。10 .固定资产报废界面错误!未定义书签。11 .用户管理界面错误!未定义书签。12 .修改密码界面39五 .结论与体会错误!未定义书签。2.主界面固定逐产管理系统代码设计#includc "stdafx.h"#include "AssetsMan.h"#include"Assets.h"#inciude "ADOConn.h"#ifdef .DEBUG#undefTHIS_FILEsialic char THIS_FILE=_FILE_;#define new DEBUG_NEW#cndifCAssets: :CAssets()(Aid =Aname =Model =Producer =Used Year = 1:OrgPrice = 0;Ratio = 0;Status ="未使用”;AddWay ="”;IsAudit = 0;IsDiscount = 0;CAssets:CAssels()void C Assets: :sql_I nsert()ADOConn m_AdoConn:CString cSql,cDate,cOrgPrc,cRa(io,cTypeId,cYear;_bslr_t bSql;c()rgPrc.Format("%f',()rgPrice);cRatio.Fonnat("%f'.Ratio);cTypeld.Format("%d",Typeld);cYear.Format(',%d,',Used Year);CTime t = Crime:GetCurrentTime();cDate.Format(_T(,%04d-%02d-%02d"),t.GetYear(),t.GetMonth(),t.GetDay();cSql = "Insert Into Assets(Aid.Aname.TypeId.Model.Producer,"cSql += "UseDate,UsedYear,()rgPrice,Ratio,"cSql += "Status, Add Way,Is Audit,PostDate, IsDiscount) ValucsC"cSql += Aid+"',”'+Aname+"',"+cTypeId+",”'+Model+"',”'+Producer+"',"'cSql += UseDatc+,"+cYcar+","+cOrgPrc+","cSql += cRatio+”,'未使用','"+AddWay+"',OJ'+cDate+”', 0)"bSql = (LPCTSTR)(_bstr_t)cSql;m_AdoConn.ExeculeSQL(bSql);m_AdoConn.ExitConnect();catch(_coni_error e)AfxMessageBox(e.Description。);void CAssets:sql_Update(CString cld)ADOConn m_AdoConn;CString cDate.cOrgPrc.cRatio.cTypeld.cYear;_bstr_t bSql;cOrgPrc.Forma("%f'.OrgPrice);cRatio.Format("%f'.Ratio);cTypcId.Fonna("%d",TypcId);cYear.Forniat("%d",UsedYear);CTime t = CTime:GetCurren(Tinie();cDate.Format(_T("%04d-%02d-%02(J"),l.GetYear(),t.GetMonth(),l.GetDay();bSql = "Update Assets Set Aid='"+Aid+”',Aname="'+Aname+“',” +"TypeId="+cTypeId+"、Mo<lel="'+Mo<lel+"'、Producer="'+Producer+”'J +"UseDate=',+UseDate+"',UsedYear="+cYear+",()rgPrice="+cOrgPrc+"," +"Ratio="+cRa(io+", AddWay="'+AddWay+"'J +"PostDate="'+cDate+'" Where Aid="'+cld + ;in_AdoConn.ExecuteSQL(bSql);m_AdoConn.ExitConnect();catch(_com_error e)AfxMcssageBox(e.DcscriptionO);void CAssets:sql_Delete(CString cld)ADOConn in_AdoConn;_bs(r_t bSql;bSql = "Delete From Assets Where Aid-" + cld + m_AdoConn.ExecuteSQL(bSql);m_AdoConn.ExitConnect();catch(_com_error c)AfxMcssagcBox(e.Dcscription();void CAssets:sql_Change(CString cld)ADOConn m_AdoConn;CString cRatio, cYear;_bslr_t bSql;cRa(io.Forniat("%f',Ratio);c Y ear.Format(" %d" ,Used Y ear);bSql = "Update Assets Set UsedYear=" + cYear + ", Ratio=" + cRatio + " IsAudit=2 Where Aid='" + eld +m_AdoConn.ExecuteSQL(bSql);m_AdoConn.ExitConnect();)catch(_com_error e)AfxMessageBox(e.DescriptionO);void CAssets:sql_Audit(CString cld)ADOConn m_AdoConn;_bstr_t bSql;bSql = "Update Assets Set IsAudit=l Where Aid-"+cld+;m_AdoConn.ExecuteSQL(bSql);m_AdoConn.ExitConnect();ca(ch(_com_crror c)AfxMcssagcBox(c.DcscriptionO);void CAssets:sql_Sia(us(CString cld)ADOConn ni_AdoConn;_bslr_t bSql;bSql = "Update Assets Set Status="' + Status + Where Aid="'+cld+; m_AdoConn.ExeculeSQL(bSql);m_AdoConn.ExitConnect();catch(_com_error e)AfxMessageBox(e.Description();int CAssets:HaveAid(CString cAid)long IRscnt = 0;_RccordsctP(r m_pRccordsct;ADOConn m_AdoConn;_bstr_t bSQL;bSQL = "Select * From Assets Where Aid-" + cAid + ;m_pRecordset = m_AdoConn.GetRecordSet(bSQL); if (m_pRecordset->adoE()F)return -1;elsereturn 1;m_AdoConn.ExitConnect();)catch(_com_error e)(AfxMcssagcBox(c.Dcscription();return -1;)int CAssets:HaveName(CString cAname)long IRscnt = 0:_RecoidsetPtr m_pRecordset;ADOConn ni_AdoConn;_bslr_t bSQL;bSQL = "Select * From Assets Where Aname="' + cAname +m_pRccordsct = m_AdoConn.Gc(RccordSct(bSQL);if (m_pRecordset->adoEOF)return -1;elsereturn 1;m_AdoConn.Exi(Connect();ca(ch(_com_crror c)AfxMcssageBox(e.Description();)return -I;void CAssets:BcginDiscount(CString cld)(iry(ADOConn in_AdoConn;_bstr_t bSql;bSql = "Update Assets Set IsDiscount=l Where Aid-"+ckl+;m_AdoConn.ExecuteSQL(bSqi);m_AdoConn.ExitConnect();)catch(_coni_error e)AfxMessageBox(e.DescriptionO);3 .部门信息管理界面部门信息没置部服研部部事户品务安人客户财保代码设计#includc "stdafx.h"#include "AssetsMan.h"include "DeptDlg.h"#include "Departments.h"#ifdef_DEBUG#define new DEBUG_NEW#undcfTHIS_FILEstatic charTHIS_FILEl= _FILE_;#endifCDeptDlg:CDeptDlg(CWnd* pParent /*=NULL*/) :CDialog(CDeptDlg:IDD, pParent)(m_DeptName = _T("");void CDeptDlg:DoDataExchange(CDataExchange* pDX) (CDialog:DoDa(aExchange(pDX);DDX_Control(pDX, IDC.ADODCI, m_AdoDept);DDX_Tcxt(pDX. IDC_EDIT1, m_Dcp(Namc);DDX_Control(pDX. IDC.DATALISTI, m_DataDept); )BEGIN_MESSAGE_MAP(CDeptDlg, CDialog)ON_BN_CLICKED(IDC_ADD_BUTTON. OnAddButton) ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiBulton) ON_BN_CLICKED(IDC_DEL_BUTTON,OnDelButton) ON_EN_CHANGE(IDC_EDIT1, &CDcptDlg:OnEnChangcEdit 1) END_MESSAGE_MAP() BEGIN_EVENTSINK_MAP(CDcp(Dlg. CDialog)ON_EVENT(CDeptDlg, IDC_DATALIST1, -600 /* Click */, OnClickDatalistl, VTS.NONE) END_EVENTSINK_MAP()void CDeptDlg:OnClickDalalisl 1()m_DeptName = m_DataDept.GetText();cDepId = m_DataDept.GetBoundText();cDcpNanicOld = m_Da(aDcp(.GctTcxt();UpdateData(FALSE);)void CDeptDlg:OnAddButton()UpdateData(TRUE);if (m_Dcp(Namc ="")MessageBox。请输入部门名称,,);return;CDepartments cDep:cDep.DepName = m_DeptName;if (cDep.HaveName(m_DeptName) = 1)MessageBox("已经存在此部门信息!)elsecDcp.sql_Insert();m_AdoDept.Refresh();void CDeptDlg:OnModiButtonOUpdateData(TRUE);if (m_DataDept.GetText()="")(MessageBox("请选择要修改的部门名称) return;if (m_DcptNamc ="")McssagcBox("请输入部门名称”): return;if(cDepNameOld != m_DeptName)(CDepartments eDept;cDept.DepName = m_DeptName;if (cDcpt.HavcNamc(m_Dcp(Namc) = 1)MessageBox("新的部门名称已经存在");elsecDept.sql_Update(cDep!d);m_AdoDept.Refresh();void CDeptDlg:OnDelBulton()(if (m_Da(aDept.GetText()="")return;CDepartments cDep;cDep.sql_Delete(cDepId); m_AdoDept.Refresh();)void CDeptDlg:()nEnChangeEdit 1 () ()4 .资产类别管理界面固定蜜产涉设置代码设计#include "stdafx.h"#inciude "AssetsMan.h"#include "TypeDlg.h"#include "Types.h"#ifdef_DEBUG#dcfinc new DEBUG_NEW#undefTHIS_FILEstatic char THIS_FILE = _FILE_;#endifCTypeDlg:CTypeDlg(CWnd* pParent /*=NULL*/):CDialog(CTypeDlg:IDD, pParent)m_TypcNamc = _T("");)void CTypeDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_ADODC1, m_AdoType);DDX_Control(pDX, IDC_DATALIST1, m_DataType);DDX_Tcxt(pDX. IDC_EDIT1. m_TypcNamc):BEGIN_MESSAGE_MAP(CTypeDlg, CDialog)ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddBulton)ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)ON_BN_CLICKED(IDC_DEL_BUTTON. OnDelButlon)END_MESSAGE_MAP()BEGIN_EVENTSINK_MAP(CTypcDlg. CDialog)ON_EVENT(CTypeDlg, IDC_DATALIST1, -600/* Click */, OnClickDatalistl, VTS.NONE) END_EVENTSINK_MAP()void CTypeDlg:OnClickDatalist I ()(m_TypeName = m_DataType.GetText();cTypeld = m_DataTypc.GciBoundTcxt();cTypeNameOld = m_DataType.GetText();UpdatcData(FALSE);)void CTypeDIg: :On AddButton()(UpdateData(TRUE);if (m_TypcNamc ="")(MessageBox("请输入类别名称、return;CTypes obj;obj.TypeName = m_TypeName;if(obj.HaveName(m_TypeName) = 1)MessageBox("此类别名称已经存在! ”);obj.sql_Insert();m_AdoType.Refresh();void CTypcDlg:OnModiButton()UpdateData(TRUE);if (m_DataType.Ge(Text()="")MessageBox("请选择要修改的类别名称");一.摘要1 .背景说明随着社会经济的不断发展,企业规模越来越大,资产越来越多,资产管理就 显得非常困难。固定资产成为每个企业不可缺少的重要部分,加强固定资产管理, 可以优化企业资源配置,本系统适用与中小型企业及政府机关、学校等。主要维 护固定资产的登记、清理、借出和还入、维修、折旧等信息,实现设备的日常管 理功能,通过一系列查询功能,可方便获知每一件固定资产的状态及当前所处位 置,具有操作简单,界面友善,灵活性好,系统安全性高,运行稳定等特点,保 证了企业中的每一件物品发挥其最大效力。2 .设计目的在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法, 二是更先进的面向对象程序设计方法。在结构化程序设计中关键是如何将问题域中的行为(即操作)抽取出来,作 为C+程序中的函数。由于多个函数均需要访问某些数据,这些数据常被设计为 全局变量。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概 念)抽取出来,作为C+程序中的类,而属性与行为作为类的两类要素通常是必 不可少的,甚至还应考虑类必须满足的约束。3 .需求分析基本信息的添加、修改、删除和查询。基本信息包括部门信息和固定资产类 型信息。资产信息管理包括固定资产的录入、分配、变更、折旧和报废等功能。 统计查询功能包括部门资产统计表和分类资产统计表。return;if (m_TypeName ="")(MessageBox("请输入类别名称");return;)if(cTypeNameOld!=m_TypeName)CTypes obj:obj.TypeName = m_TypeName;if (obj.HaveName(m_TypeName) = 1)MessageBox("此类别名称已经存在!"); else(obj.sql_Update(cTypeId);m_AdoType.Refresh();void CTy peDlg: :OnDel Button() (CTypes obj;obj.sql_Delete(cT ypeld); m_AdoType.Refresh();)5 .固定资产信息编辑界面固定资产查询条件询 Z1添加沙 III 返回代码设计排include "stdafx.h"#include "AssetsMan.h"include "AssetsEditDlg.h"#inciude "Assets.h"#ifdef .DEBUG#define new DEBUG_NEW#undefTHIS_FILEstatic char THIS_FILE = _FILE_;#endifCAssetsEditDIg:CAssetsEditDlg(CWnd* pParent /*=NULL*/) :CDialog(CAssetsEditDlg: :IDD, pParent)(m_Aid =("");m_Aname = _T("");m.Modcl = _T("");m_Producer = _T("");m_RcpPcrson = _T("");m_UseYear = 0;m_OrgPrice = O.Of;m_Ratio = O.Of;m_PostDate = _T("");m_UscDatc = COIcDa(cTimc:GctCurrcntTiinc();m_Status = _T("");void CAssetsEditDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDa(aExchange(pDX);DDX_Control(pDX, IDC_ADDWAY_COMBO, m_AddWay);DDX_Con(roI(pDX. IDC_ADODC1, m_adodc 1);DDX_Text(pDX, IDC_AID_EDIT, m_Aid);DDX_Text(pDX. IDC_ANAME_EDIT, m_Aname);DDX_Controi(pDX, IDC_TYPE_D/XTACOMBO. m_Type);DDX_Text(pDX, IDC_MODEL_EDIT, m.Model);DDX_Text(pDX, IDC_PRODUCER_EDIT. m_Producer);DDX_Text(pDX, IDC_USEYEAR_EDIT, m_UseYear);DDX_Tcxt(pDX. IDC_ORGPRICE_EDIT, m.OrgPricc);DDX_Text(pDX, IDC_RATIO_EDIT, m_Ratio);DDX_Text(pDX, IDC_POSTDATE_STATIC, m_PostDate);DDX_DateTimeCtrl(pDX. IDC_USEDATE, m_UseDate);DDX_Text(pDX, IDC_STATUS_EDIT, m_Status);BEGIN_MESSAGE_MAP(CAssetsEditDlg, CDialog)ON_EN_CHANGE(IDC_AID_EDIT, &CAssc(sE<liiDlg:OnEnChangcAidEdit)END_MESSAGE_MAP()BOOL C AssetsEditDlg: :OnInitDialog() (CDialog:OnInitDialog();if(cAid ="") CTime t = CTime:GetCurrentTime();CScring eDate;cDate.Format(_T("%04d-%02d-%02d"),t.GetYear(),t.GetMonth(),t.GetDay(); m_PostDate = eDate;m_UseDate.SetDate(t.GetYear(),t.GetMonth(),t.GetDay();m_AddWay.SetCurSel(O);) else(CString cltem;cltem =for(int i = 0; i < m_AddWay.GelCount(); i+) (m_AddWay.GetLBText(i,cltem);if(cltem = strAddWay) (m_AddWay.SetCurSel(i); break; COIcVariant vtime(strUseDa(e);vtime.ChangeType(VT_DATE);COIeDateTime time4(vtime);m_UseDate.SetDate(ime4.GetYear(),time4.Ge(Month(),time4.Ge(Day();m_Type.SetBoundText(strTypeId); )UpdateData(FALSE); return TRUE;)void CAssetsEditDlg:OnOK() (CString cDate,cAddWay,cS(atus;UpdateData(TRUE);MessagcBox("请输入固定资产编号) return;)if (m_Aname ="")(MessageBox("请输入固定资产名称) return;)if (m_Type.GetBoundText()="")MessageBox("请选择固定资产类别"); return;)CAssets cAst;cAst.Aid = m_Aid;cAst.Aname = m_Aname;cAst.Model = m_Model;cAst.OrgPrice = m_OrgPrice;cAst.PostDate = m_PostDate;cAst.Produccr = m_Produccr;cAst.Ratio = m_Ratio;cAst.UscdYcar = m_UscYcar;CString cstrDate;cstrDate = m_UseDate.Format("%Y-%m-%d");cAst.UseDate = cstrDate;m_AddWay.GetLBText(m_AddWay.GetCurSel(),cAddWay);c Ast. Add Way = c Add Way;cAst.Typeld = atoi(m_Type.GetBoundText();if(cAid="0) if (cAst.HaveAid(m_Aid) = 1) MessageBox("资产编号已经存在”); retuni;)if (cAst.HaveName(m_Aname) = I)(MessageBox("资产名称已经存在");return;cAst.sql_Insert();elseif (cAid != m_Aid && cAst.HaveAid(m_Aid) = 1)MessageBox("资产编号已经存在.,); return;)if (cAname != m_Aname && cAst.HaveName(m_Aname) = 1) MessageBox("资产名称已经存在) return;)cAst.sql_Up<late(cAid);)CDialog:OnOK();)void CAssetsEditDlg:OnEnChangeAidEdit()(6 .固定资产信息管理界面三定三产六至小闯代码设计#include "stdafx.h"#inchide "AssetsMan.h"#include "AssetsSelectDlg.h"#includc "Asscts.h"#inckide "columns.h"#include "column.h"#inckide "COMDEF.H"#include "_recordse(.h"#ifdcf .DEBUG#define new DEBUG NEW#undcfTHIS_FILEstatic char THIS_F1LEJ = _F1LE_;#endifCAssetsSelectDlg:CAssetsSelectDlg(CWnd* pParent /*=NULL*/) :CDialog(CAssetsSelectDIg: :IDD, pParent)void CAssetsSelectDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_TYPE_COMBO, m_type);DDX_Control(pDX. IDC_ADODC1, m_Adodcl);DDX_Control(pDX, IDC_AD()DC2, m_Adodc2);DDX_Con(rol(pDX, IDC_DATAGRID1. m_Da(aGrid);DDX_Control(pDX, IDC_SEARCH_DATACOMBO, m_search); )BEGlN_MESSAGE_MAP(CAssetsSelectDlg, CDialog)ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)END_MESSAGE_MAP()void CAssctsSclcctDlg:RefrcshData() CString csqkcsql = "SELECT a.Aid AS 资产编号资名称,a.Typeld,"csql += "(.TypcNatnc AS 类型,a.Siaius AS 状态,a.ModelAS 型号a.Producer AS 生产厂商”;csql += "a.UseDate AS 使用日期,a.UsedYear AS 使用年限T,a.OrgPrice AS 原值;a.Ratio AS 残 率,”;csql += "a.AddWay AS 增加方式,a.PoslDaie AS 提交 H 期csql += "a.IsAudit,(CASE WHEN a.IsAudit=() THEN '未审核WHEN a.IsAudit=l THEN '审核'END) AS否审核?”;csql += " FROM Assets a.Types t"csql += " WHERE a.TypeId=t.TypeId"if (cSearchValue ="")cSearch Value = "0"if(m_type.GetCurSel() = 1)csql = csql + " AND a.TypeId=M+ cSearchValue;if(flag = I)csql = csql + " AND a.IsAudit=l AND a.Aid NOT IN (SELECT Aid FROM Distribute)" elsecsql = csql + " AND a.Status='使01 用®?4«D"';/MessageBox(csql);m_Adodc 1 .SetRecordSource(csql);m_Adodc I.Refresh();_variant_t vlndcx;v Index = long(O);m_DataGrid.Ge(Columns().GetI(em(vIndex).Se(Wid(h(60);vlndex = long(l);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = )ong(2);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);vlndex = 10ng (3);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);vlndex = long(4);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = long(5);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = long(6);m_DataGrid.Ge(Columns().GetI(em(vIndex).SetWid(h(60);vlndex = long(7);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(l 00);vlndex = long(8);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(70);vlndex = long(9);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = long(iO);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = long(l 1);m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);vlndex = long(12);m_DataGrid.GetColunins().GelItem(vIndex).SetWidth(60);vlndex = long(l3);m_DataGrid.Ge(Columns().GetI(em(vIndex).SetWidth(0);vlndex = long(I4);m_DataGrid.Ge(Columns().GetI(em(vIndex).SetWidth(60);)BOOL CAsse(sSelectDlg:OnInitDialog() (CDialog:()nInitDialog();m_type.