1、彩电故障信息共享系统丁佑光(厦门大学应用电子技术专业 2000 级 厦门 福建 361005)摘要本文介绍了如何使用 Visual C+.0 编程制作信息共享系统,实现信息管理共享的自动化。由此实现了信息的增加、删除、修改、查看等功能,并且进而实现信息的安全管理,使信息的管理更加人性化,规范化。从而提高故障排除效率,提高信息利用率,有助于进一步提高了生产效率。AbstractThe main work of this paper is introduce how to use Visual C+.0 programming a Color TV Malfunction-Information
2、In-Common System, achieve the auto-manage of the Malfunction-Information. According these, this system achieves the informations function of add、delete 、edit and view., it also get the information managed safety, so the management of the information will be more humanity 为了能使系统在各个环境下都可正常运行,需要修改此函数,使
3、数据库实现动态链接,修改后的函数程序如下:CString CDataSet:GetDefaultDBName()char path50;CString m_strDatabaseName;:GetCurrentDirectory(50,path); /得到当前应用程序所在的路径strcat(path,“);m_strDatabaseName=_T(path);m_strDatabaseName+=“info1.mdb“; /将所对应文件改成所要的数据库名return m_strDatabaseName; /返回数据库所在的完整路径同样的,我们也必须修改 CLoginSet:GetDefault
4、DBName()函数。因为其内部程序与CDataSet:GetDefaultDBName()相同,所以我们就不再此列出。五 功能模块的创建在链接了数据库后,接下来我们就可以开始进行各功能模块的创建。a) 系统主体窗体的创建在我们按照 VC+的 AppWizard 创建完工程后,为了使主窗口框架更适合整个系统的操作,我们有必要进行修改,重新创建。(1) 主菜单的创建在 WorkSpase 中选择 ResourseView,然后双击 Menu 文件夹,再双击IDR_MAINFRAME 选项,单击右边窗口中 “帮助”旁边的虚线框,在双击或按回车键,就会出现“Menu Item Properties”
5、对话框,在这个对话框中输入菜单项的内容,如图 8 所示。图 8 设置一级菜单二级菜单的设置基本上都和图 8 相同,只是必须设置 ID。按照这种方法,最终创建出如表 2 所示的菜单结构。菜单名称 ID文件.打印 ID_FILE_PRINT.打印预览 ID_FILE_PRINT_PREVIEW.打印设置 ID_FILE_PRINT_SETUP.最近文件 ID_FILE_MRU_FILE1.退出 ID_APP_EXIT查看.工具栏 ID_VIEW_TOOLBAR.状态栏 ID_VIEW_STATUS_BAR信息管理.查询记录 ID_RECORD_SEARCH.添加记录 ID_RECORD_ADD.查
6、看记录 ID_RECORD_VIEW.删除记录 ID_RECORD_DEL.更改记录 ID_RECORD_EDIT权限管理.添加用户 ID_USER_ADD.更改密码 ID_PASSWARD_EDIT.删除用户 ID_USER_DEL帮助.关于 xiahua 1.0 ID_APP_ABOUT表 2 菜单结构(2) 右键菜单的创建为了实现操作的方便、快捷,我们在程序中加入了右键菜单。在 VC 的主菜单中,按“Project”“New Project”“Components and Controls Gallery”即可进入“Components and Controls Gallery”对话框,
7、然后再打开 Visual C+ Components 文件,再选择“Pop-up Menu”,单击“insert” ,随后在跳出的对话框中选择“CxiahuaView” ,最后单击“OK” 。完成后,需要对其进行编辑。单击 WorkSpase 中的 ResourseView,在 Menu文件夹中选择 CG_IDR_POPUP_MAIN_FRAME,之后边可在右边窗口对其进行编辑。编辑方法与主菜单相同,其中各项的 ID 分别对应相应的菜单项,对应关系如表 3 所示。菜单名称 ID查看记录 ID_RECORD_VIEW添加记录 ID_RECORD_ADD删除记录 ID_RECORD_DEL更改记录
8、 ID_RECORD_EDIT表 3 右键菜单对应的菜单项 ID(3) 工具栏的创建在 WorkSpase 中选择 ResourseView,然后双击 Toolbar 文件夹,再双击IDR_MAINFRAM 选项,就可以利用工具条编辑器(Toolbar Editor)编辑右边的工具条。本系统创建的工具条如图 9 所示。其中各按钮的 ID 分别对应相应的菜单项,按从做到右的顺序对应的菜单项 ID 如表 4 所示。次序 ID1 ID_FILE_PRINT2 ID_RECORD_ADD3 ID_RECORD_DEL4 ID_RECORD_SEARCH5 ID_RECORD_ALL6 ID_APP_A
9、BOUT表 4 工具条对应的菜单项 ID(注:其中第 5 个是显示全部数据,实现刷新功能,在菜单中没有)(4) 数据显示与表格控件的创建因为 CxiahuaView 是从 ClistView 继承的,所以创建完工程后,就已经有表格控件存在。而我们目的就是使控件上的显示更符合系统的使用,所以我们有必要对初试界面也就是对 CXiahuaView:OnInitialUpdate()函数进行修改,修改后的函数如下:void CXiahuaView:OnInitialUpdate()CListView:OnInitialUpdate();/ TODO: You may populate your Lis
10、tView with items by directly accessingCListCtrl ctl.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL);ctl.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);/设置窗体类型/初始化 m_pSet 指针,m_pSet 原型为 CDataSet* m_pSetm_pSet=/初始化 m_pLset 指针, m_pLset 原型为 CLoginSet* m_pLsetm_pLset= if(m_pSet-IsOpen()m_pS
11、et-Close();m_pSet-Open(); /打开数据库GetDocument()-SetTitle(“彩电故障信息共享系统“); /设置标题CString str;/以下是设置控件按钮显示字符str.LoadString(IDS_SERIAL);ctl.InsertColumn(0,str);ctl.InsertColumn(1,“显象管“);ctl.InsertColumn(2,“机芯“);ctl.InsertColumn(3,“机壳“);ctl.InsertColumn(4,“器件“);ctl.InsertColumn(5,“技术员“);ctl.InsertColumn(6,“时
12、间“);ctl.InsertColumn(7,“其他“);ctl.InsertColumn(8,“信息名“);ctl.InsertColumn(9,“具体内容“);m_bIsAsc=TRUE;m_bIsShowAll=TRUE;ShowTableData(); /调用显示数据函数,显示数据接下来就是要编写 ShowTableData()函数。程序如下:void CXiahuaView:ShowTableData()CListCtrl ctl.DeleteAllItems(); /删除所有已显示内容m_pSet-MoveFirst(); /将 m_pSet 指针指向首条记录int i=0;int
13、 ColWidth10=0;while(!m_pSet-IsEOF() /如果没有到达数据末尾,则显示数据LV_ITEM lvItem;lvItem.mask = LVIF_TEXT;lvItem.iItem = i;lvItem.iSubItem=0;CString str;str.Format(“%d“,i+1); /序号列lvItem.pszText=(LPTSTR)(LPCTSTR)str;if(ctl.GetStringWidth(lvItem.pszText)ColWidth0)ColWidth0=ctl.GetStringWidth(lvItem.pszText);ctl.Ins
14、ertItem(/以下显示各条内容lvItem.iSubItem = 1; lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_crt);if(ctl.GetStringWidth(lvItem.pszText)ColWidth1)ColWidth1=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=2;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_clips);if(ctl.GetStringWidth(lvItem.pszText)ColWidt
15、h2)ColWidth2=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=3;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_case);if(ctl.GetStringWidth(lvItem.pszText)ColWidth3)ColWidth3=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=4;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_device);if
16、(ctl.GetStringWidth(lvItem.pszText)ColWidth4)ColWidth4=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=5;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_workor);if(ctl.GetStringWidth(lvItem.pszText)ColWidth5)ColWidth5=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=6;/CString
17、 stTmp =m_pSet-m_date.Format(“%Y-%m-%d“);/ %H:%M:%S/strcpy(lvItem.pszText,(LPSTR)(LPCSTR)stTmp);lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_date);if(ctl.GetStringWidth(lvItem.pszText)ColWidth6)ColWidth6=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=7;lvItem.pszText=(LPTSTR)(LPCTSTR)(m
18、_pSet-m_other);if(ctl.GetStringWidth(lvItem.pszText)ColWidth7)ColWidth7=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSubItem=8;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_info);if(ctl.GetStringWidth(lvItem.pszText)ColWidth8)ColWidth8=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(lvItem.iSub
19、Item=9;lvItem.pszText=(LPTSTR)(LPCTSTR)(m_pSet-m_content);if(ctl.GetStringWidth(lvItem.pszText)ColWidth9)ColWidth9=ctl.GetStringWidth(lvItem.pszText);ctl.SetItem(i+;m_pSet-MoveNext(); /将 m_pSet 指针指向下条记录/设置各数据项的显示宽度for(int j=0;jMoveFirst(); /将 m_pSet 指针再指向首条记录,便于下次操作到此,我们完成了主体框架的制作,主窗口如图 9 所示。图 9 主窗口
20、b) 系统用户权限管理模块的创建为了数据库使用的安全,必须对数据库的各种操作实行权限管理。只有管理员允许的人员才有权力使用。允许的用户和密码都预先存在数据库中,本系统中为 login 表。权限管理模块主要实现如下功能: 添加用户 更改密码 删除用户 用户登录(权限验证)(1) 添加用户对话框的创建在 ResourseView 中,右击 Dialog,选择 Insert Dialog,便可在右边窗口中编辑对话框。完成的对话框如图 10 所示。对话框中各种非静态文本控件的属性见表 5。图 10 添加用户对话框 图 11 密码修改对话框控件 ID用户名 Edit Box IDC_USER密码 Edi
21、t Box IDC_PSWD确认密码 Edit Box IDC_COMPSWD表 5 添加用户对话框中各控件的属性设置对话框编辑完成后,双击该对话框,进入 New Class 对话框,取此登记对话框的类名为 CAddUser。然后在 MFC ClassWizard 中选择 Class name 为 CXiahuaView,Object IDs 为“ID_USER_ADD”,Messages 为“COMMAND” ,单击 Add Function 按钮,取系统默认的函数名,再单击 Edit Code 按钮,即可进入代码编辑器对函数 CXiahuaView:OnUserAdd()进行编辑。此函数代码如下:void CXiahuaView:OnUserAdd() / TODO: Add your command handler code hereCLoginSet *m_daorecordset=new CLoginSet(/初始化连接数据库指针
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。