Java kullanarak Projenin Gantt Şemasını Okuyun

MS Project, proje faaliyetlerini verimli bir şekilde organize etmek, yönetmek ve izlemek için yaygın olarak kullanılan popüler bir proje yönetimi yazılımıdır. Görevlerin oluşturulmasına, kaynakların eklenmesine, görevlerin kaynaklara tahsis edilmesine, ilerlemenin izlenmesine ve bütçe ile ilgili faaliyetlerin yönetilmesine olanak tanır. Gantt şeması görünümü, projenin varsayılan görünümüdür. Proje görevlerini listeler ve birbirleriyle olan ilişkilerini gösterir. Ayrıca, Gantt çubuklarını kullanarak projenin zamanlamasını da gösterir. Bu yazımızda Java kullanarak MS projesinin Gantt şemasını nasıl okuyacağımızı öğreneceğiz.

Bu yazıda aşağıdaki konular ele alınacaktır:

Microsoft Project’te Gantt Şeması Nedir?

Gantt grafiği, proje zamanlamasını gösteren bir tür çubuk grafiktir. Proje görevlerinin zamana karşı grafiksel bir temsilidir ve tüm projenin kuşbakışı görünümünü sunar. Microsoft Project’teki Gantt şeması görünümü aşağıdakileri gösterir:

  • Proje takvimi
  • Zaman tahminleri
  • Proje kaynakları ve ekip üyeleri
  • Görev öncelikleri
  • Görev bağımlılığı

Projenin Gantt Şemasını Okumak için Java API

MPP dosyasından bir Projenin Gantt şeması görünümünü okumak için Aspose.Tasks for Java API’sini kullanacağız. Java uygulamalarında programlı olarak Microsoft Project dosyalarının oluşturulmasına, düzenlenmesine veya değiştirilmesine izin verir. API’nin Project sınıfı bir projeyi temsil eder. Farklı işlevleri gerçekleştirmek için çeşitli yöntemler sunan ana sınıftır. Ayrıca MPP, MPT, MPX ve XML gibi desteklenen proje yönetimi biçimlerinden birinin okunmasına olanak tanır. API’nin GanttChartView sınıfı, bir Gantt şeması görünümünü temsil eder. Gantt şemasıyla programlı olarak çalışmak için çeşitli özellikler ve yöntemler sunar.

Lütfen API’nin JAR’ını indirin veya Maven tabanlı bir Java uygulamasında aşağıdaki pom.xml yapılandırmasını ekleyin.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tasks</artifactId>
    <version>22.5</version>
    <classifier>jdk18</classifier>
</dependency>

Gantt Grafiği Görünümünü Okuyun ve Çubuk Stillerini Alın

API’nin GanttBarStyle sınıfı, MS Project tarafından Gantt şeması görünümünde kullanılan bir çubuk stilini temsil eder. Aşağıda verilen adımları izleyerek Gantt şeması görünümünü okuyabilir ve çubuk stillerini alabiliriz:

  1. Öncelikle, Project sınıfını kullanarak proje dosyasını yükleyin.
  2. Ardından, ViewCollection’dan varsayılan görünümü dizinine göre alın.
  3. Ardından, GanttChartView sınıfının ve typecast görünümünün bir örneğini oluşturun.
  4. İsteğe bağlı olarak, temel özellikleri okuyun ve verileri gösterin.
  5. Bundan sonra, getBarStyles() kullanarak Gantt şeması görünümünün çubuk stillerinin bir listesini alın.
  6. Son olarak, GanttBarStyle sınıf nesnesi olarak çubuk stilleri arasında geçiş yapın ve değerleri gösterin.

Aşağıdaki kod örneği, Java’da Gantt şeması görünümünün çubuk stillerinin nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    View view = project.getViews().toList().get(0);
    GanttChartView gcView = (GanttChartView) view;

    // Temel bilgileri göster
    System.out.println("Bar Rounding: " + gcView.getBarRounding());
    System.out.println("Show Bar Splits: " + gcView.getShowBarSplits());
    System.out.println("Show Drawings: " + gcView.getShowDrawings());
    System.out.println("RollUp Gantt Bars: " + gcView.getRollUpGanttBars());
    System.out.println("Hide Rollup Bars When Summary Expanded: " + gcView.getHideRollupBarsWhenSummaryExpanded());
    System.out.println("Bar Size: " + gcView.getBarSize());
    System.out.println("Bar Styles count: " + gcView.getBarStyles().size());
    System.out.println("-----------------------------------------------");

    // Çubuk stillerini göster
   for (GanttBarStyle barStyle : gcView.getBarStyles())
    {	
      System.out.println("Row: " +  barStyle.getRow());
        System.out.println("Name: " +  barStyle.getName());
        System.out.println("ShowFor: " +  barStyle.getShowForTaskUid());
        System.out.println("From:" +  getbarStylesFromToName(barStyle.getFrom()));
        System.out.println("To:" +   getbarStylesFromToName(barStyle.getTo()));
        System.out.println("Middle Shape:" +   getbarStylesMiddleShapeName(barStyle.getMiddleShape()));
        System.out.println("Middle Shape Color:" + barStyle.getMiddleShapeColor());
        System.out.println("Start Shape:" +   getbarStylesShapeName(barStyle.getStartShape()));
        System.out.println("End Shape:" +   getbarStylesShapeName(barStyle.getEndShape()));
        System.out.println("End Shape Color:" + barStyle.getEndShapeColor());
        System.out.println("-----------------------------------------------");
    }
}

// Bu işlev, Alan adını döndürür
private static String getbarStylesFromToName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = Field.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}

// Bu işlev, Orta şekil adını döndürür
private static String getbarStylesMiddleShapeName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = GanttBarMiddleShape.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}

// Bu işlev, Başlangıç veya Bitiş şekil adını döndürür
private static String getbarStylesShapeName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = GanttBarEndShape.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}
Bar Rounding: true
Show Bar Splits: true
Show Drawings: true
RollUp Gantt Bars: false
Hide Rollup Bars When Summary Expanded: false
Bar Size: 3
Bar Styles count: 40
-----------------------------------------------
Row: 1
Name: Task
ShowFor: null
From:TaskStart
To:TaskFinish
Middle Shape:RectangleBar
Middle Shape Color:java.awt.Color[r=0,g=0,b=255]
Start Shape:NoBarEndShape
End Shape:NoBarEndShape
End Shape Color:java.awt.Color[r=0,g=0,b=0]
-----------------------------------------------
...

Java’da Gantt Şeması Görünümünün Izgara Çizgilerini Okuyun

API’nin Kılavuz Çizgileri sınıfı, bir Gantt şeması görünümünde görünen ızgara çizgilerini temsil eder. Aşağıdaki adımları takip ederek ızgara çizgisinin rengini, aralığını, desenini ve tipini okuyabiliriz:

  1. Öncelikle, Project sınıfını kullanarak proje dosyasını yükleyin.
  2. Ardından, ViewCollection’dan varsayılan görünümü dizinine göre alın.
  3. Ardından, GanttChartView sınıfının ve typecast görünümünün bir örneğini oluşturun.
  4. Bundan sonra, getGridlines() kullanarak Gantt şeması görünümünün Kılavuz çizgilerinin bir listesini alın.
  5. Son olarak, Gridlines sınıf nesnesi olarak ızgara çizgileri arasında dolaşın ve değerleri gösterin.

Aşağıdaki kod örneği, Java’da Gantt şeması görünümünün kılavuz çizgilerinin nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // Kılavuz çizgileri bilgilerini göster
    System.out.println("Gridlines Count: " + gcView.getGridlines().size());
    Gridlines gridlines = gcView.getGridlines().get(0);

    System.out.println("Gridlines Type: " + gridlines.getType());
    System.out.println("Gridlines Interval: " + gridlines.getInterval());
    System.out.println("Gridlines NormalColor: " + gridlines.getNormalColor());
    System.out.println("Gridlines NormalPattern: " + getLinePatternName(gridlines.getNormalPattern()));
    System.out.println("Gridlines IntervalPattern: " +gridlines.getIntervalPattern());
    System.out.println("Gridlines IntervalColor: " + gridlines.getIntervalColor());
}

// Bu işlev, Çizgi deseni adını döndürür
private static String getLinePatternName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = LinePattern.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}
Gridlines Count: 14
Gridlines Type: 3
Gridlines Interval: 0
Gridlines NormalColor: java.awt.Color[r=192,g=192,b=192]
Gridlines NormalPattern: Solid
Gridlines IntervalPattern: 0
Gridlines IntervalColor: java.awt.Color[r=192,g=192,b=192]

Java’da Gantt Şeması Görünümünün Metin Stilini Çıkarın

API’nin TextStyle sınıfı, bir Gantt şeması görünümündeki bir öğe için metnin görsel stilini temsil eder. Renk, arka plan rengi, yazı tipi ve yazı stilini aşağıdaki adımları takip ederek okuyabiliriz:

  1. Öncelikle, Project sınıfını kullanarak proje dosyasını yükleyin.
  2. Ardından, ViewCollection’dan varsayılan görünümü dizinine göre alın.
  3. Ardından, GanttChartView sınıfının ve typecast görünümünün bir örneğini oluşturun.
  4. Bundan sonra, getTextStyles() kullanarak Gantt şeması görünümünün metin stillerinin bir listesini alın.
  5. Son olarak, ilk metin stili için TextStyle sınıf nesnesini başlatın ve değerleri gösterin.

Aşağıdaki kod örneği, Java’da Gantt şeması görünümünün metin stillerinin nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // Metin Stili bilgilerini göster
    System.out.println("Text Styles Count: " + gcView.getTextStyles().size());
    TextStyle textStyle = gcView.getTextStyles().get(0);

    System.out.println("Background Color: " + textStyle.getBackgroundColor());
    System.out.println("Text Color: " + textStyle.getColor());
    System.out.println("Font Family: " + textStyle.getFont().getFontFamily());
    System.out.println("Font Size: " + textStyle.getFont().getSize());
    System.out.println("Font Style: " + getFontStyleName(textStyle.getFont().getStyle()));
}

// Bu işlev, Yazı Tipi Stili adını döndürür
private static String getFontStyleName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = FontStyles.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}
Text Styles Count: 19
Background Color: java.awt.Color[r=0,g=0,b=0]
Text Color: java.awt.Color[r=0,g=0,b=255]
Font Family: Arial
Font Size: 8.0
Font Style: Regular

Java’da Gantt Grafiği Görünümünün İlerleme Çizgilerini Alın

İlerleme çizgileri, Gantt Şeması görünümünde görevlerin programın gerisinde mi yoksa tam zamanında mı olduğunu gösterir. Aşağıda verilen adımları izleyerek ilerleme çizgilerinin çeşitli özelliklerini okuyabiliriz:

  1. Öncelikle, Project sınıfını kullanarak proje dosyasını yükleyin.
  2. Ardından, ViewCollection’dan varsayılan görünümü dizinine göre alın.
  3. Ardından, GanttChartView sınıfının ve typecast görünümünün bir örneğini oluşturun.
  4. Bundan sonra, getProgressLines() kullanarak Gantt şeması görünümünün ilerleme çizgilerinin bir listesini alın.
  5. Son olarak, ilerleme çizgisi öznitelik değerlerini gösterin.

Aşağıdaki kod örneği, Java’da Gantt şeması görünümünün ilerleme satırlarının nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // İlerleme satırları bilgilerini göster
    System.out.println("ProgressLines.BeginAtDate: " + gcView.getProgressLines().getBeginAtDate().toString());
    System.out.println("ProgressLines.isBaselinePlan: " + gcView.getProgressLines().isBaselinePlan());
    System.out.println( "ProgressLines.DisplaySelected: " + gcView.getProgressLines().getDisplaySelected());
    System.out.println("ProgressLines.SelectedDates.Count: " + gcView.getProgressLines().getSelectedDates().size());

    System.out.println("ProgressLines.DisplayAtRecurringIntervals: " + gcView.getProgressLines().getDisplayAtRecurringIntervals());
    System.out.println("ProgressLines.RecurringInterval.Interval: " +  gcView.getProgressLines().getRecurringInterval().getInterval()  );
    System.out.println("ProgressLines.RecurringInterval.WeeklyDays.Count" +  gcView.getProgressLines().getRecurringInterval().getWeeklyDays().size());
    System.out.println("RecurringInterval.DayType.Friday: "  +  (int) gcView.getProgressLines().getRecurringInterval().getWeeklyDays().get(1));
    System.out.println("RecurringInterval.DayType.Saturday: "  + (int)gcView.getProgressLines().getRecurringInterval().getWeeklyDays().get(2));
    System.out.println("RecurringInterval.DayType.Sunday: " +  (int)gcView.getProgressLines().getRecurringInterval().getWeeklyDays().get(0));

    System.out.println("ProgressLines.ShowDate" + gcView.getProgressLines().getShowDate());

    System.out.println("ProgressLines.ProgressPointShape: " +  gcView.getProgressLines().getProgressPointShape());
    System.out.println("ProgressLines.ProgressPointColor: " +  gcView.getProgressLines().getProgressPointColor());
    System.out.println("ProgressLines.LineColor: " + gcView.getProgressLines().getLineColor());
    System.out.println("ProgressLines.LinePattern" +  gcView.getProgressLines().getLinePattern());

    System.out.println("ProgressLines.OtherProgressPointShape: " + gcView.getProgressLines().getOtherProgressPointShape());
    System.out.println("ProgressLines.OtherProgressPointColor: " + gcView.getProgressLines().getOtherProgressPointColor().toString());
    System.out.println("ProgressLines.OtherLineColor: " + gcView.getProgressLines().getOtherLineColor());
}

Java’da Alt Zaman Ölçeği Katmanını Okuyun

Zaman ölçeği, zaman birimlerini, günleri, ayları, takvim yılını veya mali yılı gösterir. Sayı, birim, etiket, hizalama vb. gibi her katman için zaman ölçeği değerlerini göstermek için proje görünümünde üç zaman ölçeği katmanı vardır. Aşağıda verilen adımları izleyerek alt zaman ölçeği katmanını okuyabiliriz:

  1. Öncelikle, Project sınıfını kullanarak proje dosyasını yükleyin.
  2. Ardından, ViewCollection’dan varsayılan görünümü dizinine göre alın.
  3. Ardından, GanttChartView sınıfının ve typecast görünümünün bir örneğini oluşturun.
  4. Bundan sonra, görünümün alt zaman ölçeği katmanının ayarlarını getBottomTimescaleTier() kullanarak alın.
  5. Son olarak, alt zaman ölçeği katman değerlerini gösterin.

Aşağıdaki kod örneği, Java’da Gantt grafiği görünümünün alt zaman ölçeği katmanının nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // Alt Zaman Ölçeği Katman bilgilerini göster
    System.out.println("BottomTimescaleTier Count: " + gcView.getBottomTimescaleTier().getCount());
    System.out.println("BottomTimescaleTier Unit: " + getTimescaleUnitName(gcView.getBottomTimescaleTier().getUnit()));
    System.out.println("BottomTimescaleTier UsesFiscalYear: " + gcView.getBottomTimescaleTier().getUsesFiscalYear());
    System.out.println("BottomTimescaleTier Alignment: " + getAlignmentName(gcView.getBottomTimescaleTier().getAlignment()));
    System.out.println("BottomTimescaleTier ShowTicks: " + gcView.getBottomTimescaleTier().getShowTicks());
    System.out.println("BottomTimescaleTier Label: " + getDateLabelName(gcView.getBottomTimescaleTier().getLabel()));
}

// Bu işlev, Zaman Ölçeği Veri Etiketi adını döndürür
private static String getDateLabelName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = DateLabel.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}

// Bu işlev, Hizalama başlığını döndürür
private static String getAlignmentName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = StringAlignment.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}

// Bu işlev, Zaman Ölçeği Birimi adını döndürür
private static String getTimescaleUnitName(int val) throws IllegalArgumentException, IllegalAccessException {
  String name = null;
  java.lang.reflect.Field[] fields = TimescaleUnit.class.getDeclaredFields();
 for (java.lang.reflect.Field f : fields) {
    int fVal = f.getInt(f);
      if( fVal == val)
      {
        name = f.getName();
      }
  }
  return name;
}
BottomTimescaleTier Count: 2
BottomTimescaleTier Unit: Days
BottomTimescaleTier UsesFiscalYear: true
BottomTimescaleTier Alignment: Center
BottomTimescaleTier ShowTicks: true
BottomTimescaleTier Label: DayOfMonthDd

Java’da Orta Zaman Ölçeği Katmanını Okuyun

Benzer şekilde, daha önce belirtilen adımları izleyerek orta zaman ölçeği katmanını da okuyabiliriz. Ancak, 4. adımda getMiddleTimescaleTier() öğesini kullanarak görünümün orta zaman ölçeği katmanının ayarlarını alacağız.

Aşağıdaki kod örneği, Java’da Gantt grafiği görünümünün orta zaman ölçeği katmanının nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // Orta Zaman Ölçeği Katman bilgilerini göster
    System.out.println("MiddleTimescaleTier Count: " + gcView.getMiddleTimescaleTier().getCount());
    System.out.println("TimescaleUnit Weeks: " +  getTimescaleUnitName(gcView.getMiddleTimescaleTier().getUnit()));
    System.out.println("MiddleTimescaleTier Alignment: " + getAlignmentName(gcView.getMiddleTimescaleTier().getAlignment()));
    System.out.println("MiddleTimescaleTier ShowTicks: " + gcView.getMiddleTimescaleTier().getShowTicks());
    System.out.println("MiddleTimescaleTier Label: " +  getDateLabelName(gcView.getMiddleTimescaleTier().getLabel()));
}
MiddleTimescaleTier.Count: 1
TimescaleUnit.Weeks: Months
MiddleTimescaleTier.Alignment: Center
MiddleTimescaleTier.ShowTicks: true
MiddleTimescaleTier.Label: MonthMmmmYyyy

Java’da En İyi Zaman Ölçeği Katmanını Alın

Daha önce belirtilen adımları izleyerek en üst zaman ölçeği katmanını da okuyabiliriz. Ancak, 4. adımda getTopTimescaleTier() öğesini kullanarak görünümün en üst zaman ölçeği katmanının ayarlarını alacağız.

Aşağıdaki kod örneği, Java’da Gantt grafiği görünümünün en üst zaman ölçeği katmanının nasıl okunacağını gösterir.

public static void main(String[] args) throws Exception
{
    // Belgeler dizininin yolu.
    String dataDir = "C:\\Files\\Tasks\\";

    // projeyi yükle
    Project project = new Project(dataDir + "Project.mpp");

    // Varsayılan görünümü GanttChartView olarak alın
    GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);

    // En İyi Zaman Ölçeği Katmanı bilgilerini göster
    System.out.println("TopTimescaleTier Unit: " + getTimescaleUnitName(gcView.getTopTimescaleTier().getUnit()));
    System.out.println("TopTimescaleTier UsesFiscalYear: " + gcView.getTopTimescaleTier().getUsesFiscalYear() );
    System.out.println("TopTimescaleTier Alignment: " +  getAlignmentName(gcView.getTopTimescaleTier().getAlignment()));
    System.out.println("TopTimescaleTier ShowTicks: " + gcView.getTopTimescaleTier().getShowTicks());
    System.out.println("TopTimescaleTier Label" + getDateLabelName(gcView.getTopTimescaleTier().getLabel()));
}
TopTimescaleTier Unit: Quarters
TopTimescaleTier UsesFiscalYear: true
TopTimescaleTier Alignment: Center
TopTimescaleTier ShowTicks: true
TopTimescaleTier Label: QuarterQtrQYyyy

Ücretsiz Lisans Alın

Kitaplığı değerlendirme sınırlamaları olmadan denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu yazıda, nasıl yapılacağını öğrendik

  • Gantt şeması görünümünü Java’da programlı olarak okuyun;
  • Gantt şeması görünümünün çubuk stillerini ve metin stilini çıkarın;
  • Gantt şeması görünümünün ızgara çizgilerini ve ilerleme çizgilerini alın;
  • Java kullanarak Gantt şeması görünümünün zaman ölçeği birimlerini okuyun.

Ayrıca, belgeleri kullanarak Aspose.Tasks for Java API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen forumda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız