壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1511|回复: 3

恩信7.0定制和二次开发

[复制链接]
发表于 2008/8/11 16:17:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
个人点评:
  在开源社区里面,活动的中国人身影倒是不少,但中国人贡献的开源软件凤毛麟角,更不用说优秀的开源产品了,这次恩信把自己的东东开源了,至少表明一种开放的态度,而且更重要的是这个开源ERP还能用!
  我从去年年底开始帮助深圳一家企业实施恩信ERP,安装非常容易,初始化比较难,建立一个开发环境就更难了,但所有的这一切我都克服了。在原有基础上增加了许多必须的功能:如反审核、产品档案登记时直接输入产品编号、物料成本价格小数位数调整到4位、财务系统中增加试算平衡表和科目余额表以及各种反结算结转功能、增加税率等。
  恩信erp程序代码质量实在不敢恭维,不去说产品的格式规范(我个人理解是恩信公司为了增加阅读难度故意打乱代码,如果是无意行为,那很难相信开发员初中毕业了)了,错误百出,而且开发员根本没考虑合理利用计算机资源的问题——内存分配、CPU占用和数据库表设计方面根本就是一个外行,无用变量的定义随处可见,无用的代码充满每个程序片段。更让人为之脸红的是所有的数据库表关键字段竟然就是一个自动增长的id字段,对于为什么数据库表要用关键字段和数据库表设计方面必须考虑的范式恩信的开发人员难道真不知道?
  对于恩信开源erp,里面有的功能竟然是个空壳(如试算平衡,只是在jsp代码中写上一句“试算平衡了”),根据恩信官方的介绍,开源erp和viperp主体部分是一样的,但实际上真的是这样吗?答案是否定的,如果哪位计算机同仁不能进行二次开发,强烈建立你千万不要把恩信开源ERP用于企业中,因为谁也不能保证在那华丽的操作界面之下到底蕴含着怎么的漏洞!!
  在这里我给恩信一个建议:参考康比尔(compiere)的开源策略,同时推出一个开源成品和一个闭源产品,把一些重要的功能从开源产品中拿走,然后在官方网站上明确声明二者的区别,但是开源erp的程序代码质量方面真的需要改进改进。我曾经记得一个有分量的开源软件追随者自己开发了一个软件,功能很好,但他不开源,他自己说之所以不开源就是怕丢人,和一些优秀的开源软件相比,他的程序代码质量不是在同一个档次上。
  想通过开源策略增加自己产品的知名度,但又担心别人不付费直接使用,这是一中非常短视的行为,如果恩信不改变这种策略,前途注定是渺茫的。  
  经过近一年的实施经验,本人有一些经验积累,现在写于此,供大家参考。

第一部分、调整。

一、调整数据库表结构:
1、修改默认数据库名ondemand1:
用文本编辑器编辑文件ondemand1.sql,替换里面的全部ondemand1为rely_db,然后导入到mysql。

2、修改一些全局参数(表mysql.unit_info中包行一些全局性的重要信息,如单位简称,也是登陆用户名前缀,单位名称,数据库名称,用户限制数,erp系统有效期和其他的一些次要信息如单位地址、电话、联系人等:
1)修改单位简称(编码):update mysql.unit_info set unit_id='rely';
编辑文件C:\APPDIR\webapps\erp\home\user_enrollment.jsp,替换“使用单位简称”下的“nseer”为“rely”
2)修改单位名称: update mysql.unit_info set unit_name='深圳力耐电子有限公司ERP用户';
编辑文件C:\APPDIR\webapps\erp\home\user_enrollment.jsp,替换“恩信科技ERP系统用户注册”为“力耐电子ERP系统用户注册”
3)修改有效期:UPDATE mysql.unit_info SET use_period = '2010-08-01' ;
4)修改注册用户数:UPDATE mysql.unit_info SET user_amount = 100;
   修改同时在线人数:UPDATE mysql.unit_info SET expiry_period = 20
5)失效ERP中的一些主要模块(诸如产品设计等就不能使用了):
delete from erpplatform_config_public_char where kind='nseer_file';
--系统在启动时通过读取表erpplatform_config_public_char中的describe1字段生成文件C:\APPDIR\webapps\erp\javascript\include\nseergrid\nseergrid.js,而该文件被包含于大量的页面文件中。
6)修改ERP系统中公司网站地址:
UPDATE `ondemand1`.`oa_config_public_char` SET `TYPE_NAME` = 'www.relysz.com' WHERE `oa_config_public_char`.`kind` ='公司网站';

3、调整产品档案中的成本和实际成本价格小数位数位4位,以适应电子厂几厘深圳几毫厘价格的电子零件:
ALTERTABLE `design_file` CHANGE `COST_PRICE` `COST_PRICE` DOUBLE( 15, 4 )NOT NULL DEFAULT '0.0000',CHANGE `REAL_COST_PRICE` `REAL_COST_PRICE`DOUBLE( 15, 4 ) NOT NULL DEFAULT '0.0000';


二、BUG修补:
1、操作:财务系统-->客户化设置-->会计科目设置-->会计科目设置:选中一个没有子科目的科目,然后点击“添加同级”按钮,增加一个科目,然后再刷新页面,则出现问题:
1)、那个没有子科目的科目出现具有子科目的标志,但实际上却没有子科目;2)、删除那个新科目时报“正在使用,不能删除”。
修正:

2、操作:登陆ERP,随便点击任何一个模块,那么每隔3秒就向数据库发出如下查询:
Connect     nseer@localhost on ondemand1
select * from erpPlatform_checkAlarm where main_id='02' order by id
其中main_id='02'表明我们点击了第二主模块“产品设计”,每隔3秒就链接一次数据库、查询一次数据库(查询结果可能还很多),这样就把处于关键地位的数据库严重拖累,ERP整体性能非常慢。
修正:C:\APPDIR\webapps\erp\main\index_top1.jsp-->C:\APPDIR\webapps\erp\crm\include-->C:\APPDIR\webapps\erp\WEB-INF\classes\include\tree2.class-->C:\APPDIR\webapps\erp\javascript\include\nseer_cookie\toolTip.js,定位如下:
function nseer_alarm()……var delay=3000;
把时间间隔调整为30秒,即:delay=30000.

3、操作:编辑C:\APPDIR\mysql\my.ini,加入一行:
log=query.txt
然后就可以在文件C:\APPDIR\mysql\data\query.txt中可查看到ERP用户登陆的用户名和密码,同时也可以查看到ERP操作数据库的所有操作,这对于研究ERP的每一个功能如何操作数据库是非常方便的。

三、定制ERP界面:
1、修改弹出式广告:
1)、登陆界面右下角的弹出广告:
用dreamweaver打开文件C:\APPDIR\webapps\erp\home\login.jsp,移到末尾,把那些文字信息修改或删除。
2)、登陆erp后出现的广告:
编辑文件C:\APPDIR\webapps\erp\home\login.jsp\erp\main\index_middle1.jsp,把尾部的</html>之下的内容删除即可。
3)、其他地方出现的广告:
delete from erpplatform_config_public_char where id>2;
或者修改文件\src\include\nseer_cookie\CreateJFile.java,把下面三行屏蔽掉:
java.util.Timer timer = new java.util.Timer(true);
timer.schedule(new CAd(),1,1000*60*60*2);//延时1毫秒钟后每隔2小时运行CAd——创建广告文件javascript/include/nseer_cookie/ad.js
timer.schedule(new DAd(),1+1000*60*5,1000*60*60*2);//延时5分钟后每隔2小时运行DAd——删除广告文件javascript/include/nseer_cookie/ad.js
不过后一种方法需要一个开发环境把java源文件编译成class文件。
2、删除登陆界面上的“修改单位”:编辑登陆文件login.jsp,把下述内容删除:
|&nbsp;<ahref="login.jsp?language=<%=language%>&unit_tag=1"><fontcolor="#000000"><%=demo.getLang("erp","修改单位")%>
3、修改登陆ERP后状态行显示的“powered by nseer erp"为”由深圳微算实施(www.vsuan.com)":
编辑文件C:\APPDIR\webapps\erp\main\index_top1.jsp,做替换即可。


第二部分、二次开发。
一、增加菜单:
use rely_db;
1、采购计划反审核:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('05','06','05','采购管理','purchase','采购计划管理','apply','','采购计划反审核','否','apply_check_list.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1517:50:30','1800-01-01 00:00:00','2007-06-0116:24:29','','admin',2,'','','uncheck_list.jsp',0);

INSERT INTO`purchase_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('050605采购计划反审核','',37,34,'Y','uncheck_list.jsp','050605','采购计划反审核',0,'purchase/apply/','采购管理--采购计划管理--采购计划反审核','nseer33.png',0);

INSERTINTO `purchase_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('050605 采购计划审核','',37,34,'Y','uncheck_list.jsp','050605','采购计划反审核',0,'09020001010100100000','admin','purchase/apply/','',0);

2、试算平衡:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','03','09','财务系统','finance','账务管理','account','','试算平衡','否','account_testBalance.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:33','1800-01-01 00:00:00','2007-06-0117:22:45','','admin',2,'','','testBalance_locate.jsp',0);

INSERTINTO `finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080309 试算平衡','',35,18,'Y','testBalance_locate.jsp','080309','试算平衡',0,'finance/account/','财务系统--账务管理--试算平衡','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080309 试算平衡','',35,18,'Y','testBalance_locate.jsp','080309','试算平衡',0,'09020001010100100000','admin','finance/account/','',0);

3、期末反结账:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','03','11','财务系统','finance','账务管理','account','','期末反结账','否','account_unperiodFinish.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:57','1800-01-01 00:00:00','2007-06-0117:21:08','','admin',2,'','','unperiodFinish.jsp',0);

INSERTINTO `finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080311 期末反结账','',35,18,'Y','unperiodFinish.jsp','080311','期末反结账',0,'finance/account/','财务系统--账务管理--期末反结账','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080311 期末反结账','',35,18,'Y','unperiodFinish.jsp','080311','期末反结账',0,'09020001010100100000','admin','finance/account/','',0);

4、期末反结转成本:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','03','12','财务系统','finance','账务管理','account','','期末反结转成本','否','account_unperiodFinish.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:57','1800-01-01 00:00:00','2007-06-0117:21:08','','admin',2,'','','uncalculateCost_list.jsp',0);

INSERTINTO `finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080312期末反结转成本','',35,18,'Y','uncalculateCost_list.jsp','080312','期末反结转成本',0,'finance/account/','财务系统--账务管理--期末反结转成本','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080312期末反结转成本','',35,18,'Y','uncalculateCost_list.jsp','080312','期末反结转成本',0,'09020001010100100000','admin','finance/account/','',0);

5、期末反结转利润:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','03','13','财务系统','finance','账务管理','account','','期末反结转利润','否','account_unperiodFinish.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:57','1800-01-01 00:00:00','2007-06-0117:21:08','','admin',2,'','','uncalculate_list.jsp',0);

INSERTINTO `finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080313期末反结转利润','',35,18,'Y','uncalculate_list.jsp','080313','期末反结转利润',0,'finance/account/','财务系统--账务管理--期末反结转利润','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080313期末反结转利润','',35,18,'Y','uncalculate_list.jsp','080313','期末反结转利润',0,'09020001010100100000','admin','finance/account/','',0);

6、年终反结转:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','03','14','财务系统','finance','账务管理','account','','年终反结转','否','account_unperiodFinish.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:57','1800-01-01 00:00:00','2007-06-0117:21:08','','admin',2,'','','unyearBegin.jsp',0);

INSERT INTO`finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080314 年终反结转','',35,18,'Y','unyearBegin.jsp','080314','年终反结转',0,'finance/account/','财务系统--账务管理--年终反结转','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080314 年终反结转','',35,18,'Y','unyearBegin.jsp','080314','年终反结转',0,'09020001010100100000','admin','finance/account/','',0);

7、财务系统中的报表查询:
INSERTINTO `finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080404 报表查询','',76,19,'Y','query_locate.jsp','080404','报表查询',0,'finance/reports/','财务系统--账务管理--报表查询','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080404 报表查询','',76,19,'Y','query_locate.jsp','080404','报表查询',0,'09020001010100100000','admin','finance/reports/','',0);

8、查询科目余额表:
INSERTINTO `document_second`(`main_code`,`first_code`,`second_code`,`main_kind_ID`,`main_kind_name`,`first_kind_ID`,`first_kind_name`,`second_kind_name`,`second_kind_ID`,`module_tag`,`picture`,`topic`,`object`,`range`,`reader`,`reference`,`comment`,`attachment1`,`attachment2`,`standard`,`attachment3`,`attachment4`,`mains`,`attachment5`,`attachment6`,`relation`,`attachment7`,`attachment8`,`function`,`attachment9`,`attachment10`,`filesystem`,`attachment11`,`attachment12`,`dbsystem`,`attachment13`,`attachment14`,`remark`,`lately_change_time`,`register_time`,`change_time`,`register`,`changer`,`change_amount`,`doc_id`,`doc_ver`,`head_file`,`task_tag`)VALUES
('08','04','05','财务系统','finance','财务报表','reports','','生成科目余额表','否','account_unperiodFinish.gif','','','','','','详见<ahref=javascript:winopen(&#39;../../comment/query_locate.jsp&amp;#39;)>术语与缩写解释管理</a>','','','','','','','','','','','','','','','','','','','','','','2007-05-1519:08:57','1800-01-01 00:00:00','2007-06-0117:21:08','','admin',2,'','','file_balance.jsp',0);

INSERT INTO`finance_tree`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`FILE_PATH`,`CHAIN_NAME`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080405生成科目余额表','',77,19,'Y','file_balance.jsp','080405','生成科目余额表',0,'finance/reports/','财务系统--账务管理--生成科目余额表','nseer34.png',0);

INSERTINTO `finance_view`(`MODULE_NAME`,`reason`,`CATEGORY_ID`,`PARENT_CATEGORY_ID`,`ACTIVE_STATUS`,`HREFLINK`,`FILE_ID`,`FILE_NAME`,`DETAILS_TAG`,`HUMAN_ID`,`NAME`,`FILE_PATH`,`PICTURE`,`WORKFLOW_TAG`)VALUES
('080405 生成科目余额表','',77,19,'Y','file_balance.jsp','080405','生成科目余额表',0,'09020001010100100000','admin','finance/reports/','',0);

二、建立开发环境:
1、把我朋友的一个eclipse开发环境打包过来并经过简单调整后就可以了。整个开发环境可以打包压缩和拷贝还原,如果你需要开发包,请联系我(liangming.wang@gmail.com)。导入项目的基本步骤是:
新建一个基于tomcat5.0的动态网页项目-->把源代码目录树拷贝到eclipse工作目录(workspace)下的src下-->把c:\appdir\webapps\erp拷贝到eclipse工作目录(workspace)下的WebContent下-->然后启动eclipse鼠标右击那个新项目并点击刷新项目。
2、开发。
一般开发步骤是:参照上面的方法,在erp操作界面上增加新的菜单-->编写.jsp文件-->编写.java文件并编译成.class格式文件-->把编译后的class文件(位于workspace\erpv7.0\build\classes\)拷贝到工作目录中(位于C:\APPDIR\webapps\erp\WEB-INF\classes)
-->编辑文件C:\APPDIR\webapps\erp\WEB-INF\web.xml,参照其他class的格式增加4行-->重启tomcat-->测试。
我已经成功帮助深圳力耐电子有限公司实施过6.3版本,现在正在帮助他们升级到7.0版本。在实施过程中用户提出了许多新的要求,如增加产品编号输入框、物料成本价格要用4位小数、增加财务系统中的试算平衡、科目余额表和各种反结算结转等。

第三部分、数据移植(6.3到7.0)

把恩信6.3数据库ondemand1导入到恩信7.0数据库所在的mysql中,由于我的新版ERP数据库已经改成了rely_db,所以两个数据库可以同时存在。

use rely_db;
1、移植design_file:
INSERTINTODESIGN_FILE(PRODUCT_ID,PRODUCT_NAME,PRODUCT_NICK,PRODUCT_CLASS,type,PRODUCT_DESCRIBE,FACTORY_NAME,FACTORY_ID,AMOUNT_UNIT,PROVIDER_GROUP,PHOTO1,PHOTO2,WARRANTY,LIST_PRICE,COST_PRICE,REAL_COST_PRICE,LIFECYCLE,PERSONAL_UNIT,PERSONAL_VALUE,TWIN_NAME,TWIN_ID,REMARK,CHECK_TAG,ACHIEVEMENT_SUM,ATTACHMENT_NAME,RETURN_SUM,RETURN_AMOUNT,FILE_CHANGE_AMOUNT,USED_PRODUCT_NAME,RESPONSIBLE_PERSON_NAME,RESPONSIBLE_PERSON_ID,REGISTER,CHECKER,CHANGER,REGISTER_ID,CHECKER_ID,CHANGER_ID,REGISTER_TIME,CHECK_TIME,CHANGE_TIME,LATELY_CHANGE_TIME,LATELY_TRADE_TIME,DELETE_TIME,RECOVERY_TIME,MODIFY_TAG,EXCEL_TAG,EXCEL_TAG2,EXCEL_TAG3,EXCEL_TAG4,DESIGN_MODULE_TAG,DESIGN_PROCEDURE_TAG,DESIGN_CELL_TAG,RECOMMEND_PROVIDER_TAG,PRICE_CHANGE_TAG,PRICE_ALARM_TAG,ORDER_SALE_BONUS_RATE,ORDER_PROFIT_BONUS_RATE,RETAIL_SALE_BONUS_RATE,RETAIL_PROFIT_BONUS_RATE,COST_CALCULATE_TYPE,SERIAL_NUMBER_TAG,CALCULATE_BONUS_SN_TAG,QCS_TAG,QCS_APPLY_TAG,CHAIN_ID,CHAIN_NAME)
SELECTPRODUCT_ID,PRODUCT_NAME,PRODUCT_NICK,PRODUCT_CLASS,type,PRODUCT_DESCRIBE,FACTORY_NAME,FACTORY_ID,AMOUNT_UNIT,PROVIDER_GROUP,PHOTO1,PHOTO2,WARRANTY,LIST_PRICE,COST_PRICE,REAL_COST_PRICE,LIFECYCLE,PERSONAL_UNIT,PERSONAL_VALUE,TWIN_NAME,TWIN_ID,REMARK,CHECK_TAG,ACHIEVEMENT_SUM,ATTACHMENT_NAME,RETURN_SUM,RETURN_AMOUNT,FILE_CHANGE_AMOUNT,USED_PRODUCT_NAME,RESPONSIBLE_PERSON_NAME,RESPONSIBLE_PERSON_ID,REGISTER,CHECKER,CHANGER,REGISTER_ID,CHECKER_ID,CHANGER_ID,REGISTER_TIME,CHECK_TIME,CHANGE_TIME,LATELY_CHANGE_TIME,LATELY_TRADE_TIME,DELETE_TIME,RECOVERY_TIME,MODIFY_TAG,EXCEL_TAG,1,1,1,DESIGN_MODULE_TAG,DESIGN_PROCEDURE_TAG,DESIGN_CELL_TAG,RECOMMEND_PROVIDER_TAG,PRICE_CHANGE_TAG,PRICE_ALARM_TAG,ORDER_SALE_BONUS_RATE,ORDER_PROFIT_BONUS_RATE,RETAIL_SALE_BONUS_RATE,RETAIL_PROFIT_BONUS_RATE,COST_CALCULATE_TYPE,SERIAL_NUMBER_TAG,CALCULATE_BONUS_SN_TAG,0,0,CONCAT(FIRST_KIND_ID,SECOND_KIND_ID,THIRD_KIND_ID),CONCAT(FIRST_KIND_NAME,'-',SECOND_KIND_NAME,'-',THIRD_KIND_NAME)FROM ondemand1.design_file
where check_tag<'2'

2、移植design_file_dig:
INSERTINTODESIGN_FILE_dig(PRODUCT_ID,PRODUCT_NAME,PRODUCT_NICK,PRODUCT_CLASS,type,PRODUCT_DESCRIBE,FACTORY_NAME,FACTORY_ID,AMOUNT_UNIT,PROVIDER_GROUP,PHOTO1,PHOTO2,WARRANTY,LIST_PRICE,COST_PRICE,REAL_COST_PRICE,LIFECYCLE,PERSONAL_UNIT,PERSONAL_VALUE,TWIN_NAME,TWIN_ID,REMARK,CHECK_TAG,ACHIEVEMENT_SUM,ATTACHMENT_NAME,RETURN_SUM,RETURN_AMOUNT,FILE_CHANGE_AMOUNT,USED_PRODUCT_NAME,RESPONSIBLE_PERSON_NAME,RESPONSIBLE_PERSON_ID,REGISTER,CHECKER,CHANGER,REGISTER_ID,CHECKER_ID,CHANGER_ID,REGISTER_TIME,CHECK_TIME,CHANGE_TIME,LATELY_CHANGE_TIME,LATELY_TRADE_TIME,DELETE_TIME,RECOVERY_TIME,MODIFY_TAG,EXCEL_TAG,EXCEL_TAG2,EXCEL_TAG3,EXCEL_TAG4,DESIGN_MODULE_TAG,DESIGN_PROCEDURE_TAG,DESIGN_CELL_TAG,RECOMMEND_PROVIDER_TAG,PRICE_CHANGE_TAG,PRICE_ALARM_TAG,ORDER_SALE_BONUS_RATE,ORDER_PROFIT_BONUS_RATE,RETAIL_SALE_BONUS_RATE,RETAIL_PROFIT_BONUS_RATE,COST_CALCULATE_TYPE,SERIAL_NUMBER_TAG,CALCULATE_BONUS_SN_TAG,QCS_TAG,QCS_APPLY_TAG,CHAIN_ID,CHAIN_NAME)
SELECTPRODUCT_ID,PRODUCT_NAME,PRODUCT_NICK,PRODUCT_CLASS,type,PRODUCT_DESCRIBE,FACTORY_NAME,FACTORY_ID,AMOUNT_UNIT,PROVIDER_GROUP,PHOTO1,PHOTO2,WARRANTY,LIST_PRICE,COST_PRICE,REAL_COST_PRICE,LIFECYCLE,PERSONAL_UNIT,PERSONAL_VALUE,TWIN_NAME,TWIN_ID,REMARK,CHECK_TAG,ACHIEVEMENT_SUM,ATTACHMENT_NAME,RETURN_SUM,RETURN_AMOUNT,FILE_CHANGE_AMOUNT,USED_PRODUCT_NAME,RESPONSIBLE_PERSON_NAME,RESPONSIBLE_PERSON_ID,REGISTER,CHECKER,CHANGER,REGISTER_ID,CHECKER_ID,CHANGER_ID,REGISTER_TIME,CHECK_TIME,CHANGE_TIME,LATELY_CHANGE_TIME,LATELY_TRADE_TIME,DELETE_TIME,RECOVERY_TIME,MODIFY_TAG,EXCEL_TAG,excel_tag2,excel_tag3,excel_tag4,DESIGN_MODULE_TAG,DESIGN_PROCEDURE_TAG,DESIGN_CELL_TAG,RECOMMEND_PROVIDER_TAG,PRICE_CHANGE_TAG,PRICE_ALARM_TAG,ORDER_SALE_BONUS_RATE,ORDER_PROFIT_BONUS_RATE,RETAIL_SALE_BONUS_RATE,RETAIL_PROFIT_BONUS_RATE,COST_CALCULATE_TYPE,SERIAL_NUMBER_TAG,CALCULATE_BONUS_SN_TAG,0,0,CONCAT(FIRST_KIND_ID,SECOND_KIND_ID,THIRD_KIND_ID),CONCAT(FIRST_KIND_NAME,'-',SECOND_KIND_NAME,'-',THIRD_KIND_NAME)FROM ondemand1.design_file_dig

3、移植design_workflow(for design_file):
insertinto design_workflow(config_id,object_id,describe1,describe2,type_id)select '14',product_id,'09020001010100100000','admin','01' fromdesign_file where check_tag='0' and excel_tag!='0' order byregister_time;
insert intodesign_workflow(config_id,object_id,describe1,describe2,checker,check_time,check_tag,type_id)select'14',product_id,'09020001010100100000','admin',checker,check_time,'1','01'from design_file where check_tag='1' and excel_tag!='0' order byregister_time;

4、移植design_module:
INSERT INTODESIGN_MODULE(DESIGN_ID,PRODUCT_ID,PRODUCT_NAME,MODULE_DESCRIBE,COST_PRICE_SUM,DESIGNER,DESIGNER_ID,REGISTER,REGISTER_ID,REGISTER_TIME,CHECKER,CHANGER,CHECKER_ID,CHANGER_ID,CHECK_TIME,CHANGE_TIME,CHECK_TAG,CHANGE_TAG,EXCEL_TAG,CHAIN_ID,CHAIN_NAME)
SELECTDESIGN_ID,PRODUCT_ID,PRODUCT_NAME,MODULE_DESCRIBE,COST_PRICE_SUM,DESIGNER,DESIGNER_ID,REGISTER,REGISTER_ID,REGISTER_TIME,CHECKER,CHANGER,CHECKER_ID,CHANGER_ID,CHECK_TIME,CHANGE_TIME,CHECK_TAG,CHANGE_TAG,EXCEL_TAG,CONCAT(FIRST_KIND_ID,SECOND_KIND_ID,THIRD_KIND_ID),CONCAT(FIRST_KIND_NAME,'-',SECOND_KIND_NAME,'-',THIRD_KIND_NAME)FROM ondemand1.design_module;

5、移植design_workflow(for design_module):
insertinto `design_workflow`(config_id,object_id,describe1,describe2,check_tag,type_id) select'13',design_id,'09020001010100100000','admin','0','03' fromdesign_module where  check_tag='0' and excel_tag='2';

6、移植design_workflow(for design_price_change):
insertinto `design_workflow`(config_id,object_id,describe1,describe2,check_tag,type_id) select'4',product_id,'09020001010100100000','admin','0','02' from design_filewhere check_tag='1' and price_change_tag='1';

7、移植design_module_details:
insert into 'design_module_details' select * from ondemand1.design_module_details;


8、移植design_config_file_kind:
老版本用三个表来存放产品分类设置信息,而新版只用一个表存放,所以这个表的移植是最复杂的,建议如果记录数不多直接通过菜单重建一次,但要绝对注意:分类编号
一定要与旧版本的一致,因为产品档案表记录(上面已经移植)的分类编号已经固定了。
发表于 2008/8/12 09:03:37 | 显示全部楼层
更让人为之脸红的是所有的数据库表关键字段竟然就是一个自动增长的id字段

我想问一下,这个为什么让你脸红.至少我看了金碟的EAS,他们的数据库表虽然不是这样的,但是他们用的实质性跟这个一样的.
发表于 2008/8/12 09:03:58 | 显示全部楼层
其他我很佩服你对恩信这么了解.学习了
发表于 2008/10/8 10:00:47 | 显示全部楼层

如果有这样的能力,我想能不能自己写一个???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 06:15 , Processed in 0.022023 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表