Danh mục

DataGrid (phần III)

Số trang: 12      Loại file: pdf      Dung lượng: 205.26 KB      Lượt xem: 11      Lượt tải: 0    
Thu Hiền

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

DataGrid (phần III)Edit XML file dựa trên XML SchemaSau khi xác định cấu trúc và datatypes của các Elements và Attributes của table operator, bây giờ ta sẽ cho data vào table ấy. Bạn hãy dùng IDE menuCommand Project | Add New Item để thêm một XML file (click lên icon XML file) vào project. Sửa Name của file ấy từ XMLFile1 thành alarmlist.xml.
Nội dung trích xuất từ tài liệu:
DataGrid (phần III) DataGrid (phần III)Edit XML file dựa trên XML SchemaSau khi xác định cấu trúc và datatypes của các Elements và Attributes của tableoperator, bây giờ ta sẽ cho data vào table ấy. Bạn hãy dùng IDEmenuCommand Project | Add New Item để thêm một XML file (click lên iconXML file) vào project. Sửa Name của file ấy từ XMLFile1 thành alarmlist.xml.Right click lên trang trống của XML, chỉ mới có câu:Chọn PopupMenu command Properties để hiển thị dialog DOCUMENTProperty Pages.Trong cái Dropdown Combo, chọn http://tempuri.org/operatorlist.xsd làmTarget Schema cho operatorlist.xml của chúng ta. Sau đó bạn sẽ thấy Elementoperatorlist có thêm một Attribute mới tên xmlns (chữ ns trong xmlns là viết tắccho namespace) với trị số http://tempuri.org/operatorlist.xsd. Điều nầy cónghĩa là ta áp đặt Schema operatorlist.xsd lên cấu trúc và các dữ kiện bên trongXML file operatorlist.xml.Bây giờ, bạn có thể bắt đầu đánh data vào trang operatorlist.xml. Để ý là vì IDEbiết ta đang dùng Schema operatorlist.xsd, nên nó có thể áp dụng Intellisenseđể giúp ta edit chính xác và nhanh như trong hình dưới đây:Mỗi khi bạn đánh xong opening Tag operator là closing Tag của nó tự độnghiện ra. Bên trong opening Tag của operator, Intellisense sẽ hiển thị tên cácAttributes để bạn chọn. Mỗi khi bạn đánh dấu = sau tên một Attribute thì IDE sẽtự động insert một cặp dấu ngoặc kép.Sau khi đánh xong dữ kiện của một số operators, nếu bạn click MenuCommandXML | Validate XML Data để IDE validate các dữ kiện ta vừa mới cho vào đểxem nó có đúng như định nghĩa trong cái Schema operatorlist.xsd không thì sẽthấy IDE than phiền như sau:E:\NET\HongDevelopment\LessonPreparation\Operators\operatorlist.xml(4):Element http://tempuri.org/operatorlist.xsd:operatorlist has invalid child elementhttp://tempuri.org/operatorlist.xsd:operator.Đó là vì trong Schema không có nói rõ là bên trong Element operatorlist cónhiều Element operator. Để giải quyết trở ngại nầy ta phải edit trực tiếp trongmã nguồn XML của Schema. Bạn hãy doubleclick lên file name operatorlist.xsdcủa Solution Explorer và nếu cần thì click Tab XML của trang Schema để hiển thịmã nguồn XML của operatorlist.xsd.Thay thế cái cặp Tags bằng cặp Tags như trong hình dướiđây để nói rằng có nhiều Elements operator trong Element operatorlist :Typed DatasetTrong bài 13 ta đã tạo Dataset từ Schema bằng cách dùng IDE MenuCommandXML | Schema Generate Dataset. Sau đó mỗi khi muốn nói đến mộtdatafield của record ta dùng tên của datafield ấy. Thí dụ để nói đến datafielddescription trong DataRowView drv ta viết như sau: Label1.Text = drv(description)Một cách viết dễ đọc và tự nhiên hơn là: Label1.Text = drv.descriptionCoding cách nầy được thêm lợi điểm là ngay trước khi chạy chương trình,compiler sẽ cho biết ngay nếu ta đánh vần không đúng chữ description chẳnghạn. Thêm nữa, Intellisense có thể hổ trợ ta trong lúc đánh code vào bằng cáchhiển thị danh sách của tất cả datafields của drv. So với trường hợp ta dùng têndatafield, nếu đánh vần không đúng chữ description thì cho đến run-timechương trình mới khám phá ra việc ấy.Loại Dataset cho phép ta code drv.description được gọi là Typed Dataset vàta có thể phát sinh (generate) nó từ Schema của XML file bằng cách dùng linecommand: xsd.exe /d /l:VB operatorlist.xsd /n:operatorlistDSỞ đây ta dùng chương trình dụng cụ xsd.exe để phát sinh từ Schemaoperatorlist.xsd một dataset trong ngôn ngữ (language) lập trình VB vớinamespace tên operatorlistDS.Nếu bạn không thấy xsd.exe thì tìm nó trong folder \ProgramFiles\Microsoft Visual Studio .NET\FrameworkSDK\Bin rồi có thể copy nóvào project folder. Lưu ý là bản xsd.exe dùng trong final version của VS.NET thìkhác với bản xsd.exe dùng trong version Beta 2.Kế đó, bạn có thể thêm Typed Dataset nầy vào project bằng cách dùng IDEMenuCommand Project | Add Existing Item rồi chọn operatorlist.vb từproject folder.Dùng Dataform wizard để phát sinh form từ DatasetTa sẽ dùng Dataform Wizard để generate một dataform. Nhưng trước đó, ta cầnphải compile project với IDE menuCommand Build | Build Operators để chốcnữa Wizard thấy được Typed Dataset.Bạn hãy dùng IDE MenuCommand Project | Add Windows Form, click lênicon Data Form Wizard và đổi Name của form thành frmOperator.vb nhưtrong hình dưới đây:Tiếp theo đó bạn sẽ thấy Data Form Wizard dialog với tên của Typed Datasethiện ra trong ComboBox của Option Use the following dataset: như dướiđây:Để y nguyên và click Next:Click Checkbox Include an Update button, rồi click Next:Để y nguyên và click Next:Chọn các options như trong hình bên trên rồi click Finish.Form frmOperator sẽ được generated và tự động cho vào Project. Bây giờ bạnhãy right click lên tên file Form1.vb trong Solution Explorer để delete nó vàright click tên project Operators rồi chọn command Properties từ PopupMenuđể đổi Startup object thành frmOperator. Kế đó hãy sắp xếp các object trênform frmOperator cho gọn lại như trong hình dưới đây:Để hiển thị các operator records như một Spreadsheet phía dưới, bạn hãy thêmmột DataGrid tên DataGrid1 vào form. Và để dấu các chữ của Password trongDataform, ta sẽ Edit Property PasswordChar của TextBox editpasswordthành * như dưới đây:Để load data vào DataForm sau khi khởi động chương trình bạn hãy doubleclicklên button Load rồi viết code sau đây cho Event Click:Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnLoad.Click Read operator data from XML file Me.objoperatorlist.ReadXml(..\operatorlist.xml) Bind DataGrid1s Datasource to table operator DataGrid1.SetDataBinding(Me.objoperatorlist, operator) Define our owned display style. Do not display Passwords AddCustomDataTableStyle() Display current record position Me.objoperatorlist_PositionChanged()End SubTa sẽ gọi một Sub AddCustomDataTableStyl ...

Tài liệu được xem nhiều: