已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C+语言解决固定资产管理系统问题毕业论文1 引 言本软件使用Microsoft Visual C+ 6.0进行编写。数据库技术的产生与发展源于对于数据的组织和管理。数据库技术是数据管理的技术,它随着数据管理任务的需要而产生于20世纪60年代中期。这是一门综合性技术,涉及操作系统,数据结构,算法设计和程序设计等知识。数据库技术的基本思想是对数据实行集中,统一,独立的管理,用户可以最大限度的共享数据资源。数据库系统实际上是一个应用系统,它是在计算机硬,软件系统支持下,由用户,数据库管理系统,存储在存储设备上的数据和数据库应用程序构成的数据处理系统。数据库系统是由数据,数据库管理系统,应用程序,用户组成。数据库的特点:1.实现数据共享 2.实现数据独立3.减少了数据冗余度 4.避免了数据不一致性5.加强了对数据的保护。数据库应用系统(DATABASE APPLICATION SYSTEMS DBAS)管理信息系统开放式信息服务系统一个数据库应用系统通常是由数据库和应用程序两部分组成,它们是在数据库管理系统支持下设计和开发出来的。1.1 课程设计目的在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法2。在结构化程序设计中关键是如何将问题域中的行为(即操作)抽取出来,作为C+程序中的函数。由于多个函数均需要访问某些数据,这些数据常被设计为全局变量。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为C+程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。1.2 课程设计的内容提要 固定资产是每个企业不可缺少的重要部分,加强固定资产管理,可以优化企业资源配置,本系统适用与中小型企业及政府机关、学校等。主要维护固定资产的登记、清理、借出和还入、维修、折旧等信息,实现设备的日常管理功能,通过一系列查询功能,可方便获知每一件固定资产的状态及当前所处位置,保证了企业中的每一件物品发挥其最大效力。1.3 课程设计的读者知识要求掌握Access的基本操作,了解基本的SQL语言,如添加、查询、修改和删除记录语言;熟练DAO数据访问接口。了解4种常用的折旧算法;平均年限法、工作量法、双倍余额递减法、年数总和法。1.4 课程设计的系统组成模块主要有“档案设置”模块,管理资产类别、部门、存放地点、增加方式、保管人员以及清除方式等基本信息;“资产管理模块”,包括添加、变更固定资产,清理固定资产,借出、还入固定资产,修理固定资产等;“查询”模块,包括借出查询、还入查询、清理查询、送修查询、修回查询以及更灵活的模糊查询。2 数据库的设计根据固定资产管理系统的功能要求,本系统安排了10个表进行数据的存取。其中“部门”、“管理人员”、“存放地点”、“清理方式”、“增加方式”、“资产类别”、用与档案设置;“资产消息”、“借出还入资产”、“维修资产”和“清理资产”用与资产管理和查询。42.1 主表的结构设计 表2-1至2-6所示为“档案设置”模块所用的6个表(“部门”、“管理人员”、“存放地点”、“清理方式”、“增加方式”、“资产类别” )的表结构,它们的结构基本相同。“部门”表,用与、于保存企业的各部门名称,如表2-1所示。5表2-1 “部门”表的结构字段名称字段类型主要属性作用部门ID自动编号递增,无重复用于与其他表进行关联部门名称文本(长度:20)必填字段,无重复用于存储企业各部门的名称备注备注非必填字段,可重复,可空用于存储该部门的备注信息“管理人员”表,用于保存企业中固定资产保管人员名单,如表2-2所示。表2-2 “管理人员”表的结构字段名称字段类型主要属性作用管理人员ID自动编号递增,无重复用于与其他表进行关联管理人员文本(长度:10)必填字段,无重复用于存储资产保管人员名单备注备注非必填字段,可重复,可空用于存储保管人员备注信息 “存放地点”表,用于保存企业中固定资产存放固定资产的地点名称,如表2-3所示。表2-3 “存放地点”表的结构字段名称字段类型主要属性作用存放地点ID自动编号递增,无重复用于与其他表进行关联存放地点文本(长度:20)必填字段,无重复用于存储存放地点人员名单备注备注非必填字段,可重复,可空用于存储存放地点备注信息“清理方式”表,用于保存企业中队固定资产的清除方式,如表2-4所示。表2-4 “清理方式”表的结构字段名称字段类型主要属性作用清除地点ID自动编号递增,无重复用于与其他表进行关联清除地方文本(长度:20)必填字段,无重复用于存储清理方式名称备注备注非必填字段,可重复,可空用于存储清理方式备注信息“增加方式”表,用于保存企业中固定资产的增加方式,如表2-5所示。表2-5 “增加方式”表的结构字段名称字段类型主要属性作用增加地点ID自动编号递增,无重复用于与其他表进行关联增加地方文本(长度:20)必填字段,无重复用于存储增加方式名称备注备注非必填字段,可重复,可空用于存储增加方式备注信息“资产类别”表,用于保存企业中固定资产的类别消息,如表2-6所示。表2-6 “资产列表”表的结构字段名称字段类型主要属性作用资产类别ID自动编号递增,无重复用于与其他表进行关联资产类别文本(长度:20)必填字段,无重复用于存储资产类别名称备注备注非必填字段,可重复,可空用于存储资产类别备注信息“资产信息”表,本系统的核心部分,用于保存固定资产的基本信息,如表2-7所示。表2-7 “资产信息”表的结构字段名称字段类型主要属性作用资产ID自动编号递增,无重复用于与其他表进行关联资产编号文本(长度:20)必填字段,无重复用于存储资产编号值 资产名称文本(长度:20)必填字段,可重复,不可空用于存储固定资产名称资产类别ID数字(长整型)必填字段用于与“资产类别”表关联型号文本(长度:20)非必填字段,可空用于存储资产型号名称生产厂家文本(长度:20)必填字段,不可空用于存储生产厂家名称出厂日期日期/时间必填字段,不可空用于存储生产出产日期国际编号文本(长度:50)非必填字段,可空用于存储资产国际编号购买日期日期/时间必填字段,不可空用于存储资产购买日期净残值率数字(单精度型)必填字段,3位小数用于存储资产净残值率使用年限数字(长整型)必填字段 用于存储资产使用年限原值货币必填字段,2位小数用于存储资产原值净值货币必填字段,2位小数用于存储资产净值折旧方式文本(长度:20)必填字段,不可空用于存储资产折旧方式使用情况文本(长度:20)必填字段,不可空用于存储资产使用情况使用部门ID数字(长整型)必填字段用于与“部门”表关联存放地点ID数字(长整型)必填字段用于与“存放地点”表关联增加方式ID数字(长整型)必填字段用于与“增加方式”表关联保管人员ID数字(长整型)必填字段用于与“管理人员”表关联备注备注非必填字段,可重复,可空用于存储资产信息备注信息字段“资产类别ID”、“使用部门ID”、“存放地点ID”、“增加方式ID”、“保管人间ID”、分别用于与表“资产部门”、“部门”、“存放地点”、“增加方式”、“保管人员”相关联。当系统从该表调用数据时,需要根据这5个字段的索引数字分别到5个表中寻找相信的信息。字段“资产ID”用语其他表与本表的关联,其他表中知识储存资产ID值,根据该字段可以找到资产的其他信息。“借出还入资产”表,用于存储借出还入资产的信息,如表2-8所示。表2-8 “借出还入资产”表的结构字段名称字段类型主要属性作用借出还入ID自动编号递增,无重复用于与其他表进行关联资产ID数字(长整型)必填字段用于与“资产信息”表关联借用人文本(长度:10)非必填字段,可空用于存储借用人名单出借人文本(长度:10)非必填字段,可空用于存储出借人名单批复人文本(长度:10)非必填字段,可空用于存储批复人名单借用部门ID数字(长整型)非必填字段用于与“部门”表关联借用日期日期/时间非必填字段,可空用与存储借用日期预计归还时间日期/时间非必填字段,可空用与存储预计归还日期借用理由文本(长度:20)非必填字段,可空用与存储借用理由还入时间日期/时间非必填字段,可空用与存储还入日期接收人文本(长度:10)非必填字段,可空用与存储接收人名单是否归还是/否非必填字段,可空用与存储物品是否归还备注备注非必填字段,可重复,可空用与存储借出还入备注信息模块“资产管理”的“借出”与“还入”功能共同使用该表,所以字段的属性均为非必填字段。字段“资产ID”用于与“资产信息”表相关联,通过该字段可以得到该资产的其他信息。“借用部门ID”用于与“部门”表相关联,用于得到借出部门的名称。字段“是否归还”用于标识该资产当前所属状态。“清理资产”表,用语存储清理资产时的一些基本信息,如表2-9所示。8表2-9“清理资产”表的结构字段名称字段类型主要属性作用清理ID自动编号递增,无重复用于与其他表进行关联资产ID数字(长整型)必填字段用于与“资产信息”表关联清理理由文本(长度:20)必填字段,不可空用于存储清理理由清理方式ID数字(长整型)必填字段用于与“清理方式”表关联清理日期日期/时间必填字段,不可空用于存储清理日期清理人文本(长度:10)必填字段,不可空用于存储清理人名单备注备注非必填字段,可重复,可空用于存储清理资产备注信息字段“资产ID”用于表“资产信息”相关联,通过该字段可以得到该资产的其他信息。“清理方法ID”用于表“清理方法”相关联,用于得到清理的名称。“维修资产”表,用语存储维修资产时的一些基本信息,如表2-10所示。表2-10“维修资产”表的结构字段名称字段类型主要属性作用维修记录ID自动编号递增,无重复用于与其他表进行关联资产ID数字(长整型)必填字段用于与“资产信息”表关联维修人文本(长度:10)非必填字段,可空用于存储维修人名单送修人文本(长度:10)非必填字段,可空用于存储送修人名单送修原因文本(长度:50)非必填字段,可空用于存储送修原因维修地点文本(长度:20)非必填字段,可空用于存储维修地点名称送修日期日期/时间非必填字段,可空用于存储送修日期故障原因文本(长度:50)非必填字段,可空用于存储故障原因维修日期日期/时间非必填字段,可空用于存储维修日期维修状况文本(长度:50)非必填字段,可空用于存储维修后资产的状况配件名称文本(长度:20)非必填字段,可空用于存储所用的配件名称金额货币非必填字段,可空用于存储维修所用的费用数是否修完是/否非必填字段,可空用于存储资产是否修完备注备注非必填字段,可重复,可空用于存储修理备注信息 “资产管理”模块的“送修”与“修回”共同使用该表,所以字段均为非必填字段。字段“资产ID”用于与表“资产信息”相关联,通过该字段可以得到该资产的其他信息。字段“是否修完”用于标识资产当前所属状况。2. 2 主表间的关系设计数据库中各表不是互相独立的,他们之间通过字段进行关联。7 “资产信息”表用于存储所有固定资产的基本信息,表中字段“资产类别ID”、“使用部门ID”、“存放地点ID”、“增加方式ID”、“保存人员ID”分别与表“资产类别”、“部门”、“存放地点”、“增加方式”、“保管人员”相关联。 “借出还入资产”、表的字段“资产ID”、“借用部门ID”分别与表“资产信息”、“部门”相关联。通过“资产ID”获得资产的详细信息,通过“借用部门ID”可以得到借用部门的名称。 “清理资产”表的字段“资产ID”、“清理方式ID”分别与表“资产信息”、“清理方式”相关联。通过“资产ID”获得资产的详细情况,通过“清理方式ID”可以得到资产的具体清除方式。 本系统主要有3个大的功能模块:档案设置、资产管理、查询。其详细的模块组织结构如图1-1所示。3 系统功能的设计送 修资产管理固定资产管理系统查 询档案设置其他查询折旧查询修回查询送修查询清理查询还入查询借出查询归 还借 出清 理变 更增 加清除方式保管人员增加方式存放地点部 门资产类别修 回图1-1 模块组织结构3.1 档案设置本模块主要对企业的基本信息进行管理,包括资产类别、部门 、存放地点、增加方式、保管人员及清理方式。如图1-2、图1-3所示分别为“资产类别”以及“部门”数据窗口,“存放地点”、“增加方式”、“保管人员”和“清理方式”的数据窗口与两者基本相同。下面以“资产类别”窗口为体系介绍1。图1-2资产类别窗口图1-3部门窗口1 “资产类别”窗口中维护“资产类别”的名称和“备注”字段和内容,“资产类别ID”字段是系统自动编号,无需用户维护。2 “资产类别”的名称不能重复,在系统中是唯一标识的。3 当列表框控件中有记录被选中是,“添加”、“修理”、“删除”、“修改”变为可编辑状态。4 对于“添加”、“修改”、“删除”3种操作分别会出现提示对话框,提示是否继续。5 “保存”按钮只对“添加”、“修改”操作有用,数据填写完单击“保存”按钮即可将数据村入数据库。6 “取消”按钮用于当取消当前操作,回到上一个状态。3.2 资产管理 本模块主要对固定资产的基本信息进行管理,包括添加、变更固定资产,清楚固定资产,借出、还入固定资产,修理固定资产。 添加资产用于将企业新购入的固定资产的基本信息录入到数据库中,界面如图1-4所示。图1-4 添加固定资产在图1-4所示界面中除了“国际编号”和“备注”字段外,都是必要填的。“资产编号”是企业内部的惟一编号,不重复,如果出现重复,系统会自动提示要求重新填写。当用户所有的项都是正确填写后,单击“添加”按钮,用户所填的信息会存入数据库,并刷新列表框控件,使控件中的记录与数据一致。由于一件物品可能同时购入多个,而各个物品的信息除了“资产编号”外都是相同的,所以在单击“添加”按钮将记录添加进数据库后其界面中只有“资产编号”内的信息消失,而其他信息仍然存在以备用户继续添加。如果用户想添加不同的资产,可以单击“刷新”按牛,该按钮的功能是将对话框变为图1-4所示的初始状态。 变更资产 用于修改固定资产的基本信息。2包括两部分内容:修改和删除。其界面如图1-5所示。图1-5 变更固定资产默认情况下所有的文本框、组合框及“修改”和“删除”按钮是不可能的。当用户用鼠标左键单击列表框控件中的一项记录,即一条记录被选中后,此时所有的控件变为可用状态,如图1-6所示 图1-6 选中固定资产当单击“删除”按钮时,出现提示对话框,询问是否删除当前记录,如果单击“确定”按钮,该记录将会被从数据库中删除,同时列表框控件将进行更新。为了方便用户,列表框控件中的一条记录被删除后,它的下一条记录将自动被标记为选中状态。在键盘上的Shift键或Ctrl键的辅导下,可同时选择多条记录进行删除操作,并且在删除每条记录前都会出现提示对话框进行询问。 清理固定资产用于对无用的固定资产进行清理。清理方式有多种,如出售、盘亏、报废、清理残值等。用户可以根据实际情况对清理方法进行规定。使用界面如图1-7所示。图1-7 清理固定资产当列表框控件中的一项被选中之后,“清理”按钮,“备注”、“清理日期”、“清理方式”、“清理原因”、“清理人”控件变为可用,如图1-8。所有悬想全部填好后,单击“清理”按钮,出现提示对话框,提示用户是否继续清理工作,如果选择确定,将清除该资产,如果选“取消”将回到图1-7所示状态。清理固定资产也可以对多个记录进行一次性清理。图1-8 清理固定资产 借出固定资产用于借出固定资产时记录信息,界面如图1-9。图1-9 借出固定资产列表框控件中列出了所有可以借用的物品,如果想借用某物品,只需要在列表中选中该物品,并填写下面的各项内容,然后单击“借用”按钮即可。界面如图1-10所示。图1-10选中固定资产因为一件物品被借出后,其他人不可以借用该物品,所以当一件物品借用成功后会自动从表框控件中消失。借出也可以实现多件物品同时借出。借出成功后,被借出项自动消失,其下一个可借出物品自动变为选中状态。 归还固定资产用于借出的资产使用完毕后,归还该固定资产时登记相关信息,界面如1-11所示。图1-11归还固定资产初始状态下,列表框控件中列出了所有已经借出的物品,用户可以选中一个或者多个进行归还工作。当列表框控件中的一个或多个控件被选中后“还入时间”、“接收人”、“备注”控件变成可编辑状态。当一件或多件物品还入成功后,该物品会从列表控件中消失,表明该物品已经归还成功,同时已经归还的下一件物品被标识为选中状态。 送修固定资产用于将有问题的产品送去维修时的登记,界面如图7-12所示。图1-12送修固定资产 初始状态下列表框中列出除送修和借出以外的所有资产,可以选择有问题的一件或若干件物品,单击“送修”按钮即可进行送修登记,送修成功后该物品自动从列表框控件中消失。 修回固定资产用于将修好的固定资产入库,入库前需要填写完整的维修信息,界面如图1-13所示。图1-13修回固定资产列表框控件中列出了所有送修的资产,用户可以选择其中一项或多项进行修回操作。完成修回操作的资产从列表框控件中自动消失。3.3 查询通过查询功能用户可以方便地了解各类固定资产的使用情况,如图1-14到1-20所示。分别为“借出查询”、“还入查询”、“清理查询”、“送修查询”、“修回查询”和“其他查询”界面。图1-14借出查询图1-15还入查询图1-16清理查询图1-17送修查询图1-18修回查询图1-19折旧查询图1-20其他查询初始情况下,列表框控件中列出所有符合条件的资产信息。用户可以根据自己的需要选择查询条件,初始时所有的查询条件是不可用的,可以通过单击查询条件左侧的复选框使条件变为可用。各个条件间可以组合使用,所有想选择的项选择好后,单击“查询”按钮,列表框中即可列出想要查看的资产信息。如果用户选择了某一条件,但没有对该项中的内容进行填写,查询时该将忽略该项。4 档案设置模块本模块主要对企业的基本信息,包括资产类别、部门、存放地点、增加方式、保管人员及清楚方式进行管理。主要完成基本信息的增、删、改功能。4.1 创建模块窗体档案设置窗体界面如图1-21所示。3窗体及主要控件的属性设置,如表4-1所示。表4-1挡案设置窗体资源类型资源ID标题属性编辑键IDC_DOSS_NAMEDisabled编辑键IDC_DOSS_REMARKDisabled按钮IDC_DOSS_ADD添加按钮IDC_DOSS_MODIFY修改Disabled按钮IDC_DOSS_DEL删除Disabled按钮IDC_DOSS_SAVE保存Disabled按钮IDC_DOSS_ABOLISH取消Disabled按钮IDCANCEL退出列表框IDC_DOSS_LISTReport,Single,Select,Show selection,Border标签IDC_DOSS_LABELStatic标签IDC_STATIC备注图1-21档案设置窗体4.2 编写功能代码 建立档案设置的CDossierDlg对话框类使用VC+的“Insert-Resource”菜单命令,在“New Class”对话框中设置“Class Type”为“MFC Class”,NAME为“CDossierDlg”, “Base class”为“CDialog”, “Dialog ID”为“IDD_DOSSIER”。完成后单击“OK”按钮完成CDossierDlg类的创建。 创建与对话框相关的变量 创建与控件相关的控件变量,如表4-2所示。表4-2 CDossierDlg类控件变量名称类型关联的控件ID意义m_CtrlEditNameCEidtIDC_DOSS_NAME为了将光标定位到该编辑框m_strNameCStringIDC_DOSS_NAME名称变量m_strRemarkCStringIDC_DOSS_REMARK备注变量m_CtrlListCListCtrlIDC_DOSS_LIST列表框控件变量m_strLableCStringIDC_DOSS_LABLE名称编辑框前的提示信息声明类的其他变量为了实现应用程序DAO数据库操作,需要在操作DAO的类声明DAO数据库对象,这些主要是CDaoDatabase对象和CDaoRecordset对象。代码声明如代码附录1-1。 以资产类别为例,变量m_strID表示数据库的“资产类别ID”字段,变量m_strField表示“资产类别”字段。变量m_strFlag用于标识当前的操作是“添加”还是“修改”。变量nSeleceIndex为列表框控件所选中条目的牵引值,初始值设为-1。 创建菜单为“档案设置”模块创建菜单项。如表4-3所示。表4-3 档案设置菜单资源ID标题ID_DEPARTMENT部门(&P)ID_ASSETTYPE资产类别(&T)ID_DEPOSITARY存放地点(&D)ID_ADDMODE增加方式(&M)ID_KEEPER保管人员(&K)ID_CLEARTYPE清楚方式(&C) 主要代码 在主视窗类中为各菜单单项添加处理函数主视窗的处理函数主要为对话框类的变量m_strTable、m_strField和m_strLable传递初始化参数。这3个变量的意义分别为应读取的数据表的名称、数据表中第二个字段的名称、名称编辑框前的提示标签值。表4-3所列6个菜单项对应的处理函数基本相同,下面以资产类别为例进行介绍,其余函数的代码如代码附录1-2。 重载对话框的OnIntitDialog函数在OnIntitDialog函数中主要完成数据库的连接、列表控件的数据刷新和编辑框控件清空操作,其后两项功能由一个字定义的函数Refresh完成,该函数代码如代码附录1-3。 重载DestroyWindow函数函数DestroyWindow在窗口关闭时自动被调用,在该函数中主要完成断开与数据库连接的操作。代码如代码附录1-4。 编写Refresh函数该函数用于根据数据库刷新列表框控件,晴空编辑框控件。从数据库中读出的数据为CeloVaraint类型,需要将CeloVaraint转换成普通类型,本系统自定义了一个类CCrack用来完成类型的转换功能。起完整程序代码如代码附录1-5。 实现列表框控件的LVN_ITEMCHANGED消息函数当列表框发生变化(如列表框的条目被选中)时该函数自动被调用。作用当列表框中的一个条目被选中时,将该条目对应的信息显示到相应的编辑框控件中,使用“添加”、“修改”、“删除”按钮变为可用,“保存”、“取消”按钮不可用;当没有条目被选中时,只“添加”按钮可用,同时将编辑框控件内容清空并使其不可用。代码如代码附录1-6。 为添加按钮提供实现函数 “添加”按钮只是完成添加的准备工作,当所有内容添加完毕后,单击“保存”按钮才能实现实际的保存工作。代码如代码附录1-7。 为修改按钮提供实现函数“修改”按钮只是完成修改的准备工作,当所有内容修改完毕后,单击“保存”按钮才能实现实际的保存工作。代码如代码附录1-8。 为保存按钮提供实现函数“保存:”按钮用于将新添加的条目或者修改后的条目存储到数据库中,并将列表框控件中的内容刷新,同时使新加的条目或修回后的条目在列表框控件中可见并处于选中状态。类CPromptDlg是本系统中专门用于提示的对话框,其程序代码如代码附录中的1-9。 为删除按钮提供实现函数在删除某一个条目前,应进行判断该条目是否与其他表相关联,如果与其他表相关联,其他表存储的数据调用时会出现问题。如果该条目与其他信息有关联但用户还是将其删除了,在与该信息相联系的索引条目都将变为“!删除!”在该条目被删除后,该条目下一条将处于选中状态。其代码为代码附录中的1-10。为取消按钮提供实现函数单击“取消”按钮可以回到上一个状态,主要针对“添加”和“修改”两种功能设立。如果当前列表框中没有条目被选中,单击“取消”按钮后,“添加”、“退出”按钮为可用,其余按钮和两个编辑框都为不可用;如果列表框中有条目被选中,单击“取消”按钮后“添加”、“修改”、“删除”、“退出”按钮可用,其余按钮和两个编辑框都不可用。其代码如代码附录的1-11。为名称编辑控件的EN_CHANGE消息提供现实函数该函数主要用于“添加”、“修改”功能,保证只有名称编辑框中不为空时“保存”按钮处于可用状态,无内容时处于不可用状态。代码如代码附录1-12。5 资产管理模块本模块主要完成固定资产的基本处理,包括资产的“添加”、“变更”、“清理”、“借出”、“还入”、“送修”和“修回”。105.1 创建模块窗体 添加、变更窗体添加、变更资产信息的装体设计如图1-22所示。窗体上方的列表框用于显示已有资产的信息,窗体下放的一系列文本框、列表框以及日期控件,用于添加新的资产信息或者变更已有的资产信息。图1-21 添加、变更窗体 清理资产窗体清理资产窗体的截面如图1-22所示。窗体上方的列表框用于显示可清理资产的信息,窗体下放的一系列文本框、列表框以及日期控件,用于详细显示当前资产信息,并进行清理操作,如记录清理时间、执行清理人员等。图1-22 清理资产窗体 借出、还入、送修和修回资产资产借出、还入送修和修回的窗体截面与前面已经介绍的2个窗体都相似。5.2 编功能代码 建立各对话框类这里建立的类的方法和上节所说到的基本相同。 建立与对话框相关的变量添加、变更资产对话框 创建与控件相关的控件变量,如表5-1所示。表 5-1 添加、变更资产对话框控件变量名称类型关联的控件ID意义m_CtrlEditName CEidtIDC_AM_NAME为了将光标定位到该编辑框m_strNameCStringIDC_AM_NAME资产名称m_CtrlEditAssetIDCEidtIDC_AM_AssetID为了将光标定位到该编辑框m_strAssetIDCStringIDC_AM_AssetID资产编号m_CtrlEditTypeCEidtIDC_AM_TYPE为了将光标定位到该编辑框m_strTypeCStringIDC_AM_TYPE资产型号m_strInterIDCStringIDC_AM_INTERID国际编号m_dLRatioDoubleIDC_AM_LRATIO残净值率m_nYearNumIntIDC_AM_YEARNUM预计使用年限m_dOrigValueDoubleIDC_AM_ORIHVALUE原值m_dLeftValueDoubleIDC_AM_LEFTVALUE净值m_strRemarkCStringIDC_AM_REMARK备注m_CtrlCBDeprecaiationCComboBoxIDC_AM_DEPRECIATION折旧方式m_CtrlCBDepartmentCComboBoxIDC_AM_DEPARTMENT使用部门m_CtrlCBDepositaryCComboBoxIDC_AM_DEPOSITARY存放地点m_CtrlCBSortCComboBoxIDC_AM_SORT资产类别m_CtrlCBAddTypeCComboBoxIDC_AM_ADDTYPE增加方式m_CtrlCBKeeperCComboBoxIDC_AM_KEEPER保管人员m_CtrlCBFactoryCComboBoxIDC_AM_FACTORY生产厂家控件变量m_strFactoryCStringIDC_AM_FACTORY生产厂家名称m_CtrlCBUseInfoCComboBoxIDC_AM_FACTORY使用情况控件变量m_strUseInfoCStringIDC_AM_FACTORY使用情况名称m_LFDateCTimeIDC_AM_LFDATE出厂日期m_InDateCTimeIDC_AM_LFDATE购买日期m_CtrlListCListCtrlIDC_AM_LIST列表控件变量 声明类的其他变量为了实现应用的DAO数据库操作,需要在操作DAO的类里声明DAO数据库对象,这里主要是CDaoDatabase对象和CDaoRecordest对象。代码声明如代码附录1-13。添加与变量使用用一个对话框,变量ADDModify用于标识此刻为添加还是变更;m_ID用于保存资产ID值,该值为资产信息操作的索引;后10个变量用于保存“管理人员”、“部门”、“存放地点”、“增加方式”、“资产类别”的索引值与字符串值的对应关系,以保管人员为例,其作用就是通过保管人员ID值可以知道保管人员的真实姓名。 清理资产对话框 创建与控件相关的控件,如表5-2所示。表 5-2 清理资产对话框控件变量名称类型关联的控件ID意义m_strNameCStringIDC_CLE_NAME资产名称m_strAssetIDCStringIDC_CLE_AssetID资产编号m_strTypeCStringIDC_CLE_TYPE资产型号m_strInterIDCStringIDC_CLE_INTERID国际编号m_CtrlEditReasonCEditIDC_CLE_REASON清理原因控件变量m_strReasonCStringIDC_CLE_REASON清理原因m_dLRatioDoubleIDC_CLE_LRATIO残净值率m_nYearNumIntIDC_CLE_YEARNUM预计使用年限m_dOrigValueDoubleIDC_CLE_ORIHVALUE原值m_dLeftValueDoubleIDC_CLE_LEFTVALUE净值m_strRemarkCStringIDC_CLE_REMARK备注m_CtrlCBDeprecaiationCComboBoxIDC_CLE_DEPRECIATION折旧方式m_CtrlCBDepartmentCComboBoxIDC_CLE_DEPARTMENT使用部门m_CtrlCBDepositaryCComboBoxIDC_CLE_DEPOSITARY存放地点m_CtrlCBSortCComboBoxIDC_CLE_SORT资产类别m_CtrlCBAddTypeCComboBoxIDC_CLE_ADDTYPE增加方式m_CtrlCBKeeperCComboBoxIDC_CLE_KEEPER保管人员m_CtrlCBClearTypeCComboBoxIDC_CLE_CLEARTYPE清理方式m_CtrlCBFactoryCComboBoxIDC_CLE_FACTORY生产厂家控件变量m_strFactoryCStringIDC_CLE_FACTORY生产厂家名称m_CtrlCBUseInfoCComboBoxIDC_CLE_FACTORY使用情况控件变量m_strUseInfoCStringIDC_CLE_FACTORY使用情况名称m_CtrlCBPersonCComboBoxIDC_CLE_PERSON清理人控件变量m_strPersonCStringIDC_CLE_PERSON清理人m_LFDateCTimeIDC_CLE_LFDATE出厂日期m_InDateCTimeIDC_CLE_LFDATE购买日期m_ClearDateCTimeIDC_CLE_CLEARDATE清理日期m_CtrlListCListCtrlIDC_CLE_LIST列表控件变量 声明类的其他变量为了实现应用的DAO数据库操作,需要在操作DAO的类里声明DAO数据库对象,这里主要是CDaoDatabase和CDaoRecordest对象。代码声明如代码附录1-14。 借出、还入、送修、修回资产对话框资产借出、还入、送修、修回对应的关联变量与前面已经介绍过的“添加/变更”、“清理”窗体中的内容基本类似。 建立菜单在程序主框架中,为“资产管理”模块创建菜单项。如表5-3所示。表 5-3 资产管理菜单资源ID标题ID_ADD添加(&A)ID_MODIFY变更(&M)ID_LIQUIDATE清理(&L)ID_LOAN借出(&O)ID_GIVEBACK归还(&G)ID_SENDREPAIRE送修(&S)ID_REPAIRED修回(&R) 主要代码 添加、变更资产对话框 在主视窗口类中为菜单中的“添加”、“变更”添加处理函数本模块中“添加”、“变更”使用同一个对话框,因此在视窗函数中应对对话框类CAddModifyAssets的布尔型成员变量AddModify进行赋值,用于标识当前的操作的操作为“添加”还是“变更”,当该变量为ture时表示添加,为false时表示变更。代码如代码附录1-15。 重载对话框的OnInitDialog函数在该函数中主要完成如下几项工作。 设置列表框控件属性为可整形选择,画网格线:m_CtrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); 根据用户的操作,初始化对话框界面。如果用户当前使用“添加”功能需将对话框的按钮上的字别标识为“添加”、“刷新”并且将标题变为“添加固定资产”;如果用户当前使用“变更”功能需将对话框的按钮上的字别标识为“修改”、“删除”并且将标题变为“变更固定资产”。需要注意的是,如果用户选择“变更”,对话框的所有控件应处于不可用状态,由于该对话框中控件较多,因此这里专门定义了一个函数用以改变对话框控件的状态,函数名为SetEditale,该函数有一个布尔型的参数,如果该参数为ture,表示所有函数中的控件变为可用状态,为将false表示变为不可用状态。代码如代码附录1-16。连接数据库。代码如代码附录1-17。初始化对话框类的成员变量。“资产信息”表的”字段“类别ID”、“保管人员ID”、“部门ID”、“存放地点ID”、“增加方式ID”分别存储“保管人员”、“部门”、“存放地点”、“增加方式”、“类别”表中对应字段的索引值,这样做的好处就是使系统的灵活性更好。但是当将一条资产信息显示给用户的时候必须将索引值翻译成对应的名称。这个工作可以通过反复调用的数据库中的5个数据表来实现,但这样做的缺点就是需要反复打开关闭数据库,执行速度慢。本系统中采用的解决办法是将索引值和该索引值对应的名称分别存放到CUIntArray数组和CStringArray数组中。当需要将索引值翻译成名称的时候,可先到CUIntArray数组中查询该索引处于数组中的第几项,对应地查找CStringArray型数组该项的值即可达到翻译的目的。代码如代码附录1-18。 重载Destroy Window函数函数Destroy Window在窗口关闭时自动被调用,在该函数中主要完成断开与数据库连接。代码如代码附录1-19。 编写Refresh函数该函数是自己编写的,用于根据数据库内容刷新列表框控件内容。首先输出列表中的原有内容。代码如代码附录1-20。根据数据库中表“资产信息”的字段为列表框控件添加题头。代码如代码附录1-21。将数据库“资产信息”表中的内容显示到列表框控件中。“资产信息”表中的3、15、16、17和18类分别为“资产类别ID”、“使用部门ID”、“存放地点ID”、“增加方式ID”、“保管人员ID”,需要将索引数字翻译成具体内容,这时需要调用自定义函数IdToString进行翻译。代码如代码附录1-22。 实现IdToString函数该函数是用户自己编写的,用与将资产类别ID”、“使用部门ID”、“存放地点ID”、“增加方式ID”、“保管人员ID”的索引值翻译成具体内容。该函数的思想是通过循环,将数组CUIntArray的内容与索引处于数组中的第几项,通过查找CStringArray型数组的对应项可知该索引对应的内容,该函数的返回值就是这个具体内容。该函数有两个参数,第一个参数表示索引值,第二个参数用于表示是资产类别ID”、“使用部门ID”、“存放地点ID”、“增加方式ID”、“保管人员ID”中的哪一项。如果通过所找不到对应的名称值,说明该项已经被删除,返回“!删除!”。代码如代码附录1-23。 实现列表框控件的LEN_ITEMCHANGED消息函数该函数当列表框发生变化(如列表框的条目被选种)时自动被调用。作用是当列表框中的一个条目被选中时,将该条目的信息显示到响应的控件中,使按钮“修改”、“删除”变为可用;当没有选中时,“修改”、“删除”按钮不可用,同时将编辑框控件内容清空并使其不可用。在该函数中调用了3个自定义函数Fill、Empty和SetEditable。SetEditable前面已经介绍过,作用是控制控件的可用与不可用。Fill函数用于将列表框控件中选中的信息显示到对应的编辑框、组合框等控件中;Empty函数用于将控件中的内容清空。代码如代码附录1-24。 为第一个按钮提供实现函数对于“添加”界面,第一个按钮需要完成的功能是添加;对于“变更”截面,第一个按钮需要完成的功能是修改。无论是添加还是修改,在更新数据库前都要给用户一个提示对话框,询问是否完成该动作,如果用户选择确定需要判断用户所输入的信息是否填全。在所有的数据都有效才能进行数据库的更新。代码如代码附录1-25。 为第二个按钮提供实现函数对于“添加”界面,第二个按钮需要完成的功能是刷新;对于“变更”截面,第二个按钮需要完成的功能是删除。刷新完成的工作就是根据数据库重写列表框控件中的内容清空。删除前要给用户一个提示对话框,询问是否删除信息,如果用户选择确定则从数据库中删除该信息。可同时删除多条记录,删除每一条记录前都会有一个提示窗口询问是否删除。代码如代码附录1-26。 清理资产对话框对话框的OnInitDialog函数、Destory Window函数、Refresh函数、IdTpString函数Fill函数和里表框控件的了LVN_TIEMCHANGED消息函数与“添加、删除资产对话框”大体一致。在实行清理工作前需要判断“清理人”、“清理原因”、“清理方式”控件中内容是否填全。如果没有填全会给出提示对话框,并将对话框光标转到该控件,代码如代码附录1-27。可同时清理多条记录,清理多条纪录通过一个循环完成。通过类CListCtrl的成员函数GebNextItem可以获得下一条被选中的记录在列表框中的索引值,如果返回值是-1,说明已经没有被选中的项了,结束循环。被清理的记录将会被记录到“清理资产”表中,同时在“资产信息”表中该记录的“使用情况”字段被标识“清理”。已经被清理的纪录不会出现在列表框控件中,被清理记录的下一条将处于被选中状态。3 借出资产对话框 这里主要介绍“借出”按钮的执行函数。完成借出工作前应判断“借出人”、“借用人”、“批复人”、“借用理由”控件中的内容是否填全,如果没有填全将出现提示对话框,并将光标移至该控件。如果选择确定,该资产在“资产信息”表的“使用情况”栏中将被标识为“借出”,同时该记录被存到“借出还入资
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童绘本阅读与认知发展关系研究-洞察及研究
- 工业副产磷石膏综合利用项目投资计划书
- 污水处理厂水质提标改造项目社会稳定风险评估报告
- 多核异构环境下的Green负载均衡策略-洞察及研究
- 2026届湖南株洲市第十八中学高二化学第一学期期中复习检测模拟试题含解析
- 绿色生物甲醇改造项目技术方案
- 湖南省岳阳市岳阳县第一中学2026届高三化学第一学期期中检测模拟试题含解析
- 地下电网管廊土建工程技术方案
- 城市与乡村-环境文学的双重视角-洞察及研究
- 物流企业员工培训课程设计
- 2025广东广州市海珠区凤阳街道第四批招聘雇员5人考试笔试模拟试题及答案解析
- 营盘山隧道施工方案设计
- 2025至2030中国电站建设行业市场深度调研及投资策略及有效策略与实施路径评估报告
- 2026年广西现代职业技术学院单招职业技能考试必刷测试卷及答案1套
- 砌筑抹灰升降平台专项施工方案
- 中学生宿舍楼施工组织设计
- 医院地震知识培训内容课件
- 酒狂古琴曲教学课件
- 机电行业职业知识培训课件
- 大学生创新创业(邓文达)全套教案课件
- 研学基地安全管理与应急预案
评论
0/150
提交评论