< 返回
生产销售管理系统

摘要:本管理信息系统是严格按照软件工程的思想,利用visual c++在应用程序开发上灵活和效率高的特点来开发的。此生产销售管理系统的功能是完成公司的产品信息、成品信息、顾客信息以及销售信息的管理,具有对各种信息进行添加、修改、删除、查询的功能。主要有系统、车间与客户信息管理、产品信息管理、营销信息管理、帮助几个模块。

关键词:生产销售管理系统;visual c++;internet;sql server2000

中图分类号:tp315文献标识码:a文章编号:1009-3044(2007)18-31506-03

production & vendition managing system

wang jian-hong1, liao feng2, liu pin3

(1. department of business and economy, jiangxi science & technology normal university, nanchang 330038, china; 2. experimental center, jiangxi manufacturing vocational technical college, nanchang 330001, china; 3. jiangxi dayu vocational institute, nanchang 330043, china)

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 方案与实施步骤

3.1 方案

(1)首先设计好数据库,分析整个生产销售管理系统。在数据库中建好将用到的表。

(2)使用vc++ 6.0设计界面,并编写程序。

(3)用ado连接数据库。

(4)调试,实现最后的功能。

3.2 实施步骤

(1)收集资料阶段。了解管理信息系统尤其是生产销售管理系统的知识,在此期间,主要工作是从书籍及互联网中寻找资料及范例,借鉴经验。

(2)进一步学习和巩固vc++6.0和sql server2000的内容,为下一步着手操作打好坚实的基础。

(3)编程实现。这个过程主要是通过编制程序实现该课题的各项功能,需要熟悉开发软件和数据库,需要不断的调试才能实现。

4 数据库概念结构设计

本系统通过对公司管理销售工作过程的内容和数据流程分析,设计了以下数据项和数据结构:

(1)生产车间信息,包括数据项有:车间编号、车间名称、主管姓名、联系地址、所属工厂、所属部门、邮政编码、联系电话、传真号码、车间主页和备注信息。

(2)顾客信息,包括数据项有:顾客编号、公司名称、联系人姓名、公司地址、所在城市、所在地区、邮政编码、电话号码、传真号码、公司主页和备注信息。

(3)产品信息,包括数据项有:商品编号、商品名称、商品规格、计量单位和备注信息。

(4)进货信息,包括数据项有:进货信息编号、供应商编号、供应商名称、商品编号、商品名称、商品规格、计量单位、商品数量、商品单价、进货信息和备注信息。

(5)销售信息,包括数据项有:销售信息编号、顾客编号、顾客名称、商品编号、商品名称、商品规格、计量单位、商品数量、商品价格、进货日期、折扣和备注信息。

5 关键模块的设计与实现

5.1 车间与客户信息管理模块设计

这个模块包括2个部分:车间信息管理和客户信息管理,车间信息的最终目的为了提供给生产和销售部分进行生产计划和销售计划的;而客户信息也是为了提供给销售部门计划销售的信息。这2个模块都是很重要的组成部分。

车间信息管理模块主要实现了以下功能:添加车间信息;修改车间信息;删除车间信息;查询车间信息。

添加车间信息的对话框如图1所示:

图1 添加车间信息窗体

在窗体上放置多个文本框,用来输入车间信息;两个按钮,用来确定是否添加车间信息;多个标签,用来提示文本框中需要输入的内容。

程序首先检查输入的内容是否符合系统的要求,输入符合要求后,检查数据库中是否有重复的记录,如果没有重复记录,则把该记录添加带数据库中。

void cproviderdlg::onok()

{

// todo: add extra validation here

updatedata(true);

m_scompany.trimright(" ");

m_sperson.trimright(" ");

m_saddress.trimright(" ");

m_scity.trimright(" ");

m_sarea.trimright(" ");

m_spostcode.trimright(" ");

m_sphone.trimright(" ");

m_sfax.trimright(" ");

m_shomepage.trimright(" ");

// 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+"";

theapp.adoexecute(theapp.m_padoset, strquery);

int icount = theapp.m_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+"";

theapp.adoexecute(theapp.m_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 ( theapp.adoexecute(theapp.m_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();

}

5.2 主对话框界面设计

登陆完成后,显示主对话框,对话框采用下拉式菜单与按钮的结合,较方便、简洁。菜单为用户同windows应用程序间的交互提供了主要的方法,使得用户可以快速地驾驭高层的用户界面结构。菜单包括首项和菜单项。菜单项本身还可以包含弹出式子菜单,以提供到应用程序代码的层次化路径,并可以被禁用、选中,还可以像单选按钮控件一样使用。在正常情况下,菜单应在菜单资源中显示,菜单资源中包含了菜单中所有的首项和子菜单项。可以丛资源编辑器中添加菜单资源。

本系统有5个下拉菜单,即5个模块,分别是用户管理模块、车间与客户信息管理模块、产品信息管理模块、营销信息管理模块、帮助模块。

用户管理模块主要实现以下功能:用户登陆;添加用户;修改用户密码。

(1)用户管理模块的添加用户模块,添加的用户为普通的用户,在普通用户的界面下不能在添加用户,其他操作都可以照常进行。添加用户的对话框如图2所示,以及代码如下:

图2 用户管理窗体

void cappendaccountdlg::onok()

{updatedata(true);

m_suser.trimright(" ");

// 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+"";

theapp.adoexecute(theapp.m_padoset, strquery);

int icount = theapp.m_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_spwd1.compare(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++ 6.0 数据库系统开发实例导航[m]. 人民邮电出版社,2002.10.

[2]求是科技 .visual c++6.0数据库开发技术与工程实践[m]. 人民邮电出版社,2004.1.

[3]jon bates,tim tompkins. 实用visual c++ 6.0教程[m]. 清华大学出版社,2000.8.

[4]黄维函. visual c++面向对象与可视化程序设计习题解析与编程实例[m]. 清华大学出版社,2000.3.

[5]兰芸. visual c++6.0编程事例精解[m]. 北京希望电子出版社,2002.3.

注:本文中所涉及到的图表、注解、公式等内容请以pdf格式阅读原文。