MS Project היא תוכנה פופולרית לניהול פרויקטים, בשימוש נרחב לארגון, ניהול ומעקב יעיל של פעילויות הפרויקט. הוא מאפשר יצירת המשימות, הוספת משאבים, הקצאת משימות למשאבים, מעקב אחר ההתקדמות וניהול פעילויות הקשורות לתקציב. תצוגת תרשים גנט היא תצוגת ברירת המחדל של הפרויקט. זה מפרט את משימות הפרויקט ומראה את הקשר שלהם זה לזה. זה גם מציג את לוח הזמנים של הפרויקט באמצעות פסי גאנט. במאמר זה נלמד כיצד לקרוא את תרשים הגאנט של פרויקט MS ב-Java.
הנושאים הבאים יכוסו במאמר זה:
- מהו תרשים גנט ב-Microsoft Project
- Java API לקריאת תרשים Gantt of Project
- קרא תרשים גנט ואחזר סגנונות עמודות
- קרא קווי רשת של תצוגת תרשים גנט
- חלץ סגנון טקסט של תצוגת תרשים גנט
- אחזר שורות התקדמות של תצוגת תרשים גנט
- Read Bottom Scale Time Tier
- קרא את שכבת טווח הזמן האמצעית
- אחזר דרגת זמן עליונה
מהו תרשים גנט ב-Microsoft Project
תרשים גנט הוא סוג של תרשים עמודות המציג את לוח הזמנים של הפרויקט. זהו ייצוג גרפי של משימות הפרויקט מול זמן ומציע מבט ממעוף הציפור של הפרויקט כולו. תצוגת תרשים גנט ב-Microsoft Project מציגה את הדברים הבאים:
- לוח הזמנים של הפרויקט
- הערכות זמן
- משאבי פרויקט וחברי צוות
- סדרי עדיפויות במשימה
- תלות במשימה
Java API לקריאת תרשים גנט
לקריאת תצוגת תרשים גנט של פרויקט מקובץ MPP, נשתמש ב-Aspose.Tasks for Java API. זה מאפשר יצירה, עריכה או מניפולציה של קבצי Microsoft Project באופן תכנותי ביישומי Java.
המחלקה Project של ה-API מייצגת פרויקט. זוהי המחלקה העיקרית החושפת שיטות שונות לביצוע פונקציות שונות. זה גם מאפשר לקרוא את אחד מהפורמטים הנתמכים של ניהול פרויקטים כגון MPP, MPT, MPX ו-XML. המחלקה GanttChartView של ה-API מייצגת תצוגת תרשים גנט. הוא חושף מאפיינים ושיטות שונות לעבודה עם תרשים גנט באופן פרוגרמטי.
אנא הורד את ה-JAR של ה-API או הוסף את תצורת pom.xml הבאה ביישום Java מבוסס Maven.
<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>
קרא תצוגת תרשים גנט ואחזר סגנונות סרגל
המחלקה GanttBarStyle של ה-API מייצגת סגנון עמודות המשמש את MS Project בתצוגת תרשים גנט. אנו יכולים לקרוא את תצוגת תרשים גנט ולאחזר את סגנונות העמודות על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען את קובץ הפרויקט באמצעות המחלקה Project.
- לאחר מכן, קבל את תצוגת ברירת המחדל מה-ViewCollection לפי האינדקס שלו.
- לאחר מכן, צור מופע של מחלקת GanttChartView ותצוגת typecast.
- לחלופין, קרא מאפיינים בסיסיים והצג נתונים.
- לאחר מכן, קבל רשימה של סגנונות עמודות של תצוגת תרשים גנט באמצעות getBarStyles().
- לבסוף, עברו דרך סגנונות סרגל כאובייקט מחלקה GanttBarStyle והצג ערכים.
דוגמא הקוד הבאה מראה כיצד לקרוא סגנונות עמודות של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
View view = project.getViews().toList().get(0);
GanttChartView gcView = (GanttChartView) view;
// הצג מידע בסיסי
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("-----------------------------------------------");
// הצג סגנונות סרגל
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("-----------------------------------------------");
}
}
// פונקציה זו מחזירה את שם השדה
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;
}
// פונקציה זו מחזירה את שם הצורה האמצעית
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;
}
// פונקציה זו מחזירה את שם צורת ההתחלה או הסיום
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
המחלקה Gridlines של ה-API מייצגת קווי רשת המופיעים בתצוגת תרשים גנט. אנו יכולים לקרוא את הצבע, המרווח, התבנית והסוג של קו הרשת על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען את קובץ הפרויקט באמצעות המחלקה Project.
- לאחר מכן, קבל את תצוגת ברירת המחדל מה-ViewCollection לפי האינדקס שלו.
- לאחר מכן, צור מופע של מחלקת GanttChartView ותצוגת typecast.
- לאחר מכן, קבל רשימה של קווי רשת של תצוגת תרשים גנט באמצעות getGridlines().
- לבסוף, גלגל דרך קווי רשת כאובייקט המחלקה Gridlines והצג ערכים.
דוגמא הקוד הבאה מראה כיצד לקרוא קווי רשת של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על קווי רשת
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());
}
// פונקציה זו מחזירה את שם תבנית הקו
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
המחלקה TextStyle של ה-API מייצגת את הסגנון החזותי של הטקסט של פריט בתצוגת תרשים גנט. אנו יכולים לקרוא את הצבע, צבע הרקע, הגופן וסגנון הגופן על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען את קובץ הפרויקט באמצעות המחלקה Project.
- לאחר מכן, קבל את תצוגת ברירת המחדל מה-ViewCollection לפי האינדקס שלו.
- לאחר מכן, צור מופע של מחלקת GanttChartView ותצוגת typecast.
- לאחר מכן, קבל רשימה של סגנונות טקסט של תצוגת תרשים גנט באמצעות getTextStyles().
- לבסוף, אתחול אובייקט המחלקה TextStyle עבור סגנון הטקסט הראשון והצג ערכים.
דוגמא הקוד הבאה מראה כיצד לקרוא סגנונות טקסט של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על סגנון טקסט
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()));
}
// פונקציה זו מחזירה שם סגנון גופן
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
קווי ההתקדמות מופיעים בתצוגת תרשים גנט ומציגים אם המשימות נמצאות בפיגור או ממש בזמן. אנו יכולים לקרוא את המאפיינים השונים של שורות ההתקדמות על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען את קובץ הפרויקט באמצעות המחלקה Project.
- לאחר מכן, קבל את תצוגת ברירת המחדל מה-ViewCollection לפי האינדקס שלו.
- לאחר מכן, צור מופע של מחלקת GanttChartView ותצוגת typecast.
- לאחר מכן, קבל רשימה של קווי התקדמות של תצוגת תרשים גנט באמצעות getProgressLines().
- לבסוף, הצג ערכי מאפיינים של שורת התקדמות.
דוגמא הקוד הבאה מראה כיצד לקרוא קווי התקדמות של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על קווי התקדמות
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
סולם זמן מציג יחידות זמן, ימים, חודשים, שנה קלנדרית או שנת כספים. ישנן שלוש שכבות זמן בתצוגת הפרויקט כדי להציג את ערכי סולם הזמן עבור כל שכבה כגון ספירה, יחידה, תווית, יישור וכו’. אנו יכולים לקרוא את שכבת טווח הזמן התחתונה על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען את קובץ הפרויקט באמצעות המחלקה Project.
- לאחר מכן, קבל את תצוגת ברירת המחדל מה-ViewCollection לפי האינדקס שלו.
- לאחר מכן, צור מופע של מחלקת GanttChartView ותצוגת typecast.
- לאחר מכן, קבל את ההגדרות של שכבת סולם הזמן התחתונה של התצוגה באמצעות getBottomTimescaleTier().
- לבסוף, הצג ערכי שכבת זמן תחתונה.
דוגמא הקוד הבאה מראה כיצד לקרוא את שכבת טווח הזמן התחתונה של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על שכבת לוח זמנים תחתונה
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()));
}
// פונקציה זו מחזירה את שם תווית נתוני טווח הזמן
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;
}
// פונקציה זו מחזירה את כותרת היישור
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;
}
// פונקציה זו מחזירה את שם יחידת טווח הזמן
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
באופן דומה, אנו יכולים לקרוא את שכבת טווח הזמן האמצעית על ידי ביצוע השלבים שהוזכרו קודם לכן. עם זאת, נקבל את ההגדרות של שכבת סולם הזמן האמצעית של התצוגה באמצעות getMiddleTimescaleTier() בשלב 4.
דוגמא הקוד הבאה מראה כיצד לקרוא את שכבת טווח הזמן האמצעית של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על שכבת זמן בינונית
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
אנו יכולים גם לקרוא את רובד טווח הזמן העליון על ידי ביצוע השלבים שהוזכרו קודם לכן. עם זאת, נקבל את ההגדרות של שכבת סולם הזמן העליונה של התצוגה באמצעות getTopTimescaleTier() בשלב 4.
דוגמא הקוד הבאה מראה כיצד לקרוא את שכבת טווח הזמן העליונה של תצוגת תרשים גנט ב-Java.
public static void main(String[] args) throws Exception
{
// הנתיב לספריית המסמכים.
String dataDir = "C:\\Files\\Tasks\\";
// טען את הפרויקט
Project project = new Project(dataDir + "Project.mpp");
// קבל את תצוגת ברירת המחדל כ-GanttChartView
GanttChartView gcView = (GanttChartView) project.getViews().toList().get(0);
// הצג מידע על שכבת זמן מובילה
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
קבל רישיון חינם
אתה יכול לקבל רישיון זמני בחינם כדי לנסות את הספרייה ללא מגבלות הערכה.
סיכום
במאמר זה למדנו כיצד לעשות זאת
- קרא את תצוגת תרשים גנט באופן פרוגרמטי ב-Java;
- לחלץ את סגנונות העמודים ואת סגנון הטקסט של תצוגת תרשים גנט;
- אחזר קווי רשת וקווי התקדמות של תצוגת תרשים גנט;
- קרא יחידות לוח זמנים של תצוגת תרשים גנט באמצעות Java.
חוץ מזה, אתה יכול ללמוד עוד על Aspose.Tasks עבור Java API באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום.