实验三单据设计.docx
《实验三单据设计.docx》由会员分享,可在线阅读,更多相关《实验三单据设计.docx(15页珍藏版)》请在冰豆网上搜索。
实验三单据设计
软件开发环境与工具
实验报告
实验三
实验题目:
单据设计
实验地点:
软件实验室一
指导老师:
**
实验类型:
设计型
系班:
计算机科学与技术系**班
姓名:
*******
2013年12月2日
一、实验题目
单据设计
二、实验目的
1、熟悉MicrosoftVisualStudio中的表示层、业务逻辑层、公共类库层、数据访问层之间的区别与联系。
2、通过MicrosoftVisualStudio与数据库的连接熟悉访问数据库的两种方式断开式与联机式。
3、通过设计单据,对VB.net实现与数据库的链接,对其应用有更多的了解。
3、实验内容
1、设计单据展示页面。
2、利用工具栏添加功能键,实现其相应的功能。
3、能够对单据进行的新增、编辑、保存等等。
四、实验步骤
1、主页的设计代码
PublicClassRK_sl
DimappAsNewKu_Apply.Class1
DimdtsetAsDataSet
Dimdtset1AsDataSet
DimdtsetlineAsDataSet
DimcRowAsDataRow
DimcRow1AsDataRow
Dimstr(100)AsString
DimbiaojiAsString
DimjiluAsInteger
DimmaxAsInteger
PrivateSubToolList_ItemClicked(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.ToolStripItemClickedEventArgs)HandlesToolList.ItemClicked
SelectCasee.ClickedItem.Text
Case"增加¨"
Me.BillsName.Enabled=True
Me.StorageID.Enabled=True
Me.CK_Name.Enabled=false
Me.RU_sl.Enabled=True
Me.ZD_Name.Enabled=True
Me.SH_Name.Enabled=False
Me.TextID.Enabled=False
Me.SH_Name.Enabled=False
biaoji="增加¨"
Case"删¦除"
biaoji="删¦除"
Me.BillsName.Enabled=False
Me.StorageID.Enabled=False
Me.CK_Name.Enabled=False
Me.RU_sl.Enabled=False
Me.SH_Name.Enabled=False
Me.TextID.Enabled=True
Me.SH_Name.Enabled=False
Case("修改")
biaoji="修改"
Me.BillsName.Enabled=True
Me.StorageID.Enabled=True
Me.CK_Name.Enabled=False
Me.RU_sl.Enabled=True
Me.ZD_Name.Enabled=True
Me.SH_Name.Enabled=False
Me.TextID.Enabled=True
Me.SH_Name.Enabled=False
Case"查找"
biaoji="查找"
Me.BillsName.Enabled=False
Me.StorageID.Enabled=False
Me.CK_Name.Enabled=False
Me.RU_sl.Enabled=False
Me.ZD_Name.Enabled=False
Me.TextID.Enabled=True
Me.SH_Name.Enabled=False
Case"审查"
biaoji="审查"
Me.BillsName.Enabled=False
Me.StorageID.Enabled=False
Me.CK_Name.Enabled=False
Me.RU_sl.Enabled=False
Me.ZD_Name.Enabled=False
Me.SH_Name.Enabled=True
Me.TextID.Enabled=True
Case"首页"
CallFirstRow()
Case"上页"
CallPreRow()
Case"下页"
CallNextRow()
Case"末页"
CallEndRow()
EndSelect
EndSub
SubFirstRow()
jilu=1
Me.page(jilu)
EndSub
SubPreRow()
jilu-=1
Me.page(jilu)
EndSub
SubNextRow()
jilu+=1
Me.page(jilu)
EndSub
SubEndRow()
biaoji=dtset.Tables
(2).DefaultView.Count/5
Me.page(jilu)
EndSub
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
dtset=app.fill
DimiAsInteger
i=0
ForEachMe.cRowIndtset.Tables(0).Rows
Me.StorageID.Items.Add(cRow(0).ToString)
str(i)=cRow
(1).ToString
i+=1
Next
ForEachMe.cRow1Indtset.Tables
(1).Rows
Me.BillsName.Items.Add(cRow1(0).ToString&"--"&cRow1
(1).ToString)
Next
Me.ZD_Date.Text=Date.Today.Year()&"-"&Date.Today.Month()&"-"&Date.Today.Day()&"-"&Date.Now.Hour()&"-"&Date.Now.Minute()
jilu=dtset.Tables
(2).DefaultView.Count/5
max=jilu
Me.page(jilu)
EndSub
PrivateSubStorageID_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesStorageID.SelectedIndexChanged
Me.CK_Name.Text=str(Me.StorageID.SelectedIndex)
EndSub
PublicFunctionpage(ByVallineAsInteger)
Ifline=1Then
Me.ToolFirst.Enabled=True
Me.Toolpre.Enabled=False
Me.Toolnext.Enabled=True
Me.Toolend.Enabled=False
ElseIfline=maxThen
Me.ToolFirst.Enabled=True
Me.Toolpre.Enabled=True
Me.Toolnext.Enabled=False
Me.Toolend.Enabled=True
Else
Me.ToolFirst.Enabled=True
Me.Toolpre.Enabled=True
Me.Toolnext.Enabled=True
Me.Toolend.Enabled=True
EndIf
Ifline>0Then
dtsetline=app.Process(line)
Me.DateView.DataSource=dtsetline.Tables(0)
Else
dtsetline=app.Process
(1)
Me.DateView.DataSource=dtsetline.Tables(0)
EndIf
EndFunction
PrivateSubBk_OK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBk_OK.Click
SelectCasebiaoji
Case"增加"
IfMe.ZD_Name.Text<>""Then
app.addRK(Me.StorageID.Text,Me.BillsName.Text.Substring(0,1),Me.ZD_Date.Text,Me.ZD_Name.Text,Me.RU_sl.Text)
MsgBox("操作成功")
Else
MsgBox("请输入必填项")
EndIf
Case"删除"
IfMe.TextID.Text<>""Then
app.deleteRK(Me.TextID.Text)
MsgBox("操作成功")
Else
MsgBox("请输入必填项")
EndIf
Case"修改"
IfMe.ZD_Name.Text<>""AndMe.TextID.Text<>""Then
app.updateRK(Me.TextID.Text,Me.StorageID.Text,Me.BillsName.Text.Substring(0,1),Me.ZD_Date.Text,Me.ZD_Name.Text,Me.RU_sl.Text)
MsgBox("操作成功")
Else
MsgBox("请输入必填项")
EndIf
Case"查找"
IfMe.TextID.Text<>""Then
dtset1=app.find(Me.TextID.Text)
Me.StorageID.Text=dtset1.Tables(0).DefaultView.Item(0).Item
(1)
Me.BillsName.Text=dtset1.Tables(0).DefaultView.Item(0).Item
(2)
Me.ZD_Date.Text=dtset1.Tables(0).DefaultView.Item(0).Item(3)
Me.ZD_Name.Text=dtset1.Tables(0).DefaultView.Item(0).Item(4)
Me.RU_sl.Text=dtset1.Tables(0).DefaultView.Item(0).Item(5)
MsgBox("操作成功")
Else
MsgBox("请输入必填项")
EndIf
Case"审查"
IfMe.SH_Name.Text<>""AndMe.TextID.Text<>""Then
app.SHR(Me.TextID.Text,Me.SH_Name.Text)
Else
MsgBox("请输入必填项")
EndIf
EndSelect
Me.page(app.add()/5)
EndSub
PrivateSubDateView_CellContentClick(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DataGridViewCellEventArgs)HandlesDateView.CellContentClick
EndSub
PrivateSubBillsName_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBillsName.SelectedIndexChanged
EndSub
EndClass
2、连接数据库
PublicClassClass1
PublicFunctionconnlink()AsSqlClient.SqlCommand
DimconnAsNewSqlClient.SqlConnection
DimcmdAsNewSqlClient.SqlCommand
conn.ConnectionString="server=.;uid=sa;pwd=;database=JXCDate"
conn.Open()
cmd.Connection=conn
Returncmd
EndFunction
PublicFunctionfill()AsDataSet
DimcmdAsNewSqlClient.SqlCommand
cmd=Me.connlink
DimadpAsNewSqlClient.SqlDataAdapter
DimdsAsNewData.DataSet
Dimadp1AsNewSqlClient.SqlDataAdapter
Dimds1AsNewData.DataSet
Dimadp2AsNewSqlClient.SqlDataAdapter
Dimds2AsNewData.DataSet
cmd.CommandType=CommandType.Text
cmd.CommandText="select*fromCK_Lib"
adp.SelectCommand=cmd
adp.Fill(ds,"temp")
cmd.CommandType=CommandType.Text
cmd.CommandText="select*fromCP_db"
adp1.SelectCommand=cmd
adp1.Fill(ds,"date")
cmd.CommandType=CommandType.Text
cmd.CommandText="select*fromKP_Lib"
adp2.SelectCommand=cmd
adp2.Fill(ds,"date1")
Returnds
EndFunction
PublicFunctionaddRK(ByValidAsString,ByValtabAsString,ByValcdAsString,ByValzdAsString,ByValslAsString)
DimcmdAsNewSqlClient.SqlCommand
DimstrAsString
str=Me.add
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="insertintoKP_Libvalues('"&Format((Val(str)+1),"0000")&"','"&id&"','"&tab&"','"&cd&"','"&zd&"','"&sl&"','"&DBNull.Value&"')"
cmd.ExecuteNonQuery()
str=Val(str)+1
Me.update(str)
ReturnDBNull.Value
EndFunction
PublicFunctionupdate(ByValstrAsString)
Dimcmd1AsNewSqlClient.SqlCommand
Dimadp1AsNewSqlClient.SqlDataAdapter
Dimds1AsNewData.DataSet
cmd1=Me.connlink
cmd1.CommandType=CommandType.Text
cmd1.CommandText="updateKushusetMax='"&str&"'"
cmd1.ExecuteNonQuery()
ReturnDBNull.Value
EndFunction
PublicFunctionadd()AsString
Dimcmd1AsNewSqlClient.SqlCommand
Dimadp1AsNewSqlClient.SqlDataAdapter
Dimds1AsNewData.DataSet
cmd1=Me.connlink
cmd1.CommandType=CommandType.Text
cmd1.CommandText="select*fromKushu"
adp1.SelectCommand=cmd1
adp1.Fill(ds1,"date")
Returnds1.Tables(0).DefaultView.Item(0).Item
(1)
EndFunction
PublicFunctiondeleteRK(ByValidAsString)
DimcmdAsNewSqlClient.SqlCommand
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="deletefromKP_LibwhereID='"&id&"'"
cmd.ExecuteNonQuery()
ReturnDBNull.Value
EndFunction
PublicFunctionupdateRK(ByValidAsString,ByValckidAsString,ByValcptabAsString,ByValcdatAsString,ByValkpzdAsString,ByValkpslAsString)
DimcmdAsNewSqlClient.SqlCommand
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="updateKP_LibsetCK_ID='"&ckid&"',CP_Tab='"&cptab&"',KP_date='"&cdat&"',KP_ZD='"&kpzd&"',KP_SL='"&kpsl&"'whereID='"&id&"'"
cmd.ExecuteNonQuery()
ReturnDBNull.Value
EndFunction
PublicFunctionfind(ByValidAsString)AsDataSet
DimcmdAsNewSqlClient.SqlCommand
Dimadp1AsNewSqlClient.SqlDataAdapter
Dimds1AsNewData.DataSet
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="select*fromKP_LibwhereID='"&id&"'"
adp1.SelectCommand=cmd
adp1.Fill(ds1,"date")
Returnds1
EndFunction
PublicFunctionSHR(ByValidAsString,ByValnameAsString)
DimcmdAsNewSqlClient.SqlCommand
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="updateKP_LibsetKP_SH='"&name&"'whereID='"&id&"'"
cmd.ExecuteNonQuery()
ReturnDBNull.Value
EndFunction
PublicFunctionProcess(ByVallineAsString)AsDataSet
DimcmdAsNewSqlClient.SqlCommand
Dimadp1AsNewSqlClient.SqlDataAdapter
Dimds1AsNewData.DataSet
cmd=Me.connlink
cmd.CommandType=CommandType.Text
cmd.CommandText="EXECProc_PaginationKP_Lib,DEFAULT,ID,5,"&line&",DEFAULT,1,''"
adp1.SelectCommand=cmd
adp1.Fill(ds1,"te")
Returnds1
EndFunction
EndClass
3、截图
5、实验总结
通过这次实验,我了解了单据的类型及重要性,掌握了单据的设计及制作方法,特别是单据中的编码以及状态的控制,利用了.NET分层架构设计,能够实现单据的新增,修改,删除,浏览,审核等功能,为以后的进一步学习奠定了很好的基础。