随笔分类 - .NET Solution
.NET Solution
摘要:1、成功的人都是在不可能完成任务的情况下完成的,成功的人也从来不会抱怨客观条件多么糟糕。2、公司给你的资源,永远小于你做事需要的资源,这就是现实,就这么多人,就这样的素质,必须在现状中想出做事的办法。3、办任何事,都可能会出现这样那样的意外,但真正有本事的人总是能摆平。4、定期与每个员工在MSN等聊天工具上沟通或面对面沟通,了解他们现在的心理变化,了解他们对薪水、公司发展、职业发展的看法,以自己掌握的信息和自己的经验,对每个员工指出具体工作指导意见和发展方向建议。5、不要专门拿出一段时间来进行灌输式的培训,都是在日常工作中不断给预点对点指导,一种“师傅带徒弟”的方式,如何写稳定的代码、高性能的
阅读全文
摘要:ERP系统涉及到的单据数量多,一些单据的数据之间只有简单的计算方法,比如 金额=数量*单价 如果涉及税,则金额=数量*单价 + 税金 如果涉及折扣,则金额=数量*单价 + 税金 - 折扣 下面总结一下,较为复杂的计算方法。 1 求取物料低阶码 物料低阶码为MRP运算时,是否要暂停计算当前的需求,直到遇到它的低阶码时,才计算需求,以优先满足最低层的物料需求。比如下图中的D物料,它的低阶...
阅读全文
摘要:环境检测的功能在安装程序中应用的很普遍,ERP程序中也需要在系统第一次启动时,对所安装的环境进行检测,遇到不满足的情况要及时提示用户更新系统。 网格中显示要检测的编号,内容描述,最后一列是检测结果,工具栏Export可以将检测结果导出为EXCEL文件。 先来看检测规则的设定,仍然是发挥XML文件的功效,设定放到Xml文件中 当需要检测新的项目时,一般只需要更改此文件内容,增加检测...
阅读全文
摘要:ERP系统中要管理用户为单据上传的一些附件,比如增值税发票,退货发票,ROHS检测报告,这时,需要设计一个通用的附件管理模块来管理用户上传的附件。 数据表设计 IF OBJECT_ID ('dbo.Attachment') IS NOT NULL DROP TABLE dbo.AttachmentGOCREATE TABLE dbo.Attachment ( Index ...
阅读全文
摘要:在部署ERP应用时,经常会碰到在开发环境下,没有问题,部署到服务器上,就出错。不同语言版本的操作系统、不同的数据库版本,等等因素的数据库排序规则的问题。比如在安装SQL Server 时取默认的规则,中文环境下,会设置为Chinese_PRC_CI_AS,但我们需要的规则应该是SQL_Latin1_General_CP1_CI_AS。在数据操作过程中,这个不一致会导致SQL语句的字符串相等报错。错...
阅读全文
摘要:调试SQL语句是经常会碰到的需求,常常为了查找报表的数据是否正确,SQL脚本为什么取不到预想中的数据,一般都可以通过调试SQL语句来解决问题,找到原因。问题不一定是系统的Bug,可能是设置不正确,可能是数据之间没有关联。 看到园子里的一篇文章"介绍一款替代SSMS的sqlserver管理工具 toad for sqlserver5.7”,这个工具我最喜欢的功能当属SQL语句调试,其它的功能,SS...
阅读全文
摘要:三年前给客户做的一个物料采购系统,客户因为价格问题搁置,今天把它拿出来分享,以分析改善方法。 项目名称: Item Purchasing System /Item Purchasing Request 系统功能: 1) 配置 Configruation 公司和组织架构管理 Organization Manitenance: 目前的例子 三个公司(暂定命名为Shenzhen, S...
阅读全文
摘要:对于开始接触基于ORM技术开发的ERP程序,在相当长的时间内还是会考虑SQL语句,而不是ORM查询。即便是在很熟悉ORM查询,也不如对SQL语句的了解程度。于是想做出一个查询工具,把SQL语句转化为C#代码,用于查询。 这样的程序片段在很多地方都需用用到。 比如SQL语句 SELECT RECNUM ,CCY ,DESCRIPTION ,SUSPENDED ,DEFAULT_RATE F...
阅读全文
摘要:许可机制是ERP框架中必不可少的一部分,可以有效的保护框架资源在授权范围内应用,增加企业投资的回报。在研究了几种类型的许可机制(序列号注册码,Web服务联机验证,授权License文件)后,最后选定以Signed Xml配合RSA算法,作为许可机制的主要技术实现。 主要达到的目的如下 1 可以实现版本控制。企业版可使用所有的功能,专业版只可用部分功能,个人版免费使用,但功能集更少。 pub...
阅读全文
摘要:1 基于ORM(LLBL Gen)框架开发,界面与逻辑分离。 2 支持多种类型的数据库(SQL Server,Oracle,MySQL) 3 框架与业务代码完全分离,立即上手可以写一个进销存系统 4 支持两种类型的报表(Crystal Report,Reporting Service) 5 工作流设计,运行时,活动库,内建审批流,通知流 6 基于.net remoting C/S结构 ...
阅读全文
摘要:在设计一个ERP程序时,提取公共的代码到一个通用类型库中是必要的。这样可以减少代码重复,提高代码利用率。 但是,做任何事情都要有个度,有些公共的代码引起了过度封装,反而不利于代码的理解。 举例说明如下 public class ConfigHelper{ /// <summary> /// Gets whether the specified path is a valid a...
阅读全文
摘要:1 水晶报表的各种例子,要会做。比如产能报表。 2 ListBox有bug,新加的item不会显示出来。entity control也有bug 3 直接执行一个报表服务功能,而不是通过报表管理器去找,再执行。 给LicenseType=Trial中的所生成的报表加”试用版“ 4 Data Archine存成EXCEL文件,甘特图控件也是 5 所有与EXCEL相关的内容读写都使用Infr...
阅读全文
摘要:1 License许可验证中加hardware.id,在About对话框中读取出来。同时设计一个GenerateLicense方法。 2 FunctionTypePreloadWorker 预加载系统功能 CyrstalReportPreLoadWorker 水晶报表预加载模块。同时会检测系统当前的水晶报表版本。 3 服务模式 Remoting, StandAlone。 4 控制台输...
阅读全文
摘要:公司的ERP框架是用ORM技术来访问数据库的,但有些查询还是会用DataTable保存数据,并且会把用户修改后的数据保存到服务器中。在习惯了ORM的写法后,对于用DataTable的保存用户修改过的数据,然后保存到数据库中反而有些不适应。ORM会自动检测到哪些数据项被改动了,进而生成必要的UPDATE子句,如果没有数据被更改,则不会产生任何UPDATE语句,这是ORM的好处与便利。把这个技巧应用到...
阅读全文
摘要:对于习惯于用ORM来开发系统的开发人员来说,几乎不用写SQL语句,但是也要针对ORM框架,来设计合适的查询,ORM框架会生成合适的T_SQL语句并发送到SQL Server中。由于ORM框架有好几种,比如NHibernate,LLBL Gen,Entity Framwork,掌握熟练的SQL查询技术在这里没有用武之地,真是可惜。这篇文章是介绍我的Management Console中的一个工具程序...
阅读全文
摘要:园子里这两天讨论的比较多的是CSDN-中文IT社区 600万用户数据在互联网上的传播,作为一名技术人员,暂且放下各自的想法的意见,仅仅从技术的角度来讲,分析和考验一下我们的编程基础。把下载到的压缩文件释放到硬盘中,得到文件www.csdn.net.sql。作为技术人员,对这个文件产生好奇心和编程的冲动。于是提出了下面的两条编程题目:1 如何把600万数据导入到SQL Server中?2 如何选择合适的密码加密方法?这个SQL文件有273MB,用SQL Server Management Studio打开它,会产生OutOfMemory异常,用记事本打开也很慢,推荐用Ultra Edit源代码编
阅读全文
摘要:Management Console这个工具已经使用大半年了,期间经历了一些调整和修复。起初它是由一个ORM的扩展工具而来,后来经过众多工具的组合和拼接,逐渐庞大起来。在今年八月份就想到使用一个插件框架来把它们都集成起来,请参考文章《Management Console 工具管理类软件通用开发框架(...
阅读全文
摘要:设计一个灵活稳定的多层架构的程序不是件容易的事情。当有了成熟的模式和应用之后,还需要经历各种应用与需求考验,用直白的话说,就是要经得起折腾。最近在重构自己的EPN框架时,有了一些新的体会实践,与各位分享。 首先是数据库的设计,一个框架数据库驱动多个业务逻辑数据库,这已经是大家所推荐的模式了。 如图所示,框架数据库Framework包含业务数据的基础配置,它可以驱动一套或多套业务数据库的运行。 ...
阅读全文
摘要:.NET Resx格式的资源文件在日常开发中用的比较多,它用来存储常用的资源,可以是位图,文本文件,或是任何的电脑文件。先来看一下,它的日常用法 直接在这里Paste一个位图文件,然后在程序中以这种方式调用,非常的简洁明了 Bitmap bitmap = Resources.Button; 在知道这种方法之前,我一直是用Embedded Resource的方法,代码如下 publi...
阅读全文
摘要:最近一直在帮忙客户找程序方面的问题。当确定不是程序上的问题后,痛苦的过程就开始了:帮助客户修复计算错误的数据,也叫Data Fix。我们的ERP系统有1000多个表,有100个基础数据表,比如物料表,物料清单,工作单,销售单,采购单,这里包含表头(Header)和表明细(Detail),再加上100多个数据关联表,比如工作单与销售单的关联,工作单与物料进出,物料进出与仓库日记帐,仓库日记帐进而产生传票(voucher),成本(cost),这样加起来,又有100个多表。当发现程序有计算错误后,通常会修复程序,再帮助用户修复计算错误的数据。有时候程序修改好后,由于没有合并到客户的版本中,导致客户的
阅读全文