Neuen Datensatz über Relation anlegen

Hallo,

am Beispiel des combit-Beispielprojektes:

Dort sind Personen über 1:1-Relationen zu Firmen verknüpft.

Wenn man zunächst eine Person neu anlegt (Ansicht Person), wie kann
man dann eine Funktion/Schaltfläche auf dieser Ansicht hinterlegen,
die eine leere Firma öffnet, welche schon mit dieser Person verknüpft
ist?

Zur Zeit scheint es so, als müsse man bei Neuanlage eines Kunden
zuerst die Firma erfassen. Wenn man zuerst die Person erfasst, kann
man nicht „von dort“ eine neue Firma anlegen, sondern muss zunächst
die Firma „händisch“ anlegen und dann zurück zur Person, um diese der
Firma zuzuordnen.

Viele Grüße,
Daniel Fisch

Hi Daniel,

ich hätte da folgende Idee (nicht getestet): du könntest ein Script
schreiben und in „Personen“ auf einen Button namens „Mit neuer Firma
verknüpfen…“ legen.

Das Script öffnet die Ansicht „Firmen“ (Set oFirmenView =
cRM.CurrentProject.OpenNewViewByName(„Firmen“)) und erzeugt über (Set
oFirmenInputForm = oFirmenView.CurrentInputForm(1)) einen neuen (aber
noch nicht gespeicherten) Datensatz in der Eingabemaske, die ID der
Firma steht dann aber schon fest (sFirmenID =
oFirmenInputForm.GetContentsByName(„RecordID“)), so dass du diese dann
in der Ansicht „Personen“ beim aktuellen Datensatz der Eingabemaske (Set
oPersonenInputForm =
cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(0), AM ANFANG
des Scriptes machen!) dann gleich eintragen kannst
(oPersonenInputForm.SetContentsByName „FirmenID“, sFirmenID).

Zu beachten:

  1. das Script muss ein „“ enthalten, weil
    sonst beim Klick erstmal ein „Wollen Sie speichern?“ käme.

  2. der Firmen Datensatz muss vom Anwender VOR dem Personen Datensatz
    gespeichert werden, weil sonst das Datenbanksystem meckert, da
    anderenfalls aus Sicht des Datenbankservers Person mit einer (noch)
    nicht existenten Firma verknüpft wäre (->Constraint). Vom Ablauf passt
    das aber ganz gut, denn der neue „Firmen“ Datensatz ist jetzt ja im
    Vordergrund und der Anwender könnte dann mittels „Speichern+Schließen“
    Button ja direkt zurück zu „Personen“. Falls du das nicht wünschst, meld
    dich nochmal, dann musst du den Firmen-Datensatz bereits per Script
    speichern. Wobei ich von diesem Ansatz abraten würde, weil sonst je nach
    Benutzer jede Menge „Leichen“ entstehen könnten.

Hinweise zu den einzelnen Befehlen findest du in der cRM Objektreferenz
(PDF) bzw. (hinsichtlich keepeditmode) im cRM Handbuch.

HTH

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Am Mon, 24 Nov 2008 10:30:48 +0100, Alexander Scholz
<alexander.scholz@xmai…> schrieb:

Hallo Alex,

ich hätte da folgende Idee (nicht getestet): du könntest ein Script
schreiben und in „Personen“ auf einen Button namens „Mit neuer Firma
verknüpfen…“ legen.

Das Script öffnet die Ansicht „Firmen“ (Set oFirmenView =
cRM.CurrentProject.OpenNewViewByName(„Firmen“)) und erzeugt über (Set
oFirmenInputForm = oFirmenView.CurrentInputForm(1)) einen neuen (aber
noch nicht gespeicherten) Datensatz in der Eingabemaske, die ID der
Firma steht dann aber schon fest (sFirmenID =
oFirmenInputForm.GetContentsByName(„RecordID“)), so dass du diese dann
in der Ansicht „Personen“ beim aktuellen Datensatz der Eingabemaske (Set
oPersonenInputForm =
cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(0), AM ANFANG
des Scriptes machen!) dann gleich eintragen kannst
(oPersonenInputForm.SetContentsByName „FirmenID“, sFirmenID).

Zu beachten:

  1. das Script muss ein „“ enthalten, weil
    sonst beim Klick erstmal ein „Wollen Sie speichern?“ käme.

  2. der Firmen Datensatz muss vom Anwender VOR dem Personen Datensatz
    gespeichert werden, weil sonst das Datenbanksystem meckert, da
    anderenfalls aus Sicht des Datenbankservers Person mit einer (noch)
    nicht existenten Firma verknüpft wäre (->Constraint). Vom Ablauf passt
    das aber ganz gut, denn der neue „Firmen“ Datensatz ist jetzt ja im
    Vordergrund und der Anwender könnte dann mittels „Speichern+Schließen“
    Button ja direkt zurück zu „Personen“. Falls du das nicht wünschst, meld
    dich nochmal, dann musst du den Firmen-Datensatz bereits per Script
    speichern. Wobei ich von diesem Ansatz abraten würde, weil sonst je nach
    Benutzer jede Menge „Leichen“ entstehen könnten.

…die unkomplizierte Variante bei 2, die Du ja auch empfiehlst,
dürfte reichen.

Leider kann ich nicht scripten bzw. könnte lediglich ein
Beispielscript entsprechend anpassen.

Vielleicht gibt es hier in der NG jemanden, der so etwas (gegen
Honorar) programmiert? Es klingt so, als wäre es nicht so aufwendig -
wenn man den programmieren kann.

Viele Grüße,
Daniel Fisch