!
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).