• ·申请链接
  • ·站点地图
  • ·用户注册
  • ·用户登录
  • ·收藏本站
  • ·联系我们
  • λ我爱Aspx >> Asp.Net >> 用VB.NET和Excel排生产计划
  • 用VB.NET和Excel排生产计划

  • :未知  Դ:internet  :2007-5-5 13:30:49  ؼ:.net
  • 用VB.NET和Excel排生产计划

    作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http://www.Tuenhai.com/
    开发工具:Microsoft Visual Studio .NET 2003 操作系统:Windows XP 企业信息化失败原因探讨 中国企业上线ERP的成功率是不高的。这是为什么呢? 实用的ERP系统有两个特征: 1. 要求具有高度的定制性 2. 要能根据企业实际随时修改ERP系统 而现在企业的ERP系统开发基本采用外包模式,开发人员虽然也可以深入公司各个部门,掌握各个方面信息,然后进行定制开发。但是开发人员毕竟不是企业实际从业人员,掌握信息的广度、深度毕竟是有限的,因此,通常情况下,所开发的ERP系统难以保证第一个特征:要求具有高度的定制性。 另一方面,企业的实际情况随时都可能发生变化,ERP系统也要随时修改,才可能随时满足企业的需求。如果说一开始,ERP系统是满足企业需求的,那么一年以后呢?当然开发人员也可以跟踪企业需求,随时修改ERP系统,但总归是不太方便。 理想的企业信息化模式 个人认为,理想的企业信息化模式是这样的: 1.企业信息化系统的开发应由企业内部人员进行,而不是外包 只有这样,实用的ERP系统所要求的两个特征:要求具有高度的定制性; 要能根据企业实际随时修改ERP系统就很可能两者都具备了。 2.企业信息化要从实际工作需要出发,逐步推进 公司实际从业人员(兼开发人员)从实际工作需要出发,开发出相应的信息化模块、功能,再逐步完善。 现实中,许多企业开发的信息化系统功能很多,但又有多少人会用呢,最终是花架子而已。 就象笔者所在单位,说大不大,说小不小,但要一开始推行信息化管理,是不可能的。企业各部门人员素质不一,是不可能被普遍接受的。 要实现笔者所述理想的企业信息化模式,最大的困难是什么? 最大的困难是是人才难得,特定管理人员要同时具备两种能力:管理能力和开发能力。这种人才并不是每个企业都能得到的。 笔者虽然谈不上什么人才,但近几年从事的却是企业管理工作,并对信息化管理系统的开发亦略知一二。笔者就有可能亲身实践“理想的企业信息化模式”,并把有关经验与大家分享。 公司实际情况分析 从2004年起,tuenhai主管公司的计划工作,包括制定并下发产品生产计划,自制件生产计划,外协件采购计划等。原来公司内一直用手写的方式,由于公司产品的型号较多,如果tuenhai也是用手工填写,计划一多,整天忙于机械式的写写算算,做不了什么事情。所以tuenhai考虑用电脑代替部分机械性的工作,tuenhai就可以腾出精力抓其他方面事情了。电脑可以辅助、代替tuenhai做哪些机械性的工作呢? 比如,每一成品由零件组装而成,零件分自制件和外协件。每一产品由哪些零件组成是固定的。每个月的生产计划,都要分解成自制件生产计划和外协件采购计划,这个分解工作tuenhai决定交给电脑来完成。 程序开发模式分析 用什么开发工具,用什么开发模式来实现所要求的功能呢?公司内暂时只有tuenhai自己运用,要实现的功能也不多,在一开始并没有必要用复杂的大型数据库系统。为方便信息共享,tuenhai决定用VB.NET调用Excel来实现功能模块。 为什么用VB.NET而不用C#,因为Excel中有个VBA,其语法和VB.NET是近似的。而且,VB.NET和C#的区别主要是语法,而非功能。 tuenhai现在只要求实现用程序自动安排《自制件生产计划》,这个功能不用VB.NET,单用VBA也能轻易实现。但是,考虑到以后可能的功能扩充、升级,还是用VB.NET。VB.NET是面向一代的开发工具,功能强大,而且调用EXCEL也很方便。 不推荐用VB6,VB.NET的入门及初级应用并不难,为何还要去用早期版本,而不用最新版本,掌握最新技术呢! 用VB.NET和Excel排生产计划 软件构思是这样的: 先在EXCEL里定制好《自制件生产计划》的样表(模板),保存为自制件生产计划.xls,其中只有一个sheet:样表。在样表中设置好各种格式,填写好固定项。再新建一空白workbook,保存为2004年自制件生产计划.xls。 新建一VB.NET应用程序,命名为生产计划报表。在窗体上放很少几个控件,如:几个文本框,用来输入产品数量;checkbox用来先选择是正式生产计划还是增补生产计划;另外用二个文本框用来输入计划时间和计划编号。 点击button,程序打开自制件生产计划.xls和2004年自制件生产计划.xls,把样表copy到2004年自制件生产计划.xls,并自动在目标sheet中填写各自制件需要生产的数量。 下面是实现代码及详细注释。注意,要先添加com引用Microsoft Excel Object Library,tuenhai的是office 2003,引用Microsoft Excel 11.0 Object Library。
    Private Sub producePlan() Call killEXCEL() '调用杀死EXCEL进程过程 '以下代码判断用户填写信息是否完整,如不完整则提示信息并退出. If chkFormal.Checked = False And chkSubjoin.Checked = False Then MsgBox("是正式计划还是增补计划??", MsgBoxStyle.Critical, "请先选择计划性质") Exit Sub End If If txtDay.Text = "2004年月" Then MsgBox("什么月份的生产计划???", MsgBoxStyle.Critical, "请填写计划时间") Exit Sub End If If txt703.Text = Nothing Or txt909.Text = Nothing Or txt931.Text = Nothing Or txt932.Text = Nothing Then MsgBox("请填写计划台数!", MsgBoxStyle.Critical, "计划台数填写不全") Exit Sub End If If chkFormal.Checked = True And chkSubjoin.Checked = True Then MsgBox("正式和增补两者只能选一!", MsgBoxStyle.Critical, "请重新选择计划性质") Exit Sub End If '以下代码即是计算各自制件的数量,用中文来命名是免去代码注释 Dim 涂氟龙面板703 As Integer = CType(txt703.Text, Integer) Dim 钛金面板909 As Integer = CType(txt909.Text, Integer) Dim 油磨不锈钢面板931 As Integer = CType(txt931.Text, Integer) Dim 油磨不锈钢面板932 As Integer = CType(txt932.Text, Integer) Dim 底盘24 As Integer = 涂氟龙面板703 Dim 底盘22 As Integer = 钛金面板909 Dim 底盘41A As Integer = 油磨不锈钢面板931 Dim 底盘41B As Integer = 油磨不锈钢面板931 Dim 水盘25 As Integer = 涂氟龙面板703 Dim 水盘24 As Integer = 涂氟龙面板703 Dim 水盘22 As Integer = 钛金面板909 * 2 Dim 中心支架2 As Integer = 涂氟龙面板703 + 钛金面板909 Dim 长支架931 As Integer = (油磨不锈钢面板931 + 油磨不锈钢面板932) * 2 Dim 支架931U As Integer = 油磨不锈钢面板931 * 2 Dim 支架932U As Integer = 油磨不锈钢面板932 * 2 Dim 磁头抱攀 As Integer = (钛金面板909 + 油磨不锈钢面板931 + 油磨不锈钢面板932) * 2 Dim 电池抱攀 As Integer = (涂氟龙面板703 + 钛金面板909 + 油磨不锈钢面板931 + 油磨不锈钢面板932) * 2 Dim 三通抱攀 As Integer = 电池抱攀 / 2 Dim 炉头垫片 As Integer = 电池抱攀 * 3 '定义一个数组,方便在EXCEL中循环写入数字,也可以放在EXCEL的VBA中实现 Dim allNum() As Integer = _ {涂氟龙面板703, 钛金面板909, 油磨不锈钢面板931, 油磨不锈钢面板932, _ 底盘24, 底盘22, 底盘41A, 底盘41B, _ 水盘25, 水盘24, 水盘22, _ 中心支架2, 长支架931, 支架931U, 支架932U, _ 磁头抱攀, 电池抱攀, 三通抱攀, 炉头垫片} Dim excelApp As New Excel.Application Dim excelBook As Excel.Workbook '自制件生产计划.xls Dim excelbook2004 As Excel.Workbook '2004自制件生产计划.xls Dim excelWorksheet As Excel.Worksheet Dim planProperty As String '计划性质,是正式计划还是增补计划 Try '建议用try方式捕捉错误,处理错误 excelBook = excelApp.Workbooks.Open(Application.StartupPath & "\自制件生产计划.xls") excelbook2004 = excelApp.Workbooks.Open(Application.StartupPath & "\2004年自制件生产计划.xls") excelWorksheet = CType(excelBook.Worksheets("样表"), Excel.Worksheet) excelWorksheet.Copy(After:=excelbook2004.Sheets("sheet1")) '把样表copy到<2004年自制件生产计划>workbook中sheet1的后面 excelApp.Visible = True '设置工作薄为可视 If chkFormal.Checked = True Then planProperty = "正式" ElseIf chkSubjoin.Checked = True Then planProperty = "增补" End If With excelbook2004.ActiveSheet '用with 简化代码 .Range("D1").Value = txtDay.Text '计划时间 .Range("C2").Value = "laoban公司" & txtDay.Text & planProperty & "采购计划" '计划依据 .Range("C25").Value = Now.Date.Today.ToShortDateString '这就是制表日期 .Range("F2").Value = txtNO.Text '计划编号 End With For i As Integer = 0 To 18 '共19种自制件 excelbook2004.ActiveSheet.cells(4 + i, 4) = allNum(i) '4+i是行号,第二个4是列号 Next '循环把各自制件数填入<2004年自制件生产计划>中的活动工作表相应位置 Catch ex As Exception '捕捉错误,并回收资源,显示错误 excelBook = Nothing excelbook2004 = Nothing excelWorksheet = Nothing excelApp = Nothing GC.Collect(0) MsgBox(ex.ToString) '显示错误信息,以查找定位 Exit Sub '出错就退出 Finally '这里的代码一定会被执行到 excelBook = Nothing excelbook2004 = Nothing excelWorksheet = Nothing excelApp = Nothing GC.Collect(0) End Try MsgBox("已排好自制件生产计划,请查看") excelBook = Nothing excelbook2004 = Nothing excelWorksheet = Nothing excelApp = Nothing GC.Collect(0)End Sub
    Ҷƪл˵?
    第一页上一页12下一页尾页
  • һƪ从注册表读取程序的版本
    һƪ用Socket类构建网页下载器
    • VS.NET 学习方法论——tuenhai的..[05-05]
    • .net的4个基本概念[05-05]
    • Autodesk官方最新的.NET教程(二..[05-05]
    • ADO.NET 和 ADO 的比较[05-05]
    • 对比.NET PetShop和Duwamish来探..[05-05]
    • Autodesk官方最新的.NET教程(一..[05-05]
    • VB.NET实现DirectDraw9 (2) 动画[05-05]
    • 学习笔记(补)《.NET框架程序设..[05-05]
    • ?dos下编译.net程序找不到csc.e..[05-05]
    • vs.net 2005中文版下载地址收藏[05-05]
    • 用Socket类构建网页下载器[05-05]
    • VS.NET 学习方法论——tuenhai的..[05-05]
    • .net的4个基本概念[05-05]
    • 从0开始,打造高效团队之二——记..[05-05]
    • 另类boss——pangshengdong[05-05]
    • Autodesk官方最新的.NET教程(二..[05-05]
    • 递规删除一整棵树 我自己的想法[05-05]
    • ADO.NET 和 ADO 的比较[05-05]
    • 对比.NET PetShop和Duwamish来探..[05-05]
    • Duwamish深入剖析-配置篇[05-05]
    • 赞助广告
    • 热门Top20
    • ·[Asp.Net] 南洋理工 校花 下载 南洋..
    • ·[Asp.Net] 南洋理工校花录像
    • ·[书籍] Visual C# 2005程序开发..
    • ·[Asp.Net] 从ASP过渡到ASP.net遗留..
    • ·[.NET专题] Microsoft .Net Remotin..
    • ·[Asp.Net] 通常C#面试题
    • ·[综合资讯] 如何看k线图-K线图三十个..
    • ·[综合资讯] 百度国庆徽标漏绘南海诸..
    • ·[Asp.Net] 江塘集中营剧情分集介绍
    • ·[综合资讯] 火影忍者234话在线观看
    • ·[Asp.Net] C#打造天气预报的WebSer..
    • ·[Asp.Net] ASP.Net 2.0的Web.confi..
    • ·[Asp.Net] 火影忍者在线观看及下载
    • ·[Asp.Net] 精妙SQL语句,基础,提升..
    • ·[Asp.Net] 海军副司令情妇图片
    • ·[Asp.Net] 刘亦菲全档案
    • ·[Asp.Net] 用Visual C#实现文件下载
    • ·[Asp.Net] 性爱录音(木子美)碎语
    • ·[开源] 图书馆管理系统Asp.net2..
    • ·[Asp.Net] JavaScript表单验证集锦
    • 推荐文章
    • ·从ASP过渡到ASP.net遗留的二十大..
    • ·百度称维基百科指责无道理
    • ·百度语音搜索今日上线
    • ·百度PKGoogle人机交互
    • ·酷6股权换百度流量
    • ·百度贴吧增加投票功能
    • ·腾讯QQ也做见不得人的事:带流氓软..
    • ·Programming ASP.NET中文版(第3版..
    • ·google生活搜索上线啦
    • ·2007a*star百度之星程序设计大赛..
    • ·百度电影视频搜索证明百度更加懂..
    • ·百度主题推广和Google Adsense
    • ·百度真的很麻烦
    • ·百度七大罪
    • ·了解WEB页面工具语言XML(五)好处
    • 最新文章
    • ·用Socket类构建网页下载器
    • ·VS.NET 学习方法论——tuenhai的..
    • ·.net的4个基本概念
    • ·从0开始,打造高效团队之二——记..
    • ·另类boss——pangshengdong
    • ·Autodesk官方最新的.NET教程(二..
    • ·递规删除一整棵树 我自己的想法
    • ·ADO.NET 和 ADO 的比较
    • ·对比.NET PetShop和Duwamish来探..
    • ·Duwamish深入剖析-配置篇
    • ·Autodesk官方最新的.NET教程(一..
    • ·Duwamish深入剖析-结构篇
    • ·VB.NET实现DirectDraw9 (2) 动画
    • ·学习笔记(补)《.NET框架程序设..
    • ·VB/ASP 调用 SQL Server 的存储过..
    • ·?dos下编译.net程序找不到csc.e..
    • ·通过Web Services上传和下载文件
    • ·【小技巧】一个判断session是否过..
    • ·NHibernate快速指南(翻译)
    • ·vs.net 2005中文版下载地址收藏
    • 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
    • Copyright © 2007 5iaspx.COM. All Right Reserved.
    • 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!