# Varianten erzeugen

Der Hauptteil des Moduls: Aus einem Artikel und einer Handvoll Merkmale entstehen alle
Varianten auf einmal.

<!-- TODO Screenshot: images/varianten-zuordnung.png -->

## Der Ablauf

1. **Artikel wählen** — die Suche findet Artikelnummer und Bezeichnung.
2. **Merkmale und Ausprägungen auswählen** — im Baum links, mit Häkchen.
3. **Kombinationen erzeugen** — über *Automatisch alle Ausprägungen füllen*.
4. **Prüfen und anpassen** — Zeilen ergänzen, entfernen, bestehende Artikel zuordnen.
5. **Speichern.**

## Welche Artikel zur Auswahl stehen

Gesucht wird unter den Artikeln, die **kein** Untervariante eines anderen Artikels sind — also
normale Artikel und bestehende Variantenartikel.

<p class="callout info">Ein bestehender Variantenartikel lässt sich erneut aufrufen, um Varianten zu ergänzen. Seine schon vorhandenen Untervarianten erscheinen dann mit ihren Ausprägungen in der Tabelle.</p>

## Merkmale auswählen

Im Baum werden die Ausprägungen angehakt, die unterschieden werden sollen. Ein Merkmal gilt
als gewählt, sobald mindestens eine seiner Ausprägungen angehakt ist.

Je gewähltes Merkmal erscheint in der Tabelle eine **Spalte**.

## Alle Kombinationen automatisch füllen

**Automatisch alle Ausprägungen füllen** erzeugt jede Kombination der angehakten
Ausprägungen — bei 3 Farben und 4 Größen also 12 Zeilen.

<p class="callout danger">Vorher die Zahl im Kopf ausrechnen. Die Schaltfläche erzeugt ohne Rückfrage alle Kombinationen, und beim Speichern entsteht daraus je Zeile ein Artikel im Mandanten.</p>

Einzelne Zeilen lassen sich danach entfernen — etwa Kombinationen, die es nicht gibt.

## Zeilen von Hand pflegen

| Aktion | Wie |
| ----------------------------- | ------------------------------------------ |
| Zeile hinzufügen | **Artikel hinzufügen** |
| Ausprägung einer Zelle setzen | in die Zelle klicken und auswählen |
| Zeile entfernen | Papierkorb am Zeilenende |

## Bestehende Artikel zuordnen

In der Spalte **Artikel** lässt sich je Zeile ein **bereits vorhandener** Artikel eintragen.
Dann wird kein neuer angelegt, sondern der genannte Artikel als Variante zugeordnet.

<p class="callout success">Das ist der Weg, wenn die Varianten schon als einzelne Artikel im Mandanten liegen — gewachsen über die Jahre, ohne Variantenstruktur. Man ordnet sie nachträglich einem Hauptartikel zu, statt sie neu anzulegen.</p>

<p class="callout info">Wird eine Artikelnummer eingetragen, die es nicht gibt, wird ein Artikel mit genau dieser Nummer angelegt.</p>

## Was rote Zeilen bedeuten

Rot markierte Zeilen verhindern das Speichern. Zwei Gründe:

| Ursache | Abhilfe |
| --------------------------------------- | ------------------------------------ |
| in einer Zelle fehlt die Ausprägung | Zelle füllen |
| die Kombination oder die Artikelnummer kommt doppelt vor | Zeile korrigieren oder entfernen |

<p class="callout info">Die Prüfung läuft bei jeder Änderung mit. Solange eine Zeile rot ist, bleibt <em>Speichern</em> gesperrt — es kann also keine halbe Variantenstruktur entstehen.</p>

## Speichern

Beim Speichern zeigt ein Fortschrittsbalken, welche Variante gerade angelegt wird — bei
vielen Kombinationen dauert das eine Weile, weil jeder Artikel einzeln über die SelectLine
angelegt wird.

Dabei passiert der Reihe nach:

1. Der Hauptartikel wird zum **Variantenartikel** umgewandelt.
2. Bisherige Variantenzuordnungen dieses Artikels werden **gelöst** und neu aufgebaut.
3. Die gewählten Merkmale werden dem Hauptartikel zugeordnet.
4. Je Zeile entsteht ein Artikel — oder der genannte bestehende Artikel wird zugeordnet.

<p class="callout danger">Punkt 2 ist der Grund, weshalb man einen bestehenden Variantenartikel vollständig laden sollte, bevor man speichert: Zeilen, die nicht in der Tabelle stehen, verlieren ihre Zuordnung zum Hauptartikel. Die Artikel selbst bleiben erhalten, sind danach aber keine Varianten mehr.</p>

## Wenn ein Artikel gerade bearbeitet wird

Vor dem Schreiben prüft das Werkzeug, ob einer der beteiligten Artikel in der SelectLine
gerade offen ist. Ist das so, bricht es ab und nennt **Benutzer und Rechner**, die den Artikel
halten.

<p class="callout success">Diese Meldung ist eine Hilfe, keine Störung: Sie verhindert, dass eine halb geschriebene Variantenstruktur entsteht, weil ein Kollege den Artikel gerade offen hat.</p>

## Weiter

[Artikelnummern der Varianten](https://wiki.dako-it.com/books/finnghost-fur-merkmale-und-varianten/page/artikelnummern-der-varianten)