生产销售管理系统
摘要:本管理信息系统是严格按照软件工程的思想,利用 Visual C++在 应用 程序
开发上灵活和效率高的特点来开发的。此生产销售管理系统的功能是完成公司的产品信
息、成品信息、顾客信息以及销售信息的管理,具有对各种信息进行添加、修改、删除、
查询的功能。主要有系统、车间与客户信息管理、产品信息管理、营销信息管理、帮助几
个模块。
关键词:生产销售管理系统;Visual C++;Internet;SQL Server2000
Abstract:This MIS is developed in Visual C++, making use of its agility,
efficiency and following the bisic pricipals of Software Engineering. This
Production & Vendition Managing System is designed to manage the information
of productions, goods, customers, and vendition, has functions of information
adding, modifying, deleting, querying, including modules of
system/workshops/customers managing, productions managing, vendition managing,
and online help.
Key words:Production & Vendition Managing System; Visual C++; Internet;
SQL Server2000
1 引言
生产管理主要的功能,便是负责制造出 企业 的产品或服务。由于资源的投入企业系
统,而产生出客户需要的产品及服务。输入企业系统的包含人员、设备、材料、物料、能
源、技术、服务、厂房、土地、资金及政府法令规章、 社会 及环境的要求等资源或信
息,企业系统输出的是企业产出的产品或服务。而企业系统就是我们利用输入转换为产出
的机制。信息的流动及传递需是双向的,转换的机制便利用这些双向流动的信息来改善转
换机制的绩效,使得转换机制运作的更有效率。
一个 现代 的企业,要能生存才是最重要的。能生存且具有其它企业所不能及的竞争
优势,才是企业能长久生存之道。成本低、品质好、交货时间短、生产弹性大是现在以及
可预见的未来,客户门的主要诉求,是难以改变的。生产管理就是要找出如何做好且领先
同业的 方法 ,彻底执行,以建立企业特殊的竞争优势,让其它企业可望但不容易学到的
竞争优势。
采用生产管理系统对物资的生产及出入情况进行管理,可以方便地完成各类统计,为
生产销售人员及时提供相关信息。这样便于企业对物资流的管理条理化,清晰化,有利于
提高企业的效率。
谈到生产管理,我们就会联想到接单、零组件采购、进料数量与品质控制、生产计划
与安排、制造与组装、生产调度调查、仓储及交货运输等,这些生产管理的相关活动。然
而,生产管理的名称上虽然没有改变,但整个企业环境、管理的概念与做法、使用的工
具,甚至 科技 与创新的应用等,在近十数年中,都有了非常大的改变。由于市场产品
(或服务)价格的快速降低,以及因应客户要求的零库存、快速交货、保证品质,而必须
建立及执行供应链管理系统。藉助 计算 机化、信息化、甚至 电子 化来掌握生产上、资
源上的任何信息,才能供应客户接近百分之百的良好制品。满足客户的需求,确保企业长
久生存 发展 及股东投资利润。
2 设计 内容
此生产销售管理系统的功能是完成公司的产品信息、成品信息、顾客信息以及销售信
息的管理,具有对各种信息进行添加、修改、删除、查询的功能。主要有以下几个功能模
块:
(1)系统模块——保存和处理用户信息,进行登陆时对比密码及更改密码,退出系统
等功能,高级用户还具有添加用户的功能。
(2)车间与客户信息管理模块——用于对车间信息以及客户信息的添加、修改、删
除、查询。
(3)产品信息管理模块——用于对产品信息的添加、修改、删除、查询。
(4)营销信息管理模块——用于对成品信息以及销售信息的添加、修改、删除、查
(5)帮助模块——关于生产销售管理系统的介绍。
3 方案与实施步骤
方案
(1)首先设计好数据库, 分析 整个生产销售管理系统。在数据库中建好将用到的
表。
(2)使用 VC++ 设计界面,并编写程序。
(3)用 ADO连接数据库。
(4)调试,实现最后的功能。
实施步骤
(1)收集资料阶段。了解管理信息系统尤其是生产销售管理系统的知识,在此期间,
主要工作是从书籍及互联网中寻找资料及范例,借鉴经验。
(2)进一步 学习 和巩固 VC++和 SQL Server2000的内容,为下一步着手操作打好
坚实的基础。
(3)编程实现。这个过程主要是通过编制程序实现该课题的各项功能,需要熟悉开发
软件和数据库,需要不断的调试才能实现。
4 数据库概念结构设计
本系统通过对公司管理销售工作过程的内容和数据流程分析,设计了以下数据项和数
据结构:
(1)生产车间信息,包括数据项有:车间编号、车间名称、主管姓名、联系地址、所
属工厂、所属部门、邮政编码、联系电话、传真号码、车间主页和备注信息。
(2)顾客信息,包括数据项有:顾客编号、公司名称、联系人姓名、公司地址、所在
城市、所在地区、邮政编码、电话号码、传真号码、公司主页和备注信息。
(3)产品信息,包括数据项有:商品编号、商品名称、商品规格、计量单位和备注信
息。
(4)进货信息,包括数据项有:进货信息编号、供应商编号、供应商名称、商品编
号、商品名称、商品规格、计量单位、商品数量、商品单价、进货信息和备注信息。
(5)销售信息,包括数据项有:销售信息编号、顾客编号、顾客名称、商品编号、商
品名称、商品规格、计量单位、商品数量、商品价格、进货日期、折扣和备注信息。
5 关键模块的设计与实现
车间与客户信息管理模块设计
这个模块包括 2个部分:车间信息管理和客户信息管理,车间信息的最终目的为了提
供给生产和销售部分进行生产计划和销售计划的;而客户信息也是为了提供给销售部门计
划销售的信息。这 2个模块都是很重要的组成部分。
车间信息管理模块主要实现了以下功能:添加车间信息;修改车间信息;删除车间信
息;查询车间信息。
添加车间信息的对话框如图 1所示:
图 1 添加车间信息窗体
在窗体上放置多个文本框,用来输入车间信息;两个按钮,用来确定是否添加车间信
息;多个标签,用来提示文本框中需要输入的内容。
程序首先检查输入的内容是否符合系统的要求,输入符合要求后,检查数据库中是否
有重复的记录,如果没有重复记录,则把该记录添加带数据库中。
void CProviderDLG::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
(" ");
(" ");
(" ");
(" ");
(" ");
(" ");
(" ");
(" ");
(" ");
// Make sure all needed info is available
CString sWarning="";
if ( ""==m_sCompany ) sWarning=_T("车间名称");else if ( ""==m_sPerson )
sWarning=_T("主管姓名");
else if ( ""==m_sAddress ) sWarning=_T("联系地址");
else if ( ""==m_sCity ) sWarning=_T("所属工厂");
else if ( ""==m_sArea ) sWarning=_T("所属部分");
else if ( ""==m_sPostCode ) sWarning=_T("邮政编码");
else if ( ""==m_sPhone ) sWarning=_T("联系电话");
else if ( ""==m_sFax ) sWarning=_T("传真号码");
else if ( ""==m_sHomePage ) sWarning=_T("车间主页");
if ( ""!=sWarning )
{
sWarning += _T("不能为空");
AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
return;
}
_variant_t strQuery;
if (m_bAppend || m_sCompany!=m_sOldCompany)
{
// Judge Provider is unique
strQuery = "select * from suppliers where CompanyName="+m_sCompany+"";
(_pADOSet, strQuery);
int iCount = _pADOSet->GetRecordCount();
if ( 0!=iCount )
{ AfxMessageBox(_T("已经存在此车间记录!"), MB_ICONEXCLAMATION);
return;
}
}
if ( !m_bAppend ) // Not Append, delete old record first
{
strQuery = "delete from suppliers where CompanyName="+m_sOldCompany+"";
(_pADOSet, strQuery);
}
// Insert Record
strQuery = "insert suppliers (CompanyName, ContactName, Address, City,
Region, PostalCode, Phone,Fax, HomePage, SupplierMemo) values ("+m_sCompany+",
"+m_sPerson+", "+m_sAddress+", "+m_sCity+", "+m_sArea+", "+m_sPostCode+",
"+m_sPhone+", "+m_sFax+", "+m_sHomePage+", "+m_sMemo+")";
if ( (_pADOSet, strQuery) )
{ if (m_bAppend)
{AfxMessageBox(_T("添加车间信息成功!"), MB_ICONINFORMATION);
// Clear all input
m_sCompany=m_sPerson=m_sAddress=m_sCity=m_sArea=m_sPostCode=m_sPhone=m_sFax=m_
sHomePage=m_sMemo="";
UpdateData(false);
}
else AfxMessageBox(_T("修改车间信息成功!"), MB_ICONINFORMATION);
}
else
{if (m_bAppend) AfxMessageBox(_T("添加车间信息失败!"),
MB_ICONEXCLAMATION);
else AfxMessageBox(_T("修改车间信息失败!"), MB_ICONEXCLAMATION);
}
strQuery = "select * from suppliers";
CTrade_MISView* p = (CTrade_MISView*)(((CMainFrame*)AfxGetMainWnd())-
>GetActiveView());
p->RefreshProvider(strQuery);
if (!m_bAppend) CDialog::OnOK();
}
主对话框界面设计
登陆完成后,显示主对话框,对话框采用下拉式菜单与按钮的结合,较方便、简洁。
菜单为用户同 Windows 应用 程序间的交互提供了主要的 方法 ,使得用户可以快速地驾
驭高层的用户界面结构。菜单包括首项和菜单项。菜单项本身还可以包含弹出式子菜单,
以提供到应用程序代码的层次化路径,并可以被禁用、选中,还可以像单选按钮控件一样
使用。在正常情况下,菜单应在菜单资源中显示,菜单资源中包含了菜单中所有的首项和
子菜单项。可以丛资源编辑器中添加菜单资源。
本系统有 5个下拉菜单,即 5个模块,分别是用户管理模块、车间与客户信息管理模
块、产品信息管理模块、营销信息管理模块、帮助模块。
用户管理模块主要实现以下功能:用户登陆;添加用户;修改用户密码。
(1)用户管理模块的添加用户模块,添加的用户为普通的用户,在普通用户的界面下
不能在添加用户,其他操作都可以照常进行。添加用户的对话框如图 2所示,以及代码如
下:
图 2 用户管理窗体
void CAppendAccountDLG::OnOK()
{UpdateData(true);
(" ");
// Judge whether user name is null
if ( ""==m_sUSER )
{AfxMessageBox(_T("请输入用户名称"), MB_ICONEXCLAMATION);
return;
}
// Judge whether the user exsists
_variant_t Holder, strQuery;
strQuery = "select * from user_Info where user_ID="+m_sUSER+"";
(_pADOSet, strQuery);
int iCount = _pADOSet->GetRecordCount();
if ( 0!=iCount )
{AfxMessageBox(_T("用户名已经存在,请重新输入用户名"),
MB_ICONEXCLAMATION);
return;
}
// Make sure pwd1 is not null
if (""==m_sPWD1)
{AfxMessageBox(_T("密码不能为空"), MB_ICONEXCLAMATION);
return;
}
// Judge whether pwd1==pwd2
if (0!=(m_sPWD2) )
{AfxMessageBox(_T("两次输入密码不一样,请确认"), MB_ICONEXCLAMATION);
return;
}
CDialog::OnOK();
}
BOOL CAppendAccountDLG::OnInitDialog()
{CDialog::OnInitDialog();
((CEdit*)GetDlgItem(IDD_APPEDNACCOUNT_USER))->SetLimitText(15);
((CEdit*)GetDlgItem(IDD_APPEDNACCOUNT_PWD1))->SetLimitText(10);
((CEdit*)GetDlgItem(IDD_APPEDNACCOUNT_PWD2))->SetLimitText(10);
return TRUE;// return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
6 小结
本生产销售管理系统集信息的显示、输入、修改、删除、查询等各种处理为一体,信
息维护起来非常方便。一个公司的产品信息众多,销售情况复杂,对这些数据还要进行管
理保存,而且还需要了解公司的生产销售状况,工作量可想而知。实现系统的自动化将在
很大程度上缓解这一状况,对数据的管理、保存变得十分简单。利用次系统,用户可以方
便地浏览信息,找到需要的信息并对其进行修改。
参考 文献 :
[1]李闽溟,吴继刚,周学明. Visual C++ 数据库系统开发实例导航[M]. 人民邮
电出版社,.
[2]求是 科技 .Visual C++数据库开发技术与工程实践[M]. 人民邮电出版
社,.
[3]Jon Bates,Tim Tompkins. 实用 Visual C++ 教程[M]. 清华大学出版
社,.
[4]黄维函. Visual C++面向对象与可视化程序设计习题解析与编程实例[M]. 清华大
学出版社,.
[5]兰芸. Visual C++编程事例精解[M]. 北京希望 电子 出版社,.