Akış çizelgeleri, farklı iş akışlarını temsil edecek şekilde oluşturulur veya tasarlanır. Belirli durumlarda, farklı durumları yönetmek için akış şemaları oluşturmanız gerekebilir. Bu makale, C# dilinde programlı olarak bir akış şeması diyagramının nasıl oluşturulacağını kapsar.
- Akış Şeması Şeması Oluşturmak için C# API’sini Kurun
- C# kullanarak Programlı Olarak Akış Şeması Diyagramı Oluşturma
Akış Şeması Şeması Oluşturmak için C# API’sini Kurun
Aspose.Diagram for .NET API’sini kullanarak akış şeması diyagramları oluşturabilirsiniz. VSD, VSDX ve diğer desteklenen biçimlerde Visio dosyaları oluşturmayı veya düzenlemeyi destekler. Yeni Sürümler bölümünden DLL dosyasını indirerek veya aşağıdaki kurulum komutuyla NuGet Paket Yöneticisini kullanarak API’yi kolayca yükleyebilirsiniz:
PM> Install-Package Aspose.Diagram
Programlı Olarak C# ile Akış Şeması Oluşturma
Gereksinimlerinize göre farklı süreçlerin akış şemasını oluşturabilirsiniz. Akış şemaları oluşturmak için lütfen aşağıdaki adımları izleyin:
- İlk olarak, diyagramı oluşturmak için şemayı oluşturun.
- Diagram sınıfını kullanarak şekil eklemek için master’ı yükleyin.
- Şemadan şekiller ve bağlayıcılar ekleme.
- Akış şeması diyagramı için düzeni ayarlayın.
- Son olarak, akış şeması içeren çıktı dosyasını Kaydet yöntemini kullanarak VSDX formatında yazın.
Aşağıdaki kod parçacığı, C# dilinde programlı olarak bir akış şeması diyagramının nasıl oluşturulacağını detaylandırır:
class Program
{
static void Main(string[] args)
{
// Oluşturulacak diyagram için şema
Input diagramObject = new Input()
{
InputRectangles = new List<InputRectangle>() {
new InputRectangle() {
Name = "A",
Text = "Manager"
},
new InputRectangle() {
Name = "B",
Text = "Team Leader"
},
new InputRectangle() {
Name = "C",
Text = "Team Member"
},
new InputRectangle() {
Name = "D",
Text = "Team Member"
},
new InputRectangle() {
Name = "E",
Text = "Team Member"
}
},
InputConnectors = new List<InputConnector>() {
new InputConnector() {
OriginShapeName = "A",
DestinationShapeName = "B"
},
new InputConnector() {
OriginShapeName = "B",
DestinationShapeName = "C"
},
new InputConnector() {
OriginShapeName = "B",
DestinationShapeName = "D"
},
new InputConnector() {
OriginShapeName = "B",
DestinationShapeName = "E"
}
}
};
Diagram diagram = new Diagram("BasicShapes.vss");
Page page = diagram.Pages[0];
Dictionary<string, long> shapeNames = new Dictionary<string, long>();
//Şemadan şekiller ve bağlayıcılar ekleme
foreach (var rectangle in diagramObject.InputRectangles)
{
Shape shape = new Shape();
var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
shapeNames.Add(rectangle.Name, shapeId);
shape = page.Shapes.GetShape(shapeId);
shape.Text.Value.Add(new Txt(rectangle.Text));
}
foreach (var connector in diagramObject.InputConnectors)
{
var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
ConnectionPointPlace.Right,
shapeNames[connector.DestinationShapeName],
ConnectionPointPlace.Left,
connectorId);
}
LayoutOptions layoutOptions = new LayoutOptions()
{
LayoutStyle = LayoutStyle.FlowChart,
Direction = LayoutDirection.LeftToRight,
SpaceShapes = 5,
EnlargePage = true
};
diagram.Layout(layoutOptions);
page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;
DiagramSaveOptions saveOptions = new DiagramSaveOptions()
{
SaveFormat = SaveFileFormat.Vsdx,
AutoFitPageToDrawingContent = true
};
diagram.Save("output.vsdx", saveOptions);
}
}
public class Input
{
public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
}
public class InputRectangle
{
public string Name { get; set; }
public string Text { get; set; }
}
public class InputConnector
{
public string OriginShapeName { get; set; }
public string DestinationShapeName { get; set; }
}
Örnek Proje İndir
Giriş ve çıkış dosyalarıyla birlikte örnek projeyi indirebilirsiniz.
Örnek Çıktı Akış Şeması Önizlemesi
Ücretsiz API Lisansı Alın
Ücretsiz geçici lisans talep ederek API’nin tüm özelliklerini herhangi bir sınırlama olmaksızın değerlendirebilirsiniz.
Çözüm
Bu makalede, C# kullanarak programlı olarak akış şemaları oluşturmayı veya yapmayı öğrendiniz. Karar, süreç gibi farklı şekillerin yanı sıra soldan sağa veya sağdan sola vb. Lütfen forumdan bize ulaşmaktan çekinmeyin.