Trên cơ sở sử dụng công nghệ phân tích thiết kế h−ớng đối t−ợng và các công cụ hỗ trợ, tôi đ lựa chọn công nghệ cho việc cài đặt hệ thống trên nền Web nh− sau:
– Dùng công nghệ lập trình h−ớng đối t−ợng Visual Studio.Net – Dùng công nghệ XML làm cơ sở dữ liệu (cơ sở dữ liệu XML) 3.8.2. Cài đặt và thử nghiệp
Bài toán “Tuyển dụng cán bộ công chức, viên chức” đ đ−ợc thiết kế và xây dựng theo công nghệ đ lựa chọn, với mục đích ban đầu đ đề ra và thời l−ợng có hạn
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
101
nên tôi chỉ thiết kế và cài đặt một số ca sử dụng mang tính chất thử nghiệp của hệ thống. Các ca sử dụng này đ đ−ợc cài đặt và thử nghiệm thành công trên nền Web. a. Ca sử dụng yêu cầu báo cáo nhân sự
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
103 c. Ca sử dụng Tổng hợp báo cáo
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
105 e. Ca sử dụng thông báo tuyển dụng
Kết luận
Trên đây là toàn bộ kết quả nghiên cứu đ đạt đ−ợc khi thực hiện đề tài "ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web". Với thời l−ợng có hạn luận văn tốt nghiệp của tôi còn có mặt hạn chế, tôi mong có đ−ợc các ý kiến đóng góp, h−ớng dẫn của các thầy, cô để hoàn thiện hơn nữa trong t−ơng lai. Với kết quả nghiên cứu đ đạt đ−ợc trên, tôi sẽ tiếp tục nghiên cứu tìm hiểu và phát triển theo h−ớng của đề tài đ lựa chọn và sẽ hoàn thiện việc triển khai các ứng dụng sử dụng công nghệ h−ớng đối t−ợng và công nghệ XML.
Đạt đ−ợc kết quả trên, một lần nữa tôi chân thành cảm ơn các thầy, cô và tập thể cán bộ khoa Công nghệ thông tin - Đại học Công nghệ đ giảng dạy, h−ớng dẫn tạo mọi điều kiện giúp đỡ tôi. Tôi cũng mong có đ−ợc các ý kiến đóng góp, h−ớng dẫn của các thầy, cô để có thể hoàn thiện hơn nữa và có h−ớng phát triển tiếp theo dựa trên kết quả nghiên cứu đ đạt đ−ợc.
Hà Nội, ngày 25 tháng 10 năm 2006
Học viên cao học
Tài liệu tham khảo Tiếng Việt:
1. Đoàn Văn Ban (2001), Giáo trình UML, Hà Nội
2. PGS TS Nguyễn Văn Vỵ (2000), Phân tích thiết kế các hệ thống thông tin hiện đại, NXB Thống kê
3. Nhập môn UML (2003), NXB Lao động – X hội
4. Thủ t−ớng Chính phủ (2003), Nghị Định 29/2003/NĐ-CP ngày 31 tháng 3 năm 2003 Qui định về chức năng, nhiệm vụ, quyền hạn và tổ chức bộ máy của Bộ LĐTBXH.
5. UBTV Quốc hội (2003), Pháp lệnh cán bộ công chức sửa đổi, bổ sung một số điều của Pháp lệnh cán bộ công chức.
6. XML – kỹ thuật tạo trang Web (2004), NXB Thống kê Tiếng Anh:
7. Airi Salminen, Frank Wm.Tompa: Department of Computer and Science and information Systems University of Jyvaskyla Finland, Department of Computer and Science University of Waterloo Canada, “Requirents for XML Document Database Systems”
8. Brian E. Travis (2002), “XML Syntax”, XML and SOAP Programming for BizTalk Servers, Microsoft Press
9. Codd, Peter and Edwaid Yourdon (1990), Object Oriented Analysis, Englewood Cliffs NJ Yourdon Press, Prentics Hall
10. David Carlon (2001), Modeling XML Applications with UML, Addison Wesley 11. Erich Gamma, Richard Helm, Ralph Johnson, John Vilisides (1994), Design
patterns: Elements of Reusable Object – Oriented Software, Addison Wesley 12. Grady Booch (1994), Object Oriented Analysis and Design with Applications.
Benjamin Cumminhs,
13. Grady Booch, Jame Bumbaugh and Ivar Jacobson (1999), The Unified Modeling Language User Guide, Addison Wesley
14. Jag Sodhi, Prince Sodhi (1998), Software reuse: Domain Analysis and Design Processes, McGrawn-Hill
15. John D. McGrecor, David A. Sykes (1992), Object Oriented Software Development: Engineering Software for Reuse, Intl Thomson Computer Press 16. Jan Egil Refsnes (1999), XML Basic and Advanced, http://www.w3schools.com
109
17. Mike Champion, Gavin Nicol (1998), Document Object Model Level 1, http://www.w3.org
18. Pontus Norman (1999), "A study of XML"
19. R. Allen Wyke, Sultan Rehman, Brad Leupan (2002), XML Programming, Microsoft Press.
phụ lục
1. File dữ liệu XML DSDonvi.xml phục vụ gói ca sử dụng "Xác định chỉ tiêu tuyển dụng" <?xml version="1.0" standalone="yes"?> <NewDataSet> <xs:schema id="NewDataSet" xmlns="" xmlns:xs= "http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft- com:xml- msdata"> <xs:element name="part"> <xs:complexType> <xs:sequence>
<xs:element name="MaDonVi" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="TenDonVi" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
<xs:element name="TongSoCanBo" type="xs:integer" minOccurs="0"
msdata:Ordinal="3" />
<xs:element name="NhanBaoCao" type="xs:integer" minOccurs="0" msdata:Ordinal="4" />
<xs:element name="BaoCao" type="xs:integer" minOccurs="0" msdata:Ordinal="5" />
<xs:element name="SoBienCheDG" type="xs:integer" minOccurs="0" msdata:Ordinal="6" />
<xs:element name="SoCBBienChe" type="xs:integer" minOccurs="0"
msdata:Ordinal="7" />
</xs:sequence>
<xs:attribute name="partid" type="xs:integer" /> </xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="part" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <part> <MaDonVi>dv01</MaDonVi> <TenDonVi>Văn phũng Bộ</TenDonVi> <TongSoCanBo>15</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>1</BaoCao>
111 <SoBienCheDG>0</SoBienCheDG> <SoCBBienChe>15</SoCBBienChe> </part> <part> <MaDonVi>dv02</MaDonVi>
<TenDonVi>Đại học Lao động - Xó hội</TenDonVi> <TongSoCanBo>295</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>30</SoBienCheDG> <SoCBBienChe>210</SoCBBienChe> </part> <part> <MaDonVi>dv03</MaDonVi>
<TenDonVi>Vụ Tổ chức cỏn bộ - Đào tạo</TenDonVi> <TongSoCanBo>12</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>2</SoBienCheDG> <SoCBBienChe>10</SoCBBienChe> </part> <part> <MaDonVi>dv04</MaDonVi> <TenDonVi>Tổng cục dạy nghề</TenDonVi> <TongSoCanBo>105</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>10</SoBienCheDG> <SoCBBienChe>97</SoCBBienChe> </part> <part> <MaDonVi>dv05</MaDonVi>
<TenDonVi>Vụ Kế hoạch tài chớnh</TenDonVi> <TongSoCanBo>17</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>1</SoBienCheDG> <SoCBBienChe>16</SoCBBienChe> </part> <part> <MaDonVi>dv06</MaDonVi> <TenDonVi>Vụ Bảo trợ xó hội</TenDonVi> <TongSoCanBo>12</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao>
<BaoCao>0</BaoCao> <SoBienCheDG>2</SoBienCheDG> <SoCBBienChe>10</SoCBBienChe> </part> <part> <MaDonVi>dv07</MaDonVi> <TenDonVi>Vụ Hợp tỏc quốc tế</TenDonVi> <TongSoCanBo>11</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>2</SoBienCheDG> <SoCBBienChe>9</SoCBBienChe> </part> <part> <MaDonVi>dv08</MaDonVi>
<TenDonVi>Vụ Lao động - Việc làm</TenDonVi> <TongSoCanBo>10</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>1</SoBienCheDG> <SoCBBienChe>9</SoCBBienChe> </part> <part> <MaDonVi>dv09</MaDonVi>
<TenDonVi>Vụ Tiền lương - Tiền cụng</TenDonVi> <TongSoCanBo>12</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>5</SoBienCheDG> <SoCBBienChe>10</SoCBBienChe> </part> <part> <MaDonVi>dv10</MaDonVi> <TenDonVi>Vụ Bảo hiểm</TenDonVi> <TongSoCanBo>10</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>0</SoBienCheDG> <SoCBBienChe>10</SoCBBienChe> </part> <part> <MaDonVi>dv11</MaDonVi>
<TenDonVi>Cục Quản lý Lao động ngoài nước</TenDonVi> <TongSoCanBo>55</TongSoCanBo>
113 <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>5</SoBienCheDG> <SoCBBienChe>53</SoCBBienChe> </part> <part> <MaDonVi>dv12</MaDonVi>
<TenDonVi>Cục Thương binh liệt sỹ</TenDonVi> <TongSoCanBo>15</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>1</SoBienCheDG> <SoCBBienChe>14</SoCBBienChe> </part> <part> <MaDonVi>dv13</MaDonVi>
<TenDonVi>Viện Khoa học LĐXH</TenDonVi> <TongSoCanBo>47</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>0</SoBienCheDG> <SoCBBienChe>47</SoCBBienChe> </part> <part> <MaDonVi>dv14</MaDonVi> <TenDonVi>Cục Phũng chống tệ nạn</TenDonVi> <TongSoCanBo>10</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>1</SoBienCheDG> <SoCBBienChe>9</SoCBBienChe> </part> <part> <MaDonVi>dv15</MaDonVi>
<TenDonVi>Thanh tra Bộ</TenDonVi> <TongSoCanBo>10</TongSoCanBo> <NhanBaoCao>1</NhanBaoCao> <BaoCao>0</BaoCao> <SoBienCheDG>0</SoBienCheDG> <SoCBBienChe>10</SoCBBienChe> </part> </NewDataSet>
2. Mã nguồn cho các chức năng trong ch−ơng trình a. Form DanhSachDonvi Imports System.Text Imports System.Data Imports System.Collections Imports System.net Imports System.Xml Imports System.IO
PublicClass DonVi
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() EndSub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents grdDonVi As System.Web.UI.WebControls.DataGrid Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton Protected WithEvents btnGuiBaoCao As System.Web.UI.WebControls.Button Protected WithEvents grdDV As System.Web.UI.WebControls.DataGrid Protected WithEvents btnThem As System.Web.UI.WebControls.Button Private designerPlaceholderDeclaration As System.Object
PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Init
InitializeComponent() EndSub
#End Region
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
IfNot IsPostBack Then
BindDonVi() End If
EndSub
PrivateSub grdDV_PageIndexChanged(ByVal source As System.Object, ByVal e
As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles
grdDV.PageIndexChanged
grdDV.CurrentPageIndex = e.NewPageIndex BindDonVi()
EndSub
PrivateSub grdDV_DeleteCommand(ByVal source As System.Object, ByVal e
As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
115
Dim id AsString = grdDV.DataKeys.Item(e.Item.ItemIndex) Dim i AsInteger
Dim strString AsString
Dim ds AsNew DataSet Dim inputXml AsString
Dim input2 AsString
Dim input1 AsString
Dim input3 AsString
Dim reader As StreamReader = New StreamReader(Server.mapath & "." & "\database\dsdonvi.xml")
inputXml = reader.ReadToEnd reader.Close()
Try
strString = "<MaDonVi>" + id.ToString + "</MaDonVi>" input1 = inputXml.Substring(0, inputXml.IndexOf(strString)) input3 = inputXml.Substring(0, inputXml.IndexOf(strString)) input2 = inputXml.Substring(inputXml.IndexOf(strString) + strString.Length)
DoWhile (input3.IndexOf("</part>") > 0)
input3 = input3.Substring(input3.IndexOf("</part>") + 7) Loop
input1 = input1.Substring(0, input1.Length - input3.Length) If (input2.IndexOf("<MaDonVi>") > 0) Then
input2 = input2.Substring(input2.IndexOf("<MaDonVi>")) Else
input2 = "</NewDataSet>" EndIf
inputXml = input1 + input2
Dim doc As XmlDocument = New XmlDocument
doc.LoadXml(inputXml)
doc.Save("Server.mapath & "." & "\database\dsdonvi.xml") Catch ex As Exception
Dim str AsString = ex.Message End Try
BindDonVi() EndSub
Protected Sub ButtonRender(ByVal sender AsObject, ByVal e As EventArgs) Dim Btn As LinkButton = CType(sender, LinkButton)
Btn.Attributes.Item("onclick") = "return confirm('B?n cú ch?c ch?n xoỏ don v? này?');"
EndSub
PrivateSub BindDonVi() Try
ds.ReadXml("Server.mapath & "." & "\database\dsdonvi.xml")
'lblPartID.Text = CType(ds.Tables(0).Rows(0).Item("PartID"), String)
grdDV.DataSource = ds grdDV.DataBind() ds.Dispose()
Catch ex As Exception
Dim strError AsString = ex.Message End Try
EndSub
PrivateSub btnGuiBaoCao_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGuiBaoCao.Click
Dim i AsInteger
Dim dem AsInteger
i = 0
Dim ds AsNew DataSet
ds.ReadXml("Server.mapath & "." & "\database\dsdonvi.xml") For i = 0 To grdDV.Items.Count - 1
Dim chkDelete As CheckBox
chkDelete = CType(grdDV.Items(i).Cells(0).FindControl("ChkDelete"), CheckBox)
If chkDelete.Checked = TrueThen
Try
ds.Tables(0).Rows(i).Item("MaDonVi") = grdDV.Items(i).Cells(1).Text ds.Tables(0).Rows(i).Item("TenDonVi") = grdDV.Items(i).Cells(2).Text ds.Tables(0).Rows(i).Item("BaoCao") = 1
ds.WriteXml("Server.mapath & "." & "\database\dsdonvi.xml", _ XmlWriteMode.WriteSchema)
Catch ex As Exception
Dim err AsString = ex.Message Finally ds.Dispose() EndTry EndIf Next grdDV.DataSource = ds grdDV.DataBind() Response.Redirect("DSDonViBaoCao.aspx", True) EndSub
PrivateSub btnThem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnThem.Click
Response.Redirect("ThemDonVi.aspx?Mode=AddNew", True) EndSub
117
PrivateSub grdDV_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles grdDV.SelectedIndexChanged EndSub
EndClass
b. Code form DSDonViPhaiBaocao
PublicClass DSDonViBaoCao Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() EndSub
Protected WithEvents grdDonVi As System.Web.UI.WebControls.DataGrid Private designerPlaceholderDeclaration As System.Object
PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Init
InitializeComponent() EndSub
#End Region
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
IfNot IsPostBack Then
BindDonVi() End If
EndSub
PrivateSub BindDonVi() Try
Dim dt As DataTable
dt = New DataTable("DSDonViBaoCao")
Dim MaDonVi As DataColumn = New DataColumn("MaDonVi") MaDonVi.DataType = System.Type.GetType("System.String") dt.Columns.Add(MaDonVi)
Dim TenDonVi As DataColumn = New DataColumn("TenDonVi") TenDonVi.DataType = System.Type.GetType("System.String") dt.Columns.Add(TenDonVi)
Dim TongSoCB As DataColumn = New DataColumn("TongSoCB") TongSoCB.DataType = System.Type.GetType("System.Int32") dt.Columns.Add(TongSoCB)
ds.ReadXml("D:\temp\Data.xml") Dim i AsInteger For i = 0 To ds.Tables(0).Rows.Count - 1 If ds.Tables(0).Rows(i).Item("BaoCao") = 1 Then dt.ImportRow(ds.Tables(0).Rows(i)) EndIf Next grdDonVi.DataSource = dt grdDonVi.DataBind() ds.Dispose() Catch ex As Exception
Dim strError AsString = ex.Message End Try
EndSub
PrivateSub grdDonVi_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles grdDonVi.SelectedIndexChanged EndSub
EndClass
c. Code form bỏo cỏo của đơn vị
PublicClass DonViBaoCao Inherits System.Web.UI.Page
#Region " Web Form Designer Generated_u67 ?ode "
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() EndSub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents Label3 As System.Web.UI.WebControls.Label Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox Protected WithEvents Label4 As System.Web.UI.WebControls.Label Protected WithEvents Label5 As System.Web.UI.WebControls.Label Protected WithEvents TextBox3 As System.Web.UI.WebControls.TextBox Protected WithEvents Label6 As System.Web.UI.WebControls.Label Protected WithEvents btnThoat As System.Web.UI.WebControls.Button Protected WithEvents txtMaDonVi As System.Web.UI.WebControls.TextBox Protected WithEvents txtTenDonVi As System.Web.UI.WebControls.TextBox Protected WithEvents txtTSCanBo As System.Web.UI.WebControls.TextBox Protected WithEvents txtSCBBienChe As System.Web.UI.WebControls.TextBox Protected WithEvents btnGuiBaoCao As System.Web.UI.WebControls.Button Protected WithEvents RegTongsoCB As
119
Protected WithEvents ValidationSummary1 As
System.Web.UI.WebControls.ValidationSummary Protected WithEvents RegSoCBbienche As
System.Web.UI.WebControls.RegularExpressionValidator Protected WithEvents CusTongSo As
System.Web.UI.WebControls.CustomValidator
Private designerPlaceholderDeclaration As System.Object
PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Init
InitializeComponent() EndSub
#End Region
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
IfNot Page.IsPostBack Then
LoadData() End If
LoadErrMessages() EndSub
PrivateSub LoadErrMessages()
RegTongsoCB.ErrorMessage = "Dữ liệu khụng hợp lệ. Xin vui lũng nhập số
nguyờn dương!"
RegSoCBbienche.ErrorMessage = "Dữ liệu khụng hợp lệ. Xin vui lũng nhập số
nguyờn dương!" EndSub
PrivateSub LoadData()
If (Not Request.QueryString("MaDonVi") IsNothing) Then
Try
Dim i AsInteger
Dim ds AsNew DataSet
ds.ReadXml("D:\temp\Data.xml") For i = 0 To ds.Tables(0).Rows.Count - 1 If ds.Tables(0).Rows(i).Item("MaDonVi") = Request.QueryString("MaDonVi") Then txtMaDonVi.Text = Request.QueryString("MaDonVi") txtMaDonVi.ReadOnly = True txtTenDonVi.Text = ds.Tables(0).Rows(i).Item("TenDonVi") txtTenDonVi.ReadOnly = True EndIf Next ds.Dispose()
Catch ex As Exception
Dim strError AsString = ex.Message EndTry
End If
EndSub
PrivateSub btnGuiBaoCao_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGuiBaoCao.Click
Dim i AsInteger
Dim ds AsNew DataSet Try ds.ReadXml("D:\temp\Data.xml") For i = 0 To ds.Tables(0).Rows.Count - 1 If ds.Tables(0).Rows(i).Item("MaDonVi") = Request.QueryString("MaDonVi") Then ds.Tables(0).Rows(i).Item("MaDonVi") = txtMaDonVi.Text ds.Tables(0).Rows(i).Item("TenDonVi") = txtTenDonVi.Text ds.Tables(0).Rows(i).Item("BaoCao") = 0 ds.Tables(0).Rows(i).Item("NhanBaoCao") = ằ If txtTSCanBo.Text <> "" Then ds.Tables(0).Rows(i).Item("TongSoCanBo") = txtTSCanBo.Text Else ds.Tables(0).Rows(i).Item("TongSoCanBo") = 0 EndIf If txtSCBBienChe.Text <> "" Then ds.Tables(0).Rows(i).Item("SoCBBienChe") = txtSCBBienChe.Text Else ds.Tables(0).Rows(i).Item("SoCBBienChe") = 0 EndIf IfInteger.Parse(txtSCBBienChe.Text) >
Integer.Parse(txtTSCanBo.Text) Then
CusTongSo.ErrorMessage = "Số cỏn bộ biờn chế phải ớt hơn tổng số cỏn bộ" CusTongSo.IsValid = False Return EndIf ds.WriteXml("D:\temp\Data.xml", _ _u32 ?XmlWriteMode.WriteSchema) EndIf Next Catch ex As Exception
Dim err AsString = ex.Message Finally
121
ds.Dispose() End Try
Response.Redirect("DSDonViBaoCao.aspx", True) EndSub
PrivateSub btnThoat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnThoat.Click
Response.Redirect("DSDonViBaoCao.aspx", True) EndSub
EndClass
d. Code cho chức năng thờm đơn vị vào cơ sở dữ liệu
Imports System.Xml
Imports System.Text
Imports System.Net
Imports System.IO
PublicClass ThemDonVi
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated_u67 ?ode "
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() EndSub
Protected WithEvents txtMaDonVi As System.Web.UI.WebControls.TextBox Protected WithEvents txtTenDonVi As System.Web.UI.WebControls.TextBox Protected WithEvents btnThem As System.Web.UI.WebControls.Button Protected WithEvents btnThoat As System.Web.UI.WebControls.Button Protected WithEvents ValidationSummary1 As
System.Web.UI.WebControls.ValidationSummary Protected WithEvents CustomValidator As
System.Web.UI.WebControls.CustomValidator
Private designerPlaceholderDeclaration As System.Object
PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Init
InitializeComponent() EndSub
#End Region
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
IfNot IsPostBack Then
LoadData() End If
PrivateSub btnThem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnThem.Click
Dim i AsInteger
Dim strString AsString
Dim ds AsNew DataSet
If (Request.QueryString("Mode") = "AddNew") Then
Dim inputXml AsString
ds.ReadXml("D:\temp\Data.xml")
For i = 0 To ds.Tables(0).Rows.Count - 1
If (txtMaDonVi.Text = ds.Tables(0).Rows(i).Item("MaDonVi")) Then
CustomValidator.ErrorMessage = "Mó đơn vịđó tồn tại. Xin vui lũng nhập mó khỏc!"
CustomValidator.IsValid = False
Return
EndIf
Next
Dim reader As StreamReader = New StreamReader("D:\temp\Data.xml") inputXml = reader.ReadToEnd
reader.Close() Try
inputXml = inputXml.Substring(0, inputXml.IndexOf("</NewDataSet>")) strString = "<part><MaDonVi>"
strString = strString + txtMaDonVi.Text + "</MaDonVi><TenDonVi>" strString = strString + txtTenDonVi.Text +
"</TenDonVi><TongSoCanBo>0</TongSoCanBo>" strString = strString +
"<NhanBaoCao>0</NhanBaoCao><BaoCao>0</BaoCao><SoCBBienChe>0</SoC BBienChe><SoBienCheDG>0</SoBienCheDG></part>"
inputXml = inputXml + strString + "</NewDataSet>" Dim doc As XmlDocument = New XmlDocument doc.LoadXml(inputXml)
doc.Save("D:\temp\Data.xml") Catch ex As Exception
Dim str AsString = ex.Message EndTry Else Try ds.ReadXml("D:\temp\Data.xml") For i = 0 To ds.Tables(0).Rows.Count - 1 If ds.Tables(0).Rows(i).Item("MaDonVi") = Request.QueryString("MaDonVi") Then ds.Tables(0).Rows(i).Item("MaDonVi") = txtMaDonVi.Text ds.Tables(0).Rows(i).Item("TenDonVi") = txtTenDonVi.Text
123 ds.WriteXml("D:\temp\Data.xml", _ _u32 ? XmlWriteMode.WriteSchema) End If Next Catch ex As Exception
Dim err AsString = ex.Message Finally ds.Dispose() EndTry End If Response.Redirect("DonVi.aspx") EndSub
PrivateSub btnThoat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnThoat.Click
Response.Redirect("DonVi.aspx", True) EndSub
PrivateSub LoadData()
If (Not Request.QueryString("MaDonVi") IsNothing) Then
Try
Dim i AsInteger
Dim ds AsNew DataSet
ds.ReadXml("D:\temp\Data.xml") For i = 0 To ds.Tables(0).Rows.Count - 1 If ds.Tables(0).Rows(i).Item("MaDonVi") = Request.QueryString("MaDonVi") Then txtMaDonVi.Text = Request.QueryString("MaDonVi") txtTenDonVi.Text = ds.Tables(0).Rows(i).Item("TenDonVi") EndIf Next ds.Dispose() Catch ex As Exception
Dim strError AsString = ex.Message EndTry
End If
EndSub EndClass
e. Code cho chức năng tổng hợp bỏo cỏo
PublicClass TongHopBaoCao Inherits System.Web.UI.Page
<System.Diagnostics.DebuggerStepThrough()> PrivateSub InitializeComponent() EndSub
Protected WithEvents grdBaoCao As System.Web.UI.WebControls.DataGrid Private designerPlaceholderDeclaration As System.Object
PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Init
InitializeComponent() EndSub
#End Region
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) HandlesMyBase.Load
IfNot IsPostBack Then
BindDonVi() End If
EndSub
PrivateSub BindDonVi() Try
Dim ds AsNew DataSet
ds.ReadXml("D:\temp\Data.xml") grdBaoCao.DataSource = ds grdBaoCao.DataBind() ds.Dispose()
Catch ex As Exception
Dim strError AsString = ex.Message End Try