Tìm hiểu delphi và ưng dụng vào bài toán quản lý vật tư

TÌM HIỂU DELPHI VÀ ỨNG DỤNG VÀO BÀI TOÁN QUẢN LY TÓM TẮT ĐỒ ÁN TỐT NGHIỆP Hiện nay ứng dụng của Công nghệ Thông tin đã trở nên phổ biến rộng rãi. Các hệ thống máy tính đã và đang được triển khai ở nhiều nơi, nhu cầu Tin học hóa trong công tác quản lý là rất lớn. Việc áp dụng Tin học vào công tác quản lý sẽ đem lại nhiều hiệu quả to lớn trong việc thúc đẩy phát triển nền kinh tế xã hội, nâng cao khả năng sáng tạo, tiết kiệm được nhiều công sức thời gian và tiền bạc. Để đáp ứng nhu cầu ngày càng cao đó, cần phải có nhiều phần mềm ra đời hơn nữa. Do vậy việc tìm hiểu công cụ mới và ứng dụng vào bài toán quản lý là một xu hướng sẽ gặp trong quá trình công tác sau này, khi mà công cụ lập trình ngày càng nhiều và đa dạng hơn. Đó là lý do mà tôi chọn làm Đồ án Tốt nghiệp với đề tài “Tìm Hiểu Delphi Và Ưng Dụng Vào Bài Toán Quản Lý Vật Tư”. Đồ án tốt nghiệp "Tìm hiểu Delphi và áp dụng vào bài toán quản lý vật tư " mà tôi đã hoàn thành trong thời gian qua là tổng kết những gì về kiến thức mà tôi đã tìm hiểu về lập trình ứng dụng cơ sở dữ liệu trong Delphi để xây dựng chương trình quản lý vật tư-tài sản mang tính khả thi. Nội dung chính của đồ án này là tìm hiểu công cụ lập trình nhanh Delphi để xây dựng ứng dụng CSDL, tìm hiểu xây dựng hệ thống thông tin quản lý vật tư tài sản tại Trường Đại học Kỹ thuật. Tìm hiểu đề xuất các phương án xử lý trên mạng. Với đề tài này tôi đã góp phần vào việc Tin học hóa trong công tác quản lý vật tư tài sản của Trường. Bước đầy xây dựng khá hoàn thiện hệ thống thông tin về CSDL cũng như chương trình. Tuy nhiên vẫn cần phải có thời gian và công sức đầu tư hơn nữa để chương trình được hoàn thiện hơn. LỜI NÓI ĐẦU Trong những năm cuối thế kỹ 20, nhân loại đã chứng kiến sự phát triển vô cùng mạnh mẽ trong lĩnh vực Khoa học và Công nghệ mà đặc biệt là lĩnh vực Công nghệ Thông tin. Những thúc đẩy to lớn về kỹ thuật phần cứng cũng như sự chú trọng đầu tư về phần mềm đã và đang cùng thế kỹ 21 hứa hẹn một kỹ nguyên mới về đột phá trong Công nghệ Thông tin: Kỹ nguyên của mạng toàn cầu. Trước ngưỡng cửa đó hầu hết mọi quốc gia, chính phủ đều cố gắng xây dựng và hoàn thiện hệ thống CSDL quốc gia của mình. Có như vậy mới thúc đẩy phát triển nền kinh tế, hòa vào xu thế chung của toàn cầu. Nhu cầu Tin học hóa là điều khó tránh khỏi, do vậy mọi ban ngành, lĩnh vực đều gấp rút thực hiện việc Tin học hóa trong mọi công việc đặc biệt là công tác quản lý của mình. Một khối lượng công việc rất lớn đang chờ đón các nhà thiết kế xây dựng phần mềm. Một nhu cầu cấp thiết nữa là phải hiểu biết và nắm vững những công cụ lập trình hiện đại để có thể giải quyết hầu hết các công việc đó. Do vậy các kỹ sư Tin học khi ra trường không chỉ trang bị cho mình các kiến thức về máy tính, lập trình, phần cứng, phần mềm mà còn phải hiểu biết về mạng và có thể nắm bắt linh hoạt, sử dụng dể dàng các phần mềm khác nhau, các công cụ lập trình mà hiện thị trường đang ưa chuộng. Song song với điều đó cần phải có một công cụ lập trình mạnh, nhanh và tiện lợi, thuận tiện trong lập trình. Một trong những công cụ lập trình nhanh được ưa chuộng hiện nay đáp ứng được khả năng đó: Lập trình trên Delphi. Chính vì thế mà tôi chọn đề tài Tốt nghiệp của mình là tìm hiểu Delphi và ứng dụng vào bài toán quản lý. Với Đồ án này tôi đã hoàn thành được: Tìm hiểu về công tác quản lý vật tư tài sản trong Trường và xây dựng được một cơ sở dữ liệu khá hoàn chỉnh về hệ thống thông tin vật tư tài sản tại trường Đại học Kỹ thuật Đà Nẵng. Bao gồm rất nhiều danh mục tài sản, với rất nhiều loại tài sản, được thống kê kiểm tra ở tất cả các khoa, phòng ban trong trường Đại học Kỹ thuật với số liệu lấy từ kiểm kê tài sản trong trường từ năm 1996-1999. Trên cơ sở dữ liệu đã có này có thể kế thừa để phát triển chương trình tốt hơn và tối ưu phục vụ trong công tác quản lý và Tin học hóa quản lý. Xây dựng được chương trình quản lý tài sản vật tư cho phép người sử dụng có thể tra cứu thông tin đầy đủ và chi tiết về tất cả các loại tài sản trong các phòng ban, khoa trong Trường. Cho phép nhập xuất kho các loại tài sản, tài sản mua về, tài sản bán đi. Theo dõi việc xuất nhận tài sản tại các đơn vị, khoa để từ đó lãnh đạo có thể đề ra các chỉ tiêu hợp lý. Chương trình được viết bởi công cụ Delphi xây dựng cho một máy đơn có tính khả thi, và có thể làm việc với CSDL chung trên mạng ngang hàng. Tìm hiểu về các mô hình quản lý vật tư trên mạng để từ đó có thể triển khai và phát triển bài toán trên mạng với nhiều người dùng. Do thời gian và tài liệu còn hạn chế, với khả năng có hạn của bản thân. Trong đồ án này không thể tránh khỏi những sai sót và khiếm khuyết. Tuy nhiên tôi cũng đã cố gắng hoàn thành đồ án đúng thời hạn và đạt được yêu cầu đã giao. Rất mong được sự góp ý của các thầy cô và các bạn.

doc67 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2908 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu delphi và ưng dụng vào bài toán quản lý vật tư, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ernet hiãûn nay, maûng maïy tênh coï nhæîng giaï trë vä cuìng to låïn, trãn maûng mäüt ngæåìi coï thãø laìm âæåüc ráút nhiãöu cäng viãûc, tæì mua sàõm, giaíi trê, truy tçm thäng tin âãún caïc dëch vuû thæång maûi. Coï thãø noïi maûng maïy tênh âaî tråî nãn laì váún âãö säúng coìn cho mäùi quäúc gia, táûp âoaìn, cäng ty caí nhæîng âån vë nhoí. Nhu cáöu láûp trçnh vãö maûng laì ráút låïn, caïc cäng cuû láûp trçnh hay nhæîng ngän ngæî maì ta sæí duûng vaì hoüc táûp thæåìng ngaìy ráút khoï âãø phaït triãøn nhanh caïc æïng duûng maûng. Caïc phiãn baín Delphi sau naìy âãöu chuï troüng vaìo váún âãö naìy vaì Delphi chênh laì cäng cuû âæåüc æa chuäüng cho viãûc thiãút kãú caïc æïng duûng vãö maûng. II. CAÏC THAÌNH PHÁÖN CÅ SÅÍ DÆÎ LIÃÛU CUÍA DELPHI Hai cäng cuû chênh cho xáy dæûng mäüt æïng duûng CSDL trong Delphi laì Data Access Component vaì Data Controls Component ngoaìi ra coìn cáön sæí duûng thaình pháön QReport Component âãø taûo caïc baïo biãøu vaì caïc Component maûng âãø thiãút láûp caïc kãú näúi. * Data Access : Nonvisual data access components * Data Control : Visual data-awarecomponents Data Access: Caïc thaình pháön truy cáûp CSDL khäng træûc quan cung cáúp caïc cäng cuû âãø truy cáûp vaìo Database. Âæåüc bàõt nguäön tæì låïp TDataSet, nhoïm naìy bao gäöm caïc thaình pháön: TTable, TQuery vaì TStoredProc. Âuïng nhæ tãn goüi Nonvisual, khi thi haình caïc æïng duûng, caïc thaình pháön naìy khäng thãø nhçn tháúy vaì âæåüc xáy dæûng tæì låïp TDataSet Data Controls: Caïc thaình pháön nháûn biãút dæî liãûu træûc quan duìng âãø hiãøn thë vaì sæîa âäøi dæî liãûu. Nhoïm naìy gäöm: TDBEdit, TDBListBox, TDBGrid, TDBNavigator...Caïc thaình pháön naìy laìm viãûc tæång tæû nhæ caïc thaình pháön chuáøn Edit, List Box, Grid...chè khaïc biãût åí âiãøm chuïng phaíi âæåüc gàõn våïi mäüt baíng hoàûc caïc vuìng tin cuía mäüt database. Thäng qua viãûc sæîa âäøi caïc thaình pháön naìy ngæåìi sæí duûng coï thãø thæûc hiãûn caïc thay âäøi âäúi våïi CSDL. Cáön chuï yï ràòng hai nhoïm naìy khäng thãø trao âäøi dæî liãûu træûc tiãúp våïi nhau maì phaíi thäng qua thaình pháön TDataSource. Thaình pháön naìy thuäüc nhoïm Data Access, coï nhiãûm vuû laìm cáöu näúi trung gian giæîa låïp TDataSet vaì caïc thaình pháön thuäüc nhoïm Data Controls. Database Database(Ttable, Tquery, TstoredProc) TDataSource TDBGrid TDBText TDBImage TDBMemo TDBEdit Hçnh 8 [2]: Kiãún truïc caïc thaình pháön CSDL trong Delphi II.1. Data Access Component Laì mäüt thaình pháön nàõm giæî viãûc quaín trë dæî liãûu gáön nhæ hoaìn toaìn trong Delphi. Âäúi våïi baìi toaïn quaín trë cå såí dæî liãûu, chuïng ta phaíi coï mäüt caïch naìo âoï âãø láúy ra toaìn bäü dæî liãûu læu træî vaì noï âæåüc tênh toaïn. Mäüt taìi saín âæåüc læu træî coï yï nghéa khi ta truy cáûp âæåüc noï trãn CSDL. Mäüt váön âãö quan troüng næîa cuía viãûc quaín trë CSDL laì truy cáûp dæî liãûu khäng âáöy âuí, phaíi kãút håüp ráút nhiãöu baíng biãøu måïi cho âæåüc thäng tin chi tiãút vãö âäúi tæåüng cáön tçm. Khi gàûp mäüt CSDL låïn coï thãø ta phaíi máút mäüt thåìi gian ráút láu måïi coï thãø tçm ra âæåüc mäüt máøu tin cáön tçm kiãúm. Viãûc laìm nhoí kêch thæåïc cuía dæî liãûu âãø ta hiãøn thë noï theo mäüt hay nhiãöu caïch cuîng laì mäüt váún âãö quan troüng. II.1.1 TDatasource Mäüt datasource laìm viãûc nhæ tãn aïm chè cuía noï. Laì nåi maì ta truy cáûp thäng tin cáön thiãút. Trong khi mäüt Database laì mäüt kho dæî liãûu cho táút caí caïc thäng tin liãn quan tæì caïc baíng bao gäöm nhiãöu kiãøn thäng tin thç datasource tháût sæû láúy caïc thäng tin trãn âoï âæa vaìo mçnh taûm thåìi nhæ laì mäüt dæî liãûu trung gian cho baûn xæí lyï. Mäüt datasource coï thãø laì mäüt Table, Query hay StoredProcedure, chuïng laì thaình pháön cuía database. Trong thiãút kãú cuía Delphi, yï tæåíng cuía mäüt database nhæ mäüt ngæåìi maì ta noïi chuyãûn vaì datasource nhæ mäüt maïy âiãûn thoaûi maì ta seî sæí duûng âãø goüi tåïi hoü. Hçnh aính minh hoüa naìy ráút roî raìng khi thiãút kãú mäüt æïng duûng CSDL maûng Client/Server, khi naìy mäüt TClientDataset kãút näúi våïi mäüt RemoteServer laì mäüt TDCOMconnection, Datasource láúy dæî liãûu váût lyï âæåüc truyãön tåïi TClientDataset vaì cung cáúp cho caïc thaình pháön hiãøn thë dæî liãûu vaì thao taïc xæí lyï dæî liãûu trong æïng duûng cuía baûn. Tråí laûi yï tæåíng trãn, khi ta goüi cho mäüt ngæåìi baûn muäún noïi chuyãûn ta seî hoíi hoü vãö mäüt chuí âãö riãng naìo âoï (mäüt Query, Table hay StoredProcedure) vaì âoï chênh laì muûc âêch cuía mäüt Datasource trong Delphi. Noï laì mäüt thaình pháön cuía Delphi ráút hay duìng âãún khi viãút chæång trçnh æïng duûng quaín trë CSDL. Thuäüc tênh âaïng chuï yï cuía thaình pháön naìy laì: Name Gaïn mäüt tãn cho thaình pháön database. DataSet Chè tãn våïi Table, Query... kãút näúi. II.1.2. TTable Thaình pháön TTable seî cung cáúp dæî liãûu cho thaình pháön DataSource vaì tæì âoï caïc thaình pháön khaïc seî láúy dæî liãûu âãø hiãùn thë cho pheïp ngæåìi sæí duûng truy cáûp tênh toaïn. Nhæ váûy Table chênh laì thaình pháön ráút quan troüng trong viãûc xáy dæûng mäüt æïng duûng CSDL, nåi âáy træûc tiãúp láúy dæî liãûu váût lyï tæì caïc baíng CSDL vaì âæa chuïng vaìo Table theo tãn goüi cuía noï. Viãûc sæí duûng thaình pháön naìy trong Delphi, vaì caïc thaình pháön khaïc thuäüc låïp naìy âæa âãún mäüt khaïi niãûm trong láûp trçnh Delphi âoï laì vuìng âãûm cáûp nháût dæî liãûu (Cached Updates). Vuìng âãûm naìy cho pheïp âiãöu khiãøn viãûc cáûp nháût vaìo thay âäøi caïc CSDL thäng qua thuäüc tênh Cached Updates. Khi thuäüc tênh naìy mang giaï trë true, viãûc sæîa âäøi caïc máøu tin khäng âæåüc ghi træûc tiãúp vaìo database vaì seî ghi lãn vuìng âãûm cáûp nháût (Cached Updates) trãn maïy cuûc bäü. Giaï trë máùu tin váùn âæåüc giæî trãn vuìng âãûm cho âãún khi phæång thæïc ApplyUpdates âæåüc goüi. Âãø huíy boí caïc thay âäøi âaî læu vaìo vuìng âãûm, chè cáön goüi phæång thæïc CancelUpdates. Ngæåüc laûi khi thuäüc tênh Cached Updates mang giaï trë false thë moüi thay âäøi seî âæåü ghi vaìo database ngay khi con troí dæî liãûu råìi khoíi máøu tin hiãûn haình. Âiãöu naìy khaï täút âeûp trong træåìng håüp sæí duûng Local Databases. Coìn âäúi våïi mä hênh Client/Server Databases thç âáy khäng phaíi laì phæång phaïp täút båíi nhiãöu nguyãn do: - Thæï nháút laì quaï trçnh cáûp nháût thæåìng xuyãn lãn database seî aính hæåíng âãún sæû læu thäng trong hãû thäúng maûng. - Thæï hai liãn quan âãún váún âãö sæí duûng nguäön taìi nguyãn cäng cäüng. Mäüt cå såí dæî liãûu cuûc bäü seî khoïa máùu tin khi chuïng tiãún haình sæîa âäøi. Luïc naìy táút caí caïc ngæåìi sæí duûng khaïc seî khäng truy cáûp âæåüc database âang sæîa âäøi. Æu âiãøm cuía Cached Updates laì cho pheïp maïy cuûc bäü coï thãø laìm viãûc våïi mäüt baín sao dataset, thæûc hiãûn thay âäøi nãúu cáön vaì sau âäú ghi táút caí vaìo CSDL mäüt láön. Âiãöu naìy gêup cho thåìi gian khoïa caïc máùu tin âãù sæîa âäøi âæåüc giaím xuäúng âaïng kãø. - Mäüt låüi thãú khaïc cuía Cached Updates laì ngæåìi duìng coï thãø thæûc hiãûn nhiãöu láön sæîa âäøi, vaì sau âoï hoàûc cáûp nháût (commit) hoàûc huíy boí (roolback) táút caí thay âäøi. Tuy nhiãn nãúu coï sæû cäú trãn maïy chuí thç táút caí thay âäøi âãöu bë máút. Haûn chãú cuía Cached Updates laì viãûc nhiãöu ngæåìi cuìng thay âäøi mäüt máøu tin seî dáùn âãún cuäüc caûnh tranh xem ai laì ngæåìi hoaìn táút såïm nháút. Trãn thæûc tãú âiãöu naìy coï thãø khàõc phuûc pháön naìo bàòng caïch caìi âàût caïc æïng duûng client âãø kiãøm tra xem khi naìo coï nhiãöu ngæåìi cuìng mäüt luïc muäún sæîa âäøi mäüt máøu tin. Caïc thuäüc tênh âaïng chuï yï cuía thaình pháön naìy Name Gaïn tãn cho thaình pháön table. Active Âoïng/måí table DatabaseName Xaïc âënh database váût lyï Filter Gaïn biãøu thæïc loüc MasterSource Xaïc âënh table Master MasterFields Xaïc âënh træåìng liãn kãút IndexName Chè muûc liãn kãút Master/detail II.1.3. TQuery Coï thãø noïi trong viãûc quaín trë CSDL viãûc duìng ngän ngæî SQL laì ráút qua troüng. Thaình pháön Query chênh laì gaïnh vaïc nhiãûm vuû âoï khi maì baín thán thaình pháön Table khäng âaím traïch âæåüc viãûc tênh toaïn hay læûa choün xæí lyï trãn CSDL. Âáy laì thaình pháön thæåìng âæåüc sæí duûng trong mä hçnh CSDL Client/Server Database. Nhåì váûn duûng sæïc maûnh cuía ngän ngæî SQL maì noï coï thãø âaïp æïng háúu hãút caïc yãu cáöu xæí lyï CSDL trãn thæûc tãú. Âãø sæí duûng thaình pháön Tquery ta cáön chuï yï thuäüc tênh SQL thuäüc låïp TstringList, duìng âãø chæïa cáu lãûnh truy váún SQL. ÅÍ thåìi âiãøm thiãút kãú caïc lãûnh naìy âæåüc nháûp vaìo tæì cæîa säø String list editor bàòng caïch nhaïy thuäüc tênh SQl trong häüp Ojbect Inspector. Khi chaûy chæång trçnh ta coï thãø thay âäøi thuäüc tênh SQL bàòng maî lãûnh nhæ sau: Query1.SQL.Clear; Query1.SQL.Add(‘Select * from Coso ’); Thäng duûng nháút trong viãûc váûn duûng thaình pháön naìy laì âãø thäúng kã tênh toaïn, hoàûc truy váún mäüt kãút quaí naìo âoï. Viãûc laìm naìy âæåüc thæûc hiãûn hoaìn toaìn tæång tæû bäü lãûnh SQL chuáøn. Caïch goüi thæûc hiãûn âæåüc âàût trong mäüt thuí tuûc vaì coï thæï tæû nhæ sau: 1. Âoïng Query laûi (chæa thæûc thi) bàòng lãûnh Close. 2. Xoïa näüi dung SQL Query bàòng phæång thæïc Clear. 2. Thãm lãûnh SQL bàòng phæång thæïc Add. 3. Thæûc thi Query bàòng lãûnh Open. Ngoaìi ra ta âãø âaïp æïng âæåüc yãu cáöu cuía cäng viãûc ta phaíi sæí duûng caïch truyãön tham säú cho mäüt Query. Viãûc sæí duûng caïc tham säú laìm tàng thãm tênh linh hoaût cho ngän ngæî truy váún. Mäùi tham säú trong SQL nhæ mäüt biãún trong Object Pascal. Âãø nháûn biãút mäüt tham säú khi truyãön, ta duìng dáöu hai cháúm (:) âàût ngay træåïc tham säú âoï. Vê duû vãö truyãön tham säú nhæ sau: Query1.SQL.Add(‘Delete from Khoa where maKhoa=:pKhoa’); Thç ta coï hai caïch truyãön tham säú nhæ sau: Query1.ParamByName(‘pKhoa’).AsString:=’COKHI’; Query1.Param[0].AsString:=’COKHI’; II.2. Data Controls Component Nhæ âaî noïi åí trãn caïc thaình pháön thuäüc nhoïm naìy gäöm: DBEdit, DBListBox, DBText, DBMemo, DBImage, DBRadioGroup, DBComboLookup, DBLookupList... Thuäüc tênh quan troüng cuía caïc thaình pháön naìy laì Data Source duìng âãø xaïc âënh Table laìm viãûc. Ngoaìi ra tuìy tæìng thaình pháön maì seî coï thãm caïc thuäüc tênh khaïc næîa II.2.1.TDBNavigator Thaình pháön naìy duìng âãø âiãöu khiãøn caïc thao taïc thãm, xoïa, di chuyãøn caïc baín ghi trãn caïc table. Noï thæåìng âæåüc duìng keìm våïi thaình pháön TDBGrid âãø hiãøn thë thäng tin, dæî liãûu tæì table hay query lãn maìn hçnh. II.2.2. TDBGrid Âáy laì læåïi hiãøn thë dæî liãûu, dæî liãûu tæì caïc baíng âæåüc hiãøn thë thäng qua thaình pháön naìy. Trong thaình pháön naìy nhoïm thuäüc tênh quan troüng laì Title duìng âãø biãøu diãøn tiãu âãö cuía caïc træåìng dæî liãûu theo caïch cuía ngæåìi thiãút kãú, laìm cho viãûc hiãøn thë dæî liãûu âæåüc roî raìng våïi tiãúng Viãût. II.2.3. Caïc thaình pháön khaïc Nhoïm thaình pháön hiãøn thë: Duìng âãø thæûc hiãûn caïc thao taïc nháûp/xuáút dæî liãûu våïi caïc kiãøu dæî liãûu khaïc nhau tuìy vaìo thuäüc vaìo mäùi thaình pháön nhæ hçnh aính, âäö thë, kyî tæû... Nhoïm thaình pháön Combo List: Láúy dæî liãûu tæì mäüt danh saïch coï sàôn. Nhoïm Lookup List: Tçm kiãún dæî liãûu tæì baíng naìy âæa sang baíng khaïc CSDL Table DataSource Data Acces Component Data Controls Component TDBGrid TDBEdit TDB... Hçnh 9: Minh hoüa æïng duûng hai thaình pháön CSDL trong Delphi III. DATABASE DESKTOP Âáy laì mäüt cäng cuû keìm theo Delphi âãø häø tråü Delphi trong viãûc xáy dæûng mäüt cå såí dæî liãûu. Noï laì mäüt cäng cuû khaï maûnh bao gäöm xáy dæûng caïc table dæî liãûu, taûo mäúi liãn kãút, xáy dæûng QBE dæî liãûu truy váún bàòng ngän ngæî SQL. Thäng thæåìng trong âãø xáy dæûng mäüt tæïng duûng CSDL trong Delphi, ta coï thãø choün nhiãöu loaûi table dæî liãûu khaïc nhau. Delphi coï khaí nàng laìm viãûc âæåüc våïi caïc kiãøu table dæî liãûu khaïc nhau âoï nhåì Borland Database Engine. Âãø xáy dæûng mäüt æïng duûng ta coï thãø choün mäüt Database Engine sau: Directly Supported Database ODBC Database Client/Server Database Trçnh âiãöu khiãøn cuía Database Desktop coï daûng nhæ hçnh bãn. Thanh cäng cuû coï ba nuït nháún: Open Table Open Query Open SQL File Maìn hçnh giao diãûn khi måí mäüt table coï daûng nhæ hçnh dæåïi. Cuîng nhæ khi ta xáy dæûng cå såí dæî liãûu bàòng caïc cäng cuû khaïc. Khi thiãút kãú xáy dæûng mäüt cå såí dæî liãûu ta phaíi xaïc âënh caïc træåìng, khoïa, chè muûc cuía caïc baíng dæî liãûu. Tæì âoï ta xaïc âënh caïc quan hãû cho caïc baíng dæî liãûu âoï. Âãø xáy dæûng mäüt table choün kiãøu table cáön xáy dæûng. Delphi khuyãún nghë sæí duûng hai loaûi table laì Paradox vaì dBASE. Âäúi våïi loaûi dBASE noï chè coï thuäüc tênh chè muûc Index maì khäng coï khoïa dæî liãûu. Âäúi våïi loaûi Paradox thç coï nhiãöu thuäüc tênh hån. ÅÍ âáy ta coï thãø láûp màût naû cho dæî liãûu. Thiãút láûp træåìng khoïa, caïc chè muûc truìng vaì khäng truìng, thiãút láûp quan hãû våïi caïc baíng khaïc. IV. CAÏC THAÌNH PHÁÖN MAÛNG Cäng cuû láûp trçnh trãn maûng cuía Delphi khaï phong phuï, nhæng cuîng khäng dãø trong sæí duûng. Trong muûc naìy täi seî trçnh baìy vãö mäüt säú cäng cuû láûp trçnh maûng trãn Delphi vaì æïng duûng âãø xáy dæûng baìi toaïn quaín lyï trãn maûng. Daûng âån giaín nháút cuía CSDL laì Local Database, âáy laì loaûi dæî liãûu chè coï taïc duûng trãn mäüt maïy âån. Âäúi våïi caïc dæû aïn trãn maûng ngæåìi ta thæåìng noïi âãún mäüt laûo CSDl khaïc laì Client/Server Database. Dæî liãûu âæåüc læu åí mäüt maïy chuí (File Server), mäüt hoàûc nhiãöu ngæåìi sæí duûng (Clients) coï thãø truy cáûp âãún dæî liãûu trãn maïy chuí. Caïc ngæåìi duìng coï thãø nàòm raîi raïc trãn maûng, do âoï seî xaîy ra træåìng håüp vaìo mäüt thåìi âiãøm naìo âoï coï nhiãöu ngæåìi cuìng truy cáûp vaìo database trãn mäüt maïy chuí. Âiãöu naìy khäng gáy råî ngaûi gç do caïch thiãút kãú âàûc biãût cuía Client/Server Database. Noï coï thãø giaíi quyãút táút caí caïc yãu cáöu truy cáûp dæî liãûu vaìo cuìng mäüt thåìi âiãøm. Caïc ngæåìi duìng trong hãû Client/Server Database háöu nhæ khäng truy cáûp træûc tiãúp vaìo CSDL, maì thäng qua caïc æïng duûng trãn maïy cuûc bäü cuía hoü. Caïc chæång trçnh æïng duûng naìy (âæåüc goüi laì Client Applications) seî baío âaím ràòng ngæåìi duìng phaíi tuán theo caïc quy luáût truy xuáút trãn CSDL. Muûc âêch laì ngàn caín nhæîng thao taïc dáùn âãún phaï hoíng CSDL. Háöu hãút caïc chæång trçnh viãút bàòng Delphi âãø laìm viãûc våïi dæî liãûu kiãøu Client/Server seî laì loaûi æïng duûng Client. Våïi tæ caïch cuía ngæåìi phaït triãøn æïng duûng, coï thãø truy cáûp træûc tiãúp vaìo CSDL Server. Delphi coï caïc cäng cuû âãø láûp trçnh cho caïc æïng duûng thuäüc loaûi naìy, âàûc biãût coï caí caïc lãûnh truy váún SQL, truy váún SQL âæåüc sæí duûng âãø loüc dæî liãûu. Ta haîy xem xeït mäüt säú component vãö maûng: ClientSocket: Thãm vaìo Form âãø chuyãøn æïng duûng sang daûng client TCP/IP. ClientSocket xaïc âënh mäüt yãu cáöu kãút näúi âãún mäüt Server TCP/IP, theo doîi quaï trçnh kãút näúi, vaì cháúm dæït sau taïc vuû hoaìn thaình. ServerSocket: Âæa vaìo Form âãø chuyãøn æïng duûng sang daûng server TCP/IP. ServerSocket làõng nghe caïc âoìi hoíi kãút näúi TCP/IP tæì nhæîng maïy khaïc vaì thæûc hiãûn viãûc kãút näúi khi nháûn âæåüc yãu cáu. ClientDataset: Caìi âàût mäüt thaình pháön dataset âäüc láûp dæî liãûu âæåüc duìng trong æïng duûng Single-tiered âäüc láûp, hoàûc nhæ laì mäüt ClientDataset trong æïng duûng Client. RemoteServer: Cung cáúp mäüt kãút näúi RemoteServer trong æïng duûng Client, laì mäüt thaình pháön cuía æïng duûng multi-tiered. Provider: Âoïng goïi mäüt cå chãú cung cáúp dæî liãûu tæì æïng duûng Server Multi-tiered âãún mäüt ClientDataset trong Desktop cuía æïng duûng Client. Ngoaìi ra coìn coï nhiãöu cäng cuû khaïc næîa:SocketConnection, DcomConnection.... IV.1. Mä hçnh maûng Nhiãûm vuû báy giåì laì tçm hiãøu cäng cuû vaì âæa ra mäüt mä hçnh cho baìi toaïn quaín lyï váût tæ trãn maûng. Nhæ caïc pháön træåïc âaî xeït, ta tháúy nhu cáöu vãö maûng laì cáúp thiãút. Mäüt æïng duûng cáön phaíi âæåüc täø chæïc trãn maûng âån giaín båíi vç våïi mäüt CSDL maûng nhæng nhiãöu maïy coï thãø sæí duûng âæåüc. Mäüt chæång trçnh maûng âån giaín nháút laì maïy chuí láúy dæî liãûu tæì maïy mçnh cung cáúp cho caïc maïy con xæí lyï theo yãu cáöu . Ta mä phoíng mäüt chæång trçnh trãn maûng thäng qua mäüt RemoteServer laì TDComConection vaì mäüt Events laì ClientDataSet nhæ sau: : Chæång trçnh åí maïy chuí: Láúy dæî liãûu váût lyï tæì âéa thäng qua mäüt Query (thäng thæåìng trong æïng duûng maûng ngæåìi ta hay sæí duûng Query hån laì Table). Nhæ váûy nhiãûm vuû âån giaín nháút laì chæång trçnh maïy chuí láúy dæî liãûu cung cáúp cho maïy khi maïy khaïch kãút näúi coï yãu cáöu. : Chæång trçnh åí maïy khaïch: Coï hai nhiãûm vuû + Kãút näúi våïi maïy chuí + Láúy dæî liãûu tæì maïy chuí âæa vaìo maïy mçnh âãø xæí lyï. Viãûc kãút näúi våïi maïy chuí âæåüc thæûc hiãûn nhåì thaình pháön RemoteServer kãút näúi våïi Application Server thäng quan thuäüc tênh ServerName vaì ServerGuid hoàûc thuäüc tênh ComputerName vaì Connected. Khi âaî kãút näúi thaình pháön ClientDataSet thæûc hiãûn nhiãûm vuû kãút näúi våïi RemoteServer âãø láúy dæî liãûu cung cáúp cho mäüt DataSource naìo âoï trãn æïng duûng cuía mçnh. Database Application Server Application Client Hçnh 10 ÆÏng duûng Client/Server trong Delphi Qua viãûc tçm hiãøu thiãút kãú mäüt chæång trçnh xæí lyï trãn maûng nhæ hçnh trãn. Ta coï thãø dæûa trãn caïch thæïc naìy âãø náng cáúp æïng duûng cuía chæång trçnh trong âäö aïn naìy âãø coï thãø laìm viãûc trãn maûng. Yãu cáöu luïc naìy cuía ngæåìi thiãút kãú laì phaíi tçm hiãøu vãö cäng cuû maûng trong Delphi, ngän ngæî truy váún SQL vaì coï âæåüc mäüt mäi træåìng laìm viãûc trãn maûng. Phaíi xáy dæûng hai chæång trçnh mäüt cho maïy chuí vaì mäüt cho maïy khaïch. Viãûc caìi âàût chæång trçnh sau khi hoaìn thaình âæåüc tiãún haình nhæ sau: :Phoìng Haình chênh Täøng håüp: coï mäüt maïy chuí chæïa CSDL toaìn bäü váût tæ taìi saín trong toaìn træåìng, bao gäöm caïc thäng tin vãö taìi saín hiãûn coï trong caïc kho, caïc phoìng ban, caïc khoa. : Caïc phoìng ban khaïc: coï caïc maïy chaûy chæång trçnh Client truy cáûp dæî liãûu tæì maïy chuí theo phán quyãön vaì yãu cáöu cuía caïc maïy naìy. Viãûc duyãût caïc hoïa âån, chuyãøn caïc chæïng tæì tæì phoìng naìy sang phoìng khaïc coï thãø thæûc hiãûn bàòng viãûc dæî liãûu tæì maïy khaïch âaî xæí lyï âæåüc cáûp nháût vaìo maïy chuí. Räöi maïy maïy khaïch khaïc truy cáûp xæí lyï tiãúp. Táút caí âãöu laìm viãûc theo quyãön cuía mçnh. CHÆÅNG VI THIÃÚT KÃÚ CHÆÅNG TRÇNH I. THIÃÚT LÁÛP QUAN HÃÛ GIÆÎA CAÏC BAÍNG DÆÎ LIÃÛU Thiãút kãú mäüt cå såí dæî liãûu quan hãû laì mäüt viãûc ráút quan troüng. Noï goïp pháön laìm cho dæî liãûu âæåüc toaìn veûn hån vaì quaín lyï âæåüc täúi æu hån, thuáûn tiãûn hån. Ta haîy xem xeït caïch thiãút láûp caïc liãn kãút giæîa caïc Table trong Delphi. Viãûc thiãút láûp mäúi quan hãû cho caïc baíng daûng Master/Detail bàòng caïc baíng thaình pháön database cuía Delphi âæåüc thæûc hiãûn tæång âäúi dãù daìng. Âáy cuîng laì caïch thäng duûng maì Delphi thiãút láûp mäúi quan hãû giæîa caïc baíng biãøu trong æïng duûng CSDL cuía noï. Cáúu truïc daûng naìy thæåìng âæåüc sæí duûng trong thæûc tãú, noï giäúng nhæ cáúu truïc kiãøu cha/con. Trong baìi toaïn quaín lyï váût tæ-taìi saín, mäúi quan hãû naìy âæåüc sæí duûng khi phaït sinh mäüt chæïng tæì, hay khi kiãøm tra, thäúng kã váût tæ theo mäüt træåìng naìo âoï. Ta coï baíng læu træî thäng tin vãö caïc chæïng tæì hoïa âån nháûp xuáút våïi caïc âäúi taïc ngoaìi Træåìng nhæ sau. Maquanly Ngay SoCT NVu Lydo Khach Nhanvien Nguoigiao Trigia 01/01/2000N1001 1/1/2000 001 N1 Nháûp TS Cäng ty A Äng B Äng C 2000000 02/02/2000X2002 2/2/2000 002 X2 Xuáút TS Cäng ty B Äng A Äng D 9000000 ......... ÅÍ baíng naìy mäùi doìng laì mäüt hoïa âån, thäng tin trong trong mäùi doìng cuía baíng cho biãút: ngaìy nháûp xuáút phaït sinh mäüt chæïng tæì hoïa âån cuû thãø laì hoïa âån nháûp xuáút. Säú chæïng tæì nháûp xuáút, nghiãûp vuû nháûp xuáút. Tæì ba thäng tin naìy ta liãn kãút laûi âãø coï mäüt træåìng dæî liãûu laì maî quaín lyï. Træåìng naìy chênh laì chè muûc âãø liãn kãút våïi baíng dæî liãûu chi tiãút vãö hoïa âån nháûp xuáút. Caïc thäng tin nhæ lyï do, khaïch, ngæåìi giao, maî nhán viãn, trë giaï læu træî thäng tin chung vãö mäüt hoïa âån nháûp xuáút. Nhæ váûy mäüt hoïa âån phaït sinh ngoaìi caïc thäng tin trãn noï coìn phaíi coï caïc thäng tin quan troüng khaïc næîa laì hoïa âån phaït sinh âoï nháûp xuáút nhæîng váût tæ naìo, säú læåüng, âån giaï laì bao nhiãu, nháûp vaìo kho naìo? Ta phaíi cáön coï thãm mäüt baíng âãø læu træî nhæîng thäng tin chi tiãút âoï. Maquanly Mavattu Soluong Dongia Thanhtien Makho 01/01/2000N1001 OAPA1 2 600000 1200000 K1 01/01/2000N1001 OAPA2 2 400000 800000 K1 02/02/2000X2002 MVTTH 3 3000000 9000000 K2 Baíng naìy cho biãút thäng tin chi tiãút vãö mäüt hoïa âån nháûp xuáút, mäùi doìng laì mäüt váût tæ âæåüc nháûp kho hay xuáút kho. Nhæ váûy trong baíng naìy coï nhiãöu doìng biãøu thë caïc váût tæ âæåüc nháûp xuáút trong mäüt hoïa âån. Viãûc xaïc âënh caïc váût tæ âoï âæåüc nháûp xuáút båíi chæïng tæì naìo âæåüc biãøu thë bàòng træåìng maî quaín lyï. Nhæ váûy mäüt træåìng Maquanly åí baíng Quanly (Quaín lyï hoïa âån phaït sinh) seî tæång æïng våïi nhiãöu træåìng Maquanly åí baíng Chitiet (Chi tiãút hoïa âån nháûp xuáút) ta noïi hai baíng naìy coï mäüt mäúi quan hãû våïi nhau thäng qua træåìng Maquanly. Mäúi quan hãû naìy laì daûng Master/detail, baíng Quanly theo doîi thäng tin vãö hoïa âån, baíng Chitiet theo doîi chi tiãút vãö caïc váût tæ âæåüc nháûp xuáút trong hoïa âån âoï. Caïch thæûc hiãûn mäúi liãn kãút giæîa hai baíng naìy trong Delphi âæåüc thæûc hiãûn thäng qua viãûc thiãút láûp caïc thuäüc tênh cuía baíng Chitiet nhæ sau: Maquanly Ngay SoCT Nghiepvu Khach Maquanly Mavattu Soluong Dongia Kho ........... Master Detail Quanly Chitiet Table Chitiet Thuäüc tênh Fields ................ IndexFields Maquanly MasterFields Maquanly MasterSource Quanly Hçnh 11: Quan hãû Master/Detail giæîa hai table trong Delphi Våïi caïch thiãút láûp quan hãû nhæ trãn ta tiãún haình thiãút láûp tæång tæû cho caïc thaình pháön khaïc cuía database âãø coï âæåüc CSDL quan hãû trong chæång trçnh. Nhæ váûy trong Table Quanly træåìng Maquanly laì duy nháút âãø xaïc âënh cuû thãø mäüt hoïa âån. Coìn trãn Table Chitiet thç seî coï nhiãöu træåìng Maquanly chuïng seî âæåüc xaïc âënh thuäüc hoïa âån naìo nhåì Table Quanly. Tæng tæû ta cuîng thiãút láûp mäüt Master/detail cho hoaût âäüng nháût xuáút bãn trong træåìng, giæîa caïc phoìng ban, khoa, cå såí våïi caïc kho váût tæ thiãút bë. II. SÅ ÂÄÖ CHÆÏC NÀNG CUÍA CHÆÅNG TRÇNH Caïc danh muûc Thäúng kã Baïo caïo Nháûp ngoaìi Xuáút ngoaìi Xuáút trong Nháûp trong Phaït sinh Bàõt âáöu Cáûp nháût thäng tin Baïo biãøu In áún Kãút thuïc Hçnh 12: Så âäö caïc hoaût âäüng chæïc nàng cuía chæång trçnh II.1. Hoaût âäüng nháûp xuáút bãn ngoaìi: Váût tæ tæì bãn ngoaìi âæåüc âæa vãö nháûp kho dæåïi nhiãöu hçnh thæïc thãø hiãûn båíi caïc nghiãûp vuû. Coï thãø laì váût tæ âæåüc mua âãø thay thãú cho caïc thiãút bë hæ hoíng, váût tæ âæåüc mua theo âån âàût haìng...Khi naìy chæïng tæì phaït sinh laì hoïa âån nháûp kho váût tæ. Tæång tæû nãúu váût tæ tæì kho âæåüc xuáút ra ngoaìi cho mäüt âäúi taïc naìo âoï chàóng haûn nhæ mäüt âån vë baûn thuäüc ÂHÂN... thç khi naìy cuîng phaït sinh mäüt chæïng tæì goüi laì hoïa âån xuáút kho. Caïc luäöng thäng tin liãn quan âãún caïc chæïng tæì naìy nhæ sau: Phaït sinh Chæïng tæì Kho Váût tæ Nháûp Xuáút Váût tæ Âäúi taïc Nghiãûp vuû Nhán viãn Kho Hoïa âån nháûp xuáút phaït sinh Hçnh 12: Hoaût âäüng nháûp xuáút bãn ngoaìi Nhæ váûy sau khi phaït sinh chæïng tæì thç váût tæ trong kho seî tàng lãn hoàûc giaím âi. Table Quanly læu træî chæïng tæì nháûp xuáút, Table Chitiet læu træî chi tiãút caïc váût tæ thiãút bë nháûp xuáút theo hoïa âån læu trong Quanly. Âáy laì dæî liãûu cå såí âãø tæì âoï thäúng kã baïo caïo tênh hçnh nháûp xuáút kho theo ngaìy, theo thaïng, theo quyï, nàm hoàûc theo mäüt âäúi tæåüng laì mäüt træåìng naìo âoï nhæ Khach chàóng haûn. Båíi vç trong kho váût tæ luän coï caïc váût tæ täön âáöu kyì hoàûc täön træåïc. Do âoï nãúu càn cæï vaìo table Quanly vaì Chitiet âãø xaïc âënh säú læåüng váût tæ täön kho thç seî khäng âuïng, hai Table naìy chè xaïc âënh âæåüc thäng tin nháûp xuáút kho theo caïc chæïng tæì maì thäi. Viãûc xaïc âënh váût tæ trong kho tàng lãn hay giaím âi vaì hiãûn taûi trong kho coï caïc loaûi váût tæ naìo, säú læåüng trë giaï bao nhiãu âæåüc thãø hiãûn qua mäüt table khaïc laì Table KVT (kho váût tæ). ÆÏng våïi mäùi chæïng tæì nháûp xuáút phaït sinh thç table naìy phaíi âæåüc cáûp nháût âãø theo doîi biãún âäüng säú læåüng váût tæ trong kho. Táút nhiãn trong baìi toaïn naìy chè chuï troüng âãún quaín lyï, vãö säú læåüng, trë giaï cuía váût tæ cuîng âæåüc càn cæï theo hoïa âån nháûp xuáút. Viãûc xaïc âënh chênh xaïc trë giaï nháûp xuáút cuía váût tæ coï thãø âæåüc thãø hiãûn qua viãûc læu træî caïc Reports nháûp xuáút nãúu nhæ tháúy cáön thiãút hoàûc tçm kiãúm trãn hai table Quanly vaì Chitiet. Bàõt âáöìu Chitiet.First Not Chitiet.Eof Thãm/båït váût tæ theokho T F Chitiet.Next Kãút thuïc CT Phaït sinh Theo doîi chàût cheî hoaût âäüng nháûp xuáút âãø tàng giaím biãún âäüng váût tæ trong kho âæåüc thæûc hiãûn nhåì thuáût toaïn sau âáy: Hçnh 13: Thuáût toaïn tàng giaím váût tæ åí kho KVT.First Find=false Not KVT.eof and Not find KVT.Next T F Bàõt âáöu Kiãøm tra Coï váût tæ Find=true T F Find KVT.Edit Cäüng thãm T F KVT.Insert Thãm måïi Kãút thuïc Hçnh 14: Thuáût toaïn thãm váût tæ åí kho KVT.First Not KVT.eof KVT.Next T F Bàõt âáöu Kiãøm tra Coï váût tæ KVT.Edit Båït váût tæ Kãút thuïc F T Hçnh 15: Thuáût toaïn båït váût tæ åí kho Thãm/båït váût tæ theo kho: nãúu laì chæïng tæì phaït sinh nháûp coï nghéa laì thãm: thæûc hiãûn thuáût toaïn thæï nháút; nãúu laì chæïng tæì phaït sinh xuáút coï nghéa laì båït: thæûc hiãûn theo thuáût toaïn thæï hai. Kiãøm tra coï váût tæ: càn cæï vaìo váût tæ hiãûn taûi trãn table Chitiet kiãøm tra xem trãn table KVT coï váût tæ âoï hay chæa, coï nghéa laì trong kho âoï coï loaûi váût tæ âoï hay chæa. Bæåïc kiãøm tra naìy nhàòm muûc âêch. Nãúu trong thuí tuûc nháûp kho váût tæ thç sau khi kiãøm tra nãúu trong kho coï váût tæ âoï thç Cäüng thãm: luïc naìy säú læåüng váût tæ täön kho måïi bàòng säú læåüng váût tæ âang coï trong kho cäüng våïi säú læåüng váût tæ phaït sinh tæì chæïng tæì nháûp. Nãúu khäng coï váût tæ âoï thç Thãm måïi: thãm váût tæ naìy vaìo kho våïi säú læåüng nhæ trong chæïng tæì phaït sinh nháûp kho. Âäúi våïi thuáût toaïn thæï hai thç sau khi kiãøm tra coï váût tæ thæûc hiãûn båït váût tæ: khi naìy säú læåüng váût tæ trong kho seî täön sau khi phaït sinh chæïng tæì xuáút bàòng säú læåüng täön hiãûn taûi træì âi säú læåüng xuáút. II.2. Hoaût âäüng nháûp xuáút bãn trong: Hoaût âäüng naìy bao gäöm hai hoaût âäüng laì nháûp vaì xuáút. Nãúu laì xuáút, váût tæ tæì kho âæåüc xuáút cho caïc cå såí træûc thuäüc caïc phoìng ban khoa trong træåìng. Nhæ váûy sau khi xuáút kho thç säú læåüng váût tæ trong kho giaím âäöng thåìi khäúi læåüng váût tæ åí caïc cå såí træûc thuäüc tàng lãn. Säú læåüng váût tæ cuía phoìng ban khoa tàng, säú læåüng váût tæ trong toaìn træåìng khäng biãún âäøi. Tæång tæ laì hoaût âäüng nháûp, váût tæ tæì caïc cå såí naìy âæåüc nháûp kho theo mäüt nghiãûp vuû, lyï do naìo âoï. Váût tæ åí cå såí giaím, váût tæ trong kho tàng. Caïc luäöng thäng tin liãn quan âãún hoaût âäüng phaït sinh mäüt chæïng tæì nháûp xuáút bãn trong nhæ sau: Váût tæ Phoìng ban Nghiãûp vuû Nhán viãn Kho Hoïa âån nháûp xuáút phaït sinh Cå såí Hçnh 16 : Hoaût âäüng nháûp xuáút bãn trong Trong hoaût âäüng nháûp xuáút våïi caïc âäúi taïc ngoaìi træåìng, ta quan tám âãún biãún âäüng váût tæ thiãút bë trong caïc kho tàng giaím nhæ thãú naìo. Coìn âäúi våïi hoaût âäüng nháûp xuáút bãn trong thç væìa theo doîi biãún âäüng trong caïc kho væìa theo doîi biãún âäüng váût tæ taìi saín trong caïc cå såí. Mäüt chæïng tæì nháûp xuáút phaït sinh keìm theo mäüt danh saïch caïc váût tæ cuía caïc cå såí træûc thuäüc phoìng ban khoa âæåüc nháûp kho. Table Quanly1 theo doîi caïc chæïng tæì nháûp xuáút naìy, Table Chitiet1 theo doíi chi tiãút caïc váût tæ, caïc cå såí caïc kho coï liãn quan âãún chæïng tæì nháûp xuáút. Table KVT theo doîi biãún âäüng cuía kho, table KCS theo doîi biãún âäüng cuía cå såí coï cáúu truïc cuîng giäúng nhæ trong table KVT. Tuy nhiãn våïi table KCS coìn chuï yï âãún nàm sæí duûng váût tæ âæåüc nháûp âoï. Ta coï thuáût toaïn theo doîi hai biãún âäüng naìy khi mäüt chæïng tæì phaït sinh. Bàõt âáöìu Chitiet1.First Not Chitiet1.Eof Thãm/båït váût tæ theokho Thãm/båït váût tæ theo cå såí T F Chtiet1.Next Kãút thuïc CT Phaït sinh Hçnh 17: Thuáût toaïn thãm båït váût tæ åí cåí såí vaì åí kho Thuí tuûc thãm/båït váût tæ theo kho tæång tæû nhæ thuáût toaïn trong hoaût âäüng nháûp xuáút bãn ngoaìi. Âäúi våïi thuáût toaïn thãm/båït váût tæ theo cå såí thç ta phaíi xem xeït âãún caïc thäng tin liãn quan trong täø chæïc CSDL. Trong table KCS âãø xaïc âënh mäüt cå såí ta thäng qua træåìng coï tãn laì Id, âáy laì säú hiãûu cuía cå såí. Trong table Quanly1 ta coï maî phoìng ban, khoa âæåüc xaïc âënh bàòng træåìng Khoa. Vç mäùi phoìng ban khoa coï nhiãöu cå såí nãn maî cå såí âæåüc læu træî trong table Chitiet1 âæåüc xaïc âënh bàòng træåìng Macoso. Nhæ váûy våïi mäüt hoïa âån phaït sinh coï mäüt phoìng ban, khoa tham gia vaìo hoaût âäüng nháûp xuáút. Trong caïc phoìng ban khoa naìy coï caïc cå såí træûc thuäüc. Mäùi cå såí træûc thuäüc laûi laì caïc âån vë coï chæïa caïc váût tæ nháûp xuáút. Màût khaïc viãûc theo doîi tçnh hçnh biãún âäüng váût tæ trong cå såí laûi âæåüc thæûc hiãûn båíi table KCS nãn viãûc træåïc tiãn laì phaíi xaïc âënh cå såí chênh laì xaïc âënh säú hiãûu Id cuía cå såí trong table naìy thäng qua table Quanly1 vaì Chitiet1, âãö tæì âoï cáûp nháût vãö biãún âäüng váût tæ. Sau âáy laì thuáût toaïn thãm váût tæ theo cå såíì, thuáût toaïn båït váût tæ theo cå såí âæåüc thiãút láûp tæång tæû: Bàõt âáöu Xaïc âënh cå såí KCS.First Find=false F T Not KCS.eof and Not find T Find=true Kiãøm tra Coï váût tæ F KCS.Next Find F KCS.Insert Thãm måïi KCS.Edit Cäüng thãm T Kãút thuïc Hçnh 18: Thuáût toaïn thãm váût tæ åí cåí såí III. HÃÛ THÄÚNG MENU CHÆÅNG TRÇNH Danh muûc QUAÍN LYÏ VÁÛT TÆ-TAÌI SAÍN Nháûp xuáút Nháût kyï Baïo biãøu Chi tiãút Kiãøm tra Täön váût tæ Tråü giuïp DANH MUÛC 1. Danh muûc váût tæ 2. Danh muûc âäúi taïc 3. Danh muûc caïc kho 4. Danh muûc nhán viãn 5. Danh muûc phoìng ban 6. Danh muûc cå såí 7. Phoìng ban cå såí 8. Thoaït chæång trçnh NHÁÛP XUÁÚT 1. Nháûp bãn ngoaìi 2. Xuáút bãn ngoaìi 3. Nháûp bãn trong 4. Xuáút bãn trong NHÁÛT KYÏ 1. Nháûp xuáút trong 2. Nháûp xuáút ngoaìi CHI TIÃÚT 1. Chi tiãút cå såí træûc thuäüc 2. Chi tiãút váût tæ theo cå såí 3. Chi tiãút váût tæ theo kho 4. Chi tiãút váût tæ täön kho BAÏO BIÃØU 1. Danh saïch âäúi taïc 2. Danh saïch nhán viãn 3. Danh saïch caïc kho 4. Danh saïch phoìng ban 5. Danh saïch váût tæ 6. Danh saïch caïc cå såí KIÃØM TRA 1. Nháûp xuáút bãn ngoaìi 2. Nháûp xuáút bãn trong 3. Theo cå såí 4. Theo caïc kho 5. Theo váût tæ 6. Phán loaûi váût tæ TÄÖN VÁÛT TÆ 1. Theo váût tæ 2. Theo caïc kho 3. Theo cå såí 4. Cå såí træûc thuäüc TRÅÜ GIUÏP 1. Hæåïng dáùn sæí duûng 2. Chæång trçnh CHÆÅNG VII KÃÚT LUÁÛN I. TÊNH KHAÍ THI CUÍA ÂÃÖ TAÌI Viãûc Tin hoüc hoïa cäng taïc quaín lyï noïi chung vaì quaín lyï váût tæ taìi saín noïi riãng ráút cáön thiãút vaì laì nhu cáöu táút yãúu trong bäúi caính nãön Cäng nghãû Thäng tin âang phaït triãøn nhæ hiãûn nay. Våïi âãö taìi “Tçm hiãøu Delphi vaì æïng duûng vaìo baìi toaïn quaín lyï váût tæ” em âaî xáy dæûng âæåüc chæång trçnh quaín lyï váût tæ vaì täø chæïc âæåüc cå såí dæî liãûu cho chæång trçnh, goïp pháön vaìo viãûc Tin hoüc hoïa trong viãûc quaín lyï váût tæ taìi saín åí Træåìng Âaûi hoüc Kyî thuáût Âaì Nàông. Chæång trçnh âæåüc xáy dæûng coï tênh khaí thi cao, CSDL âæåüc thiãút kãú khaï âáöy âuí våïi säú liãûu hiãûn haình. Âæåüc chaûy trãn kiãøm tra trãn maïy vi tênh IBM 166 Mhz caìi âàût Windows 98, chæång trçnhì khäng bë aính hæåíng cuía läùi Y2K. II. YÃU CÁÖU VÃÖ PHÁÖN CÆÏNG VAÌ PHÁÖN MÃÖM - Maïy coï caìi âàût hãû âiãöu haình Windows 95 tråí lãn. - Caìi âàût Borland Delphi 4 Client/Server. - Kãút näúi maûng. III. HAÛN CHÃÚ CUÍA ÂÃÖ TAÌI Do thåìi gian vaì viãûc tçm hiãøu caïc quy tàõc quaín lyï trong hãû thäúng thäng tin quaín lyï taìi saín váût tæ træåìng Âaûi hoüc Kyî thuáût coï haûn chãú. Taìi liãûu láûp trçnh maûng vãö Delphi háöu nhæ khäng coï, caïc taìi liãûu vãö xáy dæûng æïng duûng cå såí dæî liãûu trong Delphi chè åí mæïc phaït triãøn chæång trçnh trãn maïy cuûc bäü. Nãn chæång trçnh xáy dæûng åí âáy chè caìi âàût cho maïy cuûc bäü vaì coï tênh cháút thæí nghiãûm. Tçm hiãøu vaì váûn duûng Delphi xáy dæûng chæång trçnh quaín lyï váût tæ våïi CSDL cuûc bäü. Vãö pháön maûng chè måïi âæa ra mä hçnh xæí lyï vaì tçm hiãøu vãö caïch triãøn khai æïng duûng trãn maûng. IV. KHAÍ NÀNG MÅÍ RÄÜNG ÂÃÖ TAÌI Viãûc xáy dæûng mäüt chæång trçnh quaín lyï váût tæ taìi saín hoaìn thiãûn laì ráút cáön thiãút. Dãö taìi coï khaí nàng måí räüng âãø laìm viãûc trãn maûng khi chuyãøn sang mä hçnh Client/Server. - Täúi æu CSDL giaím caïc thäng tin dæ thæìa, giuïp cho chæång trçnh âæåüc ngàõn goün, xæí lyï âån giaín, trao âäøi thäng tin khäng sai soït, læu træî dãø daìng. - Âãø thiãút kãú trãn maûng cáön pháön quyãön vaì sæí duûng dæî liãûu sao cho nháút quaïn. Âaïp æïng thäng tin cáön thiãút cho caïc ngæåìi duìng. - Xæí lyï, tênh toaïn, kãút xuáút baïo biãøu trãn caïc baín sao, táûp tin trung gian traïnh sai soït vaì coï biãûn phaïp kiãøm tra giaím caïc sai soït. Taûo caïc báøy läùi âãø thäng baïo cho ngæåìi sæí duûng khi gàûp läùi. - Cáön thiãút kãú giao diãûn sæí duûng chæång trçnh roî raìng hån næîa, coï tråü giuïp âáöy âuí cho ngæåìi sæí duûng. AÏp duûng caïc quy tàõc kãú toaïn måïi cho phuì håüp nhæ cáöu. V. KÃÚT LUÁÛN Khi thiãút kãú mäüt chæång trçnh quaín lyï cáön phaíi luän chuï yï âãún giao diãûn ngæåìi sæí duûng. Coï thãø noïi viãûc xáy dæûng thiãút kãú hãû thäúng thäng tin âæåüc coi nhæ troün veûn nãúu væìa xáy dæûng âæåüc CSDL håüp lyï, chæång trçnh âuïng âàõn vaì âäöng thåìi thiãút kãú giao diãûn ngæåìi sæí duûng thuáûn tiãûn. Âäúi våïi baìi toaïn quaín lyï váût tæ taìi saín cáön phaíi täø chæïc chæång trçnh sao cho âaïp æïng âæåüc caïc yãu cáöu cuía ngæåìi quaín lyï coï tênh khaí thi nháút. Nãúu chæång trçnh chè chuï troüng caïc giaíi thuáût maì quãn máút tênh thæûc tiãùn thç chæång trçnh âoï seî khäng coï thãø âæa vaìo sæí duûng âæåüc. Trong âäö aïn naìy chæång trçnh âæåüc xáy dæûng laì quaín lyï caïc loaûi váût tæ taìi saín cuía træåìng Âaûi hoüc kyî Thuáût. Våïi thæûc traûng hiãûn nay cuía nhaì Træåìng säú læåüng váût tæ taìi saín laì ráút låïn våïi ráút nhiãöu chuíng loaûi khaïc nhau. Coï thãø kãø ra âáy nhæ nhaì cæía, cäng trçnh, phæång tiãûn váûn taíi, maïy moïc thiãút bë, caïc taìi saín cäú âënh khaïc. Mäùi chuíng loaûi naìy coï caïc tênh cháút khaïc nhau vaì trong mäùi chuíng loaûi coìn bao gäöm nhiãöu nhoïm váût tæ khaïc næîa. Vê duû loaûi maïy moïc thiãút bë thç coï: maïy vi tênh, maïy in, maïy âiãûn thoaûi, âeìn chiãúu.... Våïi nhoïm váût tæ maïy vi tênh thç coï: maïy vi tênh 486, maïy vi tênh 586, maïy vi tênh IBM... Khi NSD xem thäng tin vãö danh saïch taìi saín trong træåìng coï thãø hoü seî: + Xem toaìn bäü danh saïch + Xem åí mäüt kho naìo âoï + Xem åí mäüt phoìng ban, khoa hoàûc mäüt cå såí træûc thuäüc + Xem mäüt loaûi hay mäüt nhoïm váût tæ taìi saín naìo âoï + Xem cuû thãø mäüt váût tæ. Âaïp æïng yãu cáöu âoï nhæ mäüt thæûc tãú táút yãúu viãûc Tin hoüc hoaï, trong chæång trçnh ngæåìi thiãút kãú phaíi xáy dæûng caïc phæång phaïp loüc, caïc caïch loüc vaì kãút håüp noï laûi våïi nhau. NSD chè cáön chè âënh laì coï âæåüc ngay caïc baín danh saïch cáön thiãút âaím baío khäng dæ thæìa cuîng nhæ thiãúu huût thäng tin. Yãu cáöu âoï laì thiãút thæûc vaì táút yãúu, nãúu chæång trçnh khäng giaíi quyãút váún âãö loüc dæî liãûu thç khäng thãø xem nhæ mäüt hãû thäúng thäng tin troün veûn. Ngæåìi sæí duûng khäng thãø chè vç muäún tçm kiãúm mäüt thäng tin vãö mäüt loaûi váût tæ naìo âoï maì phaíi truy tçm trãn mäüt danh saïch ráút daìi hoàûc phaíi in ra táút caí caïc váût tæ coï trong mäüt cå såí hay trong mäüt kho chàóng haûn. Sau nhiãöu thaïng laìm viãûc ráút têch cæûc våïi sæû chè baío táûn tçnh cuía tháöy giaïo hæåïng dáùn. Cuäúi cuìng täi âaî hoaìn thaình âãö taìi Täút nghiãûp cuía mçnh âuïng thåìi haûn. Trong âäö aïn naìy täi âaî âãö xuáút âæåüc phæång phaïp âãø phán loaûi, phán nhoïm váût tæ taìi saín trong træåìng Âaûi hoüc Kyî thuáût våïi tênh thæûc tiãùn cao. Xáy dæûng âæåüc mäüt cå såí dæî liãûu våïi mäüt khäúi læåüng thäng tin khaï låïn phuì håüp våïi thæûc traûng hiãûn taûi trong Træåìng cuîng nhæ âãø chaûy vaì kiãøm tra chæång trçnh. Thiãút kãú xáy dæûng âæåüc chæång trçnh coï tênh âuïng âàõn vaì khaí thi, giao diãûn ngæåìi sæí duûng thuáûn låüi, chuï troüng âãún caïc phæång phaïp nháûp xuáút dæî liãûu theo daûng truy cæïu âaïp æïng âæåüc yãu cáöu âån giaín hoïa cäng viãûc. TAÌI LIÃÛU THAM KHAÍO [1] TS Phan Huy Khaïnh,Giaïo trçnh Phán têch vaì thiãút kãú hãû thäúng, Âaì Nàông 1997. [2] Thi Anh, Borland Delphi, Nhaì xuáút baín treí 1999. [3] John Paull Mueller, Peter Norton’s Guide to Delphi 2, SAMS 1996 [4] Paul Kimmel, Building Delphi 2 Database Application. QUE [5] Tráön Thaình Trai, Nháûp män cå såí dæî liãûu, Nhaì xuáút baín treí [5] Âäö aïn täút nghiãûp, Træång Vàn Xuán, Låïp 93T ÂHKTÂN PHUÛ LUÛC I CAÏC FORM GIAO DIÃÛN TRONG CHÆÅNG TRÇNH Vç âiãöu kiãûn khäng cho pheïp in nhiãöu, trong pháön phuû luûc naìy täi chè xin trêch in mäüt säú kiãøu Form cå baín cuía caïc âãö muûc theo menu chæång trçnh. I. DANH MUÛC Âáy laì caïc form væìa âãø xem thäng tin vãö caïc danh muûc væìa nháûp dæî liãûu, chènh sæîa caïc thäng tin trong âoï. Pháön naìy bao gäöm caïc form: Danh muûc Váût tæ Danh muûc Âäúi taïc Danh muûc Nhán viãn Danh muûc Cå såí Danh muûc Phoìng ban Danh muûc Caïc kho Phoìng ban cå såí Cáúu truïc chung cuía caïc form danh muûc tæì I.1 âãún I.6 naìy coï daûng nhæ form Danh muûc váût tæ dæåïi âáy. Coìn form Phoìng ban cå såí coï cáúu truïc kiãøu Master/detail. I.1. Form Danh muûc váût tæ Âãø tiãút kiãûm maî láûp trong láûp trçnh. Vç ta tháúy caïc form danh muûc âãöu coï cáúu truïc tæång tæû nhæ nhau, nãn ta seî xáy dæûng mäüt låïp Tdanhsach coï chæïa táút caí caïc thuäüc tênh chung cuía caïc loaûi form danh muûc naìy. Sau âoï khi thiãút kãú mäüt form danh muûc måïi, ta kãú thæìa caïc form âaî taûo maì cuû thãø laì kãú thæìa låïp Tdanhsach âaî coï räöi thiãút láûp thãm caïc thuäüc tênh riãng cuía tæìng form, nhæ thãú ta seî taûo âæåüc form måïi. Œ Maî lãûnh cuía låïp Tdanhsach unit dsDanhsach; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, Buttons, Mask, ComCtrls, ExtCtrls, Db, DBTables, Grids, DBGrids; type TDanhsach = class(TForm) bordkhung: TPanel; Panel11: TPanel; Panel13: TPanel; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; Panel14: TPanel; DBNavigator2: TDBNavigator; Panel1: TPanel; BitBtn11: TBitBtn; GDSStdPanel: TPanel; GDSLabel2: TLabel; GDSLabel: TLabel; Label17: TLabel; GDSSloganLabel2: TLabel; GDSSloganLabel: TLabel; Panel2: TPanel; GDSStdImage: TImage; Label2: TLabel; Label3: TLabel; Panel10: TPanel; Animate1: TAnimate; HienTT: TStatusBar; private { Private declarations } public { Public declarations } end; var Danhsach: TDanhsach; implementation {$R *.DFM} end.  Maî lãûnh cuía Form Danh muûc váût tæ : kãú thæìa låïp Tdanhsach unit dsVattu; interface uses Windows,Messages,SysUtils, Classes, Graphics, Controls, Forms, Dialogs, dsDanhsach,Grids,DBGrids,StdCtrls,DBCtrls,Mask,ComCtrls,ExtCtrls,Buttons; type TfmDSVattu = class(TDanhsach) Label1: TLabel; Labell: TLabel; edDiachi: TDBEdit; Label5: TLabel; Label4: TLabel; Label6: TLabel; edTen: TDBEdit; Label7: TLabel; T: TLabel; Label8: TLabel; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBGrid1: TDBGrid; DBLookupComboBox1: TDBLookupComboBox; DBEdit1: TDBEdit; DBEdit4: TDBEdit; DBLookupComboBox2: TDBLookupComboBox; DVT: TDBComboBox; DBLookupComboBox3: TDBLookupComboBox; dbMadoitac: TDBEdit; procedure BitBtn11Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure DBLookupComboBox2CloseUp(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmDSVattu: TfmDSVattu; implementation uses uDatabase,LoaiN, ru5Vattu; {$R *.DFM} procedure TfmDSVattu.BitBtn11Click(Sender: TObject); begin inherited; CLOSE; end; procedure TfmDSVattu.FormActivate(Sender: TObject); begin inherited; with fmDatabase do begin if not TableLoai.Active then TableLoai.Open; if not TableNhom.Active then TableNhom.Open; if not TableVattu.Active then TableVattu.Open; TableLoai.Refresh; TableNhom.Refresh; TableVattu.Refresh; end; end; procedure TfmDSVattu.DBLookupComboBox2CloseUp(Sender: TObject); begin inherited; with fmDatabase do TableVattuMavattu.Value:=TableVattuLoai.Value+TableVattuNhom.Value+ TableVattuKyhieu.Value; end; procedure TfmDSVattu.FormClose(Sender: TObject; var Action:TCloseAction); begin inherited; with fmDatabase do begin TableVattu.Edit; TableVattu.Post; end; end; procedure TfmDSVattu.SpeedButton6Click(Sender: TObject); begin inherited; rfVattu.QuickRep.Preview; end; procedure TfmDSVattu.SpeedButton4Click(Sender: TObject); begin inherited; if Phanloainhom.ShowModal=mrOK then with fmDatabase do begin TableVattuLoai.Value:=Phanloainhom.Loai; // Loai, Nhom khai bao bien TableVattuNhom.Value:=Phanloainhom.Nhom; // Puclic end; end; end. I.2. Form Danh muûc phoìng ban I. 3 Form Phoìng ban cå såí II. NHÁÛP XUÁÚT Menu naìy gäöm coï 4 form chênh, mäùi form thæûc hiãûn mäüt thao taïc nháûp xuáút vaì ngoaìi ra coìn coï caïc form phuû khaïc âãø viãûc nháûp xuáút váût tæ taìi saín âæåüc dãø daìng. 1. Nháûp bãn ngoaìi 2. Xuáút bãn ngoaìi 3. Nháûp bãn trong 4. Xuáút bãn trong Caïc form nháûp xuáút naìy coï coï cáúu truïc gáön giäúng nhau, coï thãø xáy mäüt låïp riãng âãø kãú thæìa hoàûc kãú thæìa træûc tiãúp: form.2 nhåì Form.1 kãú thæìa Form.4 nhåì Form.3. Tuìy giao diãûn vaì tinh cháút cuía form coï giäúng nhau hay khäng maì ta xáy dæûng caïc låïp kãú thæìa. Kãú thæìa laì mäüt âàûc âiãøm ráút maûnh trong Delphi nhæng cuîng ráút nguy hiãøm khi sæí duûng noï. Båíi khi âaî kãú thæìa låïp træåïc, ta khäng thãø xoïa âi caïc thaình pháön maì låïp træåïc âaî coï. Ngæåüc laûi mäùi khi thay âäøi, di chuyãøn caïc thaình pháön, âäúi tæåüng cuía låïp cha thç caïc thaình pháön vaì âäúi tæåìng naìy åí låïp con cuîng thay âäøi theo gáy ra khoï khàn cho viãûc trçnh baìy giao diãûn, sàõp xãúp laûi tráût tæû caïc âäúi tæåüng trãn form kãú thæìa. Do váûy khi sæí duûng kãú thæìa bàõt buäüc ta phaíi biãút træåïc âæåüc âäúi tæåüng cáön taûo ra cuîng nhæ caïc chæïc nàng vaì tênh cháút cuía noï. II.1 Form Nháûp bãn ngoaìi Váût tæ mua vãö âæåüc tiãún haình nháûp kho. Form Hoïa âån nháûp kho coï daûng nhæ hçnh âæåïi âáy. Coï thãø xem maî lãûnh trong chæång trçnh nguäön. Trong From naìy maî lãûnh tæång âäúi daìi vç trong quaï trçnh nháûp xuáút nhæ âaî phán têch åí pháön thiãút kãú chæång trçnh. Chuïng ta phaíi chuï yï âãún caïc thuáût toaïn toaìn veûn dæî liãûu. Nghéa laì nãúu mäüt váût tæ âæåüc nháûp kho thç säú læåüng váût tæ trong kho âæåüc tàng lãn, âäöng thåìi säú læåüng váût tæ åí nåi xuáút giaím xuäúng (âäúi våïi træåìng håüp, nåi xuáút laì caïc phoìng ban khoa trong Træåìng). III. NHÁÛT KYÏ Bao gäöm: Nháût kyï nháûp xuáút ngoaìi Nháût kyï nháûp xuáút trong Coï thãø xem thäng tin chi tiãút vãö caïc hoïa âån nháûp xuáút âaî taûo láûp. Láúy hoïa âån ra âãø in mäüt caïch dãø daìng. Tuy nhiãn trong muûc Menu naìy khäng coï caïc thuäüc tênh choün loüc dæî liãûu (tæïc laì choün loüc hoïa âån cáön in), pháön loüc caïc hoïa âån naìy âæåüc thiãút kãú trong pháön Kiãøm tra båíi vç khi áúy ta coï thãø loüc vaì kiãøm tra hoïa âån mäüt caïch kyî caìng hån. Sæîa chæîa nhæîng thäng tin sai lãûch hoàûc xoïa âi caïc hoïa âån khäng cáön thiãút. III.1 Nháût kyï nháûp xuáút trong IV. CHI TIÃÚT Pháön naìy bao gäöm caïc form chi tiãút thäng tin vãö váût tæ trong nhaì Træåìng. Bao gäöm: 1. Chi tiãút cå såí træûc thuäüc: In danh saïch caïc cå såí khi biãút mäüt phoìng ban naìo âoï 2. Chi tiãút váût tæ theo cå såí: In danh saïch caïc váût tæ thiãút bë coï trong cå såí. 3. Chi tiãút váût tæ theo kho: In danh saïch caïc váût tæ coï trong kho 4. Chi tiãút váût tæ täön kho: In danh saïch caïc kho coï váût tæ X vaì säú læåüng váût tæ âoï. Ngoaìi ra ta coìn coï thãø in danh saïch caïc váût tæ åí mäüt khoa hay mäüt phoìng ban naìo âoï gäöm nhiãöu cå såí. Âiãöu cáön chuï yï åí âáy laì cáön thiãút láûp caïc thuäüc tênh âãø choün loüc, cáön in váût tæ theo mäüt nhoïm, mäüt loaûi, theo säú læåüng hay theo trë giaï täön. Âaïp æïng âæåüc caïc yãu cáöu cuía ngæåìi duìng. IV.1. Chi tiãút cå såí træûc thuäüc IV.2. Chi tiãút váût tæ theo cå såí IV.3. Chi tiãút váût tæ theo kho IV.4. Chi tiãút váût tæ täön kho V. BAÏO BIÃØU Muûc naìy xin xem åí phuû luûc 2 vãö caïc baïo biãøu Report. VI. KIÃØM TRA Bao gäöm caïc âãö muûc sau: 1. Kiãøm tra nháûp xuáút ngoaìi 2. Kiãøm tra nháûp xuáút trong 3. Kiãøm tra theo cå såí 4. Kiãøm tra theo caïc kho 5. Kiãøm tra theo váût tæ 6. Phán loaûi váût tæ Kiãøm tra laì mäüt cäng taïc ráút quan troüng trong quaín lyï váût tæ taìi saín. Trong caïc form kiãøm tra naìy ta coï thãø loüc dæî liãûu theo caïch maì ta muäún. Vê duû våïi form kiãøm tra nháûp xuáút trong hoàûc kiãøm tra nháûp xuáút ngoaìi thç ta coï thãø choün caïc hoïa âån theo:  Theo nhán viãn ‚ Theo âäúi taïc, caïc khaïch haìng, caïc phoìng ban khoa trong Træåìng. ƒ Theo ngaìy nháûp xuáút: tæì ngaìy naìo âãún ngaìy naìo, tæì thaïng naìo âãún thaïng naìo „ Theo trë giaï cuía hoïa âån. Sau khi kiãøm tra loüc dæî liãûu ta coï thãø in caïc hoïa âån âoï theo caïc caïch thäúng kã gäöm nhiãöu hoïa âån hoàûc in tæìng hoïa âån riãng leî. Quan troüng nháút trong baìi toaïn quaín lyï taìi saín váût tæ vaì trong chæång trçnh naìy laì From phán loaûi váût tæ. Trãn form naìy âæåüc thiãút kãú âãø coï thãø choün loüc váût tæ theo nhoïm theo loaûi. Âäúi våïi Træåìng Âaûi hoüc Kyî thuáût, hiãûn coï ráút nhiãöu loaûi váût tæ taìi saín. Nãúu khäng coï phæång phaïp loüc váût tæ taìi saín thç seî ráút khoï khàn trong khi sæí duûng chæång trçnh. Båíi ngæåìi sæí duûng seî phaíi choün læûa ráút nhiãöu maî váût tæ måïi cáön tçm ra âæåüc váût tæ maì mçnh quan tám âãún. Bàòng phæång phaïp loüc, ta coï thãø loaûi boí caïc thäng tin dæ thæìa khäng cáön âãún âäúi våïi mäüt khoa naìo âoï hoàûc âäúi våïi mäüt hoïa âån naìo âoï. Nhæ váûy viãûc thao taïc trãn chæång trçnh seî nhanh lãn ráút nhiãöu. Vê duû: Âäúi våïi khoa Cäng nghãû Thäng tin khi tiãún haình xem vãö váût tæ taìi saín trong khoa chè cáön xem caïc loaûi taìi saín laì maïy moïc thiãút bë (coï maî loaûi laì 04). Tiãúp âãún laì cáön xem vãö caïc loaûi maïy tênh, maïy in, linh kiãûn råìi....(coï maî nhoïm láön læåüt laì 23, 24,....) vaì nhæ thãú viãûc tiãún haình thäúng kã nháûp xuáút âæåüc täút hån. Ngoaìi ra âãø laìm thuáûn låüi cho quïa trçnh taûo láûp hoïa âån nháûp xuáút. Trong form phán loaûi váût tæ vaì mäüt säú form khaïc coìn coï giaï trë traî vãö ModalResult, khi naìy bàòng caïch læûa choün trãn danh saïch âaî coï sàón. Ta kêch chuäüt vaì nuït traî vãö vaì khi âoï giaï trë traî vãö (laì mäüt biãún public) seî truyãön giaï trë cho âäúi tæåüng maì mçnh cáön thao taïc. Cuû thãø âáy laì caïc træåìng giaï trë trãn caïc form nháûp xuáút. Thãm mäüt loaûi form næîa trong muûc naìy âoï laì caïc form kiãøm tra theo cå såí, theo caïc kho, theo váût tæ. Trãn caïc form naìy cuîng âæåüc thiãút kãú choün loüc dæî liãûu tæång tæû nhæ form kiãøm tra nháûp xuáút. VI.1. Form Kiãøm tra nháûp xuáút ngoaìi VI.2. Form Phán loaûi váût tæ VII. TÄÖN VÁÛT TÆ Muûc naìy gäöm coï caïc form sau: 1. Täön váût tæ theo kho 2. Täön váût tæ theo cå såí 3. Täön váût tæ theo váût tæ Ngoaìi ra coìn coï thãø in ra caïc baïo biãøu vãö täön váût tæ trong caïc phoìng ban gäöm nhiãöu cå såí. VII.1. Form Täön váût tæ theo kho 1 Mäüt säú Form khaïc PHUÛ LUÛC II CAÏC BAÏO BIÃØU TRONG CHÆÅNG TRÇNH Vç âáy laì mäüt chæång trçnh quaín lyï váût tæ nãn viãûc coï ráút nhiãöu baïo biãøu laì âiãöu khäng thãø traïnh khoíi. Viãûc taûo ra caïc baïo biãøu giuïp cho cäng taïc quaín lyï thuáûn tiãûn hån. Mäùi baïo biãøu âæåüc taûo ra âãöu coï thãø læu laûi åí mäüt thæ muûc naìo âoï våïi mäüt tãn file do ngæåìi læu tæû âàût. Nhæ váûy ngæåìi sæí duûng coï thãø læu laûi caïc baïo biãøu quan troüng âãø coï thãø måí ra khi cáön. I. CAÏC BAÏO BIÃØU DANH MUÛC Trong chæång trçnh coï 6 danh muûc, nhæ váûy coï 6 baïo biãøu danh muûc tæång æïng: 1. Danh muûc âäúi taïc 2. Danh muûc nhán viãn 3. Danh muûc caïc kho 4. Danh muûc váût tæ 5. Danh muûc phoìng ban 6. Danh muûc cå såí Daûng chung cuía baïo biãøu danh muûc naìy nhæ sau: I.1 Danh saïch âäúi taïc I.2 Danh saïch cå såí toaìn Træåìng I.3 Danh saïch cå såí træûc thuäüc II. CAÏC BAÏO BIÃØU TÄÖN VÁÛT TÆ II.1. Váût tæ cå såí II.2. Váût tæ täön kho III. BAÏO BIÃØU HOÏA ÂÅN III.1. Hoïa âån xuáút kho

Các file đính kèm theo tài liệu này:

  • docDOAN.DOC
  • rarCHUONGTRINH.rar
  • docKETHOP.DOC
  • docMODAU.DOC