תרשים ORG הוא תרשים חזותי המייצג את ההיררכיה של העובדים בארגון. הוא מכיל את תפקידיהם, אחריותם, תפקידם וכו’ ומידע רלוונטי אחר. אתה יכול ליצור סוגים שונים של תרשימים ארגוניים עם כמה קריאות API מבלי צורך לצייר באופן ידני צורות או חיבורים. מאמר זה מכסה כיצד ליצור תרשים ORG ב-C#.
- ORG Chart Maker – התקנת API של C#
- צור תרשים ORG בסגנון CompactTree ב-C#
- צור תרשים ORG בסגנון תרשים זרימה ב-C#
ORG Chart Maker – התקנת API של C#
Aspose.Diagram for .NET API תומך בעבודה עם סוגים שונים של דיאגרמות ותרשימים. כל שעליך לעשות הוא לגשת ל-API על ידי הורדת קובץ ה-DLL שלו מהקטע מהדורות חדשות או עם פקודת ההתקנה הבאה של NuGet:
PM> Install-Package Aspose.Diagram
צור תרשים ORG בסגנון CompactTree ב-C#
אתה יכול ליצור תרשים ORG בסגנון CompactTree על ידי ביצוע השלבים הבאים:
- טען מאסטרים מכל דיאגרמה, סטנסיל או תבנית קיימים.
- הגדר ערכים לבניית ההיררכיה.
- הוסף צורות וחיבורים בין צמתים.
- שמור את דיאגרמת הפלט.
קטע הקוד שלהלן מסביר כיצד ליצור תרשים ORG ב-C#:
// טען מאסטרים מכל דיאגרמה, סטנסיל או תבנית קיימים
string visioStencil = "Basic Shapes.vss";
const string rectangleMaster = "Rectangle";
const string connectorMaster = "Dynamic connector";
const int pageNumber = 0;
const double width = 1;
const double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// הגדר ערכים לבניית ההיררכיה
List<string> listPos = new List<string>(new string[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// הגדר Hashtable כדי למפות את שם המחרוזת למזהה צורה ארוכה
Hashtable shapeIdMap = new Hashtable();
// צור תרשים חדש
Diagram diagram = new Diagram(visioStencil);
diagram.Pages[pageNumber].PageSheet.PageProps.PageWidth.Value = 11;
foreach (string orgnode in listPos)
{
// הוסף צורת מלבן חדשה
long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
// הגדר את מאפייני הצורה החדשה
Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
shape.Text.Value.Add(new Txt(orgnode));
shape.Name = orgnode;
shapeIdMap.Add(orgnode, rectangleId);
}
// צור קשרים בין צמתים
foreach (string orgName in listPos)
{
int lastColon = orgName.LastIndexOf(':');
if(lastColon > 0)
{
string parendName = orgName.Substring(0, lastColon);
long shapeId = (long)shapeIdMap[orgName];
long parentId = (long)shapeIdMap[parendName];
Shape connector1 = new Shape();
long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
shapeId, ConnectionPointPlace.Left, connecter1Id);
}
}
//פריסה אוטומטית תרשים CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions
{
LayoutStyle = LayoutStyle.CompactTree,
Direction = LayoutDirection.DownThenRight,
EnlargePage = false
};
diagram.Pages[pageNumber].Layout(compactTreeOptions);
// שמור דיאגרמה
diagram.Save("CompactTreeChart_out.vsdx", SaveFileFormat.VSDX);
צילום המסך הבא מציג את תרשים ORG הפלט שנוצר באמצעות קטע הקוד שלמעלה:
צור תרשים ORG בסגנון תרשים זרימה ב-C#
ייתכן שיהיה עליך ליצור סוגים שונים של תרשימי ORG שעשויים לעקוב אחר תבניות שונות. כאן תלמד כיצד ליצור תרשים ORG בסגנון תרשים זרימה באופן תכנותי ב-C#:
- טען מאסטרים מכל דיאגרמה, סטנסיל או תבנית קיימים.
- הוסף צמתים ומחברים של הארגון.
- הגדר את הפריסה ושמור את דיאגרמת הפלט.
הקוד לדוגמה הבא מראה כיצד ליצור תרשים ORG בסגנון תרשים זרימה ב-C#:
// טען מאסטרים מכל דיאגרמה, סטנסיל או תבנית קיימים
string visioStencil = "Basic Shapes.vss";
const string rectangleMaster = "Rectangle";
const string connectorMaster = "Dynamic connector";
const int pageNumber = 0;
const double width = 1;
const double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// הגדר ערכים לבניית ההיררכיה
List<string> listPos = new List<string>(new string[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// הגדר Hashtable כדי למפות את שם המחרוזת למזהה צורה ארוכה
Hashtable shapeIdMap = new Hashtable();
// צור תרשים חדש
Diagram diagram = new Diagram(visioStencil);
foreach (string orgnode in listPos)
{
// הוסף צורת מלבן חדשה
long rectangleId = diagram.AddShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
// הגדר את מאפייני הצורה החדשה
Shape shape = diagram.Pages[pageNumber].Shapes.GetShape(rectangleId);
shape.Text.Value.Add(new Txt(orgnode));
shape.Name = orgnode;
shapeIdMap.Add(orgnode, rectangleId);
}
// צור קשרים בין צמתים
foreach (string orgName in listPos)
{
int lastColon = orgName.LastIndexOf(':');
if(lastColon > 0)
{
string parendName = orgName.Substring(0, lastColon);
long shapeId = (long)shapeIdMap[orgName];
long parentId = (long)shapeIdMap[parendName];
Shape connector1 = new Shape();
long connecter1Id = diagram.AddShape(connector1, connectorMaster, pageNumber);
diagram.Pages[pageNumber].ConnectShapesViaConnector(parentId, ConnectionPointPlace.Right,
shapeId, ConnectionPointPlace.Left, connecter1Id);
}
}
//פריסה אוטומטית תרשים זרימה
LayoutOptions flowChartOptions = new LayoutOptions
{
LayoutStyle = LayoutStyle.FlowChart,
Direction = LayoutDirection.TopToBottom,
EnlargePage = true
};
diagram.Pages[pageNumber].Layout(flowChartOptions);
// שמור דיאגרמה
diagram.Save("FlowChart_out.vsdx", SaveFileFormat.VSDX);
קבל רישיון זמני בחינם
אתה יכול לבקש [רישיון זמני] בחינם8 כדי להעריך את ה-API במלוא קיומו.
סיכום
במאמר זה, הבנת כיצד ליצור תרשים ORG באופן תכנותי ב-C#. אתה יכול ליצור דיאגרמה משבלונה וליצור תרשים בסגנון CompactTree או תרשים זרימה בהתאם לדרישות שלך. יתר על כן, אתה יכול לבקר בסעיף תיעוד כדי להסתכל על תכונות אחרות המכוסות תחת פרקים וסעיפים שונים. בכל מקרה של פניות, אנא אל תהסס לפנות אלינו דרך פורום.