1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng bài toán điều độ dự án với ràng buộc về nguồn lực

205 18 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 205
Dung lượng 3,03 MB

Nội dung

Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA HUỲNH CHÍ SƠN XÂY DỰNG BÀI TỐN ĐIỀU ĐỘ DỰ ÁN VỚI RÀNG BUỘC VỀ NGUỒN LỰC Chuyên ngành : KỸ THUẬT HỆ THỐNG CÔNG NGHIỆP LUẬN VĂN THẠC SĨ TP.HỒ CHÍ MINH, tháng 11 năm 2009 MỤC LỤC TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINHError! Bookmark not defined KHOA CƠ KHÍ .Error! Bookmark not defined BỘ MÔN KỸ THUẬT HỆ THỐNG CÔNG NGHIỆP Error! Bookmark not defined MỤC LỤC .1 CHƯƠNG GIỚI THIỆU 1.1 Đặt vấn đề 1.1.1 Dự án Nhiêu Lộc - Thị Nghè 1.1.2 Dự án đại lộ đông - tây chậm tiến độ tháng 1.1.3 Dự án vệ sinh môi trường thành phố 1.1.4 Nhận xét chung .6 1.2 Mục tiêu luận văn nội dung thực 1.2.1 Mục tiêu luận văn .6 1.2.2 Nội dung thực 1.3 Bố cục luận văn : 1.4 Phạm vi giới hạn đề tài : .7 1.5 Phương pháp nghiên cứu CHƯƠNG CÁC NGHIÊN CỨU LIÊN QUAN 2.1 “Study of project scheduling optimization using Tabu Search algorithm” 2.2 “Scheduling with Resource Constraints and Precedences” – Chapter 10 of Project Management for Construction Book: 2.3 Improved Tabu Search algorithm applition in RCPSP CHƯƠNG CƠ SỞ LÝ THUYẾT 3.1 Giới thiệu tốn điều độ dự án có ràng buộc nguồn lực RCPSP : .9 3.2 Giải thuật Tabu search: 3.2.1 Giới thiệu chung : .9 3.2.2 Ưu điểm giải thuật Tabu search : 10 CHƯƠNG XÂY DỰNG MƠ HÌNH BÀI TOÁN 10 4.1 Bài tóan điều độ dự án với ràng buộc nguồn lực dựa phương pháp tối thiểu tổng thời gian trễ (MINSLK ) : 10 4.1.1 Mục tiêu giải thuật Minslk toán RCPSP : 10 4.1.2 Các bước giải thuật : .10 4.1.3 Phạm vi ứng dụng hạn chế 12 4.2 Giải thuật Tabu search cho tóan điều độ dự án với ràng buộc nguồn lực: 13 4.2.1 Mục tiêu giải thuật Tabu search toán RCPSP : 13 4.2.2 Giải thuật tổng quát 13 4.2.3 Các bước giải thuật : .14 4.2.4 Phạm vi ứng dụng hạn chế 18 CHƯƠNG XÂY DỰNG PHẦN MỀM ĐIỀU ĐỘ DỰ ÁN 19 5.1 Chương trình điều độ dự án có ràng buộc nguồn lực dựa giải thuật MINSLK : 19 5.1.1 Giới thiệu chương trình: 19 5.1.2 Giao diện thực chương trình: 19 5.2 Chương trình điều độ dự án có ràng buộc nguồn lực dựa giải thuật TABU SEARCH : 24 5.2.1 Giới thiệu chương trình: 24 5.2.2 Giao diện thực chương trình: 25 5.3 Định trị chương trình : 28 5.3.1 Định trị chương trình MINSLK: .29 5.3.2 Định trị chương trình TABU SEARCH: 31 5.3.3 Kết chạy toán mẫu chạy phần mềm : 33 5.4 Phân tích đánh giá chương trình: 34 5.4.1 Min Cmax 34 5.4.2 Thời gian chạy chương trình ( tính giây ) 36 5.4.3 So sánh chương trình điều độ .36 CHƯƠNG ÁP DỤNG VÀO THỰC TẾ ĐIỀU ĐỘ DỰ ÁN TẠI CÔNG TY CHIẾU SÁNG CÔNG CỘNG TP.HCM, SO SÁNH VÀ ĐÁNH GIÁ KẾT QUẢ 37 6.1 Giới thiệu công ty Chiếu sáng công cộng TP.HCM thực trạng điều độ công ty37 6.1.1 Giới thiệu chung .37 6.1.2 Chức năng, nhiệm vụ 37 6.1.3 Đánh giá công tác điều độ dự án Chiếu sáng công cộng TP.HCM 38 6.2 Đánh giá kết điều độ phần mềm so với tình hình thực tế công ty 39 6.2.1 Đánh giá kết 40 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 42 7.1 Kết luận 42 7.2 Kiến nghị .42 7.2.1 Kiến nghị cho công ty 42 7.2.2 Kiến nghị cho đề tài nghiên cứu sau này: 43 TÀI LIỆU THAM KHẢO 44 CHƯƠNG GIỚI THIỆU 1.1 Đặt vấn đề Trong xu hướng phát triển chung xã hội, việc xây dựng , lắp đặt sở hạ tầng giữ vai trò quan trọng Hàng năm, tổng giá trị xây dựng chiếm 40% GDP lượng lớn nguồn vốn ODA Một yếu tố quan trọng xây dựng công tác điều độ nhằm đảm bảo thời gian nguồn lực dự án, nhiên chủ đầu tư nhà thầu xây dựng chưa thực quan tâm đến vấn đề Hầu hết dự án trọng điểm bị trễ so với dự kiến ban đầu nhiều, gây thất thoát lớn thời gian nguồn vốn đầu tư, điểm qua vài dự án điển sau : 1.1.1 Dự án Nhiêu Lộc - Thị Nghè TP.HCM triển khai năm dự án xây dựng hạ tầng nguồn vốn vay ODA từ vài chục triệu USD đến hàng trăm triệu USD đến năm dự án thi công chậm Không vậy, bảy dự án đầu tư 500 tỉ đồng nguồn vốn ngân sách TP ì ạch Cơng trình thi cơng giếng thu nước thải thuộc dự án vệ sinh môi trường TP.HCM lưu vực Nhiêu Lộc - Thị Nghè thi công chậm trễ gây nhiều khó khăn cho người dân lại Đứng đầu “bảng phong thần” dự án “rùa” dự án vệ sinh môi trường TP.HCM - lưu vực Nhiêu Lộc - Thị Nghè (tạm gọi tắt dự án Nhiêu Lộc - Thị Nghè) Dự án có tổng mức đầu tư 188,8 triệu USD vay vốn Ngân hàng Thế giới, gói thầu số liên danh Tianjin-Chec (Trung Quốc) thi công tuyến cống bao trị giá khoảng 30 triệu USD đến ngày 14-11-2006 hết hợp đồng đến đạt 33% khối lượng Theo dự đoán tư vấn giám sát, thời hạn hồn tất hợp đồng gói thầu kéo dài đến cuối năm 2009, tức trễ ba năm Tình trạng bê bối cơng trình làm dư luận xúc suốt thời gian qua Cơ quan chức cho biết gói thầu số chậm trễ nguyên nhân khách quan địa chất cơng trình phức tạp, có điểm địa chất yếu dẫn đến gây lún sụt làm nứt nhà dân thi cơng giếng chính, q trình thi cơng có nhiều phát sinh thiết kế mặt thi cơng chật hẹp Cịn ngun nhân chủ quan nhà thầu chưa đủ nhân kỹ thuật, thiếu lực tài chính, đặc biệt nhà thầu trúng thầu với giá thấp (khoảng 60% giá dự toán) nên không đáp ứng yêu cầu gắt gao công trình Vẫn dự án Nhiêu Lộc - Thị Nghè, chậm trễ gói thầu số kéo theo gói thầu số (xây dựng trạm bơm trị giá 18 triệu USD) bị chậm trễ Theo hợp đồng, đến ngày 25-1-2007 gói thầu số hồn thành đến đạt 44,54% khối lượng Theo dự tính tư vấn giám sát, thời gian hồn tất gói thầu kéo dài đến tháng 7-2008 (Nguồn : Việt Báo.vn , ngày 02/7/2007) 1.1.2 Dự án đại lộ đông - tây chậm tiến độ tháng Dự án đại lộ đông - tây Chính phủ phê duyệt năm 2000, có tổng chiều dài 21,9km (bao gồm 1,49km đường hầm Thủ Thiêm vượt sơng Sài Gịn), qua quận 1, 2, 5, 6, 8, Bình Tân, Bình Chánh Tổng mức đầu tư gần 10.000 tỉ đồng, vốn vay ODA từ Ngân hàng hợp tác quốc tế Nhật Bản (JBIC) khoảng 6.400 tỉ đồng Toàn dự án chia làm gói thầu: Hai gói thầu tư vấn, gói thầu rà phá bom mìn gói thầu xây lắp Trong đó, Cty tư vấn quốc tế Thái Bình Dương (PCI) liên danh số Cty tư vấn nước tham gia tổng cộng gói thầu Gói thầu thiết kế chi tiết đại lộ đông - tây giám sát xây dựng sở hạ tầng khu tái định cư (trị giá khoảng 190 tỉ đồng), gồm thiết kế chi tiết đại lộ đông - tây, giám sát việc xây dựng sở hạ tầng khu tái định cư sử dụng vốn vay JBIC, trợ giúp đấu thầu, trợ giúp sách an tồn giao thơng Và gói thầu thứ hai có tham gia PCI với vai trị tư vấn giám sát xây dựng tồn đại lộ đông - tây (trị giá gần 260 tỉ đồng) Tiến độ chậm đốt hầm Thủ Thiêm bị nứt PCI đơn vị trực tiếp thiết kế chi tiết hạng mục hầm dìm Thủ Thiêm vượt sơng Sài Gịn Tuy nhiên, sau đúc xong đốt hầm (tại Nhơn Trạch - Đồng Nai), nhà khoa học phát đốt hầm bị nứt, kết cấu bêtông bị phá, khiến nước từ bên ngồi thấm qua thành bêtơng dày 1m Liên quan ảnh hưởng vết nứt đến độ bền kết cấu đốt hầm, báo cáo gửi Hội đồng nghiệm thu nhà nước vào tháng 7.2008, theo ông Huỳnh Ngọc Sĩ, PCI cho đánh giá độ bền vào thời điểm (7.2008) khơng có biện pháp sửa chữa thích hợp Do chưa thống việc xác định nguyên nhân đơn vị liên quan, nên thành phố đành phải chọn thuê đơn vị tư vấn độc lập nước đánh giá nguyên nhân đề xuất biện pháp khắc phục (Nguồn : Báo Lao Động , ngày 22/11/2008) 1.1.3 Dự án vệ sinh môi trường thành phố Dự án chậm tiến độ điều mẻ cơng trình sở hạ tầng kỹ thuật địa bàn thành phố Chỉ đáng nói chỗ hạng mục, gói thầu thuộc dự án có tầm cỡ, tức quan tâm nhiều Dẫn đầu chậm trễ Dự án vệ sinh môi trường thành phố, mà dự án có nhiều gói thầu bị chậm trễ tiến độ Điển hình gói thầu số dự án, dù có nhiều cố gắng nhận hỗ trợ công ty mẹ CHEC, gói thầu thực đạt 89% khối lượng Cũng mà thời gian hồn thành phải lùi lại, dự kiến phải đến tháng tới xong Mặc dù có lý xem đáng - thị trường vật liệu biến động, chậm trễ tiến độ gói thầu số làm thành phố “sốt ruột”, buộc phải linh động tách phần cơng trình gói thầu để lập nên gói thầu nhỏ gọi gói thầu 7A Ấy mà đến gói-thầu-chẻ-nhỏ 7A thực chưa tới 15% khối lượng cơng trình! Cùng có tên bảng danh sách chậm tiến độ, không đạt tiến độ thi cơng theo hợp đồng gói thầu thuộc hạng mục nước mưa dự án Đó trường hợp gói thầu 12A 13A Hai gói thầu có tiến độ thi cơng chậm chạp, ì ạch, UBND TP buộc phải dùng đến biện pháp mạnh: chấm dứt hợp đồng với nhà thầu Tổng Công ty Xây dựng Bạch Đằng để tuyển nhà thầu thay Tổng Công ty Xây dựng số (Nguồn : Báo Sài Gịn Giải Phóng , ngày 11/3/2009) 1.1.4 Nhận xét chung Có vấn đề chung mà dự án thường gặp phải tổng thời gian hoàn thành dự án thường bị kéo dài nhiều so với việc lập tiến độ ban đầu, thời gian chờ nhiều nhiều công việc lớn phải chờ nguồn lực, nguyên nhân gây tắc nghẽn, phân chia nguồn lực cơng việc dự án có thời gian thực ln gặp khó khăn Hiện nay, có nhiều phương pháp tiếp cận hiệu việc tìm kiếm lời giải cho mơ hình điều độ dự án có nguồn lực Các giải thuật tìm kiếm Tabu search, Genetic Algorithms ,Shifting Bottleneck Scatter Search v.v áp dụng rộng rãi mang lại hiệu đáng kể toán điều độ dự án có ràng buộc nguồn lực với số cơng việc lớn Vấn đề khó khăn mà công ty gặp phải việc phải sử dụng mơ hình điều độ trường hợp cụ thể để cực tiểu hóa thời gian hồn thành dự án với nguồn lực, tài nguyên sẵn có Xuất phát từ tình hình thực tế bên trên, đề tài luận văn mà tơi chọn là: “Xây dựng tốn điều độ dự án có ràng buộc nguồn lực” Áp dụng công ty Chiếu sáng Công cộng Thành phố Hồ Chí Minh 1.2 Mục tiêu luận văn nội dung thực 1.2.1 Mục tiêu luận văn Nghiên cứu ứng dụng giải thuật MINSLK Tabu search vào tóan điều độ dự án Xây dựng chương trình máy tính hỗ trợ cơng tác điều độ dự án dựa giải thuật 1.2.2 Nội dung thực Tìm hiểu trạng cơng tác điều độ dự án công ty Chiếu sáng công cộng TP.HCM Rà sóat lý thuyết điều độ dự án giải thuật đươc áp dụng để điều độ dự án với ràng buộc nguồn lực Xây dựng mơ hình điều độ dự án dựa giải thuật MINSLK Tabu search Xây dựng chương trình máy tính hỗ trợ công tác điều độ dự án dựa giải thuật Đánh giá so sánh kết phần mềm điều độ với tình hình thực tế công ty 1.3 Bố cục luận văn : Nội dung luận văn thực bao gồm chương phân theo bố cục sau: Chương 1: Giới thiệu Chương 2: Các nghiên cứu liên quan Chương 3: Phương pháp luận sở lý thuyết Chương 4: Xây dựng mơ hình tốn Chương 5: Xây dựng phần mềm điều độ dự án Chương 6: Áp dụng vào thực tế điều độ dự án công ty chiếu sáng công cộng TP.HCM, so sánh đánh giá kết Chương 7: Kết luận kiến nghị 1.4 Phạm vi giới hạn đề tài : Đề tài chủ yếu tập trung vào trình điều độ dự án với ràng buộc nguồn lực Mục tiêu cực tiểu hóa thời gian hồn thành dự án giới hạn nguồn lực Kết chương trình điều độ thời gian tối ưu hóa thời gian hồn thành dự án có ràng buộc nguồn lực, sơ đồ Gantt dự án Thời gian quan sát thu thập thông tin từ tháng đến tháng 12 năm 2008 Việc thực đề tài có đóng góp ý kiến, đánh giá kỹ sư công nhân làm việc trực tiếp với dự án 1.5 Phương pháp nghiên cứu Tiếp cận vấn đề, mục tiêu luận văn phương pháp diễn dịch Quan sát thực tế, trạng, xác định vấn đề cốt lõi, nghiên cứu, tìm hiểu kỹ thuật điều độ dự án với ràng buộc nguồn lực có áp dụng giới, phương pháp để giải vấn đề Từ kết điều độ đạt tối ưu theo lý thuyết, ta tiến hành so sánh với kết thực tế, đánh giá khả vận dụng chương trình mơi trường thực tiễn CHƯƠNG 2.1 CÁC NGHIÊN CỨU LIÊN QUAN “Study of project scheduling optimization using Tabu Search algorithm” Tác giả : Nai-Hsin Pan, Po-Wen Hsaio, Kuei-Yen Chen Mục tiêu báo tìm phương pháp hiệu để giải tốn điều độ dự án có ràng buộc nguồn lực ( RCPSP ) Trong thay sử dụng phương pháp Tabu search truyền thống hay giải thuật kinh nghiệm thông thường, báo đưa phương pháp Tabu search cải tiến cách điều chỉnh lời giải ban đầu để giải toán nêu Bài báo đề xuất phương pháp MINSLK để đưa lời giải ban đầu cho tốn Ứng dụng cho thấy mơ hình đưa kết tốt việc giảm thời gian hồn thành cho tốn RCPSP so với phương pháp Tabu search truyền thống hay giải thuật kinh nghiệm thông thường Bài báo đề xuất cách thiết lập giá trị tham số tối ưu cho mô hình thơng qua việc phân tích độ nhạy 2.2 “Scheduling with Resource Constraints and Precedences” – Chapter 10 of Project Management for Construction Book: Tác giả: Chris Hendrickson Nội dung: Tài liệu nêu lên vấn đề toán điều độ dự án với ràng buộc nguồn lực đưa phương pháp điều độ tác giả đánh giá tốt phương pháp khác Đầu tiên việc điều độ đường tới hạn khả thi, thực tế hay nhiều loại nguồn lực cần thiết cho số công việc khác nhau, điều dẫn đến thời gian kết thúc dự án kết thúc theo tính tốn điều độ đường tới hạn, phương pháp điều độ đường tới hạn giả định không xảy vấn đề tranh chấp nguồn lực, nguồn lực xem vô hạn điểm nghẽn xuất Chính việc tìm phương pháp điều độ khả thi vấn đề cần giải toán điều độ với ràng buộc nguồn lực Vấn đề quan tâm xác định bảng điều độ với chi phí thấp Đã có nhiều phương pháp kinh nghiệm đề xuất cho toán điều độ với ràng buộc nguồn lực, có phương pháp đánh giá tốt phương pháp cịn lại trình bày tài liệu, phương pháp điều độ thời gian bắt đầu trễ 2.3 Improved Tabu Search algorithm applition in RCPSP Tác giả : Nai-Hsin Pan, Ming Li Lee, Kuei-Yen Chen Bài báo đưa phương pháp TS cải tiến nhằm giải toán điều độ dự án với ràng buộc nguồn lực nhanh huơn hiệu CHƯƠNG 3.1 CƠ SỞ LÝ THUYẾT Giới thiệu toán điều độ dự án có ràng buộc nguồn lực RCPSP : Bài tốn điều độ dự án có ràng buộc nguồn lực (RCPSP) cho sau Một dự án đơn bao gồm tập J = (0, 1,…, n, n+1) công việc phải thực Công việc n+1 hư cấu tương ứng với ngày bắt đầu dự án (project start) ngày kết thúc dự án “project end” Các cơng việc có quan hệ với hai loại ràng buộc Thứ nhất, ràng buộc trước sau công việc j bắt đầu tất cơng việc trước thực xong Thứ hai, nguồn lực thực cho cơng việc có hạn Chúng ta có K loại nguồn lực, cho tập K = (1,…, K) Trong thực thực hiện, cơng việc j địi hỏi rj,k đơn vị nguồn lực k  K , nguồn lực k bị giới hạn không vượt Rk thời điểm Các thông số pj, rj,k Rk giả sử xác định; với công việc bắt đầu kết thúc dự án có pj = rj,k cho tất k  K Mục tiêu RCPSP tìm thứ tự trước sau nguồn lực khả thi cho tất công việc để makespan dự án cực tiểu a/ Mục tiêu RCPSP : Sử dụng nguồn lực cách hiệu để làm giảm khả trễ tiến độ dự án thiếu nguồn lực Sử dụng nguồn lực cách hiệu để đạt mục tiêu đề ( tiến độ, chi phí … ) 3.2 Giải thuật Tabu search: 3.2.1 Giới thiệu chung : Tabu Search (TS) trình bày Glover (1989a, 1989b), chất giải thuật tìm kiếm cục dựa phương pháp tiến lên/đi xuống sườn dốc foreach (Task task in project.Tasks) { if (task.PreviousTasks.Count == 0) { startTasks.Add(task); } } return startTasks; } private void RemoveResource(Task task, Resource resource) { for (int i = task.Resources.Count - 1; i >= 0; i ) { if (task.Resources[i].Id == resource.Id) { task.Resources.RemoveAt(i); } } } private void Sync(Task task) { foreach (Resource resource in project.Resources) { foreach (Resource r in task.Resources) { if (r.Id == resource.Id) { r.Name = resource.Name; r.Weight = resource.Weight; break; } } } } internal void Run() { //clear old data foreach (Task task in project.Tasks) { task.ActualStartTime = Int32.MaxValue; } //check project's resources if (project.Resources.Count == 0) { MessageBoxHelper.ShowInfo("Project has no total resources Please add more resources."); return; } //check tasks' resources foreach (Task task in project.Tasks) { foreach (Resource resource in task.Resources) { Resource r = project.GetProjectResource(resource.Id); if (r != null && r.Number < resource.Number) { 146 MessageBoxHelper.ShowInfo("Task " + task.Name + " has " + resource.Number + " resource(s) " + resource.Name + " , which is greater than the total resources"); return; } } } //check loops List loops = new List(); foreach (Task task in project.Tasks) { if (CheckLoop(task, new List())) { loops.Add(task); } } if (loops.Count > 0) { MessageBoxHelper.ShowInfo("Loop detected: " + ToString(loops)); return; } FormTabu formTabu = new FormTabu(project); formTabu.ShowDialog(); } #endregion } } ResourceCanvas.cs using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; using Tabu.Entity; namespace Tabu { class ResourceCanvas : Panel { private const int TIMEUNIT_WIDTH = 20; public static Font ARIAL8_FONT = new Font("Arial", 8); public static Font ARIAL9_FONT = new Font("Arial", 9); public static SolidBrush BLACK_BRUSH = new SolidBrush(Color.Black); public static Pen BLACK_PEN = new Pen(Color.Black, 1); private const int TASK_HEIGHT = 15; private const int MARGIN_LEFT = 20; private const int MARGIN_TOP = 20; private const int MARGIN_BOTTOM = 60; public static SolidBrush AQUA_BRUSH = new SolidBrush(Color.Aquamarine); public static SolidBrush BLUE_BRUSH = new SolidBrush(Color.Blue); private int NUMBERUNIT_HEIGHT = 15; private int graphHeight = 1000; private List tasks = new List(); private List hAxisPoints = new List(); private List vAxisPoints = new List(); 147 private private private private private List blockPoints = new List(); Project project; VScrollBar vScrollBar; HScrollBar hScrollBar; Point original = new Point(); public ResourceCanvas() { vScrollBar = new VScrollBar(); vScrollBar.Dock = DockStyle.Right; vScrollBar.Name = "vScrollBar"; vScrollBar.Size = new Size(17, 133); vScrollBar.TabIndex = 1; vScrollBar.Minimum = 0; vScrollBar.Maximum = * this.Height; vScrollBar.LargeChange = this.Height; vScrollBar.SmallChange = 20; vScrollBar.Scroll += new ScrollEventHandler(VScrollBar_Scroll); hScrollBar = new HScrollBar(); hScrollBar.Dock = DockStyle.Bottom; hScrollBar.Name = "hScrollBar"; hScrollBar.Size = new Size(133, 17); hScrollBar.TabIndex = 2; hScrollBar.Minimum = 0; hScrollBar.Maximum = 15 * this.Width; hScrollBar.LargeChange = this.Width; hScrollBar.SmallChange = 20; hScrollBar.Scroll += new ScrollEventHandler(HScrollBar_Scroll); this.Controls.Add(vScrollBar); this.Controls.Add(hScrollBar); } private void HScrollBar_Scroll(object sender, ScrollEventArgs e) { int distance = e.NewValue - e.OldValue; original.X -= distance; this.Invalidate(); } private void VScrollBar_Scroll(object sender, ScrollEventArgs e) { int distance = e.NewValue - e.OldValue; original.Y -= distance; this.Invalidate(); } public List Tasks { get { return tasks; } set { this.tasks = value; } } public Project Project { get 148 { return project; } set { project = value; } } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (tasks == null || tasks.Count == 0) { return; } int projectEndTime = Project.GetProjectDuration(tasks); int max = 0; for (int i = 1; i

Ngày đăng: 15/02/2021, 07:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN