Cùng với sự phát triển của công nghệ thông tin, tin học đang được áp dụng ngày càng nhiều vào đời sống thực tế và trở nên không thể thiếu được trong quá trình phát triển của xã hội nói chung và của các doanh nghiệp nói riêng.
Với sự đi lên không ngừng của nền kinh tế thì quản lý vốn dự án đầu tư đang ngày càng trở nên cần thiết và cấp bách hơn bao giờ hết. Việc xây dựng phần mềm sẽ giúp phần giảm nhẹ công tác quản lý của Sở Kế hoạch và Đầu tư tỉnh Điện Biên. Các thông tin về vốn của dự án sẽ được cập nhật nhanh chóng và chính xác tại mọi thời điểm. Chính vì vậy mà Sở Kế hoạch và Đầu tư tỉnh Điện Biên là một trong những Sở Kế hoạch và Đầu tư đầu tiên trên cả nước đi đầu trong trong việc tin học hoá quản lý vốn dự án Đầu tư.
99 trang |
Chia sẻ: aloso | Lượt xem: 1538 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng phần mềm quản lý vốn dự án đầu tư cho sở kế hoạch và đầu tư tỉnh Điện Biên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ính khác. Ví dụ như thành tiền (=đơn giá x số lượng ). Những thuộc tính không phải là thứ sinh thì được gọi là các thuộc tính cơ sở.
- Gạch chân các thuộc tính khoá cho thông tin đầu ra.
- Loại bỏ các thuộc tính thứ sinh khỏi danh sách, chỉ để lại các thuộc tính cơ sở. Xem xét loại bỏ các thuộc tính không có ý nghĩa trong quản lý.
Ví dụ
Từ đầu ra “Phiếu yêu cầu mượn sách” ta lập được danh sách các thuộc tính:
- Số phiếu
- Số thẻ
- Họ và tên
- Đơn vị
- Thứ tự
- Tên sách/báo
- Ký hiệu (R)
- Phân loại (R)
- Giá (R)
- Thủ thư
- Chữ ký
- Ngày mượn
- Ngày trả
Ký hiệu (R) là đánh dấu thuộc tính lặp (Repeatable)
Thực hiện việc chuẩn hoá mức 1 (1.NF)
- Việc chuẩn hoá mức một (1NF) quy định rằng, trong mỗi danh sách không được chứa những thuộc tính lặp. Nếu có các thuộc tính lặp thì phải tách các thuộc tính lặp đó thành một danh sách con.
- Gắn thêm cho nó một tên, tìm cho nó một thuộc tính định danh riêng và thêm thuộc tính định danh của danh sách gốc.
Ví dụ
Sau khi chuẩn hoá mức một danh sách các thuộc tính của phiếu yêu cầu mượn sách trên ta tách ra được làm hai danh sách như sau:
1NF1:
- Số phiếu
- Số thẻ
- Họ và tên
- Đơn vị
- Thủ thư
- Chữ ký
- Ngày mượn
- Ngày trả
1NF2:
- Số phiếu
- Tên sách/báo
- Ký hiệu
- Phân loại
- Giá
Thực hiện việc chuẩn hoá mức 2 (2.NF)
- Chuẩn hoá mức hai (2NF) quy định rằng trong một danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khoá chứ không chỉ phụ thuộc vào một phần của khoá. Nếu có sự phụ thuộc thì phải tách những thuộc tính phụ thuộc hàm vào bộ phận của khoá thành một danh sách con mới.
- Lấy bộ phận khoá đó làm khoá cho danh sách mới. Đặt cho danh sách mới này một tên riêng cho phù hợp với nội dung của các thuộc tính trong danh sách.
Ví dụ
Sau khi chuẩn hoá mức hai các danh sách thuộc tính của 1NF2 sẽ là:
2NF1:
- Tên sách/báo
- Ký hiệu
- Phân loại
- Giá
2NF2:
- Số phiếu
- Ký hiệu
Thực hiện việc chuẩn hoá mức 3 (3.NF)
- Chuẩn hoá mức ba quy định rằng trong một danh sách không có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính Z phụ thuộc hàm vào thuộc tính Y và Y phụ thuộc hàm vào X thì phải tách chúng vào hai danh sách chứa quan hệ Z, Y và danh sách chứa quan hệ Y với X.
- Xác định khoá và tên cho mỗi danh sách mới.
Sau khi chuẩn hoá mức ba danh sách thuộc tính của phiếu yêu cầu mượn sách sẽ là:
Phiếu yêu cầu:
Số phiếu
Số thẻ
Thủ thư
Ngày mượn
Ngày trả
Chữ ký
Thẻ mượn
Số thẻ
Họ tên
Đơn vị
Sách báo chí
Ký hiệu
Tên sách báo
Phân loại
Giá
Phiếu yêu cầu _ tài liệu
Số phiếu
Ký hiệu
Bước ba: Tích hợp các tên để tạo ra một cơ sở dl
Phiếu yêu cầu
Số phiếu
Số thẻ
Thủ thư
Ngày mượn
Ngày trả
Chữ ký
Thẻ mượn
Số thẻ
Họ tên
Đơn vị
Sách báo chí
Ký hiệu
Tên sách báo
Phân loại
Giá
Phiếu yêu cầu _ tài liệu
Số phiếu
Ký hiệu
2.5.2 Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá.
- Khái niệm cơ bản
Thực thể (Entity) : thực thể trong mô hình logic dữ liệu được dùng để biểu diễn những đối tượng cụ thể hoặc trừu tượng trong thế giới thực mà ta muốn lưu giữ thông tin về chúng. Thực thể được biểu diễn bằng một hình chữ nhật có ghi tên thực thể bên trong.
CHỦ ĐẦU TƯ
Liên kết(Association) : một thực thể trong thực tế không tồn tại độc lập với các thực thể khác. Có sự liên kết với qua lại giữa các thực thể với nhau. Khái niệm liên kết được dùng để trình bày, thể hiện những mối liên hệ tồn tại giữa các thực thể.
- Mức độ của liên kết
Để thiết kế tốt các sự trợ giúp quản lý của hệ thống thông tin, ngoài việc biết thực thể này liên kết với thực thể khác ra sao, còn phải biết có bao nhiêu lần xuất của thực thể A tương tác với thực thể B và ngược lại.
Mỗi CHỦ ĐẦU TƯ có nhiều DỰ ÁN
Mỗi DỰ ÁN thuộc nhiều CHỦ ĐẦU TƯ
1@1 Liên kết loại Một - Một
Một lần xuất của thực thể A được liên kết với chỉ một lần xuất của thực thể B và ngược lại.
1@N Liên kết loại Một - Nhiều
Một lần xuất của thực thể A được liên kết với chỉ một hoặc nhiều lần xuất của thực thể B và mỗi lần xuất của thực thể B chỉ liên kết với duy nhất một lần xuất của thực thể A
N@M Liên kết loại Nhiều - Nhiều
Một lần xuất của thực thể A được liên kết với một hoặc nhiều lần xuất của thực thể B và mỗi lần xuất của thực thể B được liên kết với một hoặc nhiều lần xuất của thực thể A.
- Chiều của một liên kết
Chiều của một quan hệ chỉ ra số lượng các thực thể tham gia vào quan hệ đó. Có ba loại quan hệ : một chi, hai chiều và nhiều chiều.
Quan hệ một chiều là quan hệ mà một lần xuất của một thực thể được quan hệ với một lần xuất của chính thực thể đó.
Quan hệ hai chiều là quan hệ trong đó có hai thực thể liên kết với nhau.
Quan hệ nhiều chiều là một quan hệ có nhiều hơn hai thực thể tham gia .
- Thuộc tính
Thuộc tính dùng để mô tả các đặc trưng của một thực thể hoặc một quan hệ. Có ba loại thuộc tính : thuộc tính mô tả, thuộc tính định danh và thuộc tính quan hệ.
Thuộc tính định danh là thuộc tính dùng để xác định một cách duy nhất mỗi lần xuất của thực thể. Giá trị của thuộc tính đó là duy nhất đối với mọi lần xuất của thực thể.
Thuộc tính mô tả dùng để mô tả về thực thể.
Thuộc tính quan hệ dùng để chỉ đến một lần xuất nào đó trong thực thể có quan hệ.
2.6 Khái quát về dự án đầu tư
2.6.1 Khái niệm dự án đầu tư
Đầu tư là một hoạt động quan trọng của bất kỳ tổ chức nào trong nền kinh tế. Đó là hoạt động bỏ vốn với hy vọng đạt được lợi ích tài chính, kinh tế xã hội trong tương lai. Ngày nay, nhằm tối đa hoá hiệu quả đầu tư, các hoạt động đầu tư đều được thực hiện theo dự án.
Dự án đầu tư có thể được xem xét từ nhiều góc độ. Về mặt hình thức, dự án đầu tư là một tập hồ sơ tài liệu trình bày một cách chi tiết và có hệ thống các hoạt động và chi phí theo một kế hoạch để đạt được những kết quả và thực hiện được những mục tiêu nhất định trong tương lai.
Trên góc độ quản lý, dự án đầu tư là một công cụ quản lý việc sử dụng vốn, vật tư, lao động để tạo ra các kết quả tài chính, kinh tế - xã hội trong một thời gian dài.
Như vậy, một dự án đầu tư bao gồm bốn thành thành phần chính:
- Mục tiêu của dự án được thể hiện ở hai mức: Mục tiêu phát triển và những lợi ích kinh tế - xã hội do thực hiện dự án đem lại và mục tiêu trước mắt là các mục đích cụ thể cần đạt được của việc thực hiện dự án.
- Các kết quả: đó là những kết quả cụ thể có thể định lượng, được tạo ra từ các hoạt động khác nhau của dự án. Đây là điều kiện cần thiết để thực hiện các mục tiêu của dự án.
- Các hoạt động: là những nhiệm vụ hoặc hành động được thực hiện trong dự án để tạo ra các kết quả nhất định. Những nhiệm vụ hoặc hành động này cùng với một lịch biểu và trách nhiệm cụ thể của các bộ phận thực hiện sẽ tạo thành kế hoạch làm việc của dự án.
- Các nguồn lực: về vật chất, tài chính và con người cần thiết để tiến hành các hoạt động của dự án. Giá trị hoặc chi phí của các nguồn lực này chính là vốn đầu tư cần cho dự án.
Trong bốn thành phần trên thì các kết quả được coi là cột mốc đánh dấu tiến độ của dự án. Vì vậy, trong quá trình thực hiện dự án phải thường xuyên theo dõi đánh giá các kết quả đạt được. Do đó quản lý vốn dự án đầu tư có vai trò đặc biệt quan trọng và cần phải theo dõi một cách thường xuyên.
2.6.2 Chu kỳ của dự án đầu tư
Chu kỳ của dự án đầu tư là các bước hoặc các giai đoạn mà một dự án phải trải qua bắt đầu từ khi dự án mới chỉ là ý đồ đến khi dự án được hoàn thành chấm dứt hoạt động.
Ta có thể minh hoạ chu kỳ của dự án đầu tư theo hình sau đây
Ý đồ về dự án mới
Ý đồ về dự án đầu tư
Sản xuất kinh doanh dịch vụ
Thực hiện đầu tư
Chuẩn bị đầu tư
Hình 2.3: Sơ đồ chu kỳ của dự án đầu tư
2.6.3 Quá trình hình thành và thực hiện một dự án đầu tư
Quá trình hình thành và thực hiện một dự án đầu tư trải quan ba giai đoạn: Chuẩn bị đầu tư, thực hiện đầu tư và vận hành các kết quả đầu tư.
Các bước công việc, các nội dung nghiên cứu ở các giai đoạn được tiến hành tuần tự nhưng không biệt lập mà đan xen gối đầu cho nhau, bổ xung cho nhau.
Chuẩn bị đầu tư
Thực hiện đầu tư
Vận hành kết quả đầu tư
Nghiên cứu phát hiện các cơ hội đầu tư
Nghiên cứu tiền khả thi sơ bộ lựa chọn dự án
Nghiên cứu khả thi
Đánh giá và quyết định (thẩm định dự án)
Hoàn tất các thủ tục để triển khai thực hiện đầu tư
Thiết kế và lập dự toán thi công xây lắp công trình
Thi công xây lắp công trình
Chạy
thử và nghiệm thu sử dụng
Sử dụng chưa
hết
công suất
Sử dụng công suất ở mức cao nhất
Công suất giảm dần và thanh lý
2.7 Khái quát về công cụ sử dụng để thực hiện đề tài
2.7.1 Cơ sở dữ liệu
Ông Thomas Watson, Jr, nguyên chủ tịch cỉa công ty IBM đã nói: “Toàn bộ giá trị của công ty này nằm trong đội ngũ cán bộ công nhân viên và những tệp dữ liệu. Dù tất cả các nhà cửa, văn phòng của công ty bị cháy trụi nhưng vẫn giữ được những con người và những tệp dữ liệu thì chẳng bao lâu chúng ta sẽ lại trở nên hùng mạnh như xưa. ”
Hãy thử tưởng tượng xem điều gì sẽ xảy ra đối với một ngân hàng không còn nhớ nổi những ai đã vay tiền của họ hay một công ty phần mềm máy tính đã mất hết những chương trình nguồn do họ lập ra. Các cơ quan sẽ phải có trí nhớ, đó là những kho dữ liệu lưu trữ hàng tỷ tỷ những điều chi tiết cần thiết cho kinh doanh, nghiệp vụ và ra quyết định. Nói rằng: “Dữ liệu của một tổ chức có vai trò sống còn ” là điều khẳng định hoàn toàn đúng.
2.7.2 Hệ quản trị cơ sở dữ liệu Microsoft Access
Trong những năm gần đây, công nghệ thông tin ngày càng phát triển với nhiều ứng dụng rộng rãi trong công tác quản lý xã hội, kinh tế, khoa học kỹ thuật. Hiện nay, có nhiều hệ quản trị cơ sở dữ liệu đang được sử dụng trên thế giới và trong nước: Microsoft Access, SQL, và Oracle. Trong đó Microsoft Access là một trong những bộ chương trình quan trọng thuộc tổ hợp chương trình Microsoft Office do hãng phần mềm Microsoft sản xuất.
Microsoft Access hoạt động trong môi trường Windows, là một hệ điều hành giao diện đồ hoạ, do đó thiết kế cơ sở dữ liệu trên Microsoft Access rất thuận lợi với giao diện trực quan, khả năng phát triển ứng dụng mới nhanh chóng, chuyên nghiệp.
Trong Microsoft Access có thể dùng ngôn ngữ lập trình hướng đối tượng Visual Basic.
2.7.3 Ưu điểm của ngôn ngữ lập trình Visual Basic 6.0
Là một ngôn ngữ mới và mạnh, Visual Basic có rất nhiều những ưu điểm. Với Visual Basic, có thể dễ dàng tạo những chương trình hoàn hảo với giao diện đẹp và hết sức sinh động bởi vì Visual Basic không chỉ cung cấp một khối lượng lớn các công cụ cho ta tuỳ chọn sử dụng mà còn hỗ trợ trong việc lập trình xử lý mã lệnh. Hơn nữa, Visual Basic còn có thể kết nối với các cơ sở dữ liệu từ nhiều nguồn khác nhau giúp các lập trình viên thoải mái hơn trong việc thao tác với dữ liệu. Nói chung, Visual Basic có thể sử dụng để xây dựng nên một phần mềm hoàn thiện theo bất cứ yêu cầu nào của người sử dụng.
CHƯƠNG III
XÂY DỰNG PHẦN MỀM QUẢN LÝ VỐN DỰ ÁN ĐẦU TƯ TẠI SỞ KẾ HOẠCH VÀ ĐẦU TƯ TỈNH ĐIỆN BIÊN
3.1 Phân tích hệ thống thông tin quản lý vốn dự án đầu tư
3.1.1 Thu thập thông tin hệ thống thông tin quản lý vốn dự án đầu tư
Khi một dự án được đưa vào quản lý thì tuỳ theo dự án đó thuộc ngành nào thì phòng ban thuộc ngành đó sẽ quản lý. Các phòng ban khác chỉ được xem thông tin mà không được sửa thông tin về dự án đó. Sau khi dự án được đưa vào quản lý thì các thông tin về dự án sẽ được đưa lên mạng cục bộ. Ở đó mọi nhân viên thuộc sở đều có thể lấy thông tin ra.
- Các thông tin về dự án bao gồm:
Tên dự án
Ngày khởi công
Ngày kết thúc
Số quyết định
Ngày quyết định
Nhóm dự án
Chủ đầu tư
Thuộc ngành
Cơ quan quản lý dự án
- Các thông tin về vốn của dự án
Loại nguồn vốn
Tiền nước ngoài
Tiền đối ứng
Kế hoạch vốn
Dự toán
Kế hoạch
Thực hiện
Thanh toán
Các mẫu biểu thu thập được
Đầu tư phát triển trên địa bàn 2006
Tỉnh Điện Biên
STT
Chỉ tiªu
Thùc
KÕ
So s¸nh (%)
hiÖn
N¨m 2005
ho¹ch
¦íc TH
KH n¨m
n¨m
KÕ
Thùc
n¨m
2005/TH
2006/ước
2.004
ho¹ch
hiÖn
2006
2004
TH 2005
Tæng sè:
1.121.007
1.350.000
1.308.452
1.950.000
117
149
A
Vèn ®Çu tư do ®Þa phư¬ng qu¶n lý
791.95
946.985
905.625
1.485.138
114
164
I
Nguån vèn ng©n s¸ch nhµ nưíc
336.499
472.414
465.054
1.126.908
138
#######
Trong ®ã:
- Vèn ®èi øng ODA
5.933
7.442
7.442
51
125
685
- ThiÕt kÕ qui ho¹ch
2.51
1.822
1.822
1.402
73
s77
- ChuÈn bÞ ®Çu tư
1
1
1
100
I.1
Vèn nưíc ngoµi (ODA)
53.438
79.542
72.182
47.36
- Vån JBIC
35.016
40.743
33.383
27.36
T. ®ã: + KÕ ho¹ch ®Çu n¨m
35.016
12.6
20
+ N¨m tríc chuyÓn sang
28.143
7.36
- Vèn EU
18.422
38.799
38.799
- Vèn ODA kh¸c (KUWAIT)
20
I.2
Vèn c©n ®èi ng©n s¸ch ®Þa phư¬ng
69.675
66.48
66.48
200
95
301
Chia theo nguån vèn
- Nguån vèn XDCB TT
56.394
58.492
58.492
191.5
104
327
- Vèn kÕt dư n¨m trưíc chuyÓn sang
4.882
2.098
2.098
- Vèn dù tr÷ tµi chÝnh
4.061
- Vèn thu tõ tiÒn sö dông ®Êt
4.338
5.89
5.89
8.5
136
144
Chia theo c¬ cÊu ®Çu tư
69.675
66.48
66.48
200
95
301
1
C«ng nghiÖp
2.127
872
872
3.095
41
355
2
N«ng, l©m, ngư nghiÖp
4.274
1.8
1.8
3.5
42
194
Trong ®ã: - XD C¬ së gièng n«ng nghiÖp
382
0
- Thuû lîi
3.892
1.8
1.8
3.5
- L©m nghiÖp
0
- Thuû s¶n
0
3.1.2 Mô hình hoá hệ thống thông tin quản lý vốn dự án đầu tư
Sơ đồ chức năng BFD của phần mềm quản lý vốn dự án đầu tư
Sơ đồ DFD mức ngữ cảnh
Sơ đồ IFD tổng thể của phần mềm quản lý vốn dự án đầu tư
Sơ đồ luồng dữ liệu DFD mức 0 của phần mềm quản lý vốn dự án đầu tư
Phân rã xử lý 1.0
Phân rã xử lý 2.0
Phân rã xử lý 3.0
3.2 Thiết kế phần mềm quản lý vốn dự án đầu tư
3.2.1 Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá.
Mô hình quan hệ thực thể ERD
- Chuyển đổi quan hệ hai chiều
Quan hệ hai chiều 1@1
Đối với quan hệ như vậy cần phải tạo ra hai tệp ứng với hai thực thể
Khi chuyển đổi ta thu được hai tệp sau
PSDUAN(Mã dự án, Tên dự án, ……..)
DUTOAN(Mã dự toán, Mã dự án, Tên dự toán, …..)
Quan hệ hai chiều loại 1@N
Trong trường hợp này tạo ra hai tệp, mỗi tệp ứng với một thực thể. Khoá của tệp ứng với thực thể có số mức quan hệ một được dùng như khoá quan hệ trong tệp ứng với thực thể có số mức N.
PSDUAN(Mã dự án, Tên dự án, Mã chủ đầu tư…..)
TD_CHUDAUTU(Mã chủ đầu tư, Tên chủ đầu tư)
PSDUAN(Mã dự án, Tên dự án, Mã địa phương…..)
TD_DIAPHUONG(Mã địa phương, Tên địa phương…..)
PSDUAN(Mã dự án, Tên dự án, Mã ngành …..)
TD_NGANH(Mã ngành, Tên ngành ……)
PSDUAN(Mã dự án, Tên dự án, Mã nhóm …..)
TD_NHOMDUAN(Mã nhóm, Tên nhóm, ……)
PSDUAN(Mã dự án, Tên dự án,…..)
KEHOACH(Mã kế hoạch, Mã dự án ….)
PSDUAN(Mã dự án, Tên dự án,…..)
THUCHIEN(Mã thực hiện, Mã dự án... )
PSDUAN(Mã dự án, Tên dự án,…..)
THANHTOAN(Mã thanh toán, Mã dự án….. )
Quan hệ hai chiều loại N@M
Trong trường hợp này ta phải tạo ra ba tệp: hai tệp mô tả hai thực thể và một tệp mô tả quan hệ. Khoá của tệp mô tả quan hệ được tạo thành bởi việc ghép khoá các thực thể tham gia vào quan hệ.
PSDUAN(Mã dự án, Tên dự án,…..)
TDNGUONVON(Mã nguồn vốn, Tên nguồn vốn……)
NGUONVON(Mã nguồn vốn, Mã dự án……)
Thiết kế các tệp dữ liệu
- Tệp PSDUAN (Phát sinh dự án )
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaDA
Text
15
Mã dự án
TenDA
Text
50
Tên dự án
TgKhoiCong
Date/time
10
Thời gian khởi công
SoQuyetDinh
Number
4
Số quyết định
Tgketthuc
Date/time
10
Thời gian kết thúc
MaChuDauTu
Text
20
Mã chủ đầu tư
MaDiaPhuong
Text
20
Mã địa phương
MaNhomDA
Text
20
Mã nhóm dự án
MaNganh
Text
20
Mã ngành
- Tệp DUTOAN ( Dự toán)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaDuToan
Text
15
Mã dự toán
Tendutoan
Text
50
Tên dự toán
MaDA
Text
15
Mã dự án
SoTien
Number
12
Số tiền
- Tệp NGUONVON (nguồn vốn)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaNguonVon
Text
15
Mã nguồn vốn
Mada
Text
15
Mã dự án
SoTien
Number
12
Số tiền
- Tệp KEHOACH (Kế hoạch)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaKeHoach
Text
10
Mã kế hoạch
Mada
Text
15
Mã dự án
Manguonvon
Text
15
Mã nguồn vốn
Ngayqd
Date/time
10
Ngày quyết định
Thangnamkh
Date/time
10
Tháng năm kế hoạch
Sotien
Number
12
Số tiền
- Tệp TD_CHUDAUTU (Từ điển chủ đầu tư)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaChuDauTu
Text
15
Mã chủ đầu tư
TenChuDauTu
Text
50
Tên chủ đầu tư
MadvCapTren
Text
15
Mã đơn vị cấp trên
- Tệp TD_DIAPHUONG (Từ điển địa phương)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaDiaPhuong
Text
15
Mã địa phương
TenDiaPhuong
Text
50
Tên địa phương
MadvCapTren
Text
15
Mã đơn vị cấp trên
- Tệp TD_NGANH (Từ điển ngành)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaNganh
Text
15
Mã ngành
TenNganh
Text
50
Tên ngành
MadvCapTren
Text
15
Mã đơn vị cấp trên
- Tệp TD_NGUONVON (Từ điển nguồn vốn)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaNguonVon
Text
15
Mã nguồn vốn
MaNVMe
Text
15
Mã nguồn vốn mẹ
TenNguonVon
Text
50
Tên nguồn vốn
LoaiTien
Text
10
Loại tiền
- Tệp TD_NHOMDA (Từ điển nhóm dự án )
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
MaNhomDA
Text
15
Mã nhóm dự án
TenNhomDA
Text
50
Tên nhóm dự án
MadvCaptren
Text
15
Mã đơn vị cấp trên
- Tệp THANHTOAN (Thanh toán)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
Mathanhtoan
Text
15
Mã thanh toán
MaDA
Text
15
Mã dự án
MaNguonVon
Text
15
Mã nguồn vốn
Ngay
Date/time
10
Ngày
SoTien
Number
12
Số tiền
- Tệp THUCHIEN (Thực hiện)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
Mathuchien
Text
15
Mã thực hiện
MaDA
Text
15
Mã dự án
Manguonvon
Text
15
Mã nguồn vốn
Ngay
Date/time
10
Ngày
SoTien
Number
12
Số tiền
- Tệp DANGNHAP (Đăng nhập)
Tên trường
Kiểu dữ liệu
Độ rộng
Mô tả
NguoiDung
Text
15
Người dùng
MatKhau
Text
15
Mật khẩu
3.2.2 Mô hình quan hệ giữa các thực thể
3.3 Thiết kế giải thuật cho phần mềm quản lý vốn dự án đầu tư
3.3.1 Giải thuật đăng nhập chương trình
3.3.2 Giải thuật nhập dữ liệu
3.3.3 Giải thuật sửa dữ liệu
3.3.4 Giải thuật in báo cáo
3.4 Cài đặt phần mềm quản lý vốn dự án đầu tư
Để cài đặt thành công chương trình yêu cầu máy tính phải được cài đặt các phần mềm sau:
VietKey 2000.
Visual Basic 6.0
TDBGrid7
ToolsUniVb
Crystal Report 10
Cách cài đặt: Chạy file setup để tiến hành cài đặt chương trình theo yêu cầu.
3.5 Một số giao diện chính của phần mềm
Màn hình hiển thị danh sách các dự án
Màn hình giao diện phát sinh dự án
Màn hình cập nhật các nguồn vốn của dự án
Màn hình cập nhật các dự toán của dự án
Màn hình cập nhật các kế hoạch vốn của dự án
Màn hình cập nhật từ điển nguồn vốn
Màn hình cập nhật từ điển ngành
Màn hình cập nhật từ điển chủ đầu tư
Màn hình cập nhật từ điển nhóm dự án
Báo cáo tình hình tài chính của dự án
Báo cáo tổng hợp tình hình dải ngân vốn
Báo cáo tình hình thực hiện vốn đầu tư phát triển
KẾT LUẬN
Cùng với sự phát triển của công nghệ thông tin, tin học đang được áp dụng ngày càng nhiều vào đời sống thực tế và trở nên không thể thiếu được trong quá trình phát triển của xã hội nói chung và của các doanh nghiệp nói riêng.
Với sự đi lên không ngừng của nền kinh tế thì quản lý vốn dự án đầu tư đang ngày càng trở nên cần thiết và cấp bách hơn bao giờ hết. Việc xây dựng phần mềm sẽ giúp phần giảm nhẹ công tác quản lý của Sở Kế hoạch và Đầu tư tỉnh Điện Biên. Các thông tin về vốn của dự án sẽ được cập nhật nhanh chóng và chính xác tại mọi thời điểm. Chính vì vậy mà Sở Kế hoạch và Đầu tư tỉnh Điện Biên là một trong những Sở Kế hoạch và Đầu tư đầu tiên trên cả nước đi đầu trong trong việc tin học hoá quản lý vốn dự án Đầu tư.
Phần mềm đã đạt được một số yêu cầu đặt ra như: cho biết thông tin về dự toán, kế hoạch, tình thực hiện và dải ngân vốn của dự án đầu tư. Đưa ra được báo cáo về tình hình sử dụng vốn và các báo cáo có thể kết xuất sang Microsoft Excel. Điều này giúp cho việc kiểm tra và tổng hợp số liệu một cách chính xác và đáp ứng được các yêu cầu khi cần thiết.
Tuy nhiên, đây chưa phải là một chương trình hoàn hảo do còn có những hạn chế về mặt thực tế, kinh nghiệm lập trình cũng như là về thời gian. Trong thời gian tới, nếu điều kiện cho phép em sẽ cố gắng hoàn thiện chương trình hơn nữa.
TÀI LIỆU THAM KHẢO
TS. Trương Văn Tú – TS.Trần Thị Song Minh, Giáo trình Hệ thống thông tin quản lý, NXB Thống kê, 2000.
PGS. TS. Hàn Viết Thuận, Giáo trình Cấu trúc dữ liệu và giải thuật, NXB Thống kê.
Trần Công Uẩn, Giáo trình Cơ sở dữ liệu SQL, Access, NXB Thống kê, Hà Nội, 2000.
Nguyễn Thị Ngọc Mai, Microsoft Visual Basic 6.0 Lập trình cơ sở dữ liệu, NXB Giáo dục, 2000.
TS. Từ Quang Phương, Giáo trình quản lý dự án đầu tư, NXB Lao Động – Xã Hội.
TS. Nguyễn Bạch Nguyệt, Giáo trình lập và quản lý dự án đầu tư, NXB Thống kê, Hà Nội, 2000.
PHỤ LỤC
Form phát sinh dự án
Public gConn As New ADODB.Connection
Public a As String
Dim rsDonVi As ADODB.Recordset
Dim AddNewRecord As Boolean
Dim rr As ADODB.Recordset
Private Sub cmdChonChuDautu_Click()
td_chudt.Show
End Sub
Private Sub cmdChonDiaphuong_Click()
td_diaphuong.Show
End Sub
Private Sub cmdChonNgannh_Click()
td_nganh.Show
End Sub
Private Sub cmdchonNhomDA_Click()
td_NhomDA.Show
End Sub
Private Sub CmdCuoi_Click(Index As Integer)
rsDonVi.MoveLast
Displayrec
End Sub
Private Sub cmdDau_Click(Index As Integer)
rsDonVi.MoveFirst
Displayrec
End Sub
Private Sub cmdghi_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Dim strSQL As String
Call con
strSQL = "select * from PSDuan"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strSQL, gConn
If AddNewRecord Then
str = "insert into PSDuAn values ('" & Trim(txtmada.Text) & "','" & Trim(txttenda.Text) & "', '" & Trim(txtkc.Text) & "', '" & Trim(txtsqd.Text) & "','" & Trim(txtkt.Text) & "','" & Trim(txtChudautu.Text) & "','" & Trim(txtDiaphuong.Text) & "', '" & Trim(txtNhomDA.Text) & "', '" & Trim(txtNganh.Text) & "')"
' str = "insert into PSDuAn values ('" & Trim(txtmada.Text) & "','" & Trim(txttenda.Text) & "', '" & Trim(txtkc.Text) & "', '" & Trim(txtsqd.Text) & "','" & Trim(txtkt.Text) & "','" & b & "','" & Trim(txtDiaphuong.Text) & "', '" & Trim(txtNhomDA.Text) & "', '" & Trim(txtNganh.Text) & "')"
gConn.Execute (str)
Else
'str = "update PSDuAn set maDA='" & Trim(txtmada.Text) & "',tenDA='" & Trim(txttenda.Text) & "',tgKhoicong='" & Trim(txtkc.Text) & "',soquyetdinh='" & Trim(txtsqd.Text) & "',tgketthuc='" & Trim(txtkt.Text) & "',machudautu='" & Trim(txtChudautu.Text) & "',madiaphuong='" & Trim(txtDiaphuong.Text) & "',maNhomDa='" & Trim(txtNhomDA.Text) & "',manganh='" & Trim(txtNganh.Text) & "' where mada= '" & txtmada.Text & "'"
'gConn.Execute (str)
str = "update PSDuAn set maDA='" & Trim(txtmada.Text) & "',tenDA='" & Trim(txttenda.Text) & "',tgKhoicong='" & Trim(txtkc.Text) & "',soquyetdinh='" & Trim(txtsqd.Text) & "',tgketthuc='" & Trim(txtkt.Text) & "',machudautu='" & b & "',madiaphuong='" & Trim(txtDiaphuong.Text) & "',maNhomDa='" & Trim(txtNhomDA.Text) & "',manganh='" & Trim(txtNganh.Text) & "' where mada= '" & txtmada.Text & "'"
gConn.Execute (str)
End If
rsDonVi.Close
cmdTruoc.Enabled = True
cmdSau.Enabled = True
End Sub
Private Sub cmdSau_Click()
rsDonVi.MoveNext
If Not rsDonVi.EOF Then
Displayrec
Else
rsDonVi.MoveLast
End If
End Sub
Private Sub cmdsua_Click(Index As Integer)
AddNewRecord = False
End Sub
Private Sub cmdthem_Click(Index As Integer)
AddNewRecord = True
set_null
txtmada.SetFocus
End Sub
Private Sub set_null()
txtmada = ""
txttenda = ""
txtkc = ""
txtkt = ""
txtsqd = ""
txtNhomDA = ""
txtNganh = ""
txtChudautu = ""
txtDiaphuong = ""
End Sub
Private Sub cmdthoat_Click(Index As Integer)
Unload Me
End Sub
Private Sub cmdTruoc_Click()
rsDonVi.MovePrevious
If Not rsDonVi.BOF Then
Displayrec
Else
rsDonVi.MoveFirst
End If
End Sub
Private Sub cmdxoa_Click(Index As Integer)
Set DB = OpenDatabase(App.Path & "\csdl_von.mdb")
Dim i As Integer
i = MsgBox("Baïn coù muoán xoaù baûn ghi naøy thaät khoâng?", vbYesNo)
If i = 6 Then
DB.Execute "DELETE * FROM psduan WHERE Mada = '" & rsDonVi("mada") & "'"
End If
rsDonVi.MoveNext
If Not rsDonVi.EOF Then
Displayrec
Else
rsDonVi.MoveLast
End If
cmdSau.Enabled = True
cmdTruoc.Enabled = True
set_null
End Sub
Private Sub Form_Load()
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strSQL = "select * from PSDuAn"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strSQL, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
Displayrec
End If
End Sub
Private Sub Displayrec()
txtmada.Text = rsDonVi!mada
txttenda.Text = rsDonVi!TenDA
txtkc.Text = rsDonVi!TgKhoicong
txtkt.Text = rsDonVi!Tgketthuc
txtsqd.Text = rsDonVi!SoQuyetDinh
txtNhomDA.Text = rsDonVi!ManhomDA
txtDiaphuong.Text = rsDonVi!MaDiaphuong
txtChudautu.Text = rsDonVi!Machudautu
txtNganh.Text = rsDonVi!Manganh
End Sub
Private Sub SSTab1_Click(PreviousTab As Integer)
Call dutoan
Call kehoach
Call nguonvon
Call thuchien
Call thanhtoan
End Sub
Private Sub thanhtoan()
Dim rs As New ADODB.Recordset
Dim mada As String
Dim rsQuaTrinhDT As New ADODB.Recordset
Dim sql As String
rsQuaTrinhDT.Open "Select * From Thanhtoan where thanhtoan.mada='" & Trim(txtmada.Text) & "'", gConn, 3, 3
Me.TDBGrid5.DataSource = rsQuaTrinhDT
Dim oValueItem As New TrueOleDBGrid70.ValueItem
Set rs = gConn.Execute("Select * From TD_NGUONVON ")
Dim sTenQuyen As String
Do While Not rs.EOF
oValueItem.Value = rs("Manguonvon")
sTenQuyen = IIf(IsNull(rs("TenNguonVon")), " ", rs("TenNguonVon"))
'oValueItem.DisplayValue = sTenQuyen
oValueItem.Value = sTenQuyen
Me.TDBGrid5.Columns("MaNguonVon").ValueItems.Add oValueItem
rs.MoveNext
Loop
rs.Close
Exit Sub
End Sub
Private Sub thuchien()
Dim rs As New ADODB.Recordset
Dim mada As String
Dim rsQuaTrinhDT As New ADODB.Recordset
Dim sql As String
rsQuaTrinhDT.Open "Select * From thuchien where thuchien.mada='" & Trim(txtmada.Text) & "'", gConn, 3, 3
Me.TDBGrid4.DataSource = rsQuaTrinhDT
Dim oValueItem As New TrueOleDBGrid70.ValueItem
Set rs = gConn.Execute("Select * From TD_NGUONVON ")
Dim sTenQuyen As String
Do While Not rs.EOF
oValueItem.Value = rs("Manguonvon")
sTenQuyen = IIf(IsNull(rs("TenNguonVon")), " ", rs("TenNguonVon"))
oValueItem.Value = sTenQuyen
Me.TDBGrid4.Columns("MaNguonVon").ValueItems.Add oValueItem
rs.MoveNext
Loop
rs.Close
Exit Sub
End Sub
Private Sub dutoan()
Dim rs As New ADODB.Recordset
Dim mada As String
Dim rsQuaTrinhDT As New ADODB.Recordset
Dim sql As String
rsQuaTrinhDT.Open "Select * From dutoan where dutoan.mada='" & Trim(txtmada.Text) & "'", gConn, 3, 3
Me.TDBGrid2.DataSource = rsQuaTrinhDT
Exit Sub
End Sub
Private Sub kehoach()
Dim rs As New ADODB.Recordset
Dim mada As String
Dim rsQuaTrinhDT As New ADODB.Recordset
Dim sql As String
rsQuaTrinhDT.Open "Select * From kehoach where kehoach.mada='" & Trim(txtmada.Text) & "'", gConn, 3, 3
Me.TDBGrid3.DataSource = rsQuaTrinhDT
Dim oValueItem As New TrueOleDBGrid70.ValueItem
Set rs = gConn.Execute("Select * From TD_NGUONVON ")
Dim sTenQuyen As String
Do While Not rs.EOF
oValueItem.Value = rs("Manguonvon")
sTenQuyen = IIf(IsNull(rs("TenNguonVon")), " ", rs("TenNguonVon"))
'oValueItem.DisplayValue = sTenQuyen
oValueItem.Value = sTenQuyen
Me.TDBGrid3.Columns("MaNguonVon").ValueItems.Add oValueItem
rs.MoveNext
Loop
rs.Close
Exit Sub
End Sub
Private Sub nguonvon()
Dim rs As New ADODB.Recordset
Dim mada As String
Dim rsQuaTrinhDT As New ADODB.Recordset
Dim sql As String
rsQuaTrinhDT.Open "Select * From nguonvon where nguonvon.mada='" & Trim(txtmada.Text) & "'", gConn, 3, 3
Me.TDBGrid1.DataSource = rsQuaTrinhDT
Dim oValueItem As New TrueOleDBGrid70.ValueItem
Set rs = gConn.Execute("Select * From TD_NGUONVON ")
Dim sTenQuyen As String
Do While Not rs.EOF
oValueItem.Value = rs("Manguonvon")
sTenQuyen = IIf(IsNull(rs("TenNguonVon")), " ", rs("TenNguonVon"))
'oValueItem.DisplayValue = sTenQuyen
oValueItem.Value = sTenQuyen
Me.TDBGrid1.Columns("MaNguonVon").ValueItems.Add oValueItem
rs.MoveNext
Loop
rs.Close
Exit Sub
End Sub
Form chính của chương trình
Private Sub MDIForm_Load()
FRMMAIN.Show
End Sub
Private Sub psda_Click()
frmPSDA.Show
End Sub
Private Sub tdcdt_Click()
td_chudt.Show modal
End Sub
Private Sub tddp_Click()
td_diaphuong.Show modal
End Sub
Private Sub tdnda_Click()
td_NhomDA.Show modal
End Sub
Private Sub tdng_Click()
td_nganh.Show modal
End Sub
Private Sub tdnv_Click()
td_nguonvon.Show modal
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As
MSComctlLib.Button)
On Error Resume Next
Select Case Button.Key
Case "login"
frmlogin.Show vbModal
Case "frmpsda"
frmPSDA.Show vbModal
Case "td_chudt"
td_chudt.Show vbModal
Case "td_diaphuong"
td_diaphuong.Show vbModal
Case "td_nganh"
td_nganh.Show vbModal
Case "td_nguonvon"
td_nguonvon.Show vbModal
Case "td_nhomda"
td_NhomDA.Show vbModal
Case "close"
If MsgBox("B¹n cã muèn tho¸t khái ch¬ng tr×nh nµy khån ?", vbYesNo, "Thong Bao") = vbYes Then
Unload Me
End If
End Select
End Sub
Form từ điển chủ đầu tư
Option Explicit
Public gConn As New ADODB.Connection
Public a As String
Dim strsql
Dim mode, dem, i As Integer
Dim mem As String
Dim manv, coun, countrec As String
Dim rsDonVi As ADODB.Recordset
Private Sub cmdthem_Click()
'Set gconn = New ADODB.Connection
Dim xd As Node
Call con
strsql = "Select * from td_chudautu Order by machudautu"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
Dim cha As String
cha = "x" & mem
Set xd = TreeView2.Nodes.Add(cha, tvwChild, , txtchudautu.Text)
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
countrec = rsDonVi.RecordCount + dem + 2
rsDonVi.AddNew
rsDonVi("machudautu") = countrec
rsDonVi("Tenchudautu") = txtchudautu.Text
rsDonVi("Madvcaptren") = mem
rsDonVi.Update
TreeView2.Refresh
TreeView2.Nodes.Item(3).Selected = True
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim Ma As String
Ma = Right(Me.TreeView2.SelectedItem.Key, Len(Me.TreeView2.SelectedItem.Key) - 1)
Dim i As Integer
i = MsgBox("Baïn coù chaéc chaén muoán xoaù thaät khoâng?", vbYesNo)
If i = 6 Then
gConn.Execute "Delete from TD_chudautu Where Machudautu= '" & Ma & "'"
dem = dem + 1
i = TreeView2.SelectedItem.Index
TreeView2.Nodes.Remove (i)
End If
End Sub
Private Sub Form_Load()
Call con
TreeAddDonVi TreeView2
TreeView2.Nodes.Item(2).Selected = True
strsql = "Select * from td_chudautu Order by machudautu"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
End If
countrec = rsDonVi.RecordCount
dem = 0
End Sub
Public Sub TreeAddDonVi(tvTreeView As MSComctlLib.TreeView, Optional tvwPicture1 As Long = 1, Optional tvwPicture2 As Long = 2, Optional tvwPicture3 As Long = 3, Optional tvwPicture4 As Long = 4, Optional tvwPicture5 As Long = 5)
Dim Mdv() As String
Dim Tdv() As String
Dim Cdv() As String
Dim nDv As Long
Dim i As Long
'On Error GoTo Loi
' Set gconn = New ADODB.Connection
'Call con
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strsql = "Select * from td_chudautu Order by machudautu"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
ReDim Mdv(rsDonVi.RecordCount) 'Ma don vi
ReDim Tdv(rsDonVi.RecordCount) 'Ten don vi
ReDim Cdv(rsDonVi.RecordCount) 'Ma don vi cap tren
nDv = 0 'So don vi
Do While Not rsDonVi.EOF
Mdv(nDv) = "x" & rsDonVi("machudautu")
Tdv(nDv) = rsDonVi("Tenchudautu")
Cdv(nDv) = "x" & rsDonVi("Madvcaptren")
rsDonVi.MoveNext
nDv = nDv + 1
Loop
tvTreeView.Nodes.Clear
tvTreeView.Nodes.Add , , "x000", "Dang saùch caùc chuû ñaàu tö"
TryAdd tvTreeView, Mdv, Tdv, Cdv, nDv, "x000"
'TiepTuc:
tvTreeView.BorderStyle = vbFixedSingle
rsDonVi.Close
Exit Sub
Loi:
End Sub
Public Sub TryAdd(tvTreeView As MSComctlLib.TreeView, Mdv() As String, Tdv() As String, Cdv() As String, SoDonVi As Long, Key As String)
Dim i As Long
For i = 0 To SoDonVi - 1
If Cdv(i) = Key Then
tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i)
TryAdd tvTreeView, Mdv, Tdv, Cdv, SoDonVi, Mdv(i)
End If
Next
End Sub
Private Sub TreeView2_DblClick()
Unload Me
End Sub
Private Sub TreeView2_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo loi
Dim i As Integer
Dim str
If Me.TreeView2.SelectedItem Node.Root Then
Call con
i = TreeView2.SelectedItem.Index
str = Trim(TreeView2.Nodes.Item(i))
strsql = "Select * from td_chudautu where tenchudautu = '" & str & "' "
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn
mem = rsDonVi("Madvcaptren")
a = rsDonVi("tenchudautu")
b = rsDonVi("machudautu")
txtchudautu.Text = ""
End If
frmPSDA.txtchudautu.Text = a
Exit Sub
txtchudautu.Text = ""
End Sub
Form từ điển địa phương
Option Explicit
Public gConn As New ADODB.Connection
Dim strsql
Dim mode, dem, i As Integer
Dim mem As String
Dim manv, coun, countrec As String
Dim rsDonVi As ADODB.Recordset
Private Sub cmdthem_Click()
'Set gconn = New ADODB.Connection
Dim xd As Node
Call con
strsql = "Select * from td_diaphuong Order by madiaphuong"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
Dim cha As String
cha = "x" & mem
Set xd = TreeView3.Nodes.Add(cha, tvwChild, , txtdiaphuong.Text)
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
countrec = rsDonVi.RecordCount + dem + 2
rsDonVi.AddNew
rsDonVi("madiaphuong") = countrec
rsDonVi("Tendiaphuong") = txtdiaphuong.Text
rsDonVi("Madvcaptren") = mem
rsDonVi.Update
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim Ma As String
Ma = Right(Me.TreeView3.SelectedItem.Key, Len(Me.TreeView3.SelectedItem.Key) - 1)
Dim i As Integer
i = MsgBox("Baïn coù chaéc chaén muoán xoaù thaät khoâng?", vbYesNo)
If i = 6 Then
gConn.Execute "Delete from TD_diaphuong Where Madiaphuong= '" & Ma & "'"
dem = dem + 1
i = TreeView3.SelectedItem.Index
TreeView3.Nodes.Remove (i)
End If
End Sub
Private Sub Form_Load()
Call con
TreeAddDonVi TreeView3
TreeView3.Nodes.Item(2).Selected = True
strsql = "Select * from td_diaphuong Order by madiaphuong"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
End If
countrec = rsDonVi.RecordCount
dem = 0
End Sub
Public Sub TreeAddDonVi(tvTreeView As MSComctlLib.TreeView, Optional tvwPicture1 As Long = 1, Optional tvwPicture2 As Long = 2, Optional tvwPicture3 As Long = 3, Optional tvwPicture4 As Long = 4, Optional tvwPicture5 As Long = 5)
'Dim rsNhanVien As ADODB.Recordset
Dim Mdv() As String
Dim Tdv() As String
Dim Cdv() As String
Dim nDv As Long
Dim i As Long
'On Error GoTo Loi
' Set gconn = New ADODB.Connection
'Call con
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strsql = "Select * from td_diaphuong Order by madiaphuong"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
ReDim Mdv(rsDonVi.RecordCount) 'Ma don vi
ReDim Tdv(rsDonVi.RecordCount) 'Ten don vi
ReDim Cdv(rsDonVi.RecordCount) 'Ma don vi cap tren
nDv = 0 'So don vi
Do While Not rsDonVi.EOF
Mdv(nDv) = "x" & rsDonVi("madiaphuong")
Tdv(nDv) = rsDonVi("Tendiaphuong")
Cdv(nDv) = "x" & rsDonVi("Madvcaptren")
rsDonVi.MoveNext
nDv = nDv + 1
Loop
tvTreeView.Nodes.Clear
tvTreeView.Nodes.Add , , "x000", "Dang saùch caùc ñòa phöông"
TryAdd tvTreeView, Mdv, Tdv, Cdv, nDv, "x000"
tvTreeView.BorderStyle = vbFixedSingle
rsDonVi.Close
Exit Sub
Loi:
End Sub
Public Sub TryAdd(tvTreeView As MSComctlLib.TreeView, Mdv() As String, Tdv() As String, Cdv() As String, SoDonVi As Long, Key As String)
Dim i As Long
For i = 0 To SoDonVi - 1
If Cdv(i) = Key Then
tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i)
TryAdd tvTreeView, Mdv, Tdv, Cdv, SoDonVi, Mdv(i)
End If
Next
End Sub
Private Sub TreeView3_DblClick()
Unload Me
End Sub
Private Sub TreeView3_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo loi
Dim i As Integer
Dim str
If Me.TreeView3.SelectedItem Node.Root Then
Call con
i = TreeView3.SelectedItem.Index
str = Trim(TreeView3.Nodes.Item(i))
strsql = "Select * from td_diaphuong where tendiaphuong = '" & str & "' "
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn
mem = rsDonVi("Madvcaptren")
a = rsDonVi("tendiaphuong")
txtdiaphuong.Text = ""
End If
frmPSDA.txtdiaphuong.Text = a
Exit Sub
End Sub
Form từ điển ngành
Option Explicit
Public gConn As New ADODB.Connection
Dim strsql
Dim mode, dem, i As Integer
Dim mem As String
Dim manv, coun, countrec As String
Dim rsDonVi As ADODB.Recordset
Private Sub cmdghi_Click()
'Set gconn = New ADODB.Connection
Call con
End Sub
Private Sub cmdthem_Click()
'Set gconn = New ADODB.Connection
Dim xd As Node
Call con
strsql = "Select * from td_nganh Order by manganh"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
Dim cha As String
cha = "x" & mem
Set xd = TreeView5.Nodes.Add(cha, tvwChild, , txtnganh.Text)
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
countrec = rsDonVi.RecordCount + dem + 2
rsDonVi.AddNew
rsDonVi("Manganh") = countrec
rsDonVi("Tennganh") = txtnganh.Text
rsDonVi("Madvcaptren") = mem
rsDonVi.Update
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim Ma As String
Ma = Right(Me.TreeView5.SelectedItem.Key, Len(Me.TreeView5.SelectedItem.Key) - 1)
Dim i As Integer
i = MsgBox("Baïn coù chaéc chaén muoán xoaù thaät khoâng?", vbYesNo)
If i = 6 Then
gConn.Execute "Delete from TD_nganh Where Manganh= '" & Ma & "'"
dem = dem + 1
i = TreeView5.SelectedItem.Index
TreeView5.Nodes.Remove (i)
End If
End Sub
Private Sub Form_Load()
Call con
TreeAddDonVi TreeView5
TreeView5.Nodes.Item(2).Selected = True
strsql = "Select * from td_nganh Order by manganh"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
End If
countrec = rsDonVi.RecordCount
dem = 0
End Sub
Public Sub TreeAddDonVi(tvTreeView As MSComctlLib.TreeView, Optional tvwPicture1 As Long = 1, Optional tvwPicture2 As Long = 2, Optional tvwPicture3 As Long = 3, Optional tvwPicture4 As Long = 4, Optional tvwPicture5 As Long = 5)
Dim Mdv() As String
Dim Tdv() As String
Dim Cdv() As String
Dim nDv As Long
Dim i As Long
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strsql = "Select * from td_nganh Order by manganh"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
ReDim Mdv(rsDonVi.RecordCount) 'Ma don vi
ReDim Tdv(rsDonVi.RecordCount) 'Ten don vi
ReDim Cdv(rsDonVi.RecordCount) 'Ma don vi cap tren
nDv = 0 'So don vi
Do While Not rsDonVi.EOF
Mdv(nDv) = "x" & rsDonVi("Manganh")
Tdv(nDv) = rsDonVi("Tennganh")
Cdv(nDv) = "x" & rsDonVi("Madvcaptren")
rsDonVi.MoveNext
nDv = nDv + 1
Loop
tvTreeView.Nodes.Clear
tvTreeView.Nodes.Add , , "x000", "Dang saùch caùc ngaønh"
TryAdd tvTreeView, Mdv, Tdv, Cdv, nDv, "x000"
tvTreeView.BorderStyle = vbFixedSingle
rsDonVi.Close
'tvTreeView.Nodes.Item(1).Selected = True
Exit Sub
Loi:
End Sub
Public Sub TryAdd(tvTreeView As MSComctlLib.TreeView, Mdv() As String, Tdv() As String, Cdv() As String, SoDonVi As Long, Key As String)
Dim i As Long
For i = 0 To SoDonVi - 1
If Cdv(i) = Key Then
tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i)
TryAdd tvTreeView, Mdv, Tdv, Cdv, SoDonVi, Mdv(i)
End If
Next
End Sub
Private Sub TreeView5_DblClick()
Unload Me
End Sub
Private Sub TreeView5_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo loi
Dim i As Integer
Dim str
If Me.TreeView5.SelectedItem Node.Root Then
Call con
i = TreeView5.SelectedItem.Index
str = Trim(TreeView5.Nodes.Item(i))
strsql = "Select * from td_nganh where tennganh = '" & str & "' "
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn
mem = rsDonVi("Madvcaptren")
a = rsDonVi("tennganh")
txtnganh.Text = ""
End If
frmPSDA.txtnganh.Text = a
Exit Sub
txtnganh.Text = ""
End Sub
Form từ điển nguồn vốn
Option Explicit
Public gConn As New ADODB.Connection
Dim strsql
Dim mode, dem, i As Integer
Dim manv, coun, countrec As String
Dim mem As String
Dim rsDonVi As ADODB.Recordset
Private Sub cmdthem_Click()
'Set gconn = New ADODB.Connection
Dim xd As Node
Call con
strsql = "Select * from td_nguonvon Order by manguonvon"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
Dim cha As String
cha = "x" & mem
Set xd = TreeView1.Nodes.Add(cha, tvwChild, , txtNguonvon.Text)
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
'If mode = 1 Then
countrec = rsDonVi.RecordCount + dem + 2
rsDonVi.AddNew
rsDonVi("Manguonvon") = countrec
rsDonVi("Tennguonvon") = txtNguonvon.Text
rsDonVi("MaNVMe") = mem
rsDonVi.Update
TreeView1.Nodes.Item(3).Selected = True
TreeView1.Refresh
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim Ma As String
Ma = Right(Me.TreeView1.SelectedItem.Key, Len(Me.TreeView1.SelectedItem.Key) - 1)
Dim i As Integer
i = MsgBox("Baïn coù chaéc chaén muoán xoaù thaät khoâng?", vbYesNo)
If i = 6 Then
gConn.Execute "Delete from TD_NGUONVON Where MaNguonVon= '" & Ma & "'"
dem = dem + 1
i = TreeView1.SelectedItem.Index
TreeView1.Nodes.Remove (i)
TreeView1.Refresh
End If
End Sub
Private Sub Form_Load()
Call con
TreeAddDonVi TreeView1
TreeView1.Nodes.Item(2).Selected = True
strsql = "Select * from td_nguonvon Order by manguonvon"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
'Displayrecord
End If
countrec = rsDonVi.RecordCount
dem = 0
End Sub
Public Sub TreeAddDonVi(tvTreeView As MSComctlLib.TreeView, Optional tvwPicture1 As Long = 1, Optional tvwPicture2 As Long = 2, Optional tvwPicture3 As Long = 3, Optional tvwPicture4 As Long = 4, Optional tvwPicture5 As Long = 5)
Dim Mdv() As String
Dim Tdv() As String
Dim Cdv() As String
Dim nDv As Long
Dim i As Long
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strsql = "Select * from td_nguonvon Order by manguonvon"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
ReDim Mdv(rsDonVi.RecordCount) 'Ma don vi
ReDim Tdv(rsDonVi.RecordCount) 'Ten don vi
ReDim Cdv(rsDonVi.RecordCount) 'Ma don vi cap tren
nDv = 0 'So don vi
Do While Not rsDonVi.EOF
Mdv(nDv) = "x" & rsDonVi("Manguonvon")
Tdv(nDv) = rsDonVi("TenNguonVon")
Cdv(nDv) = "x" & rsDonVi("MaNVMe")
rsDonVi.MoveNext
nDv = nDv + 1
Loop
tvTreeView.Nodes.Clear
'Céng c¸c don vi vµo TreeView
'tvTreeView.Nodes.Add , , "x000", "Dang saùch nguoàn voán", , "a"
tvTreeView.Nodes.Add , , "x000", "Dang saùch nguoàn voán"
TryAdd tvTreeView, Mdv, Tdv, Cdv, nDv, "x000"
'TiepTuc:
tvTreeView.BorderStyle = vbFixedSingle
rsDonVi.Close
'tvTreeView.Nodes.Item(1).Selected = True
Exit Sub
Loi:
End Sub
Public Sub TryAdd(tvTreeView As MSComctlLib.TreeView, Mdv() As String, Tdv() As String, Cdv() As String, SoDonVi As Long, Key As String)
Dim i As Long
For i = 0 To SoDonVi - 1
If Cdv(i) = Key Then
'tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i), , "b"
tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i)
TryAdd tvTreeView, Mdv, Tdv, Cdv, SoDonVi, Mdv(i)
End If
Next
End Sub
Private Sub Label3_Click()
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo loi
Dim i As Integer
Dim str
If Me.TreeView1.SelectedItem Node.Root Then
Call con
i = TreeView1.SelectedItem.Index
str = Trim(TreeView1.Nodes.Item(i))
strsql = "Select * from td_nguonvon where tennguonvon = '" & str & "' "
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn
mem = rsDonVi("MaNVMe")
'a = rsDonVi("tennguonvon")
txtNguonvon.Text = ""
End If
Exit Sub
txtNguonvon.Text = ""
End Sub
Form từ điển nhóm dự án
Option Explicit
Public gConn As New ADODB.Connection
Dim strsql
Dim mode, dem, i As Integer
Dim mem As String
Dim manv, coun, countrec As String
Dim rsDonVi As ADODB.Recordset
Private Sub cmdthem_Click()
'Set gconn = New ADODB.Connection
Dim xd As Node
Call con
strsql = "Select * from td_nhomda Order by manhomda"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
Dim cha As String
cha = "x" & mem
Set xd = TreeView4.Nodes.Add(cha, tvwChild, , txtnhomda.Text)
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
countrec = rsDonVi.RecordCount + dem + 2
rsDonVi.AddNew
rsDonVi("Manhomda") = countrec
rsDonVi("Tennhomda") = txtnhomda.Text
rsDonVi("Madvcaptren") = mem
rsDonVi.Update
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub cmdxoa_Click()
Dim Ma As String
Ma = Right(Me.TreeView4.SelectedItem.Key, Len(Me.TreeView4.SelectedItem.Key) - 1)
Dim i As Integer
i = MsgBox("Baïn coù chaéc chaén muoán xoaù thaät khoâng?", vbYesNo)
If i = 6 Then
gConn.Execute "Delete from TD_nhomda Where Manhomda= '" & Ma & "'"
dem = dem + 1
i = TreeView4.SelectedItem.Index
TreeView4.Nodes.Remove (i)
TreeView4.Refresh
End If
End Sub
Private Sub Form_Load()
Call con
TreeAddDonVi TreeView4
TreeView4.Nodes.Item(2).Selected = True
strsql = "Select * from td_nhomda Order by manhomda"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
If rsDonVi.RecordCount > 0 Then
rsDonVi.MoveFirst
End If
countrec = rsDonVi.RecordCount
dem = 0
End Sub
Public Sub TreeAddDonVi(tvTreeView As MSComctlLib.TreeView, Optional tvwPicture1 As Long = 1, Optional tvwPicture2 As Long = 2, Optional tvwPicture3 As Long = 3, Optional tvwPicture4 As Long = 4, Optional tvwPicture5 As Long = 5)
Dim Mdv() As String
Dim Tdv() As String
Dim Cdv() As String
Dim nDv As Long
Dim i As Long
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
strsql = "Select * from td_nhomda Order by manhomda"
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn, adOpenKeyset, adLockOptimistic
ReDim Mdv(rsDonVi.RecordCount) 'Ma don vi
ReDim Tdv(rsDonVi.RecordCount) 'Ten don vi
ReDim Cdv(rsDonVi.RecordCount) 'Ma don vi cap tren
nDv = 0 'So don vi
Do While Not rsDonVi.EOF
Mdv(nDv) = "x" & rsDonVi("Manhomda")
Tdv(nDv) = rsDonVi("Tennhomda")
Cdv(nDv) = "x" & rsDonVi("Madvcaptren")
rsDonVi.MoveNext
nDv = nDv + 1
Loop
tvTreeView.Nodes.Clear
'tvTreeView.Nodes.Add , , "x000", "Dang saùch nguoàn voán", , "a"
tvTreeView.Nodes.Add , , "x000", "Dang saùch caùc nhoùm döï aùn"
TryAdd tvTreeView, Mdv, Tdv, Cdv, nDv, "x000"
'TiepTuc:
tvTreeView.BorderStyle = vbFixedSingle
rsDonVi.Close
Exit Sub
Loi:
End Sub
Public Sub TryAdd(tvTreeView As MSComctlLib.TreeView, Mdv() As String, Tdv() As String, Cdv() As String, SoDonVi As Long, Key As String)
Dim i As Long
For i = 0 To SoDonVi - 1
If Cdv(i) = Key Then
'tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i), , "b"
tvTreeView.Nodes.Add Key, tvwChild, Mdv(i), Tdv(i)
TryAdd tvTreeView, Mdv, Tdv, Cdv, SoDonVi, Mdv(i)
End If
Next
End Sub
Private Sub TreeView4_DblClick()
Unload Me
End Sub
Private Sub TreeView4_NodeClick(ByVal Node As MSComctlLib.Node)
'On Error GoTo loi
Dim i As Integer
Dim str
If Me.TreeView4.SelectedItem Node.Root Then
Call con
i = TreeView4.SelectedItem.Index
str = Trim(TreeView4.Nodes.Item(i))
strsql = "Select * from td_nhomda where tennhomda = '" & str & "' "
Set rsDonVi = New ADODB.Recordset
rsDonVi.Open strsql, gConn
mem = rsDonVi("Madvcaptren")
a = rsDonVi("tennhomda")
txtnhomda.Text = ""
End If
frmPSDA.txtnhomda.Text = a
Exit Sub
txtnhomda.Text = ""
End Sub
Module của chương trình
Dim gConn As ADODB.Connection
Public a, b As String
Public Sub con()
Set gConn = New ADODB.Connection
With gConn
.Provider = "MSDASQL.1"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= " & App.Path & "\csdl_von.mdb"
.CommandTimeout = 10
.Open
End With
End Sub
Các file đính kèm theo tài liệu này:
- 32507.doc