Entry. Trong trường Resource Name chọn tài nguyên mà bạn muốn giảm đơn giá. Bạn nhập các đơn giá mới vào các trường Std. Rate và Ovt. Rate.
Còn nếu bạn muốn dùng một bảng đơn giá khác, bạn vào View menu chọn Task Usage. Trong trường Task Name bạn chọn tài nguyên muốn cập nhật đơn giá. Nếu bạn muốn hiển thị bảng đơn giá trong Task Usage view, bên phải của trường Task Name, bạn ấn vào trường đó. Trong Insert menu chọn Column. Chọn Cost Rate Table trong hộp thoại Field Name rồi ấn OK. Trong trường Cost Rate Table bạn có thể chọn bảng đơn giá muốn thay đổi, rồi gõ vào đơn giá mới hoặc chọn đơn giá bạn muốn dùng.
60 trang |
Chia sẻ: Dung Lona | Lượt xem: 1213 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Định mức phụ phí thi công và định mức dự toán xây dựng cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
í đều trong tiến trình một dự án:
Hình 1.1. Biểu đồ biểu diễn sự chi phí đều của một dự án
Trong đó: Đường 1. Trục tung thể hiện chi phí của dự án
Đường 2. Trục hoành thể hiện thời gian
Đường 3. Ngân quỹ theo kế hoạch của dự án, thể hiện phí tổn đều đặn theo tiến trình dự án. Đường này cũng thể hiện chi phí giới hạn.
Sau khi bắt đầu công việc của dự án, các đại lượng của phép phân tích giá trị hoàn thành có thể như hình 1.2.
Hình 1.2. Biểu đồ biểu diễn mối tương quan giữa các đại lượng của phép phân tích giá trị hoàn thành.
Trong đó: Đường 1. Thời điểm xét các đại lượng cần tính
Đường 2. Chi phí thực tế của dự án vượt quá ngân quỹ.
Đường 3. Giá trị hoàn thành phản ánh giá trị thực của công việc được thực hiện. Trong trường hợp này giá trị đó bé hơn khoản phí tổn để thực hiện công việc.
1.2.2. ý nghĩa của việc dùng phép phân tích giá trị hoàn thành
Khi bạn thực hiện phép phân tích giá trị hoàn thành, bạn sẽ nhận được các câu trả lời chính xác cho các câu hỏi như là “Liệu tiền còn lại trong ngân quỹ có đủ để hoàn tất dự án không?” và “Liệu có còn đủ thời gian trong kế hoạch để hoàn thành dự án đúng thời hạn không?” Theo các thuật ngữ về chi phí và kế hoạch các gia số giá trị hoàn thành diễn tả tiến trình của dự án. Nếu bạn muốn biết liệu bạn có sử dụng hết ngân quỹ trước khi hoàn thành các công việc trong dự án hay không, thì phép phân tích này là một cách để bạn tìm ra câu trả lời cho mình.
Các gia số giá trị hoàn thành là những giá trị chênh lệch, chẳng hạn như chênh lệch chi phí, có thể âm hoặc dương. Nếu dương thì nó bạn biết rằng bạn đang đi trước kế hoạch và phí tổn nằm trong ngân quỹ dự trù, do đó bạn có thể chỉ định lại tiền và tài nguyên dành cho các công tác có gia số giá trị hoàn thành dương vào các công tác có gia số âm. Còn nếu gia số là âm thì có nghĩa bạn đang chậm so với kế hoạch và sử dụng vượt quá ngân quỹ, bạn phải hành động. Nếu một công tác hay một dự án có chênh lệch chi phí âm, thì bạn phải tăng ngân quỹ hoặc chấp nhận lãi ít hơn.
Với các gia số là tỷ số, như là chỉ số biểu thị chi phí CPI (tính bằng ngân quỹ dành cho các công việc đã thực hiện chia cho chi phí thực tế cho các công việc đó) hay chỉ số biểu thị kế hoạch SPI (tính bằng ngân quỹ dành cho các công việc đã thực hiện chia cho ngân quỹ dành cho các công việc theo kế hoạch vào cùng thời điểm), có thể lớn hoặc nhỏ hơn 1. Nếu lớn hơn 1 có nghĩa là bạn đang đi trước kế hoạch và phí tổn nằm trong ngân quỹ dự trù, còn nếu nhỏ hơn 1 có nghĩa là bạn đang chậm so với kế hoạch và sử dụng vượt quá ngân quỹ. Ví dụ, chỉ số SPI là 1,5 có nghĩa là bạn chỉ mất 67% thời gian theo kế hoạch trong khoảng thời gian được cho để thực hiện công tác. Còn chỉ số CPI là 0,8 có nghĩa là bạn đã tiêu tốn thời gian hơn 25% cho công tác so với kế hoạch.
Một vài chỉ số khác:
- ACWP là chi phí thực tế cho công việc đã thực hiện được tính đến thời điểm đang xét hoặc thời điểm hiện tại.
- BAC là chi phí theo kế hoạch cho công việc đã thực hiện.
- BCWP là giá trị tích lũy theo phần trăm công việc được thực hiện.
- BCWS là chi phí tích lũy theo kế hoạch tại thời điểm đang xét hoặc thời điểm hiện tại.
- CV = BCWP-ACWP. Nếu CV dương thì chi phí nằm trong ngân quỹ và phí tổn nhỏ hơn so với kế hoạch. Còn CV âm thì ngược lại, công việc đang thực hiện có phí tổn vượt quá ngân quỹ.
- EAC= ACWP + (BAC - BCWP) / CPI là tổng chi phí cho công tác dự tính dựa trên phần công việc đã thực hiện tại thời điểm đang xét.
- TCPI = (BAC - BCWP) / (BAC - ACWP). Nếu TPCI lớn hơn 1 có nghĩa là phải tăng mức độ thực hiện các công việc còn lại, để đảm bảo không vượt quá ngân quỹ có thể phải giảm chất lượng. Còn nếu TPCI nhỏ hơn 1 thì ngược lại, khi đó có thể lựa chọn việc tăng chất lượng hoặc thu lợi nhuận do phí tổn nằm trong ngân quỹ.
- VAC = BAC-EAC. Nếu VAC âm có nghĩa là chi phí cho dự án hiện tại vượt quá ngân quỹ, vì thế cần điều chỉnh các công việc còn lại. Nếu VAC dương thì chi tiêu nằm trong ngân quỹ.
1.2.3. Thao tác với phép phân tích giá trị hoàn thành
Sau khi khởi động chương trình Microsoft Project, muốn thực hiện phép phân tích giá trị hoàn thành bạn làm các thao tác theo trình tự sau:
- Bước 1: Bạn vào menu Tools, chọn Options, rồi chọn thanh công cụ Caculation. Kích chọn mục Earned Value.
- Bước 2: Với hộp thoại Default task Earned Value method, bạn có thể chọn phương thức tính giá trị của các công việc đã thực hiện. Có 2 lựa chọn: tính giá trị phần trăm hoàn thành và giá trị phần trăm hoàn thành vật lý cho công tác. Tùy theo cách điều chỉnh công việc thực tế, giá trị phần trăm hoàn thành có thể được Microsoft Project tính hoặc bạn nhập trực tiếp vào. Còn với giá trị phần trăm hoàn thành vật lý thì bạn luôn phải nhập vào, đó là khi bạn không thể tính chính xác lượng công việc đã thực hiện hoặc lượng công việc còn lại. Sau đây là ví dụ cho thấy sự khác nhau giữa 2 giá trị này: có một hạng mục xây dựng tường bằng đá bao gồm 100 tảng đá chia làm 5 hàng. Hàng đầu tiên 20 tảng được đặt đúng vị trí trong vòng 20 phút, nhưng hàng thứ 2 thì mất 25 phút bởi phải mất thêm một chút thời gian để nâng hàng thứ 2 đặt lên trên hàng đầu tiên. Hàng thứ 3 mất 30 phút, hàng thứ tư mất 35 phút, hàng cuối cùng mất 40 phút, tổng cộng mất 150 phút. Sau khi đặt được 3 hàng đầu tiên, có thể nói giá trị hoàn thành vật lý là 60% bởi đã đặt được 60 trong tổng số 100 tảng đá. Tuy nhiên, xét về mặt thời gian thì bạn chỉ mất 75 phút trong tổng số 150 phút, như vậy mới chỉ hoàn thành được 50% theo tiến trình công tác. Tùy thuộc vào cách bạn trả cho công việc như thế nào, giá trị hoàn thành tính theo giờ hay theo đá, mà bạn chọn giá trị phần trăm hoàn thành hay giá trị phần trăm hoàn thành vật lý cho phép phân tích này.
Chú ý: bằng cách này bạn chỉ có thể thay đổi phương thức tính giá trị hoàn thành cho các công tác thêm vào sau này, còn với những công tác đã có sẵn, muốn thay đổi thì bạn phải làm như sau: Chọn mục Task information, rồi chọn thay công cụ Advanced, trong hộp thoại Earned Value method bạn có thể chọn đặt phương thức tính phù hợp.
Bước 3: ở hộp thoại Baseline for Earned Value calculations, bạn chọn cụ thể một đường giới hạn để Microsoft Project dùng cho việc tính toán tổng giá trị hoàn thành.
Nếu bạn muốn xem giá trị hoàn thành tại thời điểm hiện tại, và chấp nhận phương thức tính giá trị hoàn thành mặc định thì bạn xem:
+ Tổng giá trị hoàn thành của công tác hoặc dự án theo các bước sau: View menu ---> More Views. Trong View list chọn Task Sheet, rồi Apply. Tiếp đến View menu ---> Table, chọn More Tables. Trong Tables list chọn Earned Value, Earned Value Cost Indicators, hoặc Earned Value Schedule Indicators, rồi Apply.
+ Tổng giá trị hoàn thành phân bổ theo thời gian theo các bước sau: View menu ---> Task Usage. Trong Format menu chọn Detail Styles, rồi chọn thanh công cụ Usage Details. Chọn các trường giá trị hoàn thành trong các trường có sẵn, rồi ấn Show. Để xem nhiều trường, bạn giữ CTRL và ấn lần lượt vào mỗi trường cần xem.
+ Tổng giá trị hoàn thành của công tác theo một form theo các bước sau: View menu ---> Gantt Chart. Trong trường Task Name chọn task. Tiếp đến, trong Tools menu chọn Customize, rồi chọn Forms. Trong hộp thoại Customize Forms, chọn Earned Value rồi Apply. Ta xem lại các giá trị chi phí Schedule Variance, Cost Variance, và Variance ở hộp thoại Completion.
Còn nếu không chấp nhận phương thức tính giá trị hoàn thành mặc định thì bạn thực hiện tiếp các bước sau: View menu ---> Gantt Chart. Trong trường Task Name chọn công tác mà bạn muốn thay đổi phương thức tính giá trị hoàn thành. Chọn Task information, rồi ấn vào thanh công cụ Advanced. Trong hộp thoại Earned value method, chọn phương thức tính bạn muốn. Tiếp theo, để xem các giá trị hoàn thành ta thao tác giống như phần trên.
Nếu bạn muốn xem giá trị hoàn thành tại một thời điểm cụ thể, bạn vào Project menu rồi chọn Project Information. Trong hộp thoại Status date, bạn chọn thời điểm để tính. Sau đó thao tác hoàn toàn giống như phần trên.
1.3. Giữ cho chi phí không vượt quá ngân quỹ như thế nào
Để giữ cho chi phí không vượt quá ngân quỹ, bạn phải xem các chi phí chênh lệch phát sinh theo thời gian, từ đó điều chỉnh lại cho phù hợp. Bạn nên tạo ra một bản sao kế hoạch của dự án trước khi có những thay đổi chính trong kế hoạch, đồng thời kiểm tra sự ảnh hưởng của các thay đổi này đến kế hoạch trước khi ghi lại và cập nhật thông tin chi phí.
1.3.1. Quan hệ giữa chất lượng và chi phí
1.3.1.1. Khái niệm tam giác dự án
Phần lớn các dự án đều có thời gian hoàn thành, ngân quỹ và mục tiêu chất lượng. Ba yếu tố thời gian, tiền và chất lượng này đôi khi được coi là ba đỉnh của một tam giác dự án. Nếu điều chỉnh bất kỳ một yếu tố nào trong tam giác này thì đều ảnh hưởng tới hai yếu tố còn lại. Ba yếu tố đều rất quan trọng và ảnh hưởng phần lớn đến dự án.
Ví dụ, nếu bạn quyết định điều chỉnh kế hoạch để dự án hoàn thành sơm hơn kế hoạch, thì có thể bạn phải chi phí nhiều hơn và giảm chất lượng dự án. Còn nếu bạn điều chỉnh để kế hoạch phù hợp với ngân quỹ thì có thể phải kéo dài thời gian thi công và giảm chất lượng dự án. Hoặc nếu bạn muốn tăng chất lượng thì đồng thời phải tăng thời gian thi công và tăng chi phí cho dự án.
Các cách thay đổi trên đều ảnh hưởng tới hai mặt còn lại của tam giác, mức độ tùy thuộc vào từng trường hợp và bản chất của dự án. Trong một vài trường hợp việc rút ngắn thời gian thì làm tăng chi phí. Còn theo thực tế, ở một số trường hợp thì việc rút ngắn thời gian lại làm giảm chi phí.
1.3.1.2. Khi nào cần đề cập tới tam giác dự án
Khi bạn lập hoặc sửa đổi kế hoạch dự án và thấy rằng các mục tiêu chính không còn phù hợp nữa. Ví dụ, kế hoạch cho thấy bạn sẽ hoàn thành dự án quá muộn hoặc bạn đang chi phí vượt quá ngân quỹ. Bạn cần nhìn nhận lại kế hoạch để điều chỉnh cho phù hợp. Điều đầu tiên phải nhìn nhận là ba yếu tố quan trọng nhất cho thành công của dự án, vấn đề nào cần được giải quyết trước tiên:
Dự án mất quá nhiều thời gian.
Dự án hay các công tác chi phí quá nhiều.
Ta đang cố gắng làm quá nhiều hay chỉ làm quá ít.
Khi bạn bắt đầu điều chỉnh thì luôn gắn suy nghĩ với tam giác dự án. Ta vẫn biết khi có một yếu tố thay đổi thì kéo theo hai yếu tố còn lại thay đổi. Nhưng thay đổi đó có thể là tốt lên hoặc xấu đi tùy thuộc vào bản chất của dự án. Vì thế, khi thay đổi một yếu tố, bạn cần kiểm tra xem các yếu tố còn lại có thể thực hiện được không. Ví dụ, khi bạn điều chỉnh chi phí thì cần kiểm tra xem thời gian hoàn thành có nằm trong giới hạn chấp nhận được không.
1.3.1.3. Thay đổi chất lượng để giảm chi phí
Khi chi phí dồn lại vượt quá ngân quỹ, bạn cần phải làm sao để kiểm soát được. Tùy thuộc vào điều gì quan trọng nhất đối với dự án, ta có thể thay đổi thời gian để đảm bảo chi phí không vượt quá ngân quỹ. Bạn có thể giảm chất lượng dự án bằng cách sử dụng các tài nguyên rẻ hơn, chẳng hạn như sử dụng nhân lực ít kinh nghiệm hơn, hay nguyên vật liệu kém phẩm chất hơn. Hoặc bạn có thể sử dụng các tài nguyên chất lượng tốt hơn để hoàn thành công tác hay dự án trong thời gian ngắn hơn, mà điều này dẫn tới chi phí ít hơn. Với bất kỳ cách nào để giảm chi phí, bạn cần quan tâm tới ảnh hưởng của việc thay đổi đó tới các công tác, tài nguyên khác và khả năng thực hiện của dự án. Đồng thời cần thượng lượng với các bên liên quan tới dự án.
1.3.2. Các thao tác trong Microsoft Project
1.3.2.1. Điều chỉnh việc gán tài nguyên để giảm chi phí tổng cộng
Ta có thể giảm chi phí của các công tác bằng cách thay thế, xoá bỏ hoặc điều chỉnh các tài nguyên gán cho công tác đó. Bạn vào View menu chọn Gantt Chart. Trong trường Task Name bạn chọn công tác cần sửa đổi.
- Để thay thế tài nguyên gán đã có sẵn, bạn chọn Assign Resources. Trong danh sách các Resource Name, chọn tài nguyên được gán mà bạn muốn thay thế, rồi ấn Replace. Trong danh sách With, bạn chọn tài nguyên mới, rồi ấn OK, rồi ấn Close.
- Để xóa bỏ tài nguyên đã gán, nếu bạn muốn phân bổ công việc cho các tài nguyên còn lại bạn chọn Assign Resources. Trong danh sách các Resource Name, chọn tài nguyên được gán mà bạn muốn xóa bỏ, rồi chọn Remove. Thực hiện thao tác này với tất cả các tài nguyên mà bạn muốn xóa, sau đó Close.
Còn nếu bạn muốn xóa bỏ công việc được gán tài nguyên, bạn chọn Task Information, rồi ấn thanh công cụ Advanced. Xóa trắng hộp thoại Effort driven, rồi ấn OK. Sau đó thao tác giống như trên để xóa các tài nguyên gán.
1.3.2.2. Điều chỉnh chi phí của công tác hoặc tài nguyên để giảm chi phí tổng cộng
Bạn có thể giảm chi phí tổng cộng bằng cách điều chỉnh bảng đơn giá thấp hơn dùng cho các tài nguyên được gán, hay gán các chi phí trọn gói hiệu quả hơn, hoặc giảm hoặc xóa công việc ngoài giờ để tránh dồn đống chi phí ngoài giờ.
- Để giảm đơn giá gốc trong bảng đơn giá cho tài nguyên, bạn vào View menu, chọn Resource Sheet. Tiếp tục vào View menu, chọn Table rồi ấn Entry. Trong trường Resource Name chọn tài nguyên mà bạn muốn giảm đơn giá. Bạn nhập các đơn giá mới vào các trường Std. Rate và Ovt. Rate.
Còn nếu bạn muốn dùng một bảng đơn giá khác, bạn vào View menu chọn Task Usage. Trong trường Task Name bạn chọn tài nguyên muốn cập nhật đơn giá. Nếu bạn muốn hiển thị bảng đơn giá trong Task Usage view, bên phải của trường Task Name, bạn ấn vào trường đó. Trong Insert menu chọn Column. Chọn Cost Rate Table trong hộp thoại Field Name rồi ấn OK. Trong trường Cost Rate Table bạn có thể chọn bảng đơn giá muốn thay đổi, rồi gõ vào đơn giá mới hoặc chọn đơn giá bạn muốn dùng.
Còn nếu bạn không cần hiển thị bảng đơn giá trong Task Usage view, bạn vào Assignment Information rồi ấn thanh công cụ General. Trong hộp thoại Cost rate table, gõ vào đơn giá mới hoặc chọn đơn giá bạn muốn dùng.
1.3.2.3. Điều chỉnh chất lượng để giảm chi phí tổng cộng
Để chi phí không vượt quá ngân quỹ, có thể bạn phải giảm chất lượng của dự án bằng cách rút ngắn thời gian thực hiện các công tác hoặc xóa bỏ công tác nếu có thể. Cũng có thể bạn phải xóa bỏ các tài nguyên. Muốn vậy trước hết bạn vào View menu chọn Gantt Chart. Tiếp theo vào View menu chọn Table rồi ấn Entry.
Để thay đổi thời gian thực hiện công tác, bạn gõ vào hoặc chọn quãng thời gian trong trường Duration của công tác đó, có thể tính theo phút, giờ, ngày, tuần, tháng; rồi ấn Enter.
Còn để xóa công tác, bạn chọn công tác cần xóa trong trường Task Name. Vào Edit menu chọn Delete Task.
1.3.2.4. Ghi lại các điều chỉnh trên đường giới hạn của dự án
Sau khi thực hiện việc điều chỉnh cần thiết để đạt được mục tiêu của mình, bạn có thể ghi lại các thông tin này trên một đường giới hạn mới của dự án. Hoặc khi điều hành dự án trong thực tế cũng cần thiết phải cập nhật thông tin trên các đường giới hạn.
Để ghi lại hoặc cập nhật thông tin trên đường giới hạn đối với các công tác được chọn, bạn có thể thao tác như sau:
Trên View menu chọn Gantt Chart. Chọn trong trường Task Name các công tác dự định lưu thông tin trên đường giới hạn (để chọn các công tác liền kề bạn giữ SHIFT rồi ấn công tác đầu và công tác cuối, còn với các công tác không liền kề bạn giữ CTRL rồi lần lượt án tất cả các công tác chọn). Tiếp đến, trên Tools menu chọn Tracking, rồi ấn Save Baseline. Chọn đường giới hạn mà bạn muốn ghi lại, rồi ấn các công tác được chọn.
Để ghi lại hoặc cập nhật thông tin trên đường giới hạn đối với toàn bộ dự án, trên View menu chọn Tracking, rồi ấn Save Baseline, sau đó chọn đường giới hạn bạn muốn ghi lại, cuối cùng ấn Entire project.
Để copy các giá trị giữa các đường giới hạn, trên Tools menu chọn Tracking rồi ấn Save Baseline. Sau đó ấn Save Interim plan. Trong hộp thoại Copy chọn tên đường giới hạn bạn muốn copy, chẳng hạn như đường giới hạn được ghi lại gần nhất. Trong hộp thoại Into bạn chọn tên đường giới hạn đích muốn sao thông tin các giá trị, chẳng hạn như đường giới hạn số 6. Sau đó ấn chọn toàn bộ dự án hoặc một nhóm các công tác mà bạn muốn copy giá trị.
On the Tools menu, point to Tracking, and then click Save Baseline.
Click Save Interim plan.
In the Copy box, click the name of the baseline you want to copy from (for example, the most recently saved baseline).
In the Into box, click the name of the baseline into which you want to copy values (for example, Baseline6).
Click Entire project or Selected tasks to copy the portion of the baseline values you want.
Save or update a baseline for selected tasks if you want to save a new or updated baseline plan for specific tasks only.
Save or update a baseline for the entire project if you want to save a new baseline plan for the entire project or you want to overwrite the existing baseline plan because your project has changed significantly.
Copy values between baselines when you've previously saved multiple baselines and you want to copy a specific set of baseline values to the Baseline field, which Microsoft Project uses when it calculates variance. Or you can copy values between any baselines that you want.
1
On the Tools menu, point to Tracking, and then click Save Baseline.
2
Click Save baseline, and then click the baseline you want to save.
3
Click Entire project.
Save or update a baseline for selected tasks if you want to save a new or updated baseline plan for specific tasks only.
Save or update a baseline for the entire project if you want to save a new baseline plan for the entire project or you want to overwrite the existing baseline plan because your project has changed significantly.
Copy values between baselines when you've previously saved multiple baselines and you want to copy a specific set of baseline values to the Baseline field, which Microsoft Project uses when it calculates variance. Or you can copy values between any baselines that you want.
Chương 2
Giới thiệu cấu trúc cơ sở dữ liệu của bài toán
2.1. Số liệu tĩnh
Chương trình ứng dụng dùng để tính ra chi phí tổng hợp của các công việc xây lắp ở Việt Nam, chính vì thế ta cần phải có đơn giá xây lắp cho các tỉnh, thành phố do nhà nước ban hành. Để tổ chức lưu trữ dữ liệu phần đơn giá này ta sử dụng phần mềm Microsoft Access. Sở dĩ chọn phần mềm Microsoft Access để lưu trữ, bởi vì phần mềm này và Microsoft Project, cùng với Microsoft Visual Basic- ngôn ngữ lập trình ta sẽ sử dụng để viết chương trình- tương thích với nhau, điều này rất thuận tiện cho việc thiết kế chương trình.
2.1.1. Đơn giá xây lắp cho các tỉnh, thành phố
Bảng LoaiCV lưu trữ thông tin đơn giá này ta thiết kế như hình 2.1.
Hình 2.1. Cấu trúc dữ liệu bảng LoaiCV lưu trữ thông tin đơn giá xây lắp
Các trường trong bảng trên bao gồm:
2.1.1.1. Trường ID: Số thứ tự
Đây là khóa chính của bảng, đảm bảo cho không bao giờ đặt hai dòng giống nhau trên khóa chính. Microsoft Access dùng chỉ số cho trường này cho phép sắp xếp dữ liệu để tăng tốc độ tìm kiếm. Các thuộc tính của trường ID bao gồm:
- Kiểu dữ liệu: Autonumber- kiểu dữ liệu của trường ID là dữ liệu số, tự động tăng khi thêm bản ghi mới.
- Độ rộng trường: LongInteger- số nguyên 2 bytes.
2.1.1.2. Trường MaCV: Mã công việc.
Mỗi loại công việc gắn với một mã công việc nhất định, điều này thuận tiện cho người sử dụng tra cứu thông tin về loại công việc. Trường này cho biết thông tin về mã công việc. Các thuộc tính của trường MaCV bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 10 ký tự.
2.1.1.3. Trường TenCV: Tên công việc.
Mỗi loại công việc có tên công việc cụ thể. Tên công việc cho biết chính xác nội dung công việc đó. Trường này cho biết thông tin về tên công việc. Các thuộc tính của trường TenCV bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 255 ký tự.
2.1.1.4. Trường Gia_VatLieu: Đơn giá vật liệu
Trường này cho biết thông tin về đơn giá vật liệu tương ứng với công việc có mã công việc và tên công việc thuộc cùng bản ghi. Các thuộc tính của trường Gia_VatLieu bao gồm:
Kiểu dữ liệu: Number- kiểu dữ liệu số.
Độ rộng trường: bằng số thực Double.
2.1.1.5. Trường Gia_nhanCong: Đơn giá nhân công
Trường này cho biết thông tin về đơn giá nhân công tương ứng với công việc có mã công việc và tên công việc thuộc cùng bản ghi. Các thuộc tính của trường Gia_nhanCong bao gồm:
Kiểu dữ liệu: Number- kiểu dữ liệu số.
Độ rộng trường: bằng số thực Double.
2.1.1.6. Trường Gia_may: Đơn giá máy
Trường này cho biết thông tin về đơn giá máy tương ứng với công việc có mã công việc và tên công việc thuộc cùng bản ghi. Các thuộc tính của trường Gia_may bao gồm:
Kiểu dữ liệu: Number- kiểu dữ liệu số.
Độ rộng trường: bằng số thực Double.
2.1.1.7. Trường Tinh: Tỉnh, thành phố.
Trường này cho biết thông tin về tên địa phương, cho biết đơn giá tương ứng trong bản ghi áp dụng cho địa phương nào. Các thuộc tính của trường Tinh bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 20 ký tự.
Indexed: Trường này được khai báo thuộc tính indexed để hệ thống có sự sắp xếp riêng theo theo trật tự của trường, thuận tiện cho thao tác tìm kiếm sau này.
2.1.1.8. Trường DVT: Đơn vị tính.
Trường này cho biết thông tin về đơn vị tính, cho biết đơn giá tương ứng trong bản ghi tính theo đơn vị nào. Các thuộc tính của trường DVT bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 10 ký tự.
2.1.2. Đơn giá cước vận chuyển
Trong công tác xây lắp luôn gắn liền với việc vận chuyển nguyên vật liệu, chính vì thế ta thiết kế một bảng khác lưu trữ thông tin về đơn giá cước vận chuyển, để phục vụ cho tính toán chi phí vận chuyển. Bảng LoaiCuoc này ta thiết kế như hình 2.2.
Hình 2.2. Cấu trúc dữ liệu bảng LoaiCuoc lưu trữ đơn giá cước vận chuyển
Các trường trong bảng trên bao gồm:
2.1.2.1. Trường ID: Số thứ tự
Cũng giống như bảng đơn giá xây lắp, trường ID là khóa chính của bảng, đảm bảo cho không bao giờ đặt hai dòng giống nhau trên khóa chính. Microsoft Access dùng chỉ số cho trường này cho phép sắp xếp dữ liệu để tăng tốc độ tìm kiếm trong bảng. Các thuộc tính của trường ID bao gồm:
- Kiểu dữ liệu: Autonumber- kiểu dữ liệu của trường ID là dữ liệu số, tự động tăng khi thêm bản ghi mới.
- Độ rộng trường: LongInteger- số nguyên 2 bytes.
2.1.2.2. Trường MaCV: Mã công việc.
Giống như ở bảng đơn giá xây lắp, mỗi loại công việc vận chuyển gắn với một mã công việc nhất định, điều này thuận tiện cho người sử dụng tra cứu thông tin về loại công việc. Trường này cho biết thông tin về mã công việc. Các thuộc tính của trường MaCV bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 10 ký tự.
2.1.2.3. Trường TenCV: Tên công việc.
Giống như bảng đơn giá xây lắp, mỗi loại công việc vận chuyển có tên công việc cụ thể. Tên công việc cho biết chính xác nội dung công việc đó. Trường này cho biết thông tin về tên công việc. Các thuộc tính của trường TenCV bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 255 ký tự.
2.1.2.4. Trường Gia_cuoc: Đơn giá cước vận chuyển
Trường này cho biết thông tin về đơn giá cước vận chuyển tương ứng với công việc vận chuyển có mã công việc và tên công việc thuộc cùng bản ghi. Các thuộc tính của trường Gia_cuoc bao gồm:
Kiểu dữ liệu: Number- kiểu dữ liệu số.
Độ rộng trường: bằng số thực Double.
2.1.2.5. Trường DVT: Đơn vị tính.
Trường này cho biết thông tin về đơn vị tính, cho biết đơn giá cước vận chuyển tương ứng trong bản ghi tính theo đơn vị nào. Các thuộc tính của trường DVT bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 10 ký tự.
2.2. Số liệu động
Để có thể thiết kế các thao tác tính toán dễ dàng, ta quản lý các hệ số tính toán bằng một bảng tham số. Cấu trúc bảng Thamso này thể hiện trên hình 2.3.
Hình 2.3. Cấu trúc dữ liệu bảng Thamso
Các trường trong bảng tham số bao gồm:
2.2.1. Trường Ten: Tên tham số
Trường Ten là khóa chính của bảng, đảm bảo cho không bao giờ đặt hai dòng giống nhau trên khóa chính. Trường này lưu các ký hiệu tắt để đưa vào các công thức tính toán cho ngắn gọn. Các thuộc tính của trường Ten bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
- Độ rộng trường: 50 ký tự
2.2.2. Trường GiaTri: Giá trị
Trường này cho biết thông tin giá trị của tham số tương ứng trong bản ghi. Giá trị này là mặc định cho tham số đó. Khi tính toán ta có thể thay đổi nó. Các thuộc tính của trường GiaTri bao gồm:
Kiểu dữ liệu: Number- kiểu dữ liệu số.
Độ rộng trường: bằng số thực Double.
2.2.3. Trường Ghichu: Ghi chú
Trường Ghichu cho biết ý nghĩa của tham số tương ứng trong bản ghi. Các thuộc tính của trường Ghichu bao gồm:
Kiểu dữ liệu: Text- kiểu xâu ký tự, không quá 255 ký tự.
Độ rộng trường: 100 ký tự.
Các tham số tính toán được thể hiện trên hình 2.4.
Hình 2.4. Các tham số tính toán
Tham số a: Hệ số vật liệu.
Hệ số này kể đến sự bù giá vật liệu tại thời điểm thi công dự án so với thời điểm ban hành đơn giá vật liệu của nhà nước. Mặc định trong chương trình lấy hệ số này là 1. Khi người sử dụng tính toán thì lấy theo thực tế.
Tham số b: Hệ số nhân công.
Hệ số này kể đến sự bù giá nhân công tại thời điểm thi công dự án so với thời điểm ban hành đơn giá nhân công của nhà nước. Mặc định trong chương trình lấy hệ số này là 1,25. Khi người sử dụng tính toán thì lấy theo thực tế.
Tham số c: Hệ số máy thi công.
Hệ số này kể đến sự bù giá máy thi công tại thời điểm thi công dự án so với thời điểm ban hành đơn giá máy thi công của nhà nước. Mặc định trong chương trình lấy hệ số này là 1,04. Khi người sử dụng tính toán thì lấy theo thực tế.
Tham số CLVL: Hệ số chênh lệch vật liệu.
Tham số này kể đến sự chênh lệch giá vật liệu thực tế tại địa phương có dự án so với đơn giá vật liệu của nhà nước. Mặc định trong chương trình lấy tham số này là 0. Khi người sử dụng tính toán thì lấy theo thực tế.
Tham số d: Hệ số chi phí chung
Hệ số này dùng để tính chi phí chung cho công việc. Mặc định trong chương trình lấy bằng 58% chi phí nhân công. Người sử dụng tính toán thì lấy theo thực tế.
Tham số e: Hệ số thu nhập chịu thuế tính trước
Hệ số này kể đến thu nhập chịu thuế tính trước của nhà thầu. Mặc định trong chương trình lấy bằng 5,5% tổng chi phí chung và chi phí trực tiếp. Người sử dụng tính toán thì lấy theo thực tế.
Ngoài ra, trong chương trình còn có hai tham số khác, đó là khối lượng công việc và khối lượng vận chuyển. Hai tham số này do người sử dụng nhập trực tiếp từ bàn phím khi tính toán.
Chương 3
Tổ chức chương trình
3.1. Sơ đồ tổ chức chương trình
Chương trình được viết bằng ngôn ngữ lập trình Visual Basic, đây là ngôn ngữ lập trình hướng đối tượng cho phép ta thiết kế chương trình linh hoạt và thuận tiện. Có thể biểu diễn cách tổ chức chương trình như sơ đồ trên hình 3.1.
Hình 3.1. Sơ đồ tổ chức chương trình
Người dùng là người sử dụng, có thể sử dụng phần mềm Microsoft Project, đồng thời có thể sử dụng ứng dụng tính chi phí.
MS Project là phần mềm Microsoft Project được người dùng sử dụng để tính toán. Ngược lại nó có thể gọi tới ứng dụng tính chi phí.
ứng dụng tính chi phí chính là chương trình ta thiết kế được người dùng sử dụng để tính chi phí. Nó còn được gọi bởi Microsoft Project thông qua thủ tục sau:
Sub tinhcp()
Dim ret
ret = Shell("C:\Program Files\TinhCP\TinhCP.exe", vbNormalFocus)
End Sub
Trong đó C:\Program Files\TinhCP\TinhCP.exe là đường dẫn tới chương trình chạy ta thiết kế.
Khi chạy chương trình này, ứng dụng gọi các thông tin ở phần cơ sở dữ liệu Access ra để xử lý, đồng thời ứng dụng cũng có thể lưu trữ thông tin vào phần cơ sở dữ liệu này.
Phần cơ sở dữ liệu Access là cơ sở dữ liệu đã được giới thiệu ở chương 2. Nó được gọi bởi ứng dụng tính chi phí, và nó cất giữ thông tin khi ứng dụng này lưu lại. Nhắc lại, chương trính ta thiết kế bằng ngôn ngữ Visual Basic. Vì vậy ta dùng được thủ tục ADO- ActiveX Data Object- có sẵn trong Visual Basic để kết nối giữa ứng dụng tính chi phí và phàn dữ liệu Access.
3.2. Giao diện của chương trình
Giao diện của chương trình gồm có 3 form: frmcapNhat, frmCNCuoc và frmMain.
3.2.1. Form frmcapNhat
a. Chức năng:
Đây là form dùng để cập nhật đơn giá xây dựng của các tỉnh, thành phố. Người sử dụng có thể thêm, bớt, sửa đổi hoặc xóa các bản ghi trong form này. Khi cập nhật thêm đơn giá lưu ý nhập đủ thông tin cho các trường của bản ghi, bao gồm: mã công việc, tên công việc, đơn giá vật liệu, đơn giá nhân công, đơn giá máy, tỉnh thành phố và đơn vị tính.
b. Giao diện:
Form frmcapNhat có duy nhất một Control adodc kết nối với bảng đơn giá trong file dữ liệu Access đã giới thiệu ở chương 2.
Giao diện của form thể hiện ở hình 3.2. sau:
Hình 3.2. Form frmcapnhat
3.2.2.Form frmCNcuoc
Chức năng:
Đây là form dùng để cập nhật đơn giá cước vận chuyển của các tỉnh, thành phố. Người sử dụng có thể thêm, bớt, sửa đổi hoặc xóa các bản ghi trong form này. Khi cập nhật thêm đơn giá lưu ý nhập đủ thông tin cho các trường của bản ghi, bao gồm: mã công việc, tên công việc, đơn giá cước và đơn vị tính.
Giao diện:
Form frmCNCuoc có duy nhất một Control adodc kết nối với bảng đơn giá cước vận chuyển trong file dữ liệu Access đã giới thiệu ở chương 2.
Giao diện của form thể hiện ở hình 3.3. sau:
Hình 3.3. Form frmCNCuoc
3.2.3. Form frmMain
Đây là form chính của chương trình. Khi chương trình bắt đầu chạy, hay khi Microsoft Project gọi tới ứng dụng tính chi phí thì form frmMain bật ra trước tiên. Thuộc tính này khai báo ở phần Startup Object, như hình 3.4.
Hình 3.4. Bảng thuộc tính của chương trình
a. Chức năng:
Form này dùng để thực hiện việc tính toán chi phí tùy theo yêu cầu của người sử dụng.
Giao diện:
Giao diện của form thể hiện trên hình 3.5.
Hình 3.5. Form frmMain
Người sử dụng làm việc chủ yếu với form frmMain. Ngoài các label hiển thị, trên form còn có một số ComboBox, TextBox và CommandButton. Thông qua các thành phần này ta thực hiện việc lấy thông tin từ cơ sở dữ liệu Access, xử lý chúng và hiển thị kết quả ngay trên cùng form này.
- ComboBox Địa phương hiển thị tên tỉnh, thành phố mà người sử dụng muốn lấy đơn giá để tính toán. Hộp thoại này còn cho phép người sử dụng tìm kiếm và lựa chọn địa phương thích hợp trong danh sách các địa phương một cách nhanh nhất.
- ComboBox Loại công việc hiển thị mã và tên công việc mà người sử dụng muốn lấy đơn giá, đồng thời tương ứng với địa phương đã chọn ở hộp thoại Địa phương. Hộp thoại này còn cho phép người sử dụng tìm kiếm và lựa chọn công việc thích hợp trong danh sách các công việc một cách nhanh nhất.
- ComboBox Loại cước vận chuyển hiển thị mã và tên công việc vận chuyển mà người sử dụng muốn lấy đơn giá. Hộp thoại này còn cho phép người sử dụng tìm kiếm và lựa chọn công việc vận chuyển thích hợp trong danh sách các công việc vận chuyển một cách nhanh nhất.
- Các TextBox Chênh lệch vật liệu, Hệ số nhân công, HS Chi phí chung, Chi phí chịu thuế tính trước, Hệ số vật liệu và Hệ số máy thi công hiển thị các tham số tương ứng dùng để tính toán các loại chi phí. Ban đầu gọi form frmMain, các tham số được hiển thị là mặc định. Sau đó người sử dụng có thể sửa đổi lại các tham số này ngay trên hộp thoại.
- TextBox Khối lượng và Khối lượng vận chuyển dùng để nhập khối lượng công việc xây lắp và khối lượng công việc vận chuyển tương ứng có trong ComboBox Loại công việc và Loại cước vận chuyển.
- Các TextBox Chi phí vật liệu, Chi phí nhân công, Chi phí máy, Chi phí chung, Chi phí trực tiếp, Chi phí vận chuyển, Giá trị dự toán xây lắp trước thuế và Giá trị dự toán xây lắp sau thuế hiển thị các kết quả tính toán tương ứng.
- Các Label Đơn giá vật liệu, Đơn giá nhân công, Đơn giá máy và Đơn giá cước vận chuyển hiển thị các giá trị đơn giá tương ứng với loại công việc xây lắp và công việc vận chuyển đã chọn trong ComboBox Loại công việc và Loại cước vận chuyển.
Ngoài ra còn có hai Label khác cạnh các Label kể trên thể hiện đơn vị tính tương ứng với các giá trị đơn giá.
- CommandButton Tính chi phí dùng để ra lệnh cho chương trình thực hiện việc tính toán khi đã có đủ các dữ liệu cần thiết.
CommandButton Cập nhật đơn giá và Cập nhật cước dùng để gọi ra các form frmcapNhat và frmCNCuoc.
3.3. Các chương trình con có trong chương trình
Thủ tục sau khai báo hằng CONNECTION_STRING là địa chỉ của file dữ liệu Access chiphi.mdb. Trong các chương trình con cần thiết phải sử dụng hằng này để thao tác với các dữ liệu Access.
Option Explicit
Const CONNECTION_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=chiphi.mdb;Persist Security Info=False"
3.3.1. Chương trình con Form_Load
Khi ứng dụng tính chi phí được gọi, chương trình con này được chạy đầu tiên. Chương trình con này sử dụng các biến conn, rs là các giá trị ứng dụng ADODB, như đã giới thiệu ở phần trên, để kết nối với các bảng dữ liệu Access. Chương trình con này lần lượt thực hiện các phần việc sau:
Nạp tên của tất cả các tỉnh, thành phố có trong bảng LoaiCV vào ComboBox Địa phương, và sắp xếp chúng theo thứ tự ABC.
Nạp mã và tên của tất cả các loại cước vận chuyển có trong bảng LoaiCuoc vào ComboBox Loại cước vận chuyển, và sắp xếp chúng theo thứ tự như trong bảng LoaiCuoc.
Nạp tất cả các tham số mặc định ở bảng Thamso vào các TextBox tương ứng.
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
conn.ConnectionString = CONNECTION_STRING
conn.Open
Set rs = conn.Execute("SELECT DISTINCT Tinh FROM LoaiCV Order by Tinh")
While Not rs.EOF
cboTinh.AddItem rs("Tinh")
cboTinh.ItemData(cboTinh.ListCount - 1) = cboTinh.ListCount - 1
rs.MoveNext
Wend
rs.Close
Set rs = conn.Execute("SELECT ID, MaCV + ' - ' + TenCV AS Ten FROM LoaiCuoc Order by MaCV,TenCV")
While Not rs.EOF
cboCuoc.AddItem rs("Ten")
cboCuoc.ItemData(cboCuoc.ListCount - 1) = rs("ID")
rs.MoveNext
Wend
rs.Close
Set rs = conn.Execute("SELECT * from Thamso")
While Not rs.EOF
Select Case rs("Ten")
Case "a":
a.Text = Format(rs("GiaTri"), "##,##0.00")
Case "b":
b.Text = Format(rs("GiaTri"), "##,##0.00")
Case "c":
c.Text = Format(rs("GiaTri"), "##,##0.00")
Case "d":
d.Text = Format(rs("GiaTri"), "##,##0.00")
Case "e":
e.Text = Format(rs("GiaTri"), "##,##0.00")
Case "CLVL":
CLVL.Text = Format(rs("GiaTri"), "##,##0.00")
End Select
rs.MoveNext
Wend
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
3.3.2. Các chương trình con gắn với ComboBox Địa phương
Sau khi gọi ra form frmMain, để tính trước hết người sử dụng phải chọn địa phương có công trình xây dựng cần tính chi phí. Có hai cách để chọn:
- Cách thứ nhất gắn với chương trình con cboTinh_Change(). Cách này cho phép người sử dụng gõ trực tiếp tên của địa phương có trong danh sách các địa phương đã được nạp. Chương trình con này cho phép ta tìm kiếm nhanh tên địa phương bằng cách gõ những ký tự đầu của tên địa phương cần tìm, ComboBox sẽ tự động hiển thị tên của địa phương có sẵn trong danh sách đã nạp mà có phần đầu giống những ký tự đó.
Private Sub cboTinh_Change()
Dim i As Integer
Dim start As Integer
i = 0
While i 1
i = i + 1
Wend
If i < cboTinh.ListCount Then
start = Len(cboTinh.Text)
cboTinh.ListIndex = i
cboTinh.Text = cboTinh.List(i)
cboTinh.SelStart = start
cboTinh.SelLength = Len(cboTinh.Text) - start
End If
End Sub
Cách thứ hai: người sử dụng xổ danh sách tên các địa phương đã nạp vào hộp thoại và chọn bằng cách ấn chuột vào tên đó.
Ngay khi ta chọn tên địa phương cần tính, chương trình con cboTinh_Click() được thực hiện. Chương trình này, gọi tới bảng LoaiCV và nhặt ra tất cả các tên công việc của địa phương ta đã chọn và nạp vào ComboBox Loại công việc.
Private Sub cboTinh_Click()
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
conn.ConnectionString = CONNECTION_STRING
conn.Open
Set rs = conn.Execute("SELECT ID, MaCV + ' - ' + TenCV AS Ten FROM LoaiCV WHERE Tinh = '" & cboTinh.Text & "' Order by MaCV, TenCV")
cboCongViec.Clear
While Not rs.EOF
cboCongViec.AddItem rs("Ten")
cboCongViec.ItemData(cboCongViec.ListCount - 1) = rs("ID")
rs.MoveNext
Wend
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
3.3.3. Các chương trình con gắn với ComboBox Loại công việc
Sau khi chọn được tên địa phương, người sử dụng cần chọn tên công việc cụ thể để tính. Có hai cách để chọn tên công việc:
- Cách thứ nhất gắn với chương trình con cboCongViec_Change(). Cách này cho phép người sử dụng gõ trực tiếp tên của công việc, thực ra là mã công việc, có trong danh sách các công việc đã được nạp. Chương trình con này cho phép ta tìm kiếm nhanh tên công việc bằng cách gõ những ký tự đầu của mã công việc cần tìm, ComboBox sẽ tự động hiển thị tên của công việc có sẵn trong danh sách đã nạp mà có phần đầu giống những ký tự đó.
Private Sub cboCongViec_Change()
Dim i As Integer
Dim start As Integer
i = 0
While i 1
i = i + 1
Wend
If i < cboCongViec.ListCount Then
start = Len(cboCongViec.Text)
cboCongViec.ListIndex = i
cboCongViec.Text = cboCongViec.List(i)
cboCongViec.SelStart = start
cboCongViec.SelLength = Len(cboCongViec.Text) - start
End If
End Sub
Cách thứ hai: người sử dụng xổ danh sách tên các công việc đã nạp vào hộp thoại và chọn bằng cách ấn chuột vào tên đó. Nếu danh sách quá dài có thể kết hợp với cách thứ nhất.
Ngay khi ta chọn tên công việc cần tính, chương trình con cboCongViec_Click() được thực hiện. Chương trình này, gọi tới bảng LoaiCV và nhặt ra giá trị của đơn giá vật liệu, đơn giá nhân công, đơn giá máy thi công và đơn vị tính tương ứng với công việc được chọn và hiển thị lên các label tương ứng trong form frmMain.
Private Sub cboCongViec_Click()
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
conn.ConnectionString = CONNECTION_STRING
conn.Open
Set rs = conn.Execute("SELECT DVT,Gia_vatLieu, gia_nhancong, gia_may FROM LoaiCV WHERE ID = " & cboCongViec.ItemData(cboCongViec.ListIndex))
If Not rs.EOF Then
DGVL.Caption = Format(rs("gia_vatlieu"), "##,##0.00")
DGNC.Caption = Format(rs("gia_nhancong"), "##,##0.00")
DGM.Caption = Format(rs("gia_may"), "##,##0.00")
DVT.Caption = rs("DVT")
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
3.3.4. Các chương trình con gắn với ComboBox Loại cước vận chuyển
Để tính toán chi phí, có thể người sử dụng cần phải tính chi phí vận chuyển, do vậy phải chọn tên công việc vận chuyển cụ thể để tính. Có hai cách để chọn tên công việc vận chuyển:
- Cách thứ nhất gắn với chương trình con cboCuoc_Change(). Cách này cho phép người sử dụng gõ trực tiếp tên của công việc vận chuyển, thực ra là mã công việc vận chuyển, có trong danh sách các công việc vận chuyển đã được nạp. Chương trình con này cho phép ta tìm kiếm nhanh tên công việc vận chuyển bằng cách gõ những ký tự đầu của mã công việc vận chuyển cần tìm, ComboBox sẽ tự động hiển thị tên của công việc có sẵn trong danh sách đã nạp mà có phần đầu giống những ký tự đó.
Private Sub cboCuoc_Change()
Dim i As Integer
Dim start As Integer
i = 0
While i 1
i = i + 1
Wend
If i < cboCuoc.ListCount Then
start = Len(cboCuoc.Text)
cboCuoc.ListIndex = i
cboCuoc.Text = cboCuoc.List(i)
cboCuoc.SelStart = start
cboCuoc.SelLength = Len(cboCuoc.Text) - start
End If
End Sub
Cách thứ hai: người sử dụng xổ danh sách tên các công việc vận chuyển đã nạp vào hộp thoại và chọn bằng cách ấn chuột vào tên đó. Nếu danh sách quá dài có thể kết hợp với cách thứ nhất.
Ngay khi ta chọn tên công việc cần tính, chương trình con cboCuoc_Click() được thực hiện. Chương trình này, gọi tới bảng LoaiCuoc và nhặt ra giá trị của đơn giá cước vận chuyển và đơn vị tính tương ứng với công việc được chọn và hiển thị lên các label tương ứng trong form frmMain.
Private Sub cboCuoc_Click()
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
conn.ConnectionString = CONNECTION_STRING
conn.Open
Set rs = conn.Execute("SELECT DVT, gia_cuoc FROM LoaiCuoc WHERE ID = " & cboCuoc.ItemData(cboCuoc.ListIndex))
If Not rs.EOF Then
DGCuoc.Caption = Format(rs("gia_cuoc"), "##,##0.00")
DVTVanchuyen.Caption = rs("DVT")
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
3.3.4. Chương trình con gắn với CommandButton Tính chi phí
Chương trình con cmdTinh_Click() được thực hiện khi bạn ấn vào nút lệnh Tính chi phí. Chương trình này lần lượt thực hiện các phần việc sau:
Trước tiên nó kiểm tra xem bạn đã chọn loại công việc hay chưa, nếu bạn chưa chọn, có nghĩa là ứng dụng chưa xác định được các đơn giá để tính, thì nó đưa ra thông báo "Chua chon loai cong viec" để nhắc nhở.
Tiếp đến nó kiểm tra xem bạn đã nhập vào khối lượng công việc hay chưa, nếu bạn chưa nhập, có nghĩa là ứng dụng chưa xác định được giá trị này để tính, thì nó đưa ra thông báo "Chua nhap khoi luong cong viec" để nhắc nhở.
Nếu hai điều kiện trên đã thỏa mãn, chương trình sẽ thực hiện việc tính toán các loại chi phí với các thông số có trên form frmMain lúc đó. Riêng chi phí vận chuyển, nếu bạn không nhập khối lượng vận chuyển hoặc không chọn loại công việc vận chuyển thì chương trình sẽ bỏ trống TextBox Chi phí vận chuyển.
Private Sub cmdTinh_Click()
If DGVL.Caption = "" Then
MsgBox "Chua chon loai cong viec"
cboCongViec.SetFocus
Exit Sub
End If
If KL.Text = "" Then
MsgBox "Chua nhap khoi luong cong viec"
KL.SetFocus
Exit Sub
End If
CPVL.Text = Format((CDbl(DGVL.Caption) + CDbl(CLVL.Text)) * CDbl(KL.Text) * CDbl(a), "##,##0.00")
CPNC.Text = Format(CDbl(DGNC.Caption) * CDbl(KL.Text) * CDbl(c), "##,##0.00")
CPM.Text = Format(CDbl(DGM.Caption) * CDbl(KL.Text) * CDbl(c.Text), "##,##0.00")
CPTT.Text = Format(CDbl(CPVL.Text) * CDbl(CPNC.Text) * CDbl(CPM.Text), "##,##0.00")
CPC.Text = Format(CDbl(CPNC.Text) * CDbl(d.Text), "##,##0.00")
DTTruocThue.Text = Format((CDbl(CPTT.Text) + CDbl(CPC.Text)) * (1 + CDbl(e.Text)), "##,##0.00")
DTSauThue.Text = Format(CDbl(DTTruocThue.Text) * 1.1, "##,##0.00")
If DGCuoc.Caption "" Then
CPVC.Text = Format(CDbl(DGCuoc.Caption) * CDbl(KLVC.Text), "##,##0.00")
Else
CPVC.Text = ""
End If
End Sub
Ngoài ra ứng dụng còn có chương trình con Command1_Click() gắn với nút lệnh Cập nhật đơn giá; chương trình con Command2_Click() gắn với nút lệnh Cập nhật cước. Như đã nói ở trên, hai nút này dùng để gọi ra các form frmcapNhat và frmCNCuoc.
Private Sub Command1_Click()
frmcapNhat.Show vbModal
End Sub
Private Sub Command2_Click()
frmCNCuoc.Show vbModal
End Sub
3.4. Hướng dẫn sử dụng
a. Lưu ý:
Người sử dụng chương trình lưu ý, bởi ứng dụng này gắn liền với file cơ sở dữ liệu Access chiphi.mdb nên khi copy ứng dụng thì copy luôn cả file này. Dữ liệu trong file chiphi.mdb, người sử dụng có thể cập nhật trước khi tính toán. Hoàn toàn có thể dựa trên bộ đơn giá xây dựng cơ bản do nhà nước ban hành để làm cơ sở. Khi đó để có được một file chiphi.mdb với đầy đủ thông tin, dữ liệu phục vụ cho ứng dụng chỉ còn là vấn đề thời gian. Trong phạm vi luận văn này, với mục đích nghiên cứu là chính, phần ví dụ ở chương sau sẽ sử dụng ứng dụng với file dữ liệu đã cập nhật chỉ phần ít trong bộ đơn giá của nhà nước.
b. Các bước thao tác:
Như đã trình bày ở mục 3.1. người sử dụng có thể đưa ứng dụng này vào Microsoft Project theo các bước sau:
Bước 1: Sau khi máy tính được cài đặt Microsoft Project, ta khởi động Microsoft Project.
Bước 2: Khi Microsoft Project khởi động xong, ấn Alt+F11 Microsoft Project sẽ cho hiện ra phần cập nhật thêm macro. Người dùng gõ thủ tục như đã trình bày ở mục 3.1.
Bước 3: Sau đó vào Tools menu ---> Customize ---> Toolbar, rồi nhặt thủ tục vừa gõ đặt vào phần menu phía trên màn hình. Khi cần gọi ứng dụng chỉ cần ấn vào biểu tượng vừa tạo được.
Khi gọi ứng dụng ra, nên lưu ý nhập đủ thông tin như địa phương, tên công việc, khối lượng và kiểm tra lại các thông số xem có phù hợp với thực tế không, sau đó mới tính toán.
Chương 4
ví dụ áp dụng
4.1. đặt vấn đề
Sau đây là một ví dụ đơn giản có áp dụng phần kiến thức nghiên cứu của luận văn. Ta xét một hạng mục nhỏ của công trình CT-1A khu đô thị mới Định Công, Hà Nội. Tiến độ về mặt thời gian như hình 4.1 sau:
Với khối lượng đã cho của từng loại công tác, ta áp dụng chương trình tính chi phí để tính các chi phí cần thiết để thực hiện các công tác này. Sau đó nhập các thành phần của chi phí trực tiếp bao gồm chi phí vật liệu, chi phí nhân công và chi phí máy thi công vào tiến độ, đồng thời quản lý chúng theo một tiến trình giả định.
4.2. Tính toán chi phí
Chương trình tính chi phí đã được gắn vào trong Microsoft Project, nên khi đang thao tác trên Microsoft Project ta có thể gọi trực tiếp nó ra như sau.
Hình 4.2. Thao tác gọi chương trình con tính chi phí
Giả thiết các tham số lấy theo mặc định. Ta nhập các thông số cần thiết để tính. Chú ý khi nhập tên công việc, ta nên ghi nhớ một vài ký tự đầu của mã công việc đặc trưng để tìm kiếm cho nhanh và chính xác loại công tác cần tính. Chẳng hạn như mã công việc của công tác xây là GD, của công tác bê tông là HA, công tác cốt thép và IA và công tác ván khuôn là KB.
Bởi chi phí tính theo khối lượng của từng công tác nên ta không thể biểu diễn chúng theo đơn giá. Ta dùng chi phí trọn gói để thể hiện, với giả thiết rằng các chi phí đều được thanh toán khi công tác kết thúc. Để tiện cho việc tính toán nhập số liệu ta chọn chi phí cho mỗi lần sử dụng tài nguyên đều là 100.000 đồng.
Hình 4.3. Thao tác tính chi phí cho công tác cốt thép
Hình 4.4. Thao tác tính chi phí cho công tác ván khuôn cột, vách cứng
Ta giả thiết chi phí cho công tác ván khuôn được thanh toán sau khi tháo dỡ, vì thế chi phí cho công tác ván khuôn dầm sàn T8 + cầu thang sẽ được thanh toán ở giai đoạn sau của công trình. Tương tự, ta phải thanh toán cho chi phí công tác ván khuôn dầm sàn T6, vì việc tháo dỡ chúng rơi vào giai đoạn này của tiến độ.
Hình 4.5. Biểu đồ biểu diễn chi phí vật liệu
Hình 4.6. Biểu đồ biểu diễn chi phí nhân công
Hình 4.7. Biểu đồ biểu diễn chi phí máy thi công
. 4.3. Quản lý chi phí
Với các thông tin về các công tác đã nhập vào, ta có thể ghi lại đường giới hạn về kế hoạch của hạng mục là Baseline1
Hình 4.8. Ghi đường giới hạn theo kế hoạch ban đầu
Theo kế hoạch ban đầu này, ngân quỹ của hạng mục là 805.300.000 đồng.
Hình 4.9. Thông tin ban đầu về hạng mục
Ta lựa chọn phương thức tính giá trị hoàn thành theo giá trị phần trăm hoàn thành và dùng đường giới hạn 1 để tính.
Hình 4.10. Thao tác chọn phương tính giá trị hoàn thành
Giả thiết vào ngày 2 tháng 4 có sự thay đổi giá cả vật liệu vì vậy ta cập nhật sự thay đổi này:
Hình 4.11. Cập nhật việc thay đổi giá cả vật liệu
Hình 4.12. Cập nhật khối lượng công việc thực hiện được
Bây giờ ta xét hạng mục vào thời điểm ngày 7 tháng 4, khi đó các công tác 2,3,4 thực tế đã hoàn thành 100% khối lượng. Còn công tác 5 mới bắt đầu nên con số này là 0%. Ta thực hiện phép phân tích giá trị hoàn thành như sau:
Hình 4.13. Bảng phân tích các chỉ số chi phí
Công tác 2 có CV=0, CPI=1, VAC=0 có nghĩa là chi phí thực tế cho công tác này đúng bằng chi phí dự tính trong ngân quỹ và bằng EAC=98.000.000 đồng.
Công tác 3 đã được thực hiện 100% khối lượng, tương ứng với giá trị hoàn thành là 100% nhưng chi phí cho công tác này được thanh toán sau nên EAC=0.
Công tác 4 có CV=2.125.000 đồng tương ứng với CV%= -4%, có nghĩa là chi phí thực tế cho công tác này đã vượt quá ngân quỹ 2.125.000 đồng. Điều này cũng được khẳng định bởi CPI =0,96 và VAC =2.125.000 đồng. Với khối lượng hoàn thành 100% thì giá trị hoàn thành thực tế là ACWP= 51.125.000 đồng lớn hơn giá trị tương ứng theo kế hoạch BCWP= 49.000.000.
Tại thời điểm đang xét là ngày 7 tháng 4 ta thấy hạng mục đã hoàn thành 23% khối lượng. Chi phí thực tế của công tác 4 đã vượt quá ngân quỹ, kéo theo chi phí cho toàn bộ hạng mục cũng vượt quá ngân quỹ, cụ thể là CV%= -1%, CPI=0,99 và nếu không có sự điều chỉnh thì dự tính chi phí tổng cộng của hạng mục sẽ vượt quá ngân quỹ một khoản VAC=11.641.242 đồng. Con số này chỉ là dự báo của Microsoft Project tại thời điểm đang xét, dựa trên phần công việc đã thực hiện được. Đồng thời ta thấy các công tác còn lại tuy chưa được thực hiện nhưng do có sự thay đổi về giá cả tài nguyên nên Microsoft Project dự báo chi phí sẽ vượt quá ngân quỹ. Vì thế cần có sự điều chỉnh lại kế hoạch thực hiện hạng mục. Tùy vào điều kiện thực tế thi công mà ta lựa chọn các điều chỉnh hợp lý như đã trình bày ở mục 1.3.
Kết luận
Luận văn đã khai thác phần quản lý chi phí trong Microsoft Project. Tuy nhiên để sử dụng Microsoft Project thành thạo trong việc quản lý chi phí đòi hỏi người sử dụng phải có kiến thức nhất định về chuyên ngành. Bên cạnh đó, để quản lý tốt dự án người kỹ sư lại phải phối hợp hợp lý và cân đối giữa các yếu tố thời gian, chi phí, chất lượng và an toàn lao động. Bản thân chương trình Microsoft Project cũng bao gồm các yếu tố này bên trong. Những nghiên cứu sau này có thể phát triển theo hướng khai thác toàn diện các mặt của Microsoft Project. Việc nghiên cứu toàn diện và chuyên sâu cần có nhiều thời gian và trí tuệ. Ngoài ra, trên thế giới hiện nay cũng đang và sẽ có những phần mềm chuyên dụng cho việc quản lý dự án. Người kỹ sư cần tìm hiểu và lựa chọn công cụ phù hợp nhất cho mình sao cho đạt được hiệu quả cao trong công việc.
Riêng phần chương trình con tính chi phí chỉ là một giải pháp nhỏ đưa ra giải quyết việc tính toán chi phí sao cho tiện lợi. Nó giúp người sử dụng tính toán sơ bộ được chi phí cho công việc hay cho dự án, có thể góp phần thấy được trước lãi lỗ của kế hoạch đặt ra. Hướng phát triển của chương trình này, có thể đi sâu vào việc phân tích vật tư như một vài chương trình đang được sử dụng ở nước ta, nhưng sẽ gọn nhẹ và sử dụng thuận tiện hơn.
tài liệu tham khảo
Bùi Mạnh Hùng (1999), Hướng dẫn sử dụng chương trình quản lý dự án Microsoft Project 98, NXB Xây dựng, Hà Nội.
Nguyễn Thị Ngọc Mai (2000), Visual basic 6.0 và lập trình cơ sở dữ liệu, NXB Giáo dục, Hà Nội.
Sở Xây dựng TPHCM (1979), Định mức dự toán xây dựng cơ bản, TPHCM.
ủy ban xây dựng cơ bản nhà nước (1984), Định mức phụ phí thi công và định mức dự toán xây dựng cơ bản, NXB Xây dựng, Hà Nội.
Đơn giá xây dựng cơ bản thành phố Hà Nội (1999), NXB Xây dựng, Hà Nội.
Phụ lục
Phụ lục kèm theo luận văn này có đĩa CD bao gồm những phần mềm sau:
Bộ cài đặt chương trình Microsoft Project.
Bộ cài đặt chương trình Visual Basic 6.0.
Bộ cài đặt các loại font tiếng Việt.
Chương trình tính chi phí có trong luận văn.
Ví dụ có trong luận văn.
Các file đính kèm theo tài liệu này:
- KT33.DOC