做个网站www.51erp.net,发布了一个ERP/MIS平台软件,请大家试用第三帖(0分)

  • 主题发起人 郭玉梁
  • 开始时间
我更多只是想得到你的开发的文档(需求分析、概要设计等)。当然源码有的话更好,
只是为提高自己的水平而用来学习的。
 
郭兄弟,有事求教:
1.你的那些录入界面都是做成表格形式,那是用的什么控件?那儿有下载.
2.在物料信息维护里,双击带红色三角的表格时会弹出查找界面,能说说实现思路吗?
3.在接下来的查询系统数据界面里,在输入内容时会出现一个下拉列表,是用什么控件?
你系统的界面我很喜欢,想学学.
 
to maikee1978:
软件我是自学,不喜欢写文档,喜欢写注释,一切需求来自实践。那个平台总共才18个
窗体界面(包括两个基类窗体和About、Flash、主界面),所以即使写也不会有多少文档。
那个平台我完全重写了3遍,这也许是需求做的不好,但是没有前一个平台的诞生,后一个平
台的构思是没有根基的。我喜欢在做的过程产生需求,或许这样的需求会更具体一些,更容易
操作,可以叫原型开发方法吧。
to kingswang:
1、录入界面是xlgrid,很多地方有下载的,不过我做了修改
2、脚本里面有双击表格的事件,自动调出查询对话框,你可以看看
3、用的是DevTreeList控件
控件为了美观、好用,基本用的是Dev公司的一套控件。
 
看了你的程序,数据库方面提个意见
每个表应建立primary key和cluster index,否则数据量大后数据会很慢
表与表之间多采用foreign key约束,从数据库级防止错误
 
to songhy:
多谢提醒,foreign key,我是都做了,
没有建立primary key,而是unique,数据库没有碰到过大数据量,所以不懂得如何优化,
希望能教教我,以后我会进行各种设置,然后分析各种执行效率,现在没时间做呀。
 
再来关注郭兄的作品,
 
to all:
现在的平台基本稳定,不过还有几个Bug,好难找,不过很难碰见的。都让我try掉了^_^
现在每天基本有四个小时业余事件,30%的时间继续给平台加功能,70%的时间写文档和
在平台上开发ERP应用,相信用不了两个月,就会出来个像样的东西了。
 
郭兄精神可嘉,就算不谈软件,你持之以恒的精神也值得学习。
 
郭兄谈一下xlgrid的实现代码吗?
以下是您所讲到的:
建立了一个类叫TXLBand,它的属性包含XLGrid的区域、一个DataSource
XLCell里面加个属性DisField、Field两个属性,一个用来显示、一个用来编辑
XLCell可以找到相应的DataSource,也就和数据连接上去。一个XLGrid可以包含多个
XLBand,所以XLGrid可以连接多个数据源。

具体的实现代码可以公布看一下吗?
 
to down186:
具体你可以看看DBGrid是如何实现的,
我是参考DBGrid来做的
TXLDataLink = class(TDataLink)
private
FBand: TXLBand;
FModified: Boolean;
FInUpdateData: Boolean;
procedure SetBand(const Value: TXLBand);
protected
procedure ActiveChanged; override;
procedure DataSetChanged; override;
procedure DataSetScrolled(Distance: Integer); override;
procedure EditingChanged; override;
procedure RecordChanged(Field: TField); override;
procedure UpdateData; override;
public
constructor Create(ABand: TXLBand);
destructor Destroy; override;
procedure Modified;
property Band: TXLBand read FBand write SetBand;
end;

TXLBand = class(TPersistent)
private
FName: string;
FDataLink: TXLDataLink;
FRange: TRect;
FSheet: TXLSheet;
FDataSourceName: string;
FStep: Integer;
FDataInfo: TPanel;
FUpInfo, FDownInfo: TLabel;
FPageNo: Integer;
procedure SetName(const Value: string);
procedure SetRange(const Value: TRect);
procedure SetSheet(const Value: TXLSheet);
procedure SetDataSourceName(const Value: string);
procedure SetStep(const Value: Integer);
function GetDataSet: TDataSet;
function GetDataSource: TDataSource;
procedure DisCellValue(ACell: TXLCell; AValue: Integer; var Stop: Boolean);
procedure MoveToFirst(Sender: TObject);
procedure MoveToLast(Sender: TObject);
procedure SetPageNo(const Value: Integer);
protected
procedure Load(AStream: TXLStream);
procedure Save(AStream: TXLStream);
public
constructor Create(AName: string; ASheet: TXLSheet; ARect: TRect);
destructor Destroy; override;
function LoadFromStream(AStream: TXLStream): Boolean;
procedure SaveToStream(AStream: TXLStream);
procedure ActiveChanged(Active: Boolean);
procedure DataSetChanged;
procedure DataSetScrolled(Distance: Integer);
procedure EditingChanged;
procedure RecordChanged(Field: TField);
procedure UpdateData;
procedure DisplayDataInfo;
property Step: Integer read FStep write SetStep;
property PageNo: Integer read FPageNo write SetPageNo;
property Name: string read FName write SetName;
property Range: TRect read FRange write SetRange;
property DataSet: TDataSet read GetDataSet;
property Sheet: TXLSheet read FSheet write SetSheet;
property DataSource: TDataSource read GetDataSource;
property DataSourceName: string read FDataSourceName write SetDataSourceName;
end;

TXLBandList = class(TPersistent)
private
FBandList: TStringList;
FSheet: TXLSheet;
function GetBand(AIndex: Integer): TXLBand;
procedure SetSheet(const Value: TXLSheet);
function GetCount: Integer;
procedure SetBandName;
protected
procedure Load(AStream: TXLStream);
procedure Save(AStream: TXLStream);
public
constructor Create(ASheet: TXLSheet);
destructor Destroy; override;
function LoadFromStream(AStream: TXLStream): Boolean;
procedure SaveToStream(AStream: TXLStream);
function Add(AName: string; ARect: TRect): TXLBand;
function Delete(AName: string): Boolean;
function BandByName(AName: string): TXLBand;
property Items[AIndex: Integer]: TXLBand read GetBand; default;
property Sheet: TXLSheet read FSheet write SetSheet;
property Count: Integer read GetCount;
end;
 
郭兄弟:
版本更新否?
 
晚上七点更新,中午休息的时候写点文档。
 
to all:
新的版本已经上传上去,Readme.exe是一个简单的帮助,还没写完。
现在的平台功能基本已经能够满足一般的需求。
5.9-6.9这段时间会将进销存完善,使之能够应用,并且争取将BOM完成
6.9-7.9会做MPS、ERP、CRP这部分功能
希望大家给出好的建议。最近每天抽出一个钟头在Delphi7下重新做,1024*768的图形,
估计效果很爽。XLGrid准备用1.7,以前的是1.62,看来有的事做了。本来想5.1做些功
能出来,没有放假,下一个月的时间该忙了,我喜欢忙碌的生活^_^
 
从企业方面看,观念落后是制约企业推进ERP系统工程的首要因素。相当多的企业决策者对企业管理信息化认识不够,投入不足,支持不力;其次,企业对实施ERP系统工程缺乏一个总体规划,前期的系统咨询论证不充分,认为只要找到一家软件服务商和计算机公司就OK了,没有从根本上认识到ERP是一个系统工程、企业工程。然而,软件商的服务职能仅限于前期的企业诊断、概念培训、计算机网络搭建等工作,只有企业主体才能完成数据源的组织、业务流程的规范、软件的应用等关键性的工作。也就是说,实施ERP系统工程关键的两头在企业,软件公司只是一个基于计算机技术的服务支撑。实际上,在ERP系统工程中,软件的重要性是较低的,它排在管理诊断、领导培训和流程重组等之后;再次,企业人才匮缺,特别是既熟悉管理、又懂计算机的复合型人才严重缺乏;最后,国有企业刚刚脱困甚至尚未脱困,又面临改制的艰巨任务,缺乏必要的资金,这些问题严重制约了ERP的发展。
  从软件供应商方面看,国外管理软件则存在国情化的问题。其软件不完全符合中国的制度和文化,用户化修改困难,费用高昂,售后服务不够及时,更无法获得版权,一般企业很难承受。我国软件产业发展时间较短,能为企业实施ERP项目提供全面解决方案的软件公司较少,而一般的企业规模小,经验积累不够、服务力量差,软件功能尚不够完备,产品开发工程化较弱,对企业的适应性尚待提高。国内的许多企业,由于对ERP接触、了解较少,加上一些不正规的软件供应商的误导,迫使企业在实施ERP工程时把注意力都集中在价格和软件上,忽视企业管理诊断。最后企业得到的只是软件和网络技术的服务,而不是ERP。只有像用友软件等在此方面探索多年,已经成功地开发出适合中国国情的ERP产品的企业,才有能力为企业提供一套比较完善的企业信息化解决方案。
  ERP实施的“七种武器”
  业界有个说法,ERP系统的成功实施,软件和人的因素影响的比例是3:7,也就是说三分在软件,七分在人。
  这里的“人”包括企业领导、顾问、企业项目小组成员、企业各部门操作人员等,涉及到企业各职能部门的管理,如:财务部门、销售部门、采购部门、仓管部门、人力资源部门、设计部门、生产部门、车间等。涉及如此之多的部门,而且还要进行业务流程的调整,很多部门的职责以及部门之间的数据交换内容、方式等要有所改变。这必然要触动某些人或某些部门的固有利益和工作习惯,自然会引起他们的反对,造成项目实施的阻力。
  因此,企业在确定实施ERP项目时,既不能盲目上马,也不要把ERP考虑的过于神秘,应本着既要积极又要慎重的态度去面对。并认真做好以下方面的工作。
  1、确立ERP实施组织机构
  建立ERP系统实施小组,由企业内部有一定的影响力和号召力的人挂帅,担当ERP项目实施的带头人,进行统筹规划,同时在企业内部成立完善的三级组织机构:领导小组、项目实施小组和项目应用小组。ERP作为一项系统工程,投资大、周期长,项目涉及面广、组织困难,没有一个强有力的组织体系,单靠计算机技术人员自身很难推进ERP项目开展。
  2、做好前期咨询与企业自身需求分析
  通过管理咨询专家对企业当前发展和管理中的薄弱环节及存在的核心问题进行诊断与分析,重新设计业务流程,调整组织分配,了解ERP系统的功能模块,规范各管理部门的工作流程。实践证明,由于企业实施ERP之前考虑不周,导致系统建设好了以后应用效果不佳的例子屡见不鲜。往往是一套系统并没有怎么使用,就需要重新构建新的系统,做成了“半拉子”工程。
  3、选择适合企业特点的ERP软件
  国内、国外的ERP产品比较多,不同企业间的规模、产品结构、市场战略、管理模式也存在较大的差异。因此,企业在选择ERP软件的时候,应该着重从企业需求、软件功能的拓展与开放性、二次开发工具及其易用性、完善的软件文档、良好的售后服务与技术支持、系统的稳定性、供应商的实力与信誉、合适的价格等方面进行综合考虑。另外也要做投资效益分析,包括资金利润率、投资回收期、实施周期及难度等,以避免造成实施时间、二次开发或用户化时间过长而影响效益的兑现。
  4、切实做好员工的培训工作
  企业应对高层管理人员进行ERP的概念培训,内容包括:国内外计算机管理的现状、企业为什么要实施ERP、ERP的概念与企业现行管理、ERP的实施组织技术。另外,企业还应对项目应用小组成员——车间和部门负责人、财会人员、生产计划员、购销人员、生产统计员、仓库管理员等进行ERP基本原理培训,内容包括:ERP的发展历史、ERP的系统结构和功能模块、操作使用方法、ERP的基本处理逻辑、算法以及数据准备。由于ERP系统的使用会在很大程度上改变员工现有的操作方式或操作流程,因此企业要从精良生产、准时生产、全面质量管理等方面,对ERP项目涉及的人员分不同层次、不同程度地进行软件功能使用培训。
  5、建立严格的数据录入与维护制度
  ERP系统的一个显著特点就是实现了数据与管理功能的集成。它是在企业资源数据集成共享的基础上实现管理功能的集成,给企业的决策管理提供依据。因此建立数据的采集、整理、审核、修改、录入、维护的制度,确保基础数据的准确性、时效性、可靠性,为科学决策与管理提供参考依据,是ERP成功实施的保证。
  6、不要急于求大、求全
  企业对于上ERP不要急于求大、求全,可以根据自己的需求,立足实施一块,成功一块的原则,在企业现有的基础上,分步实施,简单地全面出击、一气呵成实现ERP的想法是幼稚的,更是不现实的。/
  7、借人所长,为我所用
  他山之石,可以攻玉。最为有效的方法是,直接在同行企业中了解同类系统已取得成功案例的经验。企业领导在“走出去”与“请进来”中,抛弃狭隘的封闭观念,参观一些展览和走访一些企业,或聘请专业的咨询公司进行方案的规划、设计、可行性论证和相关的培训,吸收他人成功的经验,发挥“后发优势”,借人所长,为我所用,从而形成适合本企业具体特点和需求的详细的方案设计。当然,对于缺乏技术支持和项目经验的企业来说,在系统分析和方案设计的时候,就可提前与几家软件厂商取得联系,征询他们的意见和方案,进行反复研究和分析,优选方案,形成观点,呈报决策机构。经过决策层从总体规划和管理角度的全盘考虑,做出立项的最后决策。
  软件就是服务
  ERP信息系统是计算机技术与管理为一体的系统集成工程,在初期的准备阶段进行一些规划、调研、咨询、论证工作,十分必要。只有做好了以上几方面的工作,知己知彼,才能为系统进入实质性的工作阶段奠定良好的基础,否则将会导致兵败城摧的结果。
  因此,企业在进行信息系统建设的时候,应该根据自身需求和目标以及软件供应商的资质等级来选择项目合作伙伴。实施ERP系统不仅仅是软硬件组合的简单过程,更为重要的是工程建成后的服务、培训、支持有没有保障,能不能为企业提供一个长期有效的信息化服务。“软件就是服务”的观念应当得到认同。



 
to kingson:
换换行,看见滚动条有点烦^_^
从程序员的角度来看,用不了ERP是客户太笨了、太变态了
从客户的角度来看,用不了ERP是软件太差了、太死板了

这个问题讨论了好多年了,还是做点实实在在的东西吧。
 
正好学习
郭兄治学的精神可嘉
 
新版本的数据库恢复有问题,郭兄弟再试试
 
什么问题,给点提示?我这不好测试,我再测试一下。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部