-1-目录进销存管理系统目录摘要0引言1系统需求分析2总体设计1项目规划2系统功能结构3设计目标3系统设计1开发及运行环境2数据库设计4功能模块设计1主窗口设计2系统登录管理3商品销售管理4商品入库管理5调货登记管理6权限设置管理附录A参考文献附录B数据表摘要【摘要】随着国家的政治经济政策的优化改革,使得国内中小企业得以蓬勃发展。可是随着企业的发展,客户数量的的为断增多,财务工作繁杂化,库存产品零乱等一系列问题也接踵而至,给企业经营者运作带来了很大的困扰。信息技术的迅猛发展,科学经营管理观念的迅速传播,使中小企业经营者逐渐认识到转变企业经营管理理念,改善企业经营管理模式是企业适应时代的发展急需解决的问题。现代管理,应该建立在真实、有效的数据信息基础之上,应该是一种科学的、理性的管理体制,而这种管理与经营的联系与互助,又必须依赖于计算机的强大的数据统计功能,计算机管理系统便是实际的企业进销问题与计算机强大数据统计功能相结合的产物。管理系统解决的了商业企业商品的进、销、存、退、换、盘、损、残、调、借、赠等一系列操作流程中的数据信息的处理问题,提供一系列的数据分析,帮助经营者合理的调整各个经营运作环节的运作节奏,并对商品流转过程进行了全程跟踪管理、相应款项流通的全程记录管理和票据信息统计的管理。因此进销存管理系统的全面应用,规范业务流程、提高了企业的管理水平,提高资金流动的透明度,加快商品资金周转速度,进而全面提高了企业的经营水平、进而全面提升了企业的经济效益。【关键词】进销存管理系统0引言企业经营如逆水行舟不进则退。每一个努力发展的企业都明白,先进管理的重要作用,引进先进管理系统使企业经营变得规范、合理。进销存管理系统无论是在功能设计还是业务流程上都尽可能做到满足经营管理运作流程的需求,并且操作方便、功能强大,即使操作者对计算机知识一窍不通也能一用就会。它强化库存管理,规范业务流程,提高资金管理的透明度,加快商品资金周转,是企业经营管理中数据分析中必不可少的管理工具。1系统需求分析根据市场的需求,要求系统具有以下功能:实现商品入库、入库退货操作。实现商品销售、销售退货操作。实现库存管理(调货、盘点)操作。实现信息的查询、打印功能。准确地进行账款记录、账款查询。2总体设计2.1项目规划根据需求分析,设计系统框架。进销存管理系统由等8部分组成。设计各部分具体功能如下:基础信息模块基础信息模块包括药品信息、员工信息、供应商信息和客户信息4部分。销售模块销售模块由销售登记、销售退货、销售查询、销售退货查询4部分。入库模块入库模块主要由入库登记、入库退货、入库查询、入库退货查询4组成。调货模块调货模块包含调货登记和调货查询两部分。库存模块库存模块由库存盘点、库存查询、仓库管理3部分组成。结账模块结账模块主要包括销售结账、销售退货结账、入库结账、入库退货结账。财务模块财务模块由日结、月结、供应商往来账、客户往来账4部分组成。系统管理模块系统管理模块由修改用户密码、修改用户权限、修改用户3部分组成。–2–2.2系统功能结构进销存管理系统的功能结构如图1所示。基础信息进销存管理系统销售模块入库模块药品信息员工信息入库登记入库退货销售登记销售退货销售查询销售退货查询调货登记调货查询库存盘点库存查询仓库管理调货模块库存模块供应商信息客户信息入库查询入库退货查询结账模块销售结账销售退货结账入库结账入库退货结账财务模块日结月结供应商往来账客户往来账系统管理模块修改用户密码修改用户权限修改用户图1进销存管理系统功能架构图3设计目标本系统是根据中小企业的实际需求而开发的,完全能够实现商品入库、销售管理,通过本系统可以达到以下目标:系统运行稳定,安全可靠。界面设计美观,人机交互界面友好。信息查询灵活、方便、快捷、准确,数据存储安全可靠。强大的报表预览、打印功能。信息安全保密。3系统设计3.1开发及运行环境1.硬件要求CPU:300MHz以上的处理器。内存:128MB,推荐256MB。硬盘:150MB以上剩余空间。–3–显示像素:最低800*600,最佳效果1024*768。2.软件要求操作系统:Windows2000/NT/XP/CE。数据库:SQLServer2000。3.2数据库设计1.数据库概要说明本系统采用SQLServer2000数据库,系统数据库名为ypgl,中共包含46个表,其中作为临时表的有20个,作为数据存储表的有26个。临时表:lsdhinfo0、lsdhinfo1、lsgys0、lsgys1、lskcquery0、lskcquery1、lskh0、lskh1、lsrkquery0、lsrkquery1、lsrkthinfo0、lsrkthinfo1、lsxsquery0、lsxsquery1、lsxsthinfo0、lsxsthinfo1、lsyg0、lsyg1、lsypinfo0、lsypinfo1。数据存储表:tabbf、tabck、tabdhdj、tabdhph、tabgys、tabjsfs、tabkc、tabkcpddj、tabkcpdph、tabkh、tabpurview、tabpurviewctrl、tabrkdj、tabrkjz、tabrkph、tabrkthdj、tabrkthjz、tabrkthph、tabxsdj、tabxsjz、tabxsph、tabxsthdj、tabxsthjz、tabxsthph、tabyginfo、tabypinfo。图2所示的即为本系统中数据库的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。–4–图2数据库概要说明2.主要数据表的结构数据库中的数据表请参见附录B。4功能模块设计4.1主窗口设计进销存管理系统主窗口由菜单、工具栏、客户区域和状态栏四部分组成,效果如图3所示。–5–图3进销存管理系统主窗口1.菜单设计(1)在工具栏中单击按钮,或者从菜单中选择“View”/“Workspace”项,这时会弹出如图4所示的工作区窗口(Workspace窗口)。在工作区窗口中,能看到该程序所使用的资源,且每种资源都有一个资源符号,主窗体也使用了一个资源符号IDD_A1_DIALOG,这是VC缺省提供的。可以在这里添加或者删除各种资源。图4Workspace窗口(2)在工作区窗口(Workspace窗口)右键单击“a1resources”选项,在弹出菜单中选择“Insert...”选项,将弹出“InsertResource”对话框。在该对话框中选择“Menu”选项,然后单击“New”按钮,将生成如图5所示的菜单资源。–6–图5编辑菜单资源(3)右键双击菜单资源编辑器的虚线空白框,在弹出的菜单中选择“Properties”选项,将弹出“MenuItemProperties”对话框,在“MenuItemProperties”对话框的“caption”(标题)编辑框中键入:“基础信息(&I)”(符号&可以使字母I有一个下划线,而且可以通过“Alt+I”访问该菜单项。此时关闭“MenuItemProperties”对话框,将在菜单编辑器中生成主菜单“基础信息”。双击“基础信息”菜单下的虚线空白框,在弹出的“MenuItemProperties”对话框中设计“药品信息(&M)”、“员工信息(&Y)”等菜单项。(4)同上,可以设计其他主菜单及菜单项。最后得到如图6所示的菜单界面。图6菜单界面2.工具栏设计在应用程序中要经常使用工具栏,它是最常用的界面元素,对应着应用程序的最常用功能。主窗口共有9个工具栏按钮,分别是“销售登记”、“销售退货”、“销售结账”、“入库登记”、“入库退货”、“入库结账”、“调货登记”、“库存登记”、“退出”工具栏按钮。创建工具栏可使用MFC类库中的CToolBarCtrl类,该类用来生成工具条。本系统主窗体的工具栏将引用MSDN提供的类CStandardBar,该类派生自CToolBarCtrl。操作步骤如下:(1)从基类CToolBarCtrl中派生需要的类CstandardBar。选择“Insert”/“NewClass...”菜单项,在弹出来的“NewClass”对话框中设置“ClassType”为“MFCClass”,在“ClassInfomation”中的Name编辑框中键入“CstandardBar”,然后在“BaseClass”下拉列表框中选择“CtoolBarCtrl”,最后单击“OK”按钮。(2)需要9个按钮,每个按钮有相应的文本和图片。所以,需要添加如图7所示的图片资源,资源长为288像素,高为32像素,资源符号为:IDR_STANDARDBAR。–7–图7图片资源(3)添加字符串资源(StringTable),如表1所示。表1字符串资源资源符号值字符串资源IDSTR_XSDJ102销售登记IDSTR_XSTH103销售退货IDSTR_XSJZ104销售结账IDSTR_RKDJ105入库登记IDSTR_RKTH106入库退货IDSTR_RKJZ107入库结账IDSTR_DHDJ108调货登记IDSTR_KCPD109库存盘点IDSTR_OUT110退出(4)程序中引入资源,创建工具栏按钮。创建工具栏按钮需要重写Create函数,该函数创建工具栏的步骤如下:①先创建工具栏窗口,然后为工具栏类添加图片资源。相关函数是:SetBitmapSize(CSize(32,32));//设置单个位图的大小VERIFY(AddBitmap(m_nButtonCount,IDR_STANDARDBAR)!=-1);//添加位图m_nButtonCount是指按钮图片的个数,IDR_STANDARDBAR对应着相应的图片。②创建相应数量的按钮,并为每个按钮分配相应图片资源和文本资源,设置相关属性。m_pTBButtons=newTBBUTTON[m_nButtonCount];//用来加入到工具栏里的按钮……m_pTBButtons[nIndex].iString=AddStrings(pString);m_pTBButtons[nIndex].fsState=TBSTATE_ENABLED;m_pTBButtons[nIndex].fsStyle=TBSTYLE_BUTTON;m_pTBButtons[nIndex].dwData=0;m_pTBButtons[nIndex].iBitmap=nIndex;//控制按钮的相关图片m_pTBButtons[nIndex].idCommand=nIndex+IDSTR_XSDJ;//用于命令消息传递在步骤②中,要注意如下事项:①AddStrings(pString)返回一个字符串的基于0的编号,该值用来连接字符串到按钮上,其中的字符串参数pString需要两个结束符来表示结尾,必须将字符串写成如下形式:pString=Onlyonestringtoadd\0;CString类不能提供这样的功能,因为不可能在CString中保存超过一个结束符的字符串。所以,将CString中的字符串取出,以char定义的字符串保存,再对该字符串添加一个结束符,做法如下:CStringstring;string.LoadString(nIndex+IDSTR_XSDJ);//装载字符串资源……//取得字符串的长度为了添加一个结束符,给长度加1–8–intnStringLength=string.GetLength()+1;……TCHAR*pString=string.GetBufferSetLength(nStringLength);//按增加后的长度返回字符串pString[nStringLength]=0;函数GetBufferSetLength的过程分配了nStringLength+1长度的内存空间,并在加上结束符'\0'之后,复制原字符串到这个新的内存空间中,同时将原字符串的结束符也复制到新的位置,于是,该函数结束后,字符串pString已经有两个结束符了,最后一个语句略显