ERP日记.docx

上传人:b****7 文档编号:23842925 上传时间:2023-05-21 格式:DOCX 页数:47 大小:2MB
下载 相关 举报
ERP日记.docx_第1页
第1页 / 共47页
ERP日记.docx_第2页
第2页 / 共47页
ERP日记.docx_第3页
第3页 / 共47页
ERP日记.docx_第4页
第4页 / 共47页
ERP日记.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

ERP日记.docx

《ERP日记.docx》由会员分享,可在线阅读,更多相关《ERP日记.docx(47页珍藏版)》请在冰豆网上搜索。

ERP日记.docx

ERP日记

12月26日:

开场白。

新世纪ERP系统是一套大部份功能都仿照用友U8.1系列ERP系统开发的,采用VB语言+SQL2000数据库,我们一个锑矿企业使用该系统的存货核算部分一年多时间,数据库由原来的空数据库30M变成250M,其间也出现过一些小的bug,但都通过修改代码得到纠正,所以这套系统及数据库架构应该也算相对笔较成熟了。

现在我们打算将这套系统改成net2005+SQL2005系统,一方面必须要适应目前的B/S要求,另一方通过改造系统,掌握原系统的技术要领,从而提高在实际应用时的应变能力。

希望可以用3-5个月的时间将系统升级成B/S架构,之后投入实际使用,并根据实际应用加以改进。

首先我们升级数据库,将原来SQL2000空的数据库附加导入SQL2005系统。

原SQL2000数据库370个数据表导入SQL2005成功后出现以下界面:

现在我们先来打开新世纪ERP系统的总控台代码,系统的登陆界面如下:

使用过net做网页的人都知道,这样的一个界面并不是很难做到:

这是Default.aspx首页总控台页面,上面是本单位ERP系统logo母页版。

主体页面加上背景,再加上链接按钮,即可以做成下面的样子。

在XX中打入“办公图标”可以找到上面的图片,上面的是128×128图标,也可以找64×64的图标,之后用photoshop加上说明文字,在default.aspx网站首页中加入图片按钮imagebutton,然后在在图片按钮的imgurl属性中加入图标文件的位置即可以将图标显示出来做成以上的样子。

首页界面做出来以后,我们开始按顺序将上面的模块做出来,首先是系统管理。

新世纪ERP系统的系统管理界面如下:

新建账套的实现就是复制一套空的数据库文件,然后填上要新建的帐套的信息即可。

我们已经有了空数据库文件,只需要在SQL2005中将空数据库文件附加上去就得了,所以我们是手工做这部分工作,没有用新建套帐的功能。

我们在附加空数据库之后只需要手工更工帐套信息即可使用帐套,或者设计一个界面来设置帐套信息。

如果是系统自己使用新建及设置账套都可以手工更改数据信息表即可,如果是做一个商业化系统或者想方便使用,那就需要专门设计一个新建帐套和更改帐套信息的界面了。

原系统中帐套参数设置的界面如下:

确定按钮的代码如下:

PrivateSubCommand1_Click(IndexAsInteger)

DimSsqlAsString

DimiAsInteger

DimaDo_DateAsNewRecordset

OnErrorGoToerror_exit

IfIndex=1ThenUnloadMe:

ExitSub

Ssql="updateHDSystem_DataBasessetCoName='"&Trim(Text1(0).Text)&"',"_

&"Address='"&Trim(Text1

(1).Text)&"',Phone='"&Trim(Text1

(2).Text)&"',qsqj="&Val(Text3.Text)_

&"WHEREDataBasesName='"&Trim(Text1(0).Tag)&"'"

Conn_System.ExecuteSsql

Conn_System.Execute"delete"&Trim(Text1(0).Tag)&".dbo.Gy_kjrlb"

aDo_Date.Open"select*from"&Trim(Text1(0).Tag)&".dbo.Gy_kjrlb",Conn_System,adOpenStatic,adLockBatchOptimistic

WithaDo_Date

Fori=1To12

.AddNew

!

KjYear=Trim(Text2.Text)

!

Period=FlexGrid.TextMatrix(i,0)

!

qsrq=FlexGrid.TextMatrix(i,1)

Ifi<12Then!

zzrq=DateAdd("d",-1,FlexGrid.TextMatrix(i+1,1))

Else

!

zzrq=DateAdd("d",-1,DateAdd("m",1,FlexGrid.TextMatrix(i,1)))

EndIf

IfVal(FlexGrid.TextMatrix(i,0))

!

cwzzjzbz=1:

!

Xsjzbz=1

!

Gdzcjzbz=1:

!

Kfjzbz=1

!

chhsjzbz=1:

!

PMjzbz=1

!

CgJzbz=1:

!

CaskJzbz=1

EndIf

IfVal(FlexGrid.TextMatrix(i,0))=Val(Text3.Text)Then

!

beginflag=1

EndIf

.Update

Next

.UpdateBatchadAffectAllChapters

.Close

SetaDo_Date=Nothing

EndWith

Conn_System.Execute"update"&Text1(0).Tag&".dbo.Gy_AccInformationsetitemValue="&DJ_Text.Text&"wheresystemcode='Cwzz'anditemcode='cwdjxsws'"

Conn_System.Execute"update"&Text1(0).Tag&".dbo.Gy_AccInformationsetitemValue="&JE_Text.Text&"wheresystemcode='Cwzz'anditemcode='cwjexsws'"

Conn_System.Execute"update"&Text1(0).Tag&".dbo.Gy_AccInformationsetitemValue="&SL_Text.Text&"wheresystemcode='Cwzz'anditemcode='cwslxsws'"

UnloadMe

ExitSub

error_exit:

MsgBoxErr.Description,16

EndSub

以上代码中红色字样为数据表名称,兰色字样为相应字段名称。

由此可以看出按下帐套属性设置界面的“确定“按钮后更新了HDSystem_DataBases、Gy_kjrlb、Gy_AccInformation三个表的信息。

查看新世纪ERP系统的相关开发文档,了解三个表的结构:

1.1.1.1数据库HDSystem_DataBases

字段编码

字段名称

字段说明

数据类型

主键

外键

DataBasesName

数据库名

Nvarchar(18)

Y

Number

编号

Nvarchar(8)

CountingRoomName

帐套名

Nvarchar(20)

NewDate

创建时间

datetime

BackupDate

备份时间

datetime

RestoreDate

恢复时间

datetime

ServerName

数据服务器名

Varchar(30)

DatabaseType

数据库类型

Varchar(30)

Ynuse

是否启用

Char

(1)

CoName

公司名

Nvarchar(50)

Address

地址

Nvarchar(50)

Phone

电话

Nvarchar(30)

Qsqj

启用期间

int

1.1.2会计日历Gy_Kjrlb

字段编码

字段说明

字段属性

Kjyear

会计年度

Int

Period

会计期间

Int

Qsrq

起始日期

Datatime

Zzrq

终止日期

Datatiem

BeginFlag

帐套启用会计期间标识

Bit

CwzzJzbz

财务总帐结帐标识

Bit

其他系统结帐标识

用系统编码+Jzbz来标识

Bit

1.1.3系统帐套信息Gy_AccInformation

字段编码

字段说明

字段属性

SystemCode

系统编码

C,10,NN

ItemCode

项目索引编码

C,30

ItemName

项目名称

NVC,20

DataType

数据类型

0.字符型1.整型2.数值型3.日期型

Smallint

ItemValue

用户设置值

C,30

ItemDefault

系统缺省值

C,30

代码大概的功能意思是:

1、按照录入的文字更改表HDSystem_DataBases的公司名、地址、电话和帐套的启用日期信息。

2、设置会计日历表Gy_kjrlb中的相关信息。

如果我们将帐套启用日期设置成2009年1月份,经过这段代码之后数据表的字段变化如下:

Beginflag为true表示这套帐已经从2009年1月份开始启用了,而其它包括总帐系统、销售系统、固定资产系统、库存系统等模块还未开始启用。

3、输入及系统帐套信息在Gy_AccInformation中记录,分别为帐套中的数量、单价、金额的小数位数:

下面我们就是.net中实现以上的功能。

会计日历表我们手工改动SQL2005数据库就得了,只需要改动一下所需要相应年份就得了。

然后我们就开一个网页专门用于设置更改表HDSystem_DataBases的公司名、地址、电话和帐套的启用日期信息,及Gy_AccInformation表帐套中的数量、单价、金额的小数位数。

首先设计一下系统管理网页xtgl.aspx的功能菜单。

在网上关于网页菜单的样板琳琅满目,我们可以根据自己的爱好选择菜单之后加以修改之后利用。

在系统管理中要现实更改帐套信息、增加用户及设置用户权限功能,菜单如下:

菜单页面是放在左面的母页版中,系统管理要设计帐套信息、小数位数、用户管理及用户权限四个页面,这四个页面都是使用同一个菜单母页版。

首先来设计帐套信息页面,因为这是第一个菜单项目,所以帐套信息页面就是系统管理的主界面xtgl.aspx。

先放入一个SqlDataSource1控件绑定好数据表HDSystem_DataBases:

然后在一进入页面的时候运下以下代码可以显示原来的帐套信息:

protectedvoidPage_Load(objectsender,EventArgse)

{DataSourceSelectArgumentsds=newDataSourceSelectArguments();

DataViewdv=(DataView)this.SqlDataSource1.Select(ds);

Label1.Text=Convert.ToString(dv[0][9]);

Label2.Text=Convert.ToString(dv[0][10]);

Label3.Text=Convert.ToString(dv[0][11]);

}

Label1、label2、label3分别取数据表的第9、10、11列取出名称、地址、电话值显示以上的界面。

当按下“保存信息”的按钮时。

执行以下代码:

protectedvoidButton1_Click(objectsender,EventArgse)

{

SqlConnectionmyconn=newSqlConnection("datasource=localhost;userid=sa;pwd=;database=master");

SqlCommandmycmd=newSqlCommand("updateHDSystem_DataBasessetCoName='"+TextBox1.Text+"',Address='"+TextBox2.Text+"',Phone='"+TextBox3.Text+"'",myconn);

myconn.Open();

mycmd.ExecuteNonQuery();

myconn.Close();

SqlDataSource1.DataBind();

DataSourceSelectArgumentsds1=newDataSourceSelectArguments();

DataViewdv1=(DataView)this.SqlDataSource1.Select(ds1);

Label4.Text=Convert.ToString(dv1[0][9]);

Label5.Text=Convert.ToString(dv1[0][10]);

Label6.Text=Convert.ToString(dv1[0][11]);

}

可以得到以下的运行样子:

设置财务系统小数点位数的界面也同上类拟,所以我们可以将xtgl.aspx复制一个网页xswx.aspx进行相关修改即可:

我们先来看一下系统帐套信息表Gy_AccInformation的详细数据:

我们的第一个任务,就是要取得数据表中需要更改的单价、金额和数量的小数点的位数,也就是数据表中红线的三条数据的Itemvalue的值。

我们可以用三个SqlDataSource控件分别通过相应筛选分别绑定三条记录,筛选条件就是systemcode=cwzzanditemcode=cwdjxsws等。

筛选记录出来之后分别取其第5列数据Itemvalue的值显示出来即可。

所以打开页面xswx.aspx的启动代码如下即可显示出要修改的小数位数:

protectedvoidPage_Load(objectsender,EventArgse)

{DataSourceSelectArgumentsds=newDataSourceSelectArguments();

DataViewdv=(DataView)this.SqlDataSource1.Select(ds);

Label1.Text=Convert.ToString(dv[0][4]);

DataSourceSelectArgumentsds2=newDataSourceSelectArguments();

DataViewdv2=(DataView)this.SqlDataSource2.Select(ds2);

Label2.Text=Convert.ToString(dv2[0][4]);

DataSourceSelectArgumentsds3=newDataSourceSelectArguments();

DataViewdv3=(DataView)this.SqlDataSource3.Select(ds3);

Label3.Text=Convert.ToString(dv3[0][4]);}

然后“保存信息”的代码要分别更新三条记录的Itemvalue的值:

protectedvoidButton1_Click(objectsender,EventArgse)

{SqlConnectionmyconn=newSqlConnection("datasource=localhost;userid=sa;pwd=;database=newerp");

SqlCommandmycmd=newSqlCommand("updateGy_AccInformationsetItemValue='"+TextBox1.Text+"'wheresystemcode='Cwzz'anditemcode='cwdjxsws'",myconn);

myconn.Open();

mycmd.ExecuteNonQuery();

myconn.Close();将单价位数更新到数据表

SqlDataSource1.DataBind();

DataSourceSelectArgumentsds1=newDataSourceSelectArguments();

DataViewdv1=(DataView)this.SqlDataSource1.Select(ds1);

Label4.Text=Convert.ToString(dv1[0][4]);将更新后的单价位数显示出来

SqlConnectionmyconn1=newSqlConnection("datasource=localhost;userid=sa;pwd=;database=newerp");

SqlCommandmycmd1=newSqlCommand("updateGy_AccInformationsetItemValue='"+TextBox2.Text+"'wheresystemcode='Cwzz'anditemcode='cwjexsws'",myconn1);

myconn1.Open();

mycmd1.ExecuteNonQuery();

myconn1.Close();将金额位数更新到数据表

SqlDataSource2.DataBind();

DataSourceSelectArgumentsds4=newDataSourceSelectArguments();

DataViewdv4=(DataView)this.SqlDataSource2.Select(ds4);

Label5.Text=Convert.ToString(dv4[0][4]);将更新后的金额位数显示出来

 

SqlConnectionmyconn2=newSqlConnection("datasource=localhost;userid=sa;pwd=;database=newerp");

SqlCommandmycmd2=newSqlCommand("updateGy_AccInformationsetItemValue='"+TextBox3.Text+"'wheresystemcode='Cwzz'anditemcode='cwslxsws'",myconn2);

myconn2.Open();

mycmd2.ExecuteNonQuery();

myconn2.Close();将数量位数更新到数据表

SqlDataSource3.DataBind();

DataSourceSelectArgumentsds5=newDataSourceSelectArguments();

DataViewdv5=(DataView)this.SqlDataSource3.Select(ds5);

Label6.Text=Convert.ToString(dv5[0][4]);将更新后的数量位数显示出来

}

按下“保存信息”的运行结果为:

 

12月27日用户管理

先看一下新世纪ERP系统的用户管理运作原理。

先看用户管理的界面:

打开这个窗体一启动时的代码:

PrivateSubForm_Activate()

OnErrorGoToerror_exit

IfRequery_TF=TrueThenRequery_TF=False:

ExitSub

DimaDo_GroupAsNewRecordset

DimaDo_UserAsNewRecordset

SetaDo_Group=Conn_System.Execute("select*from"&ListView1.Tag&".dbo.System_UserGroup")

ListView2.ListItems.Clear

WithaDo_Group

DoWhileNot.EOF

Setmitem=ListView2.ListItems.Add()

mitem.Text=!

GroupName

mitem.SmallIcon="G"

mitem.Icon="G"

mitem.SubItems

(1)=!

Explain

mitem.Key=!

GroupName

.MoveNext

Loop

.Close

SetaDo_Group=Nothing

EndWith

'------------------

SetaDo_User=Conn_System.Execute("select*from"&ListView1.Tag&".dbo.Gy_CzyglORDERBYczymc")

ListView1.ListItems.Clear

WithaDo_User

DoWhileNot.EOF

Setmitem=ListView1.ListItems.Add()

mitem.Text=!

czymc

mitem.SmallIcon="U"

mitem.Icon="U"

mitem.SubItems

(1)=""&!

Explain

mitem.Key="T"&Trim(!

czybm)

.MoveNext

Loop

.Close

SetaDo_Group=Nothing

EndWith

ExitSub

error_exit:

MsgBoxErr.Description,16

UnloadMe

EndSub

以上代码的大概意思就是在上面列表中导入数据表.Gy_Czygl的czymc操作员名称,

以及在下面的列表中导入数据表System_UserGroup的GroupName组名称。

用户管理的操作菜单如下:

我们先来看一下新增用户的运作,按下新增用户选项,界面如下:

新增用户的代码:

IfMe.Tag="U"OrMe.Tag="UE"Then

DimUser_idAsString

IfTrim(Text1(0).Text)=""ThenMsgBox"用户名不能为空!

",16:

Text1(0).SetFocus:

ExitSub

IfTrim(Text1

(1).

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1