Gozintographen einfach darstellen

You are currently viewing Gozintographen einfach darstellen

Im Artikel „Erzeugnisstruktur visualisieren als Gozintograph“ habe ich mein Tool vorgestellt. Falls Sie nach anderen Lösungen suchen Erzeugnisstrukturen oder allgemein Baumstrukturen darzustellen, zeige ich Ihnen in diesem Artikel zwei alternative und einfachere Möglichkeiten.

Lazarus und TLvlGraphControl

Wenn Sie schon mit Lazarus gearbeitet haben, kennen Sie vermutlich auch die Komponente TLvlGraphControl. Lazarus stellt damit im Package-Graph die installierten Packages mit deren Verbindungen dar.

Package-Graph in Lazarus
Package-Graph in Lazarus

Die Baumstruktur des Gozintograph oder einer Produktstruktur wird immer über die Methode GetEdge erzeugt. Als Parameter erwartet die Methode eine Quell- und einen Zielknoten. Das TRUE am Ende sorgt dafür, dass noch nicht vorhandene Elemente angelegt werden. Das wars auch schon.

procedure TMainForm.FormCreate(Sender: TObject);
var
  sl : TStringList;
  sr : TStringArray;
  i : integer;
  node : TLvlGraphNode;
  col : TColor;
begin
  sl:=TStringList.Create;
  sl.LoadFromFile('demo.csv');
  for i:=0 to sl.Count-1 do
    begin
      sr:=sl[i].Split(';');
      edge:=LvlGraphControl1.Graph.GetEdge(sr[1],sr[0],true);
    end;
  sl.Free;

Mit den obigen Zeilen importiert Lazarus bereits die CSV-Datei. TLvlGraphControl stellt den Gozintograph auch schon dar.

Auch danach sind Änderungen an Struktur und Knoten möglich. Für die Struktur können beispielsweise die Farben angepasst werden. Dafür werden alle Nodes in einer Schleife durchlaufen. Mit den Funktionen InEdgeCount und OutEdgeCount lassen sich eingehende und ausgehende Verbindungen zählen. Dadurch ist leicht zu ermitteln, ob es sich um ein Einzelteil, eine Baugruppe oder ein Produkt handelt.

  for i:=0 to LvlGraphControl1.Graph.NodeCount-1 do
    begin
      node:=LvlGraphControl1.Graph.Nodes[i];
      if (node.InEdgeCount>0) and (node.OutEdgeCount>0) then col:=clBlue //Baugruppe
      else if (node.InEdgeCount>0) and (node.OutEdgeCount=0) then col:=clGreen //Produkt
      else col:=clYellow; //Einzelteil
      node.Color:= TColorToFPColor(col);
    end;

Mit nur ein paar Zeilen Code lässt sich das Ergebnis durchaus anschauen.

Gozintograph erstellt mit TLvlGraphControl
Gozintograph erstellt mit TLvlGraphControl

Etwas schade ist, dass keine Pfeile und keine Mengen angezeigt werden. Aber für eine schnelle Übersicht ist TLvlGraphControl eine gute Möglichkeit.

Microsoft Excel und GIGRAPH

Für das nächste Tool müssen Sie nicht einmal selber programmieren. Seit Excel die Möglichkeit bietet, den Funktionsumfang mit Addins zu erweitern, gibt es eine Fülle von zusätzlichen Tools. Eines meiner Lieblingstools ist GIGRAPH. Es stellt Netzwerkverbindungen da. Die Funktionsweise und Möglichkeiten habe ich schon im Artikel Materialflussanalysen mit GIGRAPH vorgestellt.

Was mit Materialflussanalysen funktioniert, passt auch für hierarchische Strukturen.

Das Tolle an GIGRAPH ist die interaktive, extrem schnelle Darstellung. Elemente lassen sich verschieben, zoomen ist möglich und dank Excel kann es direkt neben der Datentabelle platziert werden.

Gozintograph mit Microsoft Excel Addin GIGRAPH
Gozintograph mit Microsoft Excel Addin GIGRAPH

Leider hat das eigentlich geniale Tool, auch mehrere Nachteile. Einmal muss man auf die Darstellung als Baumstruktur verzichten. GIGRAPH stellt alles als Netzwerk in Sternform dar. Das ist zwar nicht immer passend, das könnte man aber meiner Meinung nach akzeptieren.

Es ist allerdings auch nicht möglich, eine angepasste Struktur zu speichern. Bei jedem Öffnen geht immer die aktuelle Ansicht verloren. Sie muss dann immer neu erstellt werden. GIGRAPH passt dabei jedes Mal auch die Elementpositionen an. So hat man leider keine Möglichkeit, eine sinnvolle Analyse durchzuführen.

Für einen ersten Überblick ist für mich GIGRAPH ein wertvolles Tool.

Download

Download

TLvlGraphControl Beispiel mit Lazarus und GIGRAPH Beispiel mit Excel

Links

GIGRAPH – Network Visualization auf Microsoft Appsource (oder https://gigraph.io/)

Artikel Materialfluss-Analysen mit GIGRAPH

Artikel Erzeugnisstruktur visualisieren als Gozintograph

Kommentar verfassen