Hitung Proyek Secara Terprogram menggunakan C#

Kami dapat menghitung jadwal atau biaya proyek menggunakan mode perhitungan yang ditentukan dalam opsi Proyek untuk Microsoft Project. Jadwal proyek menunjukkan tanggal mulai dan berakhirnya semua tugas proyek. Microsoft Project memungkinkan perhitungan proyek secara manual atau otomatis. Sebagai pengembang C#, kita dapat dengan mudah mengatur mode perhitungan proyek di aplikasi .NET dan menghitung properti proyek. Pada artikel ini, kita akan mempelajari cara menghitung proyek secara terprogram menggunakan C#.

Topik-topik berikut akan dibahas dalam artikel ini:

C# API untuk Menghitung Proyek Secara Terprogram

Untuk menyetel mode penghitungan proyek, kami akan menggunakan Aspose.Tasks for .NET API. Ini menyediakan tiga mode perhitungan proyek, untuk menghitung nilai properti dependen. Mode perhitungan ini adalah:

  • Tidak ada – ini hanya menetapkan properti yang diperlukan dan tidak menghitung ulang tanggal dan biaya proyek.
  • Manual – ini hanya menetapkan properti objek dependen tanpa menghitung ulang tanggal dan biaya proyek.
  • Otomatis – menghitung ulang tanggal proyek dan properti biaya secara otomatis.

API mendefinisikan mode penghitungan yang disebutkan di atas dalam enumerasi CalculationMode. Properti CalculationMode dari kelas Project memungkinkan pengaturan atau mendapatkan nilai CalculationMode. API juga memungkinkan manipulasi proyek yang ada untuk menambahkan beberapa modifikasi. Selain itu, ini memfasilitasi pelaksanaan operasi manajemen proyek dasar dan lanjutan secara mulus. Harap unduh DLL API atau instal menggunakan NuGet.

PM> Install-Package Aspose.Tasks

Perhitungan Proyek Manual menggunakan C#

Kita dapat mengatur mode perhitungan ke manual dan memverifikasinya dengan mengikuti langkah-langkah berikut:

  1. Pertama, buat instance dari kelas Project.
  2. Selanjutnya, atur mode kalkulasi ke Manual.
  3. Kemudian, tentukan tanggal mulai proyek.
  4. Selanjutnya, tambahkan tugas baru, misalnya Tugas 1, dan Tugas 2.
  5. Kemudian, baca properti tugas yang diatur dalam mode manual.
  6. Setelah itu, inisialisasi objek dari kelas TaskLinks dan tautkan tugas.
  7. Terakhir, verifikasi tanggal mulai dan akhir Tugas 2.

Contoh kode berikut menunjukkan cara menghitung proyek secara manual menggunakan C#.

// Contoh kode ini menunjukkan cara menyetel Mode Perhitungan Proyek Manual.
// Buat instance Proyek
Project project = new Project();

// Setel mode kalkulasi ke Manual
project.CalculationMode = CalculationMode.Manual;

// Tetapkan tanggal mulai proyek
project.Set(Prj.StartDate, new DateTime(2015, 4, 15));

// Tambahkan tugas baru
Aspose.Tasks.Task task1 = project.RootTask.Children.Add("Task 1");
Aspose.Tasks.Task task2 = project.RootTask.Children.Add("Task 2");

// Properti yang diperlukan diatur dalam mode manual
Console.WriteLine("Task1.Id Equals 1 : {0} ", task1.Get(Tsk.Id).Equals(1));
Console.WriteLine("Task1 OutlineLevel Equals 1 : {0} ", task1.Get(Tsk.OutlineLevel).Equals(1));
Console.WriteLine("Task1 Start Equals 15/04/2015 08:00 AM : {0} ", task1.Get(Tsk.Start).Equals(new DateTime(2015, 4, 15, 8, 0, 0)));
Console.WriteLine("Task1 Finish Equals 15/04/2015 05:00 PM : {0} ", task1.Get(Tsk.Finish).Equals(new DateTime(2015, 4, 15, 17, 0, 0)));
Console.WriteLine("Task1 Duration Equals 1 day : {0} ", task1.Get(Tsk.Duration).ToString().Equals("1 day"));
Console.WriteLine("Task2 Start Equals 15/04/2015 08:00 AM : {0} ", task2.Get(Tsk.Start).Equals(new DateTime(2015, 4, 15, 8, 0, 0)));
Console.WriteLine("Task2 Finish Equals 15/04/2015 05:00 PM : {0} ", task2.Get(Tsk.Finish).Equals(new DateTime(2015, 4, 15, 17, 0, 0)));
Console.WriteLine("Task2 Duration Equals 1 day : {0} ", task2.Get(Tsk.Duration).ToString().Equals("1 day"));

// Tautkan dua tugas bersama tanggalnya tidak boleh dihitung ulang dalam mode manual
TaskLink link = project.TaskLinks.Add(task1, task2, TaskLinkType.FinishToStart);

// Tidak ada perubahan pada tanggal Tugas 2
Console.WriteLine("Task1 Start Equals Task2 Start : {0} ", task1.Get(Tsk.Start).Equals(task2.Get(Tsk.Start)));
Console.WriteLine("Task1 Finish Equals Task2 Finish : {0} ", task1.Get(Tsk.Finish).Equals(task2.Get(Tsk.Finish)));
Task1.Id Equals 1 : True
Task1 OutlineLevel Equals 1 : True
Task1 Start Equals 15/04/2015 08:00 AM : True
Task1 Finish Equals 15/04/2015 05:00 PM : True
Task1 Duration Equals 1 day : True
Task2 Start Equals 15/04/2015 08:00 AM : True
Task2 Finish Equals 15/04/2015 05:00 PM : True
Task2 Duration Equals 1 day : True
Task1 Start Equals Task2 Start : True
Task1 Finish Equals Task2 Finish : True

Perhitungan Proyek Otomatis menggunakan C#

Kita dapat mengatur mode perhitungan menjadi otomatis dan memverifikasinya dengan mengikuti langkah-langkah berikut:

  1. Pertama, buat instance dari kelas Project.
  2. Selanjutnya, atur mode kalkulasi ke Otomatis.
  3. Kemudian, tetapkan tanggal mulai proyek.
  4. Sekarang, tambahkan tugas baru, misalnya Tugas 1, dan Tugas 2.
  5. Setelah itu, inisialisasi objek dari kelas TaskLinks dan tautkan tugas.
  6. Terakhir, verifikasi tanggal yang dihitung ulang.

Contoh kode berikut menunjukkan cara menghitung proyek secara otomatis menggunakan C#.

// Contoh kode ini menunjukkan cara menyetel Mode Perhitungan Proyek Otomatis.
// Buat instance Proyek
Project project = new Project();

// Setel mode perhitungan ke Otomatis
project.CalculationMode = CalculationMode.Automatic;

// Tetapkan tanggal mulai proyek
project.Set(Prj.StartDate, new DateTime(2015, 4, 15));

// Tambahkan tugas baru
Aspose.Tasks.Task task1 = project.RootTask.Children.Add("Task 1");
Aspose.Tasks.Task task2 = project.RootTask.Children.Add("Task 2");

// Tautkan tugas
TaskLink link = project.TaskLinks.Add(task1, task2, TaskLinkType.FinishToStart);

// Verifikasi tanggal yang dihitung ulang
Console.WriteLine("Task1 Start + 1 Equals Task2 Start : {0} ", task1.Get(Tsk.Start).AddDays(1).Equals(task2.Get(Tsk.Start)));
Console.WriteLine("Task1 Finish + 1 Equals Task2 Finish : {0} ", task1.Get(Tsk.Finish).AddDays(1).Equals(task2.Get(Tsk.Finish)));
Console.WriteLine("RootTask Finish Equals Task2 Finish : {0} ", task2.Get(Tsk.Finish).Equals(project.RootTask.Get(Tsk.Finish)));
Console.WriteLine("Project Finish Date Equals Task2 Finish : {0} ", task2.Get(Tsk.Finish).Equals(project.Get(Prj.FinishDate)));
Task1 Start + 1 Equals Task2 Start : True
Task1 Finish + 1 Equals Task2 Finish : True
RootTask Finish Equals Task2 Finish : True
Project Finish Date Equals Task2 Finish : True

Tidak Ada Mode Perhitungan Proyek di C#

Kita dapat mengatur mode perhitungan menjadi otomatis dan memverifikasinya dengan mengikuti langkah-langkah berikut:

  1. Pertama, buat instance dari kelas Project.
  2. Selanjutnya, atur mode perhitungan ke Tidak Ada.
  3. Kemudian, tentukan tanggal mulai proyek.
  4. Selanjutnya, tambahkan tugas baru, misalnya Tugas 1.
  5. Kemudian, baca properti tugas.
  6. Setelah itu, atur durasi tugas dalam hitungan hari.
  7. Terakhir, verifikasi tanggal mulai dan berakhirnya Tugas.

Contoh kode berikut menunjukkan cara menyetel perhitungan proyek menjadi tidak ada menggunakan C#.

// Contoh kode ini menunjukkan cara menyetel Mode Perhitungan Proyek ke Tidak Ada.
// Buat instance Proyek
Project project = new Project();

// Setel mode penghitungan ke Tidak Ada
project.CalculationMode = CalculationMode.None;

// Tambahkan tugas baru
Aspose.Tasks.Task task = project.RootTask.Children.Add("Task");

// Perhatikan bahwa bahkan id tidak dihitung
Console.WriteLine("Task.Id Equals 0 : {0} ", task.Get(Tsk.Id).Equals(0));
Console.WriteLine("Task.OutlineLevel Equals 0 : {0} ", task.Get(Tsk.OutlineLevel).Equals(0));
Console.WriteLine("Task Start Equals DateTime.MinValue : {0} ", task.Get(Tsk.Start).Equals(DateTime.MinValue));
Console.WriteLine("Task Finish Equals DateTime.MinValue : {0} ", task.Get(Tsk.Finish).Equals(DateTime.MinValue));
Console.WriteLine("Task Duration Equals 0 mins : {0} ", task.Get(Tsk.Duration).ToString().Equals("0 mins"));

// Tetapkan properti durasi
task.Set(Tsk.Duration, project.GetDuration(2, TimeUnitType.Day));
Console.WriteLine("Task Duration Equals 2 days : {0} ", task.Get(Tsk.Duration).ToString().Equals("2 days"));
Console.WriteLine("Task Start Equals DateTime.MinValue  : {0} ", task.Get(Tsk.Start).Equals(DateTime.MinValue));
Console.WriteLine("Task Finish Equals DateTime.MinValue  : {0} ", task.Get(Tsk.Finish).Equals(DateTime.MinValue));
Task.Id Equals 0 : True
Task.OutlineLevel Equals 0 : False
Task Start Equals DateTime.MinValue : True
Task Finish Equals DateTime.MinValue : True
Task Duration Equals 0 mins : True
Task Duration Equals 2 days : True
Task Start Equals DateTime.MinValue  : True
Task Finish Equals DateTime.MinValue  : True

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk mencoba perpustakaan tanpa batasan evaluasi.

Kesimpulan

Pada artikel ini, kami telah mempelajari cara mengatur mode perhitungan proyek secara terprogram. Kami juga telah melihat bagaimana nilai properti dependen dihitung dalam setiap mode perhitungan menggunakan C#. Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.Tasks for .NET API menggunakan dokumentasi. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum.

Lihat juga