LỜI NÓI ĐẦU 8
CHƯƠNG I. GIỚI THIỆU CHUNG VỀ NGÂN HÀNG NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN CHI NHÁNH NAM HÀ NỘI 10
I. NHIỆM VỤ CHỨC NĂNG CHÍNH CỦA NHNo&PTNT NAM HÀ NỘI 11
1. Các nhiệm vụ chính 11
2. Các chức năng chính 14
II. NGUYÊN TẮC TỔ CHỨC HOẠT ĐỘNG VÀ ĐIỀU HÀNH CỦA NHNo&PTNT NAM HÀ NỘI 14
1. Nguyên tắc tổ chức hoạt động 14
2. Nguyên tắc điều hành 15
3. Cơ cấu tổ chức 15
III. CHỨC NĂNG CỦA CÁC PHÒNG BAN VÀ CÁC CHI NHÁNH CẤP 2 18
1. Phòng Nguồn Vốn và Kế hoạch tổng hợp 18
2. Phòng Tín dụng 19
3. Phòng Thẩm định 20
4. Phòng Kinh doanh và Thanh toán quốc tế 20
5. Phòng Kế toán Ngân quỹ 21
6. Phòng Tổ chức Hành chính 21
7. Phòng Kiểm tra, Kiểm toán nội bộ 22
8. Chi nhánh cấp 2 23
IV. GIỚI THIỆU PHÒNG KẾ TOÁN NGÂN QUĨ 24
1. Cơ cấu tổ chức của phòng 24
2. Nhiệm vụ, chức năng, quyền hạn 24
3. Lý do lựa chọn đề tài 25
CHƯƠNG II. PHƯƠNG PHÁP LUẬN NGHIÊN CỨU ĐỀ TÀI 27
I. TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN 27
1. Khái niệm về hệ thống 27
2. Khái niệm về hệ thống thông tin 28
3. Khái niệm hệ thống thông tin quản lý (MIS) 28
II. PHƯƠNG PHÁP XÂY DỰNG HỆ THỐNG THÔNG TIN 29
1. Phương pháp 1: Đi từ chi tiết đến tổng hợp 30
2. Phương pháp 2: Đi từ tổng hợp đến cụ thể 31
3. Phương pháp 3: Tổng hợp hai phương pháp 31
III. CÁC CÔNG ĐOẠN PHÁT TRIỂN HỆ THỐNG 32
1. Giai đoạn đánh giá yêu cầu 32
2. Giai đoạn phân tích chi tiết 35
3. Giai đoạn thiết kế logic 37
4. Giai đoạn đề xuất các phương án giải pháp 38
5. Giai đoạn thiết kế vật lý ngoài 41
6. Giai đoạn Triển khai kỹ thuật hệ thống 42
7. Giai đoạn cài đặt bảo trì và khai thác 45
IV. YÊU CẦU ĐỔI MỚI CỦA HỆ THỐNG THÔNG TIN 47
1. Những yêu cầu về quản lý 48
2. Những yêu cầu mới của nhà quản lý 48
3. Sự thay đổi của công nghệ 49
4. Thay đổi sách lược chính trị 49
V. GIỚI THIỆU CÔNG CỤ THỰC HIỆN ĐỀ TÀI 50
1. Các khái niệm về cơ sở dữ liệu. 50
2. Giới thiệu về ngôn ngữ lập trình FoxPro 51
CHƯƠNG III. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN QUẢN LÍ TÀI SẢN CỐ ĐỊNH 53
I. NHỮNG QUI ĐỊNH CHUNG VỀ QUẢN LÝ TÀI SẢN CỐ ĐỊNH 53
1. Qui trình quản lý Tài sản cố định 53
2. Phương pháp quản lí Tài sản cố định hiệu quả 58
II. QUI ĐỊNH VỀ HẠCH TOÁN TÀI SẢN CỐ ĐỊNH 64
1. Nhiệm vụ của hạch toán TSCĐ 64
2. Nguyên tắc hạch toán TSCĐ 64
3. Phương pháp hạch toán 65
III. PHÂN TÍCH HỆ THỐNG 67
1. Đặc tả phần mềm 67
2. Sơ đồ chức năng 70
3. Sơ đồ luồng thông tin 71
3.3. Sơ đồ luồng thông tin với tiến trình Thanh lý, nhượng bán TS 74
3. Sơ đồ luồng dữ liệu 75
4. Thiết kế cơ sở dữ liệu 82
5. Thiết kế giải thuật 98
6. Triển khai hệ thống 103
CHƯƠNG IV. CÀI ĐẶT VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH 114
I. CÀI ĐẶT .114
II.CÁC KẾT QỦA ĐẠT ĐƯỢC 114
1. Hệ thống 114
2. Cập nhật dữ liệu 114
3. Theo dõi thay đổi 114
4. Tìm kiến 115
5. Lập và In các báo cáo 115
III. ĐÁNH GIÁ CHƯƠNG TRÌNH 117
1. Ưu điểm 117
2. Nhược điểm 117
3. Hướng phát triển đề tài 118
KẾT LUẬN 119
MỘT SỐ ĐOẠN CODE NGUỒN TIÊU BIỂU 123
NHỮNG TỪ VIẾT TẮT TRONG LUẬN VĂN
TSCĐ : Tài sản cố định
TSCĐVH : Tài sản cố định vô hình
TSCĐ HH : Tài sản cố định hữu hình
KHTSCĐ : Khấu hao tài sản cố định
NGTSCĐ : Nguyên giá tài sản cố định
HTTT : Hệ thống thông tin
CNTT : Công nghệ thông tin
NHNo&PTNTNam Hà Nội: Ngân hàng Nông nghiệp và Phát triển nông Nam Hà Nội
NHNo&PTNT Hà Nội : Ngân hàng Nông nghiệp và Phát triển nông thôn Hà Nội
NHNo&PTNT Việt Nam : Ngân hàng Nông nghiệp và Phát triển nông thôn Việt Nam
LỜI NÓI ĐẦU
Kinh tế toàn cầu đặt ra những cơ hội và thách thức cho đất nước ta, nhất là trong lĩnh vực kinh tế. Làm sao đưa Việt Nam thành một nước có nền công nghiệp phát triển đó là một câu hỏi lớn trong đại hội Đảng toàn quốc lần thứ X vừa qua.
Chúng ta đang sống trong kinh tế tri thức hay kinh tế thông tin. Thông tin đóng một vai trò vô cùng quan trọng. Nó làm xuất hiện những yêu cầu mới, những đòi hỏi mới, những thách thức mới đặc biệt là vấn đề nắm bắt thông tin chính vì lẽ đó công nghệ thông tin ngày càng phát triển mạnh mẽ trên thế giới. Quốc gia nào, người nào nắm bắt được thông tin nhanh, đúng, chính xác và kịp thời nhưng phải đảm bảo an toàn và bảo mật thông tin dữ liệu quốc gia đó, người đó sẽ là người chiến thắng. Những ứng dụng công nghệ thông tin vào trong mọi mặt của đời sống xã hội đã và đang đem lại những kết quả khả quan không thể phủ nhận. Từ chính phủ đến các doanh nghiệp, từ các công ty lớn đến các công ty nhỏ đang dần áp dụng những thành tựu của công nghệ thông tin. Thuật ngữ tin học hóa không còn xa lạ nữa. Nhất là trong lĩnh vực kinh doanh tiền tệ như Ngân hàng, công nghệ thông tin được áp dụng từ rất sớm và hiện nay hầu hết các Ngân hàng đã có những phầm mềm chuyên dụng, trong Ngân hàng Nông nghiệp và Phát triển nông thôn Việt Nam đang sử dụng đồng bộ các phần mềm thống nhất từ tổng đến các chi nhánh. Song vẫn còn một số bộ phận, một số mảng vẫn chưa được áp dụng công nghệ thông tin, muốn thành công hơn nữa thì Ngân hàng này cần tin học hóa triệt để nhằm đem lại hiệu quả kinh doanh cao hơn. Do vậy qua thời gian thực tập tại Ngân hàng Nông nghiệp và Phát triển nông thôn Nam Hà nội và được sự gợi ý của Ngân hàng em đã chọn đề tài “Xây dựng hệ thống thông tin Quản lí tài sản cố định trong NHNo&PTNT Nam Hà Nội” để làm luận văn tốt nghiệp của mình.
Mục đích của việc thực hiện đề tài này đầu tiên giúp em có điều hiện thực hành những kiến thức đã được đào tạo trong trường và tìm hiểu thực tế môi trường công việc sau này.
LỜI CẢM ƠN
Trong suốt 4 năm học tập và rèn luyện dưới mái trường Đại học Kinh tế Quốc dân, được sự dìu dắt của các thầy các cô giáo. Đặc biệt các thầy cô trong khoa Tin học kinh tế và thầy trưởng khoa P.GS-TS Hàn Viết Thuận là người trực tiếp hướng dẫn tận tình cho em từ những bước đi ban đầu, trong suốt thời gian thực tập thầy là người luôn động viên, chỉ bảo cho em về chuyên môn cũng như kinh nghiệm sống được làm việc với thầy em không chỉ học được ở thầy những kiến thức chuyên môn mà còn học được một tinh thần trách nhiện với công việc và với những sinh viên của mình. Em đã và đang hoàn thiện bản thân cũng như trình độ chuyên môn. Cho em gửi lời cảm ơn trân thành đến các thầy cô giáo và người thầy P.GS-TS Hàn Viết Thuận.
Để hoàn thành được luận văn tốt nghiệp này em đã nhận được sự giúp đỡ nhiệt tình của các anh các chị trong Ngân hàng Nông nghiệp và Phát triển Nông thôn chi nhánh Nam Hà Nội, đặc biệt là cán bộ hướng dẫn trưởng phòng Nguyễn Danh Vận, em cũng xin chân thành cảm ơn gia đình, bạn bè đã cổ vũ em trong thời gian qua.
Em xin chân thành cảm ơn !
Sinh viên
Đào Thị Lan Hương
CHƯƠNG I. GIỚI THIỆU CHUNG VỀ NGÂN HÀNG NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN CHI NHÁNH NAM
HÀ NỘI
Ngân hàng Nông nghiệp và Phát triển nông thôn Việt Nam (NHNo&PTNTVN) là ngân hàng thương mại hàng đầu Việt Nam, có mạng lưới chi nhánh trên toàn quốc và cơ sở nghiệp vụ hiện đại và có hệ thống dịch vụ tự động ATM hoạt động 24/24h. Ngân hàng Nông Nghiệp cam kết luôn mang đến cho khách hàng những dịch vụ tốt nhất, hiện đại nhất mọi lúc mọi nơi. Với phương châm AGIBANK phát triển bền vững hoà nhập quốc tế
Tổng quan về NHNo&PTNTVN
Tên cơ quan Ngân hàng nông nghiệp và phát triển nông thôn Hà Nội
Địa chỉ Số 2 Láng Hạ – Hà Nội
Điện thoại 04 8687500
Web www.agibank.com.vn
Lãnh đạo GĐ-BTĐU: TSKT Lê Văn Sở
Căn cứ vào “Quyết định của hội đồng quản trị NHNo&PTNT Việt Nam” Số: 454/QĐ/HĐQT-TCCB V/v Ban hành Qui chế về Tổ chức và Hoạt động của chi nhánh NHNo&PTNT Việt Nam.
NHNo&PTNT Nam Hà Nội là chi nhánh cấp 1 của NHNo&PTNT Việt Nam là đơn vị hạch toán phụ thuộc có con dấu riêng và bảng cân đối tài khoản, có trụ sở giao dịch riêng nơi có điều kiện thuận lợi cho hoạt động kinh doanh tiền tệ, tín dụng và dịch vụ ngân hàng khác là đại diện theo uỷ quyền của NHNo&PTNT Việt Nam có quyền tự chủ kinh doanh theo phân cấp và chịu sự ràng buộc về nghĩa vụ và quyền lợi đối với NHNo&PTNT Việt Nam.
NHNo&PTNT Nam Hà Nội nằm trong mối liên hệ mật thiết với: NHNo&PTNT Việt Nam, Ngân hàng Nhà nước, NHNo&PTNT Hà Nội, Khách hàng và các chi nhánh khác trên cả nước.
Mối quan hệ chủ yếu của NHNo&PTNT chi nhánh Nam Hà Nội với môi trường trực tiếp xung quanh.
Tổng quan chi nhánh Nam Hà Nội
Nơi thực tập NHNo&PTNT Nam Hà Nội
Địa chỉ C3-Phương Liệt-Thanh Xuân-Hà Nội
Điện thoại 04 8687661 (Phòng Kế Toán Ngân Quĩ)
Giám đốc điều hành Nguyễn Văn Dương
I. NHIỆM VỤ CHỨC NĂNG CHÍNH CỦA NHNo&PTNT NAM HÀ NỘI
1. Các nhiệm vụ chính
1.1. Huy động vốn
- Khai thác và nhận tiền gửi của các tổ chức, cá nhân và tổ chức tín dụng khác dưới các hình thức tiền gửi không kì hạn, tiền gửi có kì hạn và các loại tiền gửi khác trong nước và nước ngoài bằng đồng Việt Nam và ngoại tệ.
- Phát hành chứng chỉ tiền gửi, trái phiếu và giấy tờ có giá trị khác để huy động vốn của các tổ chức, cá nhân trong và ngoài nước theo qui định của NHNo&PTNT Việt Nam
- Tiếp nhận các nguồn vốn tài trợ, vốn uỷ thác của chính phủ, chính quyền địa phương và các tổ chức kinh tế, cá nhân trong nước và nước ngoài theo qui định của NHNo&PTNT Việt Nam.
- Được phép vay vốn của các tổ chức tài chính, tín dụng khác hoạt động tại Việt Nam và tổ chức tín dụng nước ngoài khi được Tổng giám đốc NHNo&PTNT Việt Nam cho phép bằng văn bản.
- Các hình thức huy động vốn khác theo qui định của NHNo&PTNT Việt Nam.
- Việc huy động có thể bằng tiền Việt Nam, ngoại tệ, vàng và các công cụ khác theo qui định của NHNo&PTNT Việt Nam
1.2. Cho vay
- Cho vay ngắn hạn nhằm đáp ứng nhu cầu cho sản xuất, kinh doanh, dịch vụ, đời sống cho các tổ chức cá nhân hoạt động trên lãnh thổ Việt Nam
- Cho vay trung hạn, dài hạn nhằm thực hiện các dự án đầu tư phát triển sản xuất, kinh doanh, dịch vụ, đời sống cho các tổ chức cá nhân hoạt động trên lãnh thổ Việt Nam
1.3. Kinh doanh ngoại hối
Huy động vốn là cho vay, mua, bán ngoại tệ, thanh toán quốc tế, bảo lãnh, tái bảo lãnh, chiết khấu, tái chiết khấu bộ chứng từ và các dịch vụ khác về ngoại hối theo chính sách quản lí ngoại hối của chính phủ, Ngân hàng nhà nước và của NHNo&PTNT Việt Nam
1.4. Cung ứng các dịch vụ thanh toán và ngân quĩ gồm:
- Cung ứng các dịch vụ thanh toán
- Thực hiện các dịch vụ thanh toán trong nước cho khách hàng
- Thực hiện các dịch vụ thu hộ và chi hộ
- Thực hiện dịch vụ thu và phát tiền mặt cho khách hàng
144 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2542 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống thông tin quản lí tài sản cố định trong ngân hàng nông nghiệp và phát triển nông thôn Nam Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
d_sd
C
5
Mã mục đích sử dụng (khóa chính)
2
Ten_md_sd
C
10
Tên mục đích sử dụng
3
Dac_diem
M
4
Đặc điểm của mục đích sử dụng
Bảng danh mục tình trạng
STT
Name
Type
Width
Decimal
Description
1
Ma_tinh_trang
C
5
Mã tình trạng ( khóa chính)
2
Tinh_trang
C
30
Tình trạng tài sản
Bảng danh mục theo dõi khấu hao
STT
Name
Type
Width
Decimal
Description
1
Ma_ts
C
5
Mã tài sản ( khóa ngoại)
2
STT
C
5
Số thứ tự khi thay đổi (khóa ngoại)
3
Ngay_bd
D
8
Ngày bắt đầu
4
Ngay_kt
D
8
Ngày kết thúc
5
Nguyen_gia
N
15
2
Nguyên giá
6
Thoi_gian_sd
N
10
0
Thời gian sử dụng
Quan hệ giữa các bảng được thiết lập
5. Thiết kế giải thuật
Giải thuật đăng nhập
Không
Có
Bắt đầu
Kết thúc
Nhập tên
và Mật khẩu
Hiện MH giao diện chính
Tên và MK hợp lệ?
Thông báo
sai tên hoặc
mật khẩu
Tiếp tuc?
Có
Không
Giải thuật nhật TS
Bắt đầu
Nhập mã TS
Nhập các thông tin khác về TS
Nhập tên TS
Tên trống?
Mã trùng hay trống?
Lưu TS vào CSDL
Kết thúc
Có lưu không?
Có
Không
Có
Có
Không
Không
Tiếp tục?
Không
Có
Giải thuật sửa đổi thông tin TS
Không
Lưu vào CSDL
Sửa đổi thông tin
Sửa đúng?
Kết thúc
Tiếp tục?
Có
Có
Không
Có
Không
Bắt đầu
Nhập mã TS cần sửa
Tìm kiếmthấy?
Thuật toán tìm kiếm
Không
Có
Có
Không
Bắt đầu
Kết thúc
Nhập tên TS
Tìm kiếm
thấy?
Hiện thông tin TS
Tiếp tục?
Thông báo không tìm thấy
Thuật toán báo cáo
Có
Không
Có
Không
Kết thúc
Chọn mẫu báo cáo
Mở Form báo cáo
Nhập điều kiện
Hiện báo cáo
In báo cáo
Điều kiện thỏa mãn?
In báo cáo?
Không
Tiếp tục ?
Có
Bắt đầu
Thông báo điều kiện không thảo mãn
6. Triển khai hệ thống
Một số giao diện chính của chương trình:
1. Form đăng nhập
Quản lý người sử dụng
Menu chương trình
Danh mục từ điểm
Cập nhật TS
Thay đổi nguyên giá, thời gian sử dụng
Đình chỉ sử dụng tài sản
Thanh lý Tài sản
Điều kiện tìm kiếm
Điều kiện tìm kiếm để xuất ra Sổ theo dõi tài sản
Điều kiện tìm kiếm để xuẩt ra Báo cáo tình trạng tài sản
Điều kiện lọc theo các tiêu đề, xuất ra các báo cáo tổng hợp về TSCĐ
Bảng điều kiện để xuất ra các báo cáo về khấu hao
Bảng điều kiện chọn xuất ra các danh mục từ điển
Một số mẫu báo cáo
Danh mục phòng ban
Thẻ tài sản
Báo cáo hiện trạng
Sổ theo dõi TSCĐ
Báo cáo trích khấu hao
CHƯƠNG IV. CÀI ĐẶT VÀ ĐÁNH GIÁ CHƯƠNG TRÌNH
I. CÀI ĐẶT
Để có thể cài đặt và sử dụng được chương trình thì yêu cầu tối thiểu đối với chương trình như sau:
Phần cứng: Ram từ 64MB trở lên, sử dụng Petium 2 trở lên
Phần mềm: Sử dụng trong nhiều hệ điều hành khác nhau, không cần cài Visual FoxPro vì trong chương trình đã sẵn, sử dụng phông chữ ABC hay Vietkey
II.CÁC KẾT QỦA ĐẠT ĐƯỢC
1. Hệ thống
Chương trình cho phép phân quyền với người sử dụng, bao gồm các chức năng sau:
Thoát
Đăng nhập: Cho phép bạn đăng nhập vào chương trình với tài khoản và mật khẩu
Quản lý người dùng: Cho phép admin có thể thêm người sử dụng, Xóa người sử dụng, đổi mật khẩu.
Tham số hệ thống: Nguyên giá và thời gian sử dụng tài sản
2. Cập nhật dữ liệu
Cho phép cập nhật những danh mục sau:
Danh mục nhóm tài sản
Danh mục hợp đồng
Danh mục nhà cung cấp
Danh mục mục đích sử dụng
Danh mục nguồn vốn
Danh mục phòng ban
Cập nhật tài sản
3. Theo dõi thay đổi
Chương trình cho phép theo dõi thay đổi của tất cả các danh mục đã cập
nhật. Quan trọng hơn là theo dõi được những thay đổi sau:
Thay đổi nguyên giá, thời gian sử dụng
Đình chỉ sử dụng
Tiếp tục sử dụng lại
Thanh lý tài sản
4. Tìm kiến
Chương trình tìm kiếm các tài sản theo các tiêu chí sau:
Mã tài sản
Tên tài sản
Mã nhóm tài sản
Mã nguồn vốn
Nguyên giá
Thời gian sử dụng
Ngày đưa vào sử dụng
Mã mục đích sử dụng
Mã phòng ban
Mã nhà cung cấp
Sô hợp đồng
Năm sản xuất
Trong năm hoặc từ khi bắt đầu hình thành chi nhánh
5. Lập và In các báo cáo
Đưa ra các điều kiện lọc nhất định để chọn báo cáo như sau:
. In các danh mục từ điển
In các danh mục từ điển theo thời gian Tức là ngày bất kỳ chọn xuất ra báo cáo
Danh mục phòng ban
Danh mục nhà cung cấp
Danh mục nguồn vốn
Danh mục hợp đồng
Danh mục nhóm tài sản
5.2. In các thẻ tài sản
Bất cứ một tài sản nào cũng xuất ra được một thẻ tài sản, được lọc các điều kiện như trong mục tìm kiếm
5.3. In các báo cáo về hiện trạng tài sản cố định
Bạn có thể chọn in báo cáo hiện trạng TSCĐ theo tiêu chí như:
Theo nhóm tài sản
Theo tất cả các tài sản hiện có
Tại một thời điểm cụ thể
Trong một khoảng thời gian nhất định
5.4. In các báo cáo theo dõi các biến động của TSCĐ trong kỳ
Xuất các báo cáo theo các tiêu chí sau:
Theo nhóm tài sản
Theo tất cả các tài sản hiện có
Theo quí
Theo tháng
Theo năm
Từ ngày đến ngày
Tại một thời điểm nhất định
In các báo cáo trích khấu hao
Xuất các báo cáo theo các tiêu chí sau:
Theo nhóm tài sản
Theo tất cả các tài sản hiện có
Theo quí
Theo tháng
Theo năm
Từ ngày đến ngày
Tại một thời điểm nhất định
III. ĐÁNH GIÁ CHƯƠNG TRÌNH
1. Ưu điểm
Chương trình đã đạt được những kết quả như trên. Có thể nói đã đáp ứng được những chức năng cơ bản đối quá trình quản lý đối với TSCĐ.
Có sự phân quyền đối với người sử dụng
Tính toán trong chương trình đều tự động, kế toán viên chỉ cần lọc điều kiện hiển thị liên quan đến TS
Các báo cáo được lập vào năm tài chính hay kỳ kế toán nhưng cũng rất linh động, có thể xuất ra các báo cáo tại bất kỳ thời điểm nào mà kế toán viên nhập vào và còn kèm theo các điều kiện lọc khác, kết quả của những báo cáo thực sự có ích cho quá trình quản lý TS, trích khấu hao tính vào chi phí kinh doanh trong kỳ…
Chương trình có giao diện đơn giản, dễ sử dụng, thân thiện với người sử dụng, các tính toán chính xác và đúng qui định do Bộ tài chính ban hành và qui định riêng của ngân hàng.
Dữ liệu lưu trữ an toàn thông qua một logfile.
2. Nhược điểm
Chương trình cũng có những hạn chế do người dùng lần đầu tiên làm một đề tài thực tế lớn, kiến thức và thời gian có hạn.
Chương trình không có sự kết nối với các cơ sở dữ liệu khác gây nên sự kém linh hoạt trong sử dụng
Chương trình mới dừng lại ứng dụng riêng cho NHNo&PTNT Nam Hà nội, chưa trở thành một chương trình có tính ứng dụng rộng rãi
Phân quyền chưa chi tiết với người sử dụng
Chưa có hỗ trợ cho người dùng.
3. Hướng phát triển đề tài
Trong ngành NH luôn đi đầu trong ứng dụng công nghệ thông tin, quản lý TSCĐ là một trong những chương trình có tính thực tế cao và hiện nay NH đang có kế hoạch sử dụng phần mềm tin học ứng dụng trong quản lý TSCĐ.
Chương trình có hệ thống báo cáo chuẩn, chính xác rất hiệu qủa trong việc quản lý TSCĐ. Trong tương lai em sẽ khắc phục những nhược điểm, thêm những chức năng ưu việt và chỉnh sửa cho chương trình trở nên chuyên nghiệp hơn. Hoàn thiện chương trình để chương trình có tính khả thi cao, có khả năng áp dụng rộng rãi không chỉ trong ngành ngân hàng.
KẾT LUẬN
Với những kiến thức đã học trong suốt bốn năm qua, đặc biệt là những kiến thức thực tế đã tích lũy được trong thời gian thực tập cùng với sự hướng dẫn tận tình của thầy P.GS-TS Hàn Viết Thuận và cán bộ hướng dẫn Nguyễn Danh Vận em đã chọn đề tài “ Xây dựng hệ thống thông tin Quản lí tài sản cố định trong NHNo&PTNT Nam Hà Nội” và đã hoàn thành luận văn tốt nghiệp của mình.
Ngân hàng là một ngành có tính chất đặc thù riêng, công nghệ thông tin đã được áp dụng từ rất sớm và khá hoàn chỉnh và đồng bộ song việc quản lý TSCĐ vẫn còn áp dụng một cách thủ công do vậy chương trình này được áp dụng để quản lý TSCĐ đặc thù trong NHNo&PTNT Nam Hà Nội, nhằm giúp cho quá trình quản lý được hoàn thiện hơn, đem lại hiệu quả kinh doanh cao hơn
Khi thực hiện luận văn em đã cố gắng để hoàn thành những mục tiêu đề ra ban đầu, song do khả năng còn hạn chế và thời gian có hạn nên em không tránh khỏi những thiếu xót. Vì vậy em rất mong được sự chỉ bảo của các thầy, các cô để luận văn được hoàn thiện và củng cố kiến thức của em trong tương lai.
Sau này khi có điều kiện em sẽ phát triển chương trình thành một phần mềm có khả năng áp dụng cho các chi nhánh ngân hàng khác hoặc các doanh nghiệp khác không phải ngành ngân hàng.
Một lần nữa em xin cảm ơn thầy PGS.TS Hàn Viết Thuận, các anh chị phòng Kế toán và Ngân quỹ trong NHNo&PTNT Nam Hà Nội, gia đình, bạn bè đã giúp em hoàn thành đề tài này.
Sinh viên
Đào Thị Lan Hương
TÀI LIỆU THAM KHẢO
Giáo trình cấu trúc dữ liệu và giải thuật
Tác giả: PGS.TS. Hàn Viết Thuận
NXB : Thống kê
Hà nội : 2005
Giáo trình Hệ thống thông tin quản lý
Tác giả: TS Trương Văn Tú – TS Trần Thị Song Minh
NXV : Thống kê
Hà nội : 2000
Những bài thực hành Visual FoxPro
Biên tập và biên soạn:VN- GUIDE và kĩ sư tin học Đinh Lâm Xuân
NXV : Thống kê
Phân tích thiết kế hệ thống thông tin quản lý
Tác giả: ThS Đinh Thế Hiển
NXV : Thống kê
Cơ sở dữ liệu
Tác giả: Trần Công Uẩn
NXB : Thống kê
Hà nội : 2000
Kế toán tài chính trong các doanh nghiệp
Tác giả: TS Đặng Thị Loan
NXB : Giáo dục
Hà nội : 2001
Tài liệu tập huấn tài sản cố định
Ngân hàng nông nghiệp và phát triển nông thôn Nam Hà nội
Hà nội : Tháng 4 năm 2004
Một số sách giáo trình và sách tham khảo khác
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Hà Nội, ngày …..tháng…..năm 2006
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Hà Nội, ngày …..tháng…..năm 2006
MỘT SỐ ĐOẠN CODE NGUỒN TIÊU BIỂU
Phần code gọi chương trình main
*** Main chuong trinh, dung de goi cac chuong trinh thuc thi khac
* Khoi tao moi truong
DO setenvi
* Khoi tao duong dan cho chuong trinh
PUBLIC M_root
CLEAR
_Prog = SYS(16)
_Vt = AT("\", _Prog,OCCURS("\", _Prog))
M_Root = SUBSTR(_Prog, 1, _Vt)
* Loai bo "Prog"
SET DEFA TO (M_Root)
* Khoi tao duong dan
DO Prog\p_setpath.prg
* Khoi tao cac bien he thong
DO (D_Prog + [p_setsysvar.prg])
DO khoitao IN (D_PROG+[p_setthongso])
* Khoi tao man hinh hien thi
WITH _Screen
.CLOSABLE=.F.
.ICON=(D_IMG+[program2.ico])
.ControlBox=.T.
.MaxButton=.F.
.MinButton=.T.
.Height=600
.Width=800
.Caption='Quan ly tai san co dinh'
.WindowState=2
.Picture=(D_IMG+[WINdowsXP.jpg])
ENDWITH
CLEA
* Vao chuong trinh chinh
ON KEY LABEL ALT+Q DO End
s_user=""
DO (D_PROG+[p_setmenu])
DO (D_PROG+[p_settoolbar])
DO FORM (D_FORM+[f_login])
* Ket thuc chuong trinh
READ EVENTS
ON KEY LABEL ALT+Q
RETURN
*------------------------------------
PROCEDURE ReleT
SET SYSMENU TO
IF WEXIST([Report controls])
HIDE WIND [Report controls]
ENDIF
IF WEXIST([Form Controls])
HIDE WIND [Form Controls]
ENDIF
IF WEXIST([Database Designer])
HIDE WIND [Database Designer]
ENDIF
IF WEXIST([Form Designer])
HIDE WIND [Form Designer]
ENDIF
IF WEXIST([Color Palette])
HIDE WIND [Color Palette]
ENDIF
IF WEXIST([Layout])
HIDE WIND [Layout]
ENDIF
IF WEXIST([Report Designer])
HIDE WIND [Report Designer]
ENDIF
IF WEXIST([Query Designer])
HIDE WIND [Query Designer]
ENDIF
IF WEXIST([View Designer])
HIDE WIND [View Designer]
ENDIF
IF WEXIST([Standard])
HIDE WIND [Standard]
ENDIF
RETURN
******************************
PROCEDURE setenvi
* Khoi tao gia tri moi truong
SET SAFETY OFF
SET TALK OFF
SET DATE DMY
SET DELETED ON
SET ESCAPE ON
SET EXAC ON
SET STATUS OFF
SET CENTURY ON
SET COLO TO B+/BG
SET STATUS BAR ON
DEFINE WINDOW WinBrw FROM 1, 0 TO FLOOR(SROWS()) - 1, FLOOR(SCOLS()) COLOR SCHEME 10;
CLOSE FLOAT GROW MINIMIZE ZOOM SYSTEM FONT [Vk sans serif],8
RETURN
***********************************
PROCEDURE End
SET Sysmenu TO DEFAULT
CLEAR ALL
CLEAR EVENTS
CLEAR
_vfp.StatusBar=""
_screen.Caption="Microsoft Visual Foxpro"
_screen.Picture=""
_screen.Icon=""
RETURN
Phần code để tạo menu tự động:
* Mo bang tb_menu
IF !USED('tb_menu')
USE (D_sys + [tb_menu]) ALIAS tb_menu IN 0
ELSE
SELECT tb_menu
ENDIF
SELECT tb_menu
* Sap xep theo khoa chi so thu 3
INDEX on tb_menu.menu_id+tb_menu.menu_id0 TAG menuindex
SET ORDER TO menuindex
* Tao menu tu bang tb_menu, thuat toan su dung cmenu_id, neu cmenu_id khong co gia tri thi no la Pad
CLEAR
SET SYSMENU TO && Lam mat het cac muc trong menu hien thoi
GO TOP
i=1
SCAN
IF EMPTY(tb_menu.menu_id0) THEN
************** Xac dinh tieu de menu *************
pa_menu="p_"+ ALLTRIM(tb_menu.menu_id)
DEFINE PAD &pa_menu OF _mSYSmenu PROMPT ALLTRIM(tb_menu.bar) SKIP FOR s_user=""
ON PAD &pa_menu OF _mSysmenu ACTIVATE POPUP &pa_menu
DEFINE POPUP &pa_menu MARGIN RELATIVE
ELSE
**************Xac dinh menu chi tiet***************
i=i+1
DEFINE BAR i OF &pa_menu PROMPT ALLTRIM(tb_menu.bar)
_Pro=ALLTRIM(tb_menu.procedure)
ON SELECTION BAR i OF &pa_menu &_PRo
ENDIF
ENDSCAN
Phần code để đăng nhập vào chương trình
* Doan chuong trinh phuc vu dang nhap, quan ly nguoi su dung
PROCEDURE tb_user_open
IF !USED('tb_user')
SELECT 0
USE (D_SYS+[tb_user]) ALIAS tb_user
ELSE
SELECT tb_user
ENDIF
ENDPROC
********************************************************
* Kiem tra trong danh muc co ton tai ten dang nhap khong
FUNCTION tb_user_login
* 1 ten nguoi dung khong ton tai, 2 Sai mat khau
*3 Dang nhap thanh cong
PARAMETERS _user,_passw
DO tb_user_open
GO top
LOCATE FOR UPPER(ALLTRIM(cuser))==UPPER(ALLTRIM(_user))
IF FOUND() then
_right=cright
GO top
LOCATE FOR ALLTRIM(cpassw)==ALLTRIM(_passw)
IF FOUND()
WAIT ' Ban da dang nhap thanh cong' WINDOW NOWAIT
*!* MESSAGEBOX(" Ban da dang nhap thanh cong",0,"Xin chao")
* Dua vao cac bien he thong
s_user=ALLTRIM(_user)
S_right=ALLTRIM(_right)
s_passw=ALLTRIM(_passw)
RETURN 3
ELSE
MESSAGEBOX("Ban da nhap sai mat khau")
RETURN 2
ENDIF
ELSE
MESSAGEBOX("Khong co tai khoan nguoi dung nay, ban hay nhap lai")
RETURN 1
ENDIF
RETURN
*************************************************************
* THem nguoi dung moi vao trong danh sach
Function tb_user_Them
PARAMETERS _user,_passw1,_passw2
* kiem tra xem nguoi dung nhap vao co trong danh sach khong
* 1, ten nguoi dung da bi trung, 2 mat khau khong khop nhau
* 3 Them thanh cong
DO tb_user_open
GO TOP
SET ORDER TO 1
IF !SEEK(ALLTRIM(_user))
* Kiem tra ma co trung khong
IF ALLTRIM(_passw1)==ALLTRIM(_passw2)
MESSAGEBOX("Da them nguoi dung vao he thong",0,"Thong bao")
RETURN 3
ELSE
MESSAGEBOX("Hai mat khau khong khop nhau",0,"Thong bao")
RETURN 2
ENDIF
ELSE
MESSAGEBOX("Da co nguoi dung nay trong danh sach")
RETURN 1
ENDIF
ENDFUNC
*****************Doi mat khau***********************************
FUNCTION tb_user_SuaPass
PARAMETERS _passcu,_passw1,_passw2
* SO sanh voi S_Passw xem trung khong
* 1 khong trung, 2 2 pass word khong khop
* 3 Doi pass thanh cong
IF ALLTRIM(_passcu)==ALLTRIM(S_passw) then
IF ALLTRIM(_passw1)==ALLTRIM(_passw2)
MESSAGEBOX("Mat khau da duoc doi",0,"Thong bao")
s_passw=ALLTRIM(_passw1)
RETURN 3
ELSE
MESSAGEBOX("Hai mat khau khong khop nhau",0,"Thong bao")
RETURN 2
ENDIF
ELSE
MESSAGEBOX("Khong khop so voi mat khau cu")
RETURN 1
ENDIF
RETURN
******************Xoa nguoi dung*****************************
* Chi co nguoi co tai khoan loai Admin moi dc xoa nguoi su dung
* S_right='Admin'
FUNCTION tb_user_xoa
* Khong dc xoa tai khoan co user la Admin, khong dc xoa tai khoan la chinh minh
* Combo box hien thi se luoc bo 2 nguoi nay
ENDFUNC
Phần code gọi danh mục và cập nhật, sửa xóa cho các danh mục
Danh mục hợp đồng
* Program nhap 0them xoa sua cho danh muc khach hang
* tham so neu la nhap moi
PROCEDURE tb_dmhd_Open
IF !USED("tb_dmhd")
use (D_DATA+[tb_dmhd]) ALIAS tb_dmhd IN 0
ELSE
SELECT tb_dmhd
ENDIF
ENDPROC
**********************************************
PROCEDURE tb_dmhd_init
* Khai bao bien
PUBLIC m.so_hd,m.loai_hd, _Moi_sua,_prompt,_recno,_macu
&&_MOI_SUA de luu trang thai X- xem, S-sua,M-them moi
STORE "" to m.so_hd,m.loai_hd,_prompt
ENDPROC
PROCEDURE tb_dmhd_F4
SELECT tb_dmhd
SCATTER memvar MEMO BLANK
_Moi_sua=[M]
_Prompt="Them mot ban ghi"
PUSH KEY Clear
do form (D_FORM+[f_dm1hd])
POP key
ENDPROC
**************************************************
PROCEDURE tb_dmhd_F3
SELECT tb_dmhd
SCATTER memvar Memo
_recno=RECNO()
_macu=m.so_hd
_Moi_Sua=[S]
_prompt="Sua mot ban ghi"
PUSH KEY Clear
do form (D_FORM+[f_dm1hd])
POP key
ENDPROC
************************************************
PROCEDURE tb_dmhd_F8
SELECT tb_dmhd
IF MESSAGEBOX("Co chac muon xoa?",4,"Chu y")=6 then
DELETE
USE IN cur_dmhd
Pack
IF !EOF()
SKIP
ENDIF
IF EOF() and !BOF()
SKIP -1
ENDIF
ENDIF
ENDPROC
***************************************************
PROCEDURE tb_dmhd_ESC
CLOSE ALL
* Dong bang bang nut
ENDPROC
***************************************************
FUNCTION tb_dmhd_nhan
SELECT tb_dmhd
SET ORDER TO 1
tm=.F.
* Kiem tra ma trong
IF EMPTY(m.so_hd) OR Empty(m.loai_hd) then
MESSAGEBOX("Ban da de trong truong ma hoac truong ten hoac truong ma nhom khach hang",0,"Chu y")
ELSE
* them cac kiem tra khac neu can
* kiem tra ma trung
IF _Moi_sua=[M] then
IF SEEK(ALLTRIM(m.so_hd))
MESSAGEBOX("Ma da co trong danh muc")
ELSE
* Cap nhat vao bang
APPEND blank
GATHER memvar memo
tm=.T.
ENDIF
ELSE
IF SEEK(ALLTRIM(m.so_hd)) and (_recno#RECNO())
MESSAGEBOX("Ma da co trong danh muc")
ELSE
GO _recno
GATHER memvar Memo
tm=.T.
ENDIF
ENDIF
ENDIF
return tm
****************************************************
PROCEDURE tb_dmhd_huy
ENDPROC
*****************************************************
PROCEDURE tb_dmhd_Xem
SELECT tb_dmhd
_moi_sua=[X]
_recno=RECNO()
_prompt="Thong tin chi tiet mot ban ghi"
PUSH KEY CLEAR
DO FORM (D_FORM+[f_dm1hd])
POP KEY
ENDPROC
*****************************************************
PROCEDURE tb_dmhd_chitiet
SELECT tb_dmhd
ENDPROC
Danh muc phong ban
* Program nhap 0them xoa sua cho danh muc khach hang
* tham so neu la nhap moi
PROCEDURE tb_dmpb_Open
IF !USED("tb_dmpb")
use (D_DATA+[tb_dmpb]) ALIAS tb_dmpb IN 0
ELSE
SELECT tb_dmpb
ENDIF
ENDPROC
**********************************************
PROCEDURE tb_dmpb_init
* Khai bao bien
PUBLIC m.ma_pb,m.ten_pb, _Moi_sua,_prompt,_recno,_macu
&&_MOI_SUA de luu trang thai X- xem, S-sua,M-them moi
STORE "" to m.ma_pb,m.ten_pb,_prompt
ENDPROC
PROCEDURE tb_dmpb_F4
SELECT tb_dmpb
SCATTER memvar MEMO BLANK
_Moi_sua=[M]
_Prompt="Them mot ban ghi"
PUSH KEY Clear
do form (D_FORM+[f_dm1pb])
POP key
ENDPROC
**************************************************
PROCEDURE tb_dmpb_F3
SELECT tb_dmpb
SCATTER memvar Memo
_recno=RECNO()
_macu=m.ma_pb
_Moi_Sua=[S]
_prompt="Sua mot ban ghi"
PUSH KEY Clear
do form (D_FORM+[f_dm1pb])
POP key
ENDPROC
************************************************
PROCEDURE tb_dmpb_F8
SELECT tb_dmpb
IF MESSAGEBOX("Co chac muon xoa?",4,"Chu y")=6 then
DELETE
USE IN cur_dmpb
Pack
IF !EOF()
SKIP
ENDIF
IF EOF() and !BOF()
SKIP -1
ENDIF
ENDIF
ENDPROC
***************************************************
PROCEDURE tb_dmpb_ESC
CLOSE ALL
* Dong bang bang nut
ENDPROC
***************************************************
FUNCTION tb_dmpb_nhan
SELECT tb_dmpb
SET ORDER TO 1
tm=.F.
* Kiem tra ma trong
IF EMPTY(m.ma_pb) OR Empty(m.ten_pb) then
MESSAGEBOX("Ban da de trong truong ma hoac truong ten hoac truong ma nhom khach hang",0,"Chu y")
ELSE
* them cac kiem tra khac neu can
* kiem tra ma trung
IF _Moi_sua=[M] then
IF SEEK(ALLTRIM(m.ma_pb))
MESSAGEBOX("Ma da co trong danh muc")
ELSE
* Cap nhat vao bang
APPEND blank
GATHER memvar memo
tm=.T.
ENDIF
ELSE
IF SEEK(ALLTRIM(m.ma_pb)) and (_recno#RECNO())
MESSAGEBOX("Ma da co trong danh muc")
ELSE
GO _recno
GATHER memvar Memo
tm=.T.
ENDIF
ENDIF
ENDIF
return tm
****************************************************
PROCEDURE tb_dmpb_huy
ENDPROC
*****************************************************
PROCEDURE tb_dmpb_Xem
SELECT tb_dmpb
_moi_sua=[X]
_recno=RECNO()
_prompt="Thong tin chi tiet mot ban ghi"
PUSH KEY CLEAR
DO FORM (D_FORM+[f_dm1pb])
POP KEY
ENDPROC
*****************************************************
PROCEDURE tb_dmpb_chitiet
SELECT tb_dmpb
ENDPROC
Phần code hiện danh mục người sử dụng
******************************************************************************************
* tb_dmts_F3 Sua or them moi tai san
* tb_dmts_Nhan Luu nhan vien
* tb_dmts_F10 Sap xep danh muc tai san
SET SAFETY OFF
SET DATE TO dmy
CLOSE TABLES all
DO open_table WITH 'tb_dmnts','ma_nts'
DO open_table WITH 'tb_dmhd','so_hd'
DO open_table WITH 'tb_dmpb','ma_pb'
DO open_table WITH 'tb_dmnvon','ma_nvon'
DO open_table WITH 'tb_dmncc','ma_ncc'
DO open_table WITH 'tb_md_sd','ma_md_sd'
DO open_table WITH 'tb_dmts','ma_ts'
DO open_table WITH 'tb_tinh_trang','ma_tinh_tr'
PUBLIC m.ma_ts,m.ten_ts,m.ma_nts,m.so_hd,m.ma_ncc,m.Ma_pb,m.ma_md_sd,m.ma_tinh_tr,;
m.Ngay_sd,m.Nguyen_gia,m.thoi_gian_sd,m.Nam_sx,m.nuoc_sx
STORE "" TO m.ma_ts,m.ten_ts,m.ma_nts,m.so_hd,m.ma_ncc,m.Ma_pb,m.ma_md_sd,m.ma_tinh_tr,;
m.Ngay_sd,m.Nguyen_gia,m.thoi_gian_sd,m.Nam_sx,m.nuoc_sx
ON KEY LABEL F3 DO tb_dmts_F3 with [S]
ON KEY LABEL F4 DO tb_dmts_F3 with [M]
ON KEY LABEL F8 DO tb_dmts_F8
ON KEY LABEL F9 DO tb_dmts_F9
ON KEY LABEL F10 do tb_dmts_F10
SELECT tb_dmts
BROWSE FIELDS
ma_ts :H = [M· tµi s¶n] :10,;
ten_ts :H = [Tªn tµi s¶n] :30,;
ngay_sd :H = [Ngµy sö dông] :10,;
nguyen_gia :H = [Nguyªn gi¸] :15,;
thoi_gian_sd :H = [Thêi gian sö dông]:10,;
nam_sx :H = [N¨m s¶n xuÊt] :7,;
nuoc_sx :H = [Níc s¶n xuÊt] :15,;
ma_nts :H = [M· nhãm TS] :9,;
ma_nvon :H = [M· nguån vèn] :9,;
so_hd :H = [Sè hîp ®ång] :9,;
ma_ncc :H = [M· nhµ cc] :9,;
Ma_pb :H = [M· phßng ban] :9,;
ma_md_sd :H = [M· md sd] :9,;
ma_tinh_tr: H = [M· t×nh tr¹ng]:9;
FONT [VK sans serif],9;
FOR ALLTRIM(Ma_tinh_tr)='DSD' ;
TITLE "F3-Sua, F4-Them moi,F8-Thay doi tinh trang, F9-Loc,F10-Sap xep ESC-Thoat" NOAPPEND NOMODIFY NODELETE WINDOW WinBrw
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
ON KEY LABEL F9
ON KEY LABEL F10
USE IN tb_dmnts
USE in tb_dmhd
USE in tb_dmpb
USE IN tb_dmnvon
USE IN tb_dmncc
USE IN tb_md_sd
USE IN tb_dmts
USE IN tb_tinh_trang
IF USED([Temp7])
USE IN Temp7
ENDIF
************************************ PROCEDURE tb_dmts_F3 **************************************
PROCEDURE tb_dmts_F3
LPARAMETERS _M_S
_InSELECT = SELECT()
_Recno = RECNO()
STORE _M_S TO _Moi_Sua
PUSH KEY CLEAR
IF _Moi_Sua = [S] AND RECNO() > RECCOUNT([tb_dmts])
POP KEY
SELECT (_InSELECT)
RETURN
ENDIF
SELECT tb_dmts
IF _Moi_Sua = [M]
SCATTER MEMVAR MEMO BLANK
ELSE
GO _Recno
SCATTER MEMVAR MEMO
ENDIF
M.ma_ts_old = M.ma_ts
M.Ngay_td = DATE()
M.User_Id = ALLTRIM(S_user)
_Caption = IIF(_Moi_Sua = [M],"Them moi mot TSCD","Sua chua thong tin tscd")
* Tim kiem ten tron danh muc
=SEEK(M.ma_ncc,[tb_dmncc])
M.Ten_ncc=IIF(FOUND([tb_dmncc]),tb_dmncc.ten_ncc,[])
=SEEK(M.ma_nts,[tb_dmnts])
M.Ten_nts=IIF(FOUND([tb_dmnts]),tb_dmnts.ten_nts,[])
=SEEK(M.ma_md_sd,[tb_md_sd])
M.Ten_md_sd=IIF(FOUND([tb_md_sd]),tb_md_sd.ten_md_sd,[])
=SEEK(M.ma_nvon,[tb_dmnvon])
M.Ten_nvon=IIF(FOUND([tb_dmnvon]),tb_dmnvon.ten_nvon,[])
=SEEK(M.ma_pb,[tb_dmpb])
M.Ten_pb=IIF(FOUND([tb_dmpb]),tb_dmpb.ten_pb,[])
=SEEK(M.ma_tinh_tr,[tb_tinh_trang])
M.tinh_trang=IIF(FOUND([tb_tinh_trang]),tb_tinh_trang.tinh_trang,[])
ON KEY LABEL F9 KEYBOARD CHR(23)
DO FORM (D_FORM + [f_dmts_F3]) NAME _SCX LINKED
ON KEY LABEL F9
POP KEY
SELECT (_InSelect)
RETURN
************************************ PROCEDURE _Nhan
FUNCTION tb_dmts_F3_Nhan
PARAMETERS M_Nhan
SELECT tb_dmts
IF LASTKEY()= 27 OR M_Nhan 1
IF _Recno<=RECCOUNT([tb_dmts])
GO _Recno
_SCX = ""
ENDIF
_SCX = ""
RETURN .T.
ELSE
IF M_Nhan = 1
* Luu gia tri vao cac bang
* Truong hop them moi, cac cong viec gom luu vao bang dmtscd, logfile va bang theo doi
If _Moi_Sua = [M]
*Chuan bi cac gia tri ve thoi gian, nguoi su dung trong bang log file
M.Ngay_td = m.Ngay_sd
M.User_Id = alltrim(s_user)
m.ma_tdoi='TMTS'
m.stt="01"
m.ngay_bd=m.ngay_sd
m.Ma_tinh_tr='DSD'
* Ghi vao cac bang
SELECT tB_dmts
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN tb_dmts
DO open_table WITH 'logfile','ma_ts'
SELECT logfile
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN logfile
DO open_table WITH 'theo_doi','ma_ts'
SELECT theo_doi
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN theo_doi
ELSE
*Truong hop sua chua thong tin trong bang danh muc tscd, phai ghi vao bang logfile
* va danh muc tscd
M.Ngay_td = DATE()
M.User_Id = alltrim(s_user)
m.ma_tdoi='TDTT'
m.stt=stt_min('logfile',m.ma_ts)
m.ngay_bd=m.ngay_sd
m.Ma_tinh_tr='DSD'
* Ghi thong tin vao bang dmts
SELECT tb_dmts
GO _Recno
GATHER MEMVAR memo
FLUSH
UNLOCK IN tb_dmts
* Ghi thong tin vao bang logile
DO open_table WITH 'logfile','ma_ts'
SELECT logfile
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN logfile
ENDIF
_SCX = ""
ENDIF
ENDIF
SELECT tb_dmts
RETURN .T.
****************************************Function dua ra dc stt nho nhat theo ma_ts********
FUNCTION stt_min
PARAMETERS tablename,_ma_ts
DO open_table WITH tablename,'ma_ts'
_max=0
SCAN FOR ma_ts=ALLTRIM(_ma_ts)
_max=IIF(_max<VAL(stt),VAL(stt),_max)
ENDSCAN
_max=_max+1
IF _MAX<10 then
RETURN ("0"+ALLTRIM(STR(_max)))
ELSE
RETURN ALLTRIM(STR(_max))
ENDIF
RETURN .T.
*!* *************************** PROCEDURE tb_dmts_F8 **************************************
PROCEDURE tb_dmts_F8
CLEAR
_recno=RECNO()
IF RECNO() > RECCOUNT([tb_dmts])
RETURN .T.
ENDIF
IF (MESSAGEBOX('Se dinh chi TSCD nay. Ban chac chan chu?',4+32+256,'Chu y') 6)
GO _Recno
RETURN
ENDIF
_date=INPUTBOX(" Hay nhap ngay dinh chi su dung "," Nhap gia tri",DTOC(DATE()),15000,DTOC(DATE()),'0')
_date=CTOD(_date)
SELECT tb_dmts
GO _recno
SCATTER MEMVAR memo
m.ma_tinh_tr="KSD"
* Phai chuan bi tham so ngay thang va nguoi su dung them vao de ghi vao logfile
M.ngay_td = _date
M.User_Id = ALLTRIM(s_user)
M.ma_tinh_tr="KSD"
M.stt=stt_min('logfile',m.ma_ts)
m.ma_tdoi="DCTS"
* Thuc hien ghi vao logfile
DO open_table WITH 'logfile','ma_ts'
APPEND BLANK
GATHER MEMVAR memo
* Thuc hien ghi vao bang theo doi
DO open_table WITH 'theo_doi','ma_ts'
SELECT theo_doi
SCAN FOR ma_ts=ALLTRIM(m.ma_ts)
_rn=RECNO()
ENDSCAN
GO _rn
SCATTER MEMVAR memo
m.ngay_kt=_date
GATHER MEMVAR memo
* Cap nhat lai tinh trang vao bang dmts
SELECT tb_dmts
GATHER MEMVAR
RETURN .T.
*!* ************************************ PROCEDURE tb_dmts_F9 **************************************
PROCEDURE tb_dmts_F9
PRIVATE _Form
PUSH KEY
DO FORM (D_Form + [f_dmts_F9]) NAME _Form LINKED
POP KEY
ENDPROC
*************** ************Nhan cua F9******************************
PROCEDURE tb_dmts_F9_Nhan
PARAMETERS _NhanHuy
PRIVATE _key
_key=".T."
IF _NhanHuy 1
_Form = ""
RETURN
ENDIF
_Form = ""
SELECT tb_dmts
* Phan ten va ma, co chon lua nam trong hay bat dau
IF !EMPTY(ALLTRIM(M.ma_ts))
_key = "ma_ts = ALLTRIM(M.ma_ts)"
ENDIF
IF !EMPTY(ALLTRIM(M.ten_ts))
IF _c=1
_key = _key + ' AND ALLTRIM(M.ten_ts) $ ALLTRIM(ten_ts)'
ELSE
_key = _key + ' AND ten_ts =ALLTRIM(M.ten_ts)'
ENDIF
ENDIF
* Phan ma cac bang ngoai lai
IF !EMPTY(ALLTRIM(M.Ma_nts))
_key = _key + ' AND Ma_nts=ALLTRIM(M.Ma_nts)'
ENDIF
IF !EMPTY(ALLTRIM(M.Ma_nvon))
_key = _key + ' AND Ma_nvon=ALLTRIM(M.Ma_nvon)'
ENDIF
IF !EMPTY(ALLTRIM(M.so_hd))
_key = _key + ' AND So_hd=ALLTRIM(M.So_hd)'
ENDIF
IF !EMPTY(ALLTRIM(M.Ma_ncc))
_key = _key + ' AND Ma_ncc=ALLTRIM(M.Ma_ncc)'
ENDIF
IF !EMPTY(ALLTRIM(M.Ma_pb))
_key = _key + ' AND Ma_pb=ALLTRIM(M.Ma_pb)'
ENDIF
IF !EMPTY(ALLTRIM(M.Ma_md_sd))
_key = _key + ' AND Ma_md_sd=ALLTRIM(M.Ma_md_sd)'
ENDIF
* Phan so sanh cac dieu kien
IF !EMPTY(ALLTRIM(M.thoi_gian_sd))
_key = _key + ' AND thoi_gian_sd' + ptThoi_Gian_sd+'val(ALLTRIM(m.thoi_gian_sd))'
ENDIF
IF !EMPTY(ALLTRIM(M.Ngay_sd))
_key = _key + ' AND Ngay_sd' + ptNgay_sd+'ctoD(ALLTRIM(m.Ngay_sd))'
ENDIF
IF !EMPTY(ALLTRIM(M.Nguyen_gia))
_key = _key + ' AND Nguyen_gia' + ptNguyen_Gia+'val(ALLTRIM(m.Nguyen_gia))'
ENDIF
IF !EMPTY(ALLTRIM(M.Nam_sx))
_key = _key + ' AND Nam_sx' + ptNam_sx+'val(ALLTRIM(m.Nam_sx))'
ENDIF
SET FILTER TO &_key
GO TOP
RETURN
ENDPROC
*!* ************************************ PROCEDURE tb_dmts_F10 **************************************
PROCEDURE tb_dmts_F10
PRIVATE _Form
PUSH KEY
DO FORM (D_FORM + [f_dmts_F10.scx]) NAME _form linked
POP KEY
RETURN
*****************************Nhan F10**************************
PROCEDURE tb_dmts_F10_nhan
PARAMETERS _N_H,_sx,_c
IF _N_H=0 THEN
_form=""
RETURN
ENDIF
_Form=""
***** _sx Nguon cua Combobox, _c Nguon cua option button
SELECT tb_dmts
DO CASE
* Theo ma ts
CASE _sx = [1] AND _c=1
SET ORDER TO ma_ts ASCENDING
CASE _sx = [1] AND _c=2
SET ORDER TO ma_ts DESCENDING
* Theo ten ts
CASE _sx = [2] AND _c=1
SET ORDER TO ten_ts ASCENDING
CASE _sx = [2] AND _c=2
SET ORDER TO ten_ts DESCENDING
* Theo Ma_nts
CASE _sx = [3] AND _c=1
SET ORDER TO ma_nts ASCENDING
CASE _sx = [3] AND _c=2
SET ORDER TO ma_nts DESCENDING
* Theo ngay dua vao su dung
CASE _sx = [4] AND _c=1
SET ORDER TO Ngay_sd ASCENDING
CASE _sx = [4] AND _c=2
SET ORDER TO Ngay_sd DESCENDING
* Theo nguyen gia
CASE _sx = [5] AND _c=1
SET ORDER TO Nguyen_gia ASCENDING
CASE _sx = [5] AND _c=2
SET ORDER TO Nguyen_gia DESCENDING
* Theo thoi gian su dung
CASE _sx = [6] AND _c=1
SET ORDER TO thoi_gian_sd ASCENDING
CASE _sx = [6] AND _c=2
SET ORDER TO thoi_gian_sd DESCENDING
ENDCASE
RETURN
************************Prcocedure mo mot bang*************************
PROCEDURE open_table
PARAMETERS tbName, ma_dt
IF !USED(tbname)
SELECT 0
USE (D_DATA+tbName) order &ma_dt ALIAS &tbName SHARED
ELSE
SELECT &tbName
SET ORDER TO &ma_dt
ENDIF
RETURN
Phần code quản lý thanh lý tài sản
*******************************Tiep tuc su dung mot tscd***************
PROCEDURE tl_tscd_F3
PUSH KEY
_recno=RECNO()
* Khoi phuc lai nhung tscd da dinh chi su dung
IF (MESSAGEBOX('Tiep tuc su dung TSCD nay, co chac chan khong?',4+32+256,'Chu y') 6)
GO _Recno
RETURN
ENDIF
_date=INPUTBOX(" Hay nhap ngay tiÕp tôc sö dông su dung "," Nhap gia tri",DTOC(DATE()),15000,DTOC(DATE()),'0')
*!* IF _date='0' THEN
*!* GO _recno
*!* RETURN
*!* ENDIF
_date=CTOD(_date)
SELECT tb_dmts
SCATTER MEMVAR memo
m.ma_tinh_tr="DSD"
* Phai chuan bi tham so ngay thang va nguoi su dung them vao de ghi vao logfile
M.ngay_td = _date
M.User_Id = ALLTRIM(s_user)
M.ma_tinh_tr="DSD"
M.stt=stt_min('logfile',m.ma_ts)
m.ma_tdoi="TTSD"
* Thuc hien ghi vao logfile
DO open_table WITH 'logfile','ma_ts'
APPEND BLANK
GATHER MEMVAR memo
* Thuc hien ghi vao bang theo doi
DO open_table WITH 'theo_doi','ma_ts'
SELECT theo_doi
SCAN FOR ma_ts=ALLTRIM(m.ma_ts)
_rn=RECNO()
ENDSCAN
GO _rn
SCATTER MEMVAR memo
m.ngay_kt=""
GATHER MEMVAR memo
* Cap nhat lai tinh trang vao bang dmts
SELECT tb_dmts
GATHER MEMVAR
POP KEY
RETURN
******************************Thanh ly mot scd*************************
PROCEDURE tl_tscd_F4
PUSH KEY
* Goi form de theo doi so tien thanh ly tscd
SELECT tb_dmts
_recno=RECNO()
SCATTER MEMVAR memo
DO FORM (D_FORM+[f_thanhly]) NAME _scx LINKED
POP KEY
RETURN
************************************ PROCEDURE _Nhan **************************************
PROCEDURE tl_tscd_F4_nhan
PARAMETERS M_nhan
SELECT tb_dmts
IF LASTKEY()=27 OR M_nhan1
IF _Recno<=RECCOUNT([tb_dmts])
GO _Recno
_SCX = ""
ENDIF
_SCX = ""
RETURN .T.
ELSE
* Phai them vao bang logfile cac gia tri,
* dong thoi xoa han trong bang danh muc tscd
* cac thong tin ve tscd
* Chuan bi cac gia tri vao bang logfile
DO open_table WITH 'logfile','ma_ts'
DO open_table WITH 'theo_doi','ma_ts'
m.user_id=ALLTRIM(s_user)
m.stt=stt_min('logfile',m.ma_ts)
m.ma_tdoi='TLTS'
m.ma_tinh_tr='DTL'
SELECT logfile
APPEND BLANK
GATHER MEMVAR MEMO
* Xoa bo cac ban ghi trong bang theo_doi khau hao
SELECT theo_doi
SCAN FOR ALLTRIM(ma_ts)=ALLTRIM(m.ma_ts)
DELETE
ENDSCAN
* Xoa bo cac ban ghi trong bang logfile
* Xoa bo ban ghi ve tscd
SELECT tb_dmts
GO _recno
GATHER MEMVAR MEMO
SET EXCLUSIVE ON
DELETE
_scx=""
ENDIF
RETURN
****************************************Function dua ra dc stt nho nhat theo ma_ts********
FUNCTION stt_min
PARAMETERS tablename,_ma_ts
DO open_table WITH tablename,'ma_ts'
_max=0
SCAN FOR ma_ts=ALLTRIM(_ma_ts)
_max=IIF(_max<VAL(stt),VAL(stt),_max)
ENDSCAN
_max=_max+1
IF _MAX<10 then
RETURN ("0"+ALLTRIM(STR(_max)))
ELSE
RETURN ALLTRIM(STR(_max))
ENDIF
RETURN .T.
Phần code thay đổi nguyên giá tscđ
************************************ PROCEDURE tb_dmts_F3 **************************************
PROCEDURE nguyen_gia_F3
SELECT tb_dmts
_InSELECT = SELECT()
_Recno = RECNO()
SCATTER MEMVAR memo
PUSH KEY CLEAR
ON KEY LABEL F9 KEYBOARD CHR(23)
DO FORM (D_FORM + [f_nguyen_gia]) NAME _SCX LINKED
ON KEY LABEL F9
POP KEY
SELECT (_InSelect)
RETURN
************************************ PROCEDURE _Nhan **************************************
********************************************************************************************
FUNCTION Nguyen_gia_F3_Nhan
PARAMETERS M_Nhan
SELECT tb_dmts
IF LASTKEY()= 27 OR M_Nhan 1
IF _Recno<=RECCOUNT([tb_dmts])
GO _Recno
_SCX = ""
ENDIF
_SCX = ""
RETURN .T.
ELSE
IF M_Nhan = 1
nguyen_gia_moi=m.nguyen_gia
_ngaytd=m.ngay_td
tg_sd_moi=m.thoi_gian_sd
* Luu gia tri vao cac bang
*Chuan bi cac gia tri ve thoi gian, nguoi su dung trong bang log file
M.User_Id = alltrim(s_user)
m.ma_tdoi=IIF(_c=1,'NCTS','DGTS' )
m.stt=stt_min('logfile',m.ma_ts)
* Ghi vao danh muc tscd
SELECT tB_dmts
GATHER MEMVAR memo
FLUSH
UNLOCK IN tb_dmts
* Ghi vao logfile
DO open_table WITH 'logfile','ma_ts'
SELECT logfile
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN logfile
* Trong bang theo doi can phai tinh dc gtcl, thoi gian sd con lai
DO open_table WITH 'theo_doi','ma_ts'
SELECT theo_doi
* Den ban ghi cuoi cung
SCAN FOR ALLTRIM(ma_ts)=ALLTRIM(m.ma_ts)
_rn=RECNO()
ENDSCAN
GO _rn
SCATTER MEMVAR memo
m.ngay_kt=m.ngay_td
GATHER MEMVAR memo
* Tinh gia tri cl, tg_sd_cl
SET PROCEDURE TO (D_PROG+[tinh_kh.prg])
_tg=(nguyen_gia_moi-KH_1td(m.ma_ts,m.ngay_td))
m.nguyen_gia=IIF(_tg>0,_tg,0)
m.thoi_gian_sd=tg_sd_moi-(YEAR(_ngaytd)-YEAR(m.ngay_sd))*12+(MONTH(_ngaytd)-MONTH(m.ngay_sd))
RELEASE PROCEDURE (D_PROG+[tinh_kh.prg])
m.ngay_bd=m.ngay_td
m.ngay_kt=""
m.stt=stt_min('theo_doi',m.ma_ts)
SELECT theo_doi
APPEND BLANK
GATHER MEMVAR memo
FLUSH
UNLOCK IN theo_doi
_SCX = ""
ENDIF
endif
RETURN
Phần code tạo ra các báo cáo
Lập báo cáo thẻ tscđ
PROCEDURE in_the_F3
SET PROCEDURE TO (D_PROG+[tinh_kh])
ngay_lap=INPUTBOX(" Ngay lap bao cao "," Nhap gia tri",DTOC(DATE()),15000,DTOC(DATE()),'0')
ngay_lap=CTOD(ngay_lap)
SELECT tb_dmts
SCATTER MEMVAR memo
SELECT dmts.*,theo_doi.*,dmts.nguyen_gia as NG_ht,theo_doi.nguyen_gia as NG_td, ;
dmts.thoi_gian_sd as TG_ht,theo_doi.thoi_gian_sd as TG_td ;
FROM (D_Data+[tb_dmts]) as dmts INNER JOIN (D_Data+[theo_doi]) as theo_doi ON dmts.ma_ts=theo_doi.ma_ts ;
where ALLTRIM(dmts.ma_ts)=m.ma_ts;
INTO TABLE (D_TEMP+[bc_1ts_tg])
* thay doi gia tri trong bang
GO BOTTOM
IF bc_1ts_tg.ngay_kt={ / / }
IF ngay_lap>ng_het_kh(bc_1ts_tg.ngay_bd,bc_1ts_tg.thoi_gian_)
replace bc_1ts_tg.ngay_kt WITH ng_het_kh(bc_1ts_tg.ngay_bd,bc_1ts_tg.thoi_gian_)
ELSE
replace bc_1ts_tg.ngay_kt WITH ngay_lap
ENDIF
ENDIF
* tinh khau hao
SELECT tg.*, kh_2td(tg.ma_ts_a,tg.ngay_sd,tg.ngay_kt) as khlk,;
(tg.NG_td/tg.TG_td) as Mkh, (tg.NG_ht- kh_2td(tg.ma_ts_a,tg.ngay_sd,tg.ngay_kt)) as gtcl ;
FROM (D_TEMP+[bc_1ts_tg]) as tg ;
INTO TABLE (D_TEMP+[bc_1ts])
* Goi bao cao
REPORT FORM (D_REPO+[r_thets.frx]) preview
Báo cáo hiện trạng tscđ
SET PROCEDURE TO (D_PROG+[tinh_kh])
ngay_lap=thisform.txtNgay_lap.Value
ngay_th=CTOD(ALLTRIM(thisform.txtNgay_th.Value))
m.ma_nts=thisform.cboMa_nts.Value
IF (ngay_lap={ / / } or ngay_th={ / / }) then
MESSAGEBOX("Ngay thang nhap khong dung hay nhap lai",0,"Chu y")
thisform.txtNgay_lap.SetFocus
ELSE
* cap nhat query, goi bao cao
IF empty(thisform.cboMa_nts.Value) then
SELECT dmts.*,dmnts.*,ti_tr.*,kh_1td(dmts.ma_ts,ngay_th) as khlk,(dmts.nguyen_gia-kh_1td(dmts.ma_ts,ngay_th)) as gtcl;
FROM (D_DATA+[tb_dmts]) as dmts INNer JOIN (D_DATA+[tb_dmnts]) as dmnts ON dmts.ma_nts=dmnts.ma_nts ;
INNER JOIN (D_DATA+[tb_tinh_trang])as ti_tr ON ti_tr.ma_tinh_tr=dmts.ma_tinh_tr ;
WHERE (dmts.ngay_sd<=ngay_th) ;
ORDER BY dmnts.ma_nts;
INTO TABLE (D_TEMP+[bc_thts])
ELSE
SELECT dmts.*,dmnts.*,ti_tr.*,kh_1td(dmts.ma_ts,ngay_th) as khlk,(dmts.nguyen_gia-kh_1td(dmts.ma_ts,ngay_th)) as gtcl;
FROM (D_DATA+[tb_dmts]) as dmts INNer JOIN (D_DATA+[tb_dmnts]) as dmnts ON dmts.ma_nts=dmnts.ma_nts ;
INNER JOIN (D_DATA+[tb_tinh_trang])as ti_tr ON ti_tr.ma_tinh_tr=dmts.ma_tinh_tr ;
WHERE ALLTRIM(dmts.ma_nts)=ALLTRIM(thisform.cboMa_nts.Value) ;
AND (dmts.ngay_sd<=ngay_th);
ORDER BY dmnts.ma_nts;
INTO TABLE (D_TEMP+[bc_thts])
ENDIF
REPORT FORM (D_REPO+[r_htts.frx]) Preview
ENDIF
Báo cáo khấu hao tscđ
SET PROCEDURE TO (D_PROG+[tinh_kh])
*Kiem tra cac dieu kien -> date1 va date 2
x=thisform.optiongroup1.Value
ngay_lap=thisform.txtNgay_lap.Value
_kt=.T.
_promt=""
DO CASE
CASE x=1
IF EMPTY(thisform.op1Nam.Value) OR EMPTY(thisform.op1Quy.Value)
MESSAGEBOX("Khong duoc de trong Nam va Quy, xin ban nhap gia tri",0,"Chu y")
_KT=.F.
ELSE
_quy=ALLTRIM(thisform.op1Quy.Value)
DO CASE
CASE _quy="I"
_thang1=1
_thang2=4
CASE _quy="II"
_thang1=4
_thang2=7
CASE _quy="III"
_thang1=7
_thang2=9
CASE _quy="IV"
_thang1=9
_thang2=1
ENDCASE
_nam=ALLTRIM(thisform.op1Nam.Value)
IF _quy="IV"
_nam1=VAL(_nam)
_nam2=VAL(_nam)+1
ELSE
_nam1=VAL(_nam)
_nam2=VAL(_nam)
ENDIF
_date1=DATE(_nam1,_thang1,1)
_date2=DATE(_nam2,_thang2,1)
_prompt="Quý "+_quy+"/"+_nam
ENDIF
CASE x=2
IF EMPTY(thisform.op2Nam.Value) OR EMPTY(thisform.op2Thang.Value)
MESSAGEBOX("Khong duoc de trong Nam va Thang, xin ban nhap gia tri",0,"Chu y")
_KT=.F.
ELSE
_nam=VAL(ALLTRIM(thisform.op2Nam.Value))
_thang=VAL(ALLTRIM(thisform.op2thang.value))
IF _thang=12
_date1=DATE(_nam,_thang,1)
_date2=DATE(_nam+1,_thang,1)
ELSE
_date1=DATE(_nam,_thang,1)
_date2=DATE(_nam,_thang+1,1)
ENDIF
_prompt="Th¸ng "+ALLTRIM(STR(_thang))+"/"++ALLTRIM(STR(_nam))
ENDIF
CASE x=3
_date1=thisform.op3Ngay1.Value
_date2=thisform.op3Ngay2.Value
IF _date1>_date2 THEN
MESSAGEBOX("Ngay sau phai lon hon ngay truoc",0,"chu y")
_KT=.F.
ELSE
_prompt="Tõ "+ALLTRIM(DTOC(_date1))+" ®Õn"+ALLTRIM(DTOC(_date1))
ENDIF
** Dang lam do dang
ENDCASE
IF _kt=.F.then
thisform.txtNgay_lap.SetFocus
ELSE
* cap nhat query
IF !EMPTY(thisform.cboMa_nts.Value)
SELECT tb_dmnts.*,tb_dmts.*,kh_2td(tb_dmts.ma_ts,_date1,_date2) as KH_trich,kh_1td(tb_dmts.ma_ts,_date2) as khlk ;
FROM (D_DATA+[tb_dmts]) INNER JOIN (D_DATA+[tb_dmnts]) ON tb_dmnts.ma_nts=tb_dmts.ma_nts ;
WHERE (tb_dmts.ngay_sd<=_date2);
AND (ALLTRIM(tb_dmts.ma_nts)=ALLTRIM(thisform.cboMa_nts.Value));
order by tb_dmnts.ma_nts ;
into table (d_temp+[bc_trichKH])
ELSE
SELECT tb_dmnts.*,tb_dmts.*,kh_2td(tb_dmts.ma_ts,_date1,_date2) as KH_trich,kh_1td(tb_dmts.ma_ts,_date2) as khlk ;
FROM (D_DATA+[tb_dmts]) INNER JOIN (D_DATA+[tb_dmnts]) ON tb_dmnts.ma_nts=tb_dmts.ma_nts;
WHERE (tb_dmts.ngay_sd<=_date2);
order by tb_dmnts.ma_nts;
into table (d_temp+[bc_trichKH])
ENDIF
REPORT FORM (D_REPO+[r_trichKH]) PREVIEW
ENDIF
Báo cáo tình hình hoạt động của tscđ
SET PROCEDURE TO (D_PROG+[tinh_kh])
*Kiem tra cac dieu kien -> date1 va date 2
x=thisform.optiongroup1.Value
_kt=.T.
DO CASE
CASE x=1
IF EMPTY(thisform.op1Nam.Value) OR EMPTY(thisform.op1Quy.Value)
MESSAGEBOX("Khong duoc de trong Nam va Quy, xin ban nhap gia tri",0,"Chu y")
_KT=.F.
ELSE
_quy=ALLTRIM(thisform.op1Quy.Value)
DO CASE
CASE _quy="I"
_thang1=1
_thang2=4
CASE _quy="II"
_thang1=4
_thang2=7
CASE _quy="III"
_thang1=7
_thang2=9
CASE _quy="IV"
_thang1=9
_thang2=1
ENDCASE
_nam=ALLTRIM(thisform.op1Nam.Value)
IF _quy="IV"
_nam1=VAL(_nam)
_nam2=VAL(_nam)+1
ELSE
_nam1=VAL(_nam)
_nam2=VAL(_nam)
ENDIF
_date1=DATE(_nam1,_thang1,1)
_date2=DATE(_nam2,_thang2,1)
ENDIF
CASE x=2
IF EMPTY(thisform.op2Nam.Value) OR EMPTY(thisform.op2Thang.Value)
MESSAGEBOX("Khong duoc de trong Nam va Thang, xin ban nhap gia tri",0,"Chu y")
_KT=.F.
ELSE
_nam=VAL(ALLTRIM(thisform.op2Nam.Value))
_thang=VAL(ALLTRIM(thisform.op2thang.value))
IF _thang=12
_date1=DATE(_nam,_thang,1)
_date2=DATE(_nam+1,_thang,1)
ELSE
_date1=DATE(_nam,_thang,1)
_date2=DATE(_nam,_thang+1,1)
ENDIF
ENDIF
CASE x=3
_date1=thisform.op3Ngay1.Value
_date2=thisform.op3Ngay2.Value
IF _date1>_date2 THEN
MESSAGEBOX("Ngay sau phai lon hon ngay truoc",0,"chu y")
_KT=.F.
ENDIF
** Dang lam do dang
ENDCASE
IF _kt=.F.then
thisform.txtNgay_lap.SetFocus
ELSE
* cap nhat query
IF !EMPTY(thisform.cboMa_nts.Value)
SELECT tb_dmnts.*,logfile.*,tb_hoat_dong.*,;
(logfile.nguyen_gia-kh_1td(logfile.ma_ts,logfile.ngay_td)) as gtcl;
FROM (D_DATA+[logfile]) INNER JOIN (D_DATA+[tb_dmnts]) ON tb_dmnts.ma_nts=logfile.ma_nts ;
INNER JOIN (D_DATA+[tb_hoat_dong]) ON logfile.ma_tdoi=tb_hoat_dong.ma_tdoi;
where (logfile.ngay_td>=_date1) AND (logfile.ngay_td<=_date2) AND (logfile.ngay_sd<=_date2) ;
AND (ALLTRIM(logfile.ma_nts)=ALLTRIM(thisform.cboMa_nts.Value)) ;
ORDER BY logfile.ma_nts,logfile.ngay_td ;
INTO TABLE (D_TEMP+[bc_sotheodoi])
ELSE
SELECT tb_dmnts.*,logfile.*,tb_hoat_dong.*,;
(logfile.nguyen_gia-kh_1td(logfile.ma_ts,logfile.ngay_td)) as gtcl;
FROM (D_DATA+[logfile]) INNER JOIN (D_DATA+[tb_dmnts]) ON tb_dmnts.ma_nts=logfile.ma_nts ;
INNER JOIN (D_DATA+[tb_hoat_dong]) ON logfile.ma_tdoi=tb_hoat_dong.ma_tdoi;
where (logfile.ngay_td>=_date1) AND (logfile.ngay_td<=_date2) AND (logfile.ngay_sd<=_date2) ;
ORDER BY logfile.ma_nts,logfile.ngay_td ;
INTO TABLE (D_TEMP+[bc_sotheodoi])
ENDIF
REPORT FORM (D_REPO+[r_sotheodoi]) PREVIEW
ENDIF
Đoạn code chương trình dùng để tính khấu hao
* Doan chuong trinh de tinh khau hao TSCD
* Dau vao: nguyen gia, thoi gian su dung, thoi diem dua vao su dung
* ky tinh khau hao, khau hao luy ke trong ky, gia tri con lai cu ( truoc khi tinh khau hao)
* Dau ra:
*thangnam1, thangnam2
* Tinh khau hao luy ke den thoi diem thangnam
* so thang giua ngaybd va ngaykt dc tinh bang
***********************Function Tinh khau hao luy ke giua 2 date ************
FUNCTION KH_2date
PARAMETERS date1,date2,_NG,_TG
*So thang giua 2 date
nmonth=(YEAR(date2)-YEAR(date1))*12+(MONTH(date2)-MONTH(date1))
* Muc khau hao trong khoang thoi gian giua 2 date
_MKH=_NG/(_TG)
RETurN _MKH*nmonth
***********************Function tinh muc_kh den 1 thoi diem *******
FUNCTION KH_1td
PARAMETERS _ma_ts,_date
IF !USED('theo_doi')
USE (D_DATA+[theo_doi]) order khoachinh ALIAS theo_doi IN 0
ELSE
SELECT theo_doi
ENDIF
SELECT theo_doi
tong_kh=0
d=_date
SCAN FOR ALLTRIM(ma_ts)=ALLTRIM(_ma_ts)
bd=ngay_bd
IF ngay_kt={} then
kt=ng_het_kh(bd,thoi_gian_sd)
ELSE
kt=ngay_kt
ENDIF
IF BETWEEN(d,bd,kt)
tong_kh=tong_kh+kh_2date(bd,d,nguyen_gia,thoi_gian_sd)
ELSE
IF d>kt
tong_kh=tong_kh+kh_2date(bd,kt,nguyen_gia,thoi_gian_sd)
ENDIF
ENDIF
ENDSCAN
RETURN tong_kh
************************TInh khau hao luy ke trong 2 thoi diem*********************************************
FUNCTION KH_2td
PARAMETERS _ma_ts,d1,d2
_KH1=KH_1td(_ma_ts,d1)
_KH2=Kh_1td(_ma_ts,d2)
RETURN (_KH2-_KH1)
***************************FUNCTION tinh khau hao luy ke trong 2 thoi diem PB 2***************
FUNCTION KH_2td_2
PARAMETERS _ma_ts,_date1,_date2
IF !USED('theo_doi')
USE (D_DATA+[theo_doi]) order khoachinh ALIAS theo_doi IN 0
ELSE
SELECT theo_doi
ENDIF
SELECT theo_doi
tong_kh=0
d1=_date1
d2=_date2
SCAN FOR ALLTRIM(ma_ts)=ALLTRIM(_ma_ts)
_kh=0
bd=ngay_bd
IF ngay_kt={} then
kt=ng_het_kh(bd,thoi_gian_sd)
ELSE
kt=ngay_kt
ENDIF
DO CASE
CASE (bd>d1) AND BETWEEN(d2,bd,kt)
_kh=kh_2date(bd,d2,nguyen_gia,thoi_gian_sd)
CASE BETWEEN(d1,bd,kt) AND BETWEEN(d2,bd,kt)
_kh=kh_2date(d1,d2,nguyen_gia,thoi_gian_sd)
CASE BETWEEN(d1,bd,kt) AND (d2>kt)
_kh=kh_2date(d1,kt,nguyen_gia,thoi_gian_sd)
ENDCASE
tong_kh=tong_kh+_kh
ENDSCAN
RETURN tong_kh
************ Ngay theo so thang su dung tu
FUNCTION Ng_het_kh
PARAMETERS ng_bd_sd,nmonth
ng_kh= DATE(YEAR(ng_bd_sd)+INT((nmonth)/12),MONTH(ng_bd_sd)+(nmonth)%12,DAY(ng_bd_sd))
i=1
DO WHILE (ng_kh={ / / })
ng_kh=DATE(YEAR(ng_bd_sd)+INT((nmonth)/12),MONTH(ng_bd_sd)+(nmonth)%12,DAY(ng_bd_sd)-1)
ENDDO
RETURN ng_kh
Các file đính kèm theo tài liệu này:
- Xây dựng hệ thống thông tin Quản lí tài sản cố định trong NHNo&PTNT Nam Hà Nội.DOC