ERP框架序设计与开发日记(上)
1 License许可验证中加hardware.id,在About对话框中读取出来。同时设计一个GenerateLicense方法。
2 FunctionTypePreloadWorker 预加载系统功能
CyrstalReportPreLoadWorker 水晶报表预加载模块。同时会检测系统当前的水晶报表版本。
3 服务模式 Remoting, StandAlone。
4 控制台输入放到一个RichTextBox中,方便调试出问题。
6 LineNo, EntryNo的区别。
7 C:\Users\Public\Documents\Rem Objects Sample\Rem Object SDK
分两类消息BinMessage, SoapMessage. 这个框架在一开始建立很好,到后面要是移植到它上面来,要花费很多精力。
8 查询设计师可以设计存储过程,并传递参数.
exec sp_ICRPAGR %1 %2
9 物料编码精灵,这个功能相当不错。也解释了物料分组别的一个意义:生成统一的物料编码。
10 附件可以上传到数据库中,也可以直接保存一个路径引用。同时,需要写一个附件浏览器。
11 采购申请批准功能,代表同一类功能,需要批核。
12 Database Explorer功能,右边加一个treeView,以显示当前object的子对象。
13 产品规格,这个功能代表一类功能。主表浏览,从表可以编辑。
14 LineNo EntryNo不显示小数点,Qty 4位小数, Amt 4位小数
15 写一个grid样式的Lookup Maintenance,可以一眼看到所有的Lookup。
16 保存界面布局:应当可以保存grid列的顺序,treeView当前的选中节点。
17 TextEditor限制可以输入的字符数
18 Tab顺序,页面Enter转成Tab。
19 采购的供应商保存后,不允许修改。代表同一类功能,只能第一次创建时,可选值。保存后不可以修改。
总共有以下几个值:ReadOnly CapsLock AllowEditForNewOnly Hidden Required
20 对Grid的编辑,不会引发整个窗体进入编辑状态。dateTimePicker也会不引发窗体进入编辑状态。
21 几个需要重点关注与研究的行业:模具,电子,制衣。
22 系统实施步骤:主档数据,其次是跑流程,第三,做好数据的验证(validation),代值(drilldown),查找(lookup)
23 所有的系统功能先放一下,先专心做好业务功能。
24 VS2010中,源码以0x开头的16进制,应该要改成10进制,以方便研究。
25 做一个图片下载功能。可爬一个页面的所有html link,然后再到这个里面的所有link,继续深挖,可设计层级(level),最后下载图片网页。 可参考蓝蜘蛛源码。
26 物料主档有20个备注资料,写一个功能来设置它的Label名字,再写一个功能来设置它的值来源(通常是分析参数)。
27 支持条形码,二维码。
30 模具报价功能。可以计算塑胶模具的价格。报价计算方法。
31 帐户类别,需要预设多个行业的帐户编码。
32 导出类型:Mircrosoft Excel, Microsoft Access, Text
33 清理表,除去系统中不用的表,以提供系统的精准度。
34 部门功能的增强,可以以树型结构来设计部门,最后又可以显示为树型结构。
35 Database Explorer可以显示表的占用空间大小,表的描述信息。
36 保存页面布局:Grid的AllowFilter没有保存,MainMenu的TreeView没有保存。但是其它的UltraTreeView可以完整的保存布局。以解决问题为目标,而不是以自己的解决问题方法。
37 设计一个附件浏览器,可查看所有的带附件的功能的内容。
38 如何自动生成报表,并发送的指定的邮箱中。工作流邮件通知。
39 做Data Fix时,如何自动生成流水号码,根据记录的编码规则生成流水号。
40 TextEditor 自动滚动,AppendText到当前追加的行。
41 Grid中如何设置列输入值必须大写。
42 GRN收货时,会删除以前的预留。
43 优秀的SQL调试工具:DBArtisan,可以调试SQL语句。
44 ORM本身就是一个数据迁移工具,可以在多个数据库之间迁移数据。100行代码制作数据迁移工具。
45 MSTest工具如何自动删除Test Result。
46 数据抓取工具,可抓取人才网招聘信息,博客数据,航班信息。
47 Tuple.Create泛型方法,可以做成多主键值的字典数据。
48 高级查询 Advanced Query 中Debug的实现,可以反射成员。
49 RDLC的多版本支持,RDL2005,RDL2008,RDL2010,RDL2012,目前为止有四个版本的格式。
50 TSQL解析并生成ORM代码,需要解析更复杂的SQL语句。
51 写一个生成CMD命令行的工具,需要对一个目录中的所有DLL混淆输出,用于网上评估。
52 进销存是基本的例子,基本的功能包含数据清理,数据再开始,物料编码精灵,条码支持,员工主档,部门树架构视图,物料清单无限制分类。
53 插件框架的应用。
54 多数据库支持:Oracle,MySQL, SQL Server。
55 企业级应用开发平台的设计与实现
1) 日记帐,日记帐查询
2) 报表(rdlc,rdl,rpt) 水晶报表8,9,10,11,12,报表服务rdlc2005,2008,2010,2012.
3) 查询设计器,C#代码设计的查询,存储过程。
4) 工作流包含三个组件: 设计器,运行时,活动库
5) 窗体设计器 UI重布局,Lookup修改
56 Lookup可以写在自定义程序中,可以用代码写Lookup。
57 主窗体定时器,再加上DesktopAlter。
58 PRSFSC员工主档,应该做精致一点,做好做漂亮一些。
59 下载几个GB的系统,观察他们的界面,规范,可操作性。
60 PCD Tracker. FLEXPCD20091004.bak
61 ClientProxy.Create要用全名,以防止系统资料库与公司数据库名字重复。
Foundation.InterfaceClasses.ISessionManager
Foundation.Managers.SessionManager
Lagos.Managers.CompanyManager
Lagos.Interfaces.ICompanyManager
62 BaseCommon最后以Shared命名。有可能要找到所有的反射调用。
63 实现批次过帐的功能 系统和公司的都可以。IsSystemDatabase=true
64 对于SLORDH.POSTED的值,Y,N不可以为NULL,以防止错误。
65 object control 可以输入字符,日期,checkbox,多个选项。range, data range。
66 修改数据库排序规则,一般默认为USA标准的SQL_LATING_CP1_CI_AS
67 Grid的VisiblePosition,可视位置。
68 Schedule Task 操作系统自动做数据库备份,自动升级程序,自动Build新版本
69 凯威ERP(深圳市大宇精雕数控有限公司,平湖,dayucnc.com) 大帮手ERP
70 数据字典功能 男/女, 省份 ,目前只支持二级数据,不支持三级数据。
71 克隆功能有问题,没有清空子对象的主键。
72 心跳机制。检测服务器状态。
73 给系统加功能,自动加上权限。
74 Tree Size Professional 分析硬盘文件夹占用大小。U8 ERP安装到虚拟机中。
75 ERP中的关键技术,整理打打印出来做成册子,方便用,改善。
76 WINDOWS登陆时,如果是空密码,如何输入。认证类型:PASSWORD, DOMAIN,DOMAIN可以不用输密码
77 几种改善效率的做法:及时关闭数据库连接,实现IDispose,using(XX x=new } 模式
使用数据库连接池,只返回一行数据用TOP 1,分页显示,每次显示1000条,使用缓存。采用多线程,ThreadPool比Thread更有效率。采用并行技术。
78 效率分析工具 JetBrains dotTrace , Memory Diagistis.
dotTrace Performance 5.0 语句函数级别的分析
foreach的效率比for要好。
79 工作流发送消息活动,支持宏SQL语句,支持IF/ELSE分支条件判断,支持实体传送。
80 网站项目,logo设计,图片展示,备案,网站推广。
81 工作流只争对业务表,不争对系统表。验证要严格,当表有工作流时,不允许添加该表到新工作流中。
工作流设计,保存,编译。
OT批核后,邮件通知加班申请人。
82 窗体输入回车转成TAB,this.Cursor=Cursors.WaitCursor, this.Cursor=Cursors.Default
Path.GetExtension.
83 框架的几个基础功能 数据导入导出 异常处理 配置界面,日志记录
84 版本控制 REV10001, SYS1005, ApplicationVersion, FrameworkVersion
AssemblyVersion: 4.8.383.0
FileVersion: 2.8.383.20130130
ProductionVersion:2.8.383.0130130
major.min.build.revision
85 半角全角输入转化。
86 配置内容放到自定义的节点中
<Solution>
<Workflow>
<Presentation>
<SystemParameter>
</Solution>
系统的名字更新为Main.exe,而不是Paradox
业务表单,快速开发。
2套界面方案 SystemType=Professional/Enterprise 外置图片路径。
登陆界面做简单一些,About界面也是一样。
87 不能处理三层关系。 神庙逃亡。
Query Generator 没有处理字符串中包含的引号
88 序列号流水号生成管理。代码生成器内置到系统中 Code Smith,T4
Code Smith多主键值时,接口与实现方法不对应。
89 导出导出复制功能。 每个业务表要有自动增长编号的功能RECNUM, 有维护数据时,有很大的便利。
90 通知功能
采购单过帐,通知仓库作好收货准备
销售单过帐,通知仓库出仓准备
物料清单发生更改,通知生产部门调整工作单
加班拒绝或批准,通知加班申请人员。
91 重写DatabaseAccessAdapter加工作流支持,改成应用,表也都是应用数据库的。
92 流程设计器中的菜单改成MenuStrip,窗体设计器中的属性窗体有错误。
93 公共程序集,BaseCommon.RegisterModule
Dictionary<string, List<string>>
Splash显示界面功能模块
94 自定义报表设计器很难控制稳定性,fyireport也是如此,即使有新功能也很难加入。
95 用户Profile,退出时,当前的语言,公司名称。
96 RDLC中有2个或多个表时,要考虑关系。
97 许可机制检测 虚拟机检测 Hasp硬件检测,过期时间检测,功能限制检测
About对话框中显示license信息。
98 背景透明的字,Enterprise Solution用于About对话框。
Segoe UI ,8.25pt
99 与快钱的支付接口。
100 sqlactivity 可以执行sql语句。工作流也做成remoting模式以统一控制。
101 ShowInTaskBar=false, WindowsState.Minmimze.
102 把SQL语句移植到外部去以增加维护简单性。只对当前读取的公司做cache,而不是对所有的公司做cache。
参数的预读处理。
103 FastTextBox编辑器加右键,以增加完善度。
104 做一个Build生成系统环境
105 查看SQL Server每个表点用空间大小。查看表的注释信息
106 Web服务调用,比如火车站信息,手机号码信息。
107 水晶报表做数据源控制
108 公司注册中的server换成测试浏览对话框,自定义的,枚举局域网中的机器。
109 生产图表 System.Web.UI.DataVisualization.Charting
System.Windows.Forms.DataVisualization.Charting
110 e-M-POWER行业版,定制版。
111 Trace Tool写一个自定义的view,用作跟踪管理
112 自动更新,报表管理工具显示为一个树。
113 Infragistics.Win.DrawUtitlity.UseGDIPlusTextRendering=false;
Grid只能输入大写,Charactercasing=Upper
ReportForm 的Preiview按钮ImageTransparentColor=Red