当前位置:文档之家› 平面设计公司业务管理系统

平面设计公司业务管理系统

《数据库系统原理》课程设计报告-----平面设计公司业务管理系统姓名:学号:指导教师:起始时间:截止时间:目录概述 (2)第一章需求分析 (3)§1.1信息要求 (3)第二章结构设计 (4)§2.1概念结构设计 (4)§2.2逻辑结构设计 (6)第三章主要模块设计及代码 (7)§3.1数据库连接模块 (7)§3.2认证登录模块 (9)§3.3查询显示模块 (9)§3.4添加,修改,删除模块 (12)第四章总结 (14)第五章参考文献 (15)概述编写目的本报告作为软件使用的重要指南,可以方便用户使用。

同时,也是一份重要的技术文档,方便开发人员继续完善各项功能,更新软件。

为了更好地管理平面设计公司的各项工作,撰写此文档。

项目背景订单管理是每所公司或工厂必须面对的工作,大量的订单管理给企业带来了沉重的负担。

传统人手方式管理文件档案,已经无法满足当前业务量的正常需求。

这种管理方式存在许多缺点:效率低,保密性差,另外随着进货数量的增加,这必然增加了订单管理者的工作量和劳动强度。

同时,将产生大量的文件和数据,这给订单信息的查找,更新和维护都带来了不少困难。

管理机制已经不能适应时代发展的需求,其管理方法将浪费人力物力。

随着科技的不断提高,计算机科学与技术日渐成熟,这种传统的手工管理模式必然被以计算机为物质基础的信息管理方式所取代。

软件定义图形化界面:人性化的界面,方便了员工的使用,对操作员技术要求不高。

数据存取:系统地保存数据,可以加快数据处理,提高工作量。

可以同时进行多人对数据的操作,保证数据存取不出错。

开发环境在Windows XP SP3 操作系统下,使用Visual C++进行开发。

数据存取使用SQL Server 2000平台。

第一章需求分析§1.1信息要求通过软件,可以查看,添加,保存,修改,删除各种业务信息。

如登录账户的信息,员工的信息,客户的信息,订单信息,送货单信息,历史单信息。

§1.2处理要求软件要灵活实现各种管理功能间的切换,减少麻烦的操作。

对于数据的修改,保证不会出错,确保数据的正确性。

在必要的地方,给予一定的提示,以防止误操作导致的数据异常。

图 1.1 功能模块图§1.3安全性与完整性要求登录安全:采用用户名,密码方式登录系统。

不同职工具有的使用权限不同,管理员拥有最高权限。

其他员工根据职务需要规定所需权限。

完整性要求:对于一些必须的信息,不能留空值。

如编号,名称,日期等信息第二章结构设计§2.1概念结构设计各实体E-R图:图 2.2图 2.4图 2.5图 2.6§2.2逻辑结构设计图2.7 实体联系图图2.7 数据关系表账户 职工 历史单客户订单送货单稿件 拥有决定制定联系生成生成第三章主要模块设计及代码§3.1数据库连接模块为连接模块独自建立一个类,方便每次访问数据库时可以调用。

类命名为ADOConn。

采用ADO技术实现程序与数据库的连接。

用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll 的附属资源中,只需要直接用#import引用它既可。

直接在Stdafx.h文件中加入下面语句来实现:#import "c:\programfiles\commonfiles\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF") //实际上两行代码是在同一行显示,由于排版原因,分行显示//以下为ADOConn类里重要成员函数的代码://////////////////////////////////////////////////////////////////////////////函数名称:ADOConn//功能:初始化COM环境/////////////////////////////////////////////////////////////////////////////void C ADOConn::ADOConn(){::CoInitialize(NULL);try{pConn.CreateInstance("ADODB.Connection"); // 创建Connection对象//设置字符连接字符串,必须是BSTR型或者_bstr_t类型_bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DsnCompany;Data Source=BEN-PC;";//连接数据库的代码语句pConn->Open(strConnect,"","",adConnectUnspecified);}catch(_com_error e) //捕捉异常信息{AfxMessageBox(e.ErrorMessage());}}//////////////////////////////////////////////////////////////////////////////名称:OpenRecordset//功能:打开记录集/////////////////////////////////////////////////////////////////////////////_RecordsetPtr& CDataSource::OpenRecordset(CString sql){ASSERT(!sql.IsEmpty()); //判断是否为空集try{pRs.CreateInstance("ADODB.Recordset"); // 创建Recordset对象pRs->Open(_bstr_t(sql),_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText); }catch(_com_error e){AfxMessageBox(e.ErrorMessage());}return pRs;}void CADOConn::FreeData() //释放空间{if(pConn){pConn->Close();pRs.Release();pConn.Release();CoUninitialize();}}§3.2认证登录模块void CGraphicDsnDlg::OnOK() //确定按钮事件{// TODO: Add extra validation hereUpdateData();CMainMngDlg dlg;CString sql="select * from LogUser where UserName="+m_strUsername+" and PassWord='"+m_strPassword+"' ";a.pRs=a.OpenRecordset(sql);//将记录加入到记录集int n=a.pRs->RecordCount; //计算符合条目if (n>0){CDialog::OnOK(); //登陆成功dlg.DoModal();}else{::AfxMessageBox("用户名或密码不正确!"); //登陆失败return;}}§3.3查询显示模块BOOL CTickets::OnInitDialog() //订单管理类初始化函数{CDialog::OnInitDialog();// TODO: Add extra initialization herecn.ADOConn(); //连接数据库Display();//设置列表框控件的扩展风格//整行选择/有表格线/表头/单击激活DWORDdwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGD ROP|LVS_EX_ONECLICKACTIV A TE;//报表风格/单行选择/高亮显示选择行m_List.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);m_List.SetExtendedStyle(dwExStyle);//设置列表框控件的颜色// m_List.SetTextColor(RGB(200,200,0));// m_List.SetBkColor(RGB(240,247,233));//初始化列表,插入11列m_ListDoc.InsertColumn(0,"",LVCFMT_CENTER,0,0);m_ListDoc.InsertColumn(1,"稿件名称",LVCFMT_CENTER,120,0);m_ListDoc.InsertColumn(2,"长度*宽度",LVCFMT_CENTER,90,0);m_ListDoc.InsertColumn(3,"规格",LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(4,"色数",LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(5,"规格",LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(7,"输出机型",LVCFMT_CENTER,90,0);m_ListDoc.InsertColumn(8,"页数",LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(9,"单价",LVCFMT_CENTER,70,0);m_ListDoc.InsertColumn(10,"小计",LVCFMT_CENTER,80,0);m_ListDoc.InsertColumn(11,"客户名称",LVCFMT_CENTER,137,0);return TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSEreturn TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSE}void CTicketsMngDlg::Show() //输出单据信息到列表控件框{CString DocName;int index=m_oddno.GetCurSel();if (index==CB_ERR){AfxMessageBox(_T("出错!"));return;}m_oddno.GetLBText(index,coursename);CString s="select * from Documents where DocName='"+DocName+"'";a.pRs=a.OpenRecordset(s); //把数据加到记录集UpdateData();CString sql="select * from Documents where CustomerName='"+CustomerName+"'";a.pRs=a.OpenRecordset(sql); //打开数据到记录集_variant_tDocNo,DocName,Length,Format,Color,OutputMacMac,Pagess,Price,,CustomerName;//定义列表名变量int i=0;a.pRs=a.OpenRecordset(s);int nIndex=m_List.GetItemCount();LV_ITEM lvItem;lvItem.mask=LVIF_TEXT;lvItem.iItem=nIndex;lvItem.iSubItem=0; //第nIndex行lvItem.pszText=(char*)(LPCTSTR)DocName1; //第一列参数for (a.pRs->MoveFirst();!a.pRs->adoEOF;a.pRs->MoveNext()){m_List.InsertItem(&lvItem);DocName=a.pRs->GetCollect("DocName"); //取数据Length=a.pRs->GetCollect("Length");Format=a.pRs->GetCollect("Format");Color=a.pRs->GetCollect("Color");Pages=a.pRs->GetCollect("Pages");Price=a.pRs->GetCollect("Price");Subtotal=a.pRs->GetCollect("Subtotal");Color=a.pRs->GetCollect("Color");design=a.pRs->GetCollect("design");CustomerName=a.pRs->GetCollect("CustomerName");OutputMac=a.pRs->GetCollect("OutputMac");DocName.ChangeType(VT_BSTR); //改变类型Length.ChangeType(VT_BSTR);Format.ChangeType(VT_BSTR);Color.ChangeType(VT_BSTR);Pages.ChangeType(VT_BSTR);Price.ChangeType(VT_BSTR);Subtotal.ChangeType(VT_BSTR);Color.ChangeType(VT_BSTR);CustomerName.ChangeType(VT_BSTR);OutputMac.ChangeType(VT_BSTR);DocName=DocName.bstrVal; //调用bstrvalLength=Length.bstrVal;Format=Format.bstrVal;Color=Color.bstrVal;OutputMac1=OutputMac.bstrVal;Pages=Pages.bstrVal;Price=Price.bstrV al;Color=Color.bstrVal;CustomerName=CustomerName.bstrVal;}}§3.4添加,修改,删除模块:// 打开修改订单void CTicketsManDlg::OnItemmanButton(){// TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_Adodc.GetRecordset().GetEof()){MessageBox("请选择要修改的订单");return;}// 设置ListItemManDlg对话框中的变量CListItemManDlg dlg;dlg.cRegId = m_Datagrid.GetItem(0);// 打开ListItemManDlg对话框if (dlg.DoModal() == IDOK)RefreshData();elseRefreshData();//删除订单void CTicketsManDlg::OnDelButton(){// TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_Adodc.GetRecordset().GetEof()){MessageBox("请选择要删除的订单!");return;}if (MessageBox("是否删除当前记录?","请确认", MB_YESNO + MB_ICONQUESTION) == IDYES){CTickets reg;reg.SqlDelete(m_Datagrid.GetItem(0));RefreshData();}}第四章总结通过本次设计,初步掌握了通过Visual C++ 中的MFC功能实现程序的开发。

相关主题