Home › Forum › Nuclos Konfiguration › Vorgänge und Objekte › Ansprechpartner fest an einen Kunden binden
- Dieses Thema hat 12 Antworten und 6 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren, 9 Monaten von
Julia Rataj.
-
AutorBeiträge
-
29 September 2015 um 11:55 Uhr #8532
Kevin Johnson
TeilnehmerHallo alle zusammen.
Ich habe folgendes Problem. Ich habe in meinem Kunden BO die Möglichkeit eine theoretisch unbegrenzte Zahl an Ansprechpartnern für einen Kunden anzulegen.
Das habe ich über ein seperates BO gemacht, welches per Subform im Kundenlayout eingebunden ist.
Nun habe ich eine Combobox erstellt um bei jedem Kunden den Hauptansprechpartner auswählen zu können. Allerdings werden mir nun logischerweise auch alle Ansprechpartner der anderen Kunden angezeigt.
Nun meine Frage:
Wie schaffe ich es, dass die Ansprechpartner eines Kunden auch nur diesem zugeordnet werden? Sodass ich bei der Auswahl des Hauptansprechpartners über die Combobox nur die Ansprechpartner dieses speziellen Kunden sehe?
Ich bedanke mich jetzt schon für eure Antworten.
Liebe Grüße
PS: Was vielleicht noch interessant ist. Ich arbeite mit einer lokalen VM auf der auch die Datenbank liegt.
30 September 2015 um 00:09 Uhr #8535Thomas Hempel
Teilnehmer1 Oktober 2015 um 10:33 Uhr #8546Kevin Johnson
TeilnehmerKlasse. Danke für die schnelle Antwort ich werde mich direkt damit auseinander setzen.
LG
1 Oktober 2015 um 12:12 Uhr #8552Kevin Johnson
TeilnehmerNun habe ich schon die nächste Frage. :dry:
Auf dem Bild unten sieht man die 2 Tabellen meiner Businessobjekte („Kunde“ und „Ansprechpartner“).
Ich habe leider noch nicht ganz verstanden, wie ich es nun bewerkstellige, dass das Referenzfeld „1ansprechpartner“ nur auf die kundeneigenen Ansprechpartner zugreifen kann 🙁Das Referenzfeld „kunden“ im BO „Ansprechpartner“ ist für das Subform erstellt worden.
Das Referenzfeld „1ansprechpartner“ verknüpft die combobox zur Auswahl des Hauptansprechpartners mit dem Attribut „nachname“ im BO „Ansprechpartner“. Und genau hier hätte ich gerne, mit Hilfe des Valuelist Providers, dass nur die Ansprechpartner des ausgewählten Kunden übergeben werden.Welche Attribute muss ich mit einbeziehen und was für eine Bedingung muss ich bei welchem Attribut stellen?
LG
Attachments:2 Oktober 2015 um 18:27 Uhr #8558Papa Schlumpf
TeilnehmerDie Datenquelle braucht einen Parameter (z.B. [tt]intid_kunde[/tt]). Dieser wird nachher die ID des Kunden, der gerade geöffnet ist.
Die Tabellen und ihre Verknüpfung sind schon mal gut.
Nun wollen wir aber nur die Ansprechpartner haben, die zum übergebenen Kunden gehören. Das geht mit der Spalte [tt][/tt] des Kunden. Diese einfach nach unten ziehen und dann bei Bedingung folgendes schreiben: [tt]=’$intid_kunde'[/tt].
Nun brauchen wir noch die ID des Ansprechpartners, der verknüpft werden soll (d.h. das Feld [tt][/tt] des Ansprechpartners). Diese nach unten ziehen und z.B. [tt]intid[/tt] nennen.
Dann braucht man noch ein weiteres Feld, das nachher in der Combobox angezeigt wird. Das könnte in diesem Fall der Name des Ansprechpartners sein. Diese Spalte ebenfalls nach unten ziehen und z.B. [tt]name[/tt] nennen. Die Ansprechpartner haben hier einen Vor- und Nachnamen in jeweils einer Spalte. Diese könnte man evtl. per SQL zu einer Spalte kombinieren, sodass man beide Namen gleichzeitig anzeigen kann.
Nun kann man die Datenquelle im Layout als VLP der Combobox für den Ansprechpartner auswählen. Dabei muss man angeben, welche Spalte die ID des Ansprechpartners enthält (hier [tt]intid[/tt]) und welche den anzuzeigenden Text (hier [tt]name[/tt]).
5 Oktober 2015 um 10:38 Uhr #8562Kevin Johnson
TeilnehmerVielen Dank für die ausführliche und sehr gut beschriebene Anleitung.
So hatte ich es auch schon versucht, abgesehen von der Bedingung, auf die ich nicht gekommen bin. Nun habe ich leider ein Problem. Wenn ich es wie von Ihnen beschrieben anwende, bekomme ich folgende Fehlermeldung:
Attachments:5 Oktober 2015 um 11:48 Uhr #8564Papa Schlumpf
TeilnehmerIch denke, das liegt an den [tt][/tt] im Alias für die Kunden ID. In diesem Fall ist diese Spalte ja sowieso nur für die Bedingung da und soll nirgendwo verwendet werden. Also kannst du mal versuchen, die Spalte auf nicht sichtbar zu setzen und das Feld Alias einfach leer zu lassen.
12 Oktober 2015 um 10:47 Uhr #8579Kevin Johnson
TeilnehmerVielen Dank für die erneute Hilfe.
Leider habe ich so eine erneute Fehlermeldung bekommen.
Inzwischen habe ich aber den Nuclet Service und bin darauf erstmal nicht mehr angewiesen.
LG
13 Oktober 2015 um 01:22 Uhr #8587Thomas Hempel
Teilnehmermeiner Meinung nach ist der Fehler:
T1.“intid“ LIKE ‚$intid_kunde‘
Statt LIKE muss es dort „=“ heißen:
T1.“intid“ = ‚$intid_kunde‘
Um diesen Nuclos-Bug zu umschiffen, kann man auf SQL ändern klicken und damit auf den Abfrage-Designer verzichten.
Die andere Möglichkeit ist, im Nuclos-Abfrage-Designer die vollständige Bedingung in der Zeile Bedingung hinzuschreiben. Dann bleibt der Kollege aktiv und übersetzt richtig, weil er ja nicht übersetzen muss B)
Also
T1."intid" = '$intid_kunde'
statt nur verkürzt= '$intid_kunde'
hinschreiben. Hat bei mir mehrfach so funktioniert.Gruß
ThomasP.S. Fürs Forum wäre es wichtig, die Lösung zu erfahren, auch wenn die vom Support kommt. Sonst haben wir hier nur Fragen ohne Antworten mit Hinweisen auf einen tollen Support..
3 März 2016 um 17:38 Uhr #8774Julia Rataj
TeilnehmerHallo ihr Lieben,
gibt es hierzu vielleicht mittlerweile einen Lösungsvorschlag vom Service?
Ich habe nämlich genau das gleiche Problem (andere BOs aber im Prinzip das Selbe) und finde leider überhaupt keine Lösung dafür.
Mit dem letzen Post kann ich leider nur bedingt was anfangen, bin noch recht neu hier…
Ich wäre dankbar für jede Hilfe 🙂Liebe Grüße,
Julia
4 März 2016 um 02:38 Uhr #8775Dieter Mennig
TeilnehmerHallo Julia,
wenn du direkt im Kunden einen Hauptansprechpartner definieren willst, ist es sicher sinnvoll ein boolsches Feld einzufügen, das dazu da ist einen Hauptansprechpartner zu markieren. Das kannst du dann direkt im Unterformular anklicken ohne ein zusätzliches Kombifeld. Für andere Objekte (z.B. Auftrag) macht es aber Sinn ein Kombifeld zu nutzen. Das Kombifeld benötigt dann einen Value List Provider. Dazu brauchst du eine funktionierende SQL Abfrage von deinem BO Ansprechpartner, bei der du als Parameter die intid des Kunden übergibst. Das ist im Schulungsvideo sehr gut beschrieben.
Ich habe dir mal eine kleine Abfrage dazu eingefügt. Darin werden 2 BO angesprochen: Ansprechpartner und Anrede. Das Ganze wird dann noch nach dem Nachnamen sortiert. Mit dieser Abfrage erhälst du die Ansprechpartner eines Kunden (du musst natürlich die Bezeichnungen deiner BO verwenden und das „def“ ggf. durch deinen Nuclet Identifier ersetzen) .
SELECT
T1.“intid“ „“,
case when T1.“intid_stranrede“ is null then T1.“strnachname“ || ‚ ‚ || T1.“strvorname“ else
T2.“strname“ || ‚ ‚ || T1.“strnachname“ || ‚ ‚ || T1.“strvorname“ end as strapname,
T1.“intid_strkunde“ „kunde“,
T1.“blnstandard“ „blnstandard“
FROM
def_ansprechpartner T1
LEFT OUTER JOIN def_anrede T2 ON T1.intid_stranrede = T2.intid
WHERE
(T1.“intid_strkunde“ = $intid)
ORDER BY T1.“strnachname“Wenn du den Designer verwendest hat Thomas ja schon gezeigt, wie die Lösung aussieht (nämlich die komplette Bedingung eingeben).
Hope this helps 😉
4 März 2016 um 14:59 Uhr #8777Matthias KÖPER
TeilnehmerHallo Julia,
die Antwort von Thomas ist richtig. Ich hänge dir mal einen Screenshot an. Dort, wo die rote Markierung ist, kommt
T1."intid" = '$intid_kunde'
hin. Wenn oben in der Spalte wo im Beispiel T1.Kunde steht, anstelle von T1 eine andere Zahl steht, dann nimmst du die.
Nuclos generiert daraus eine SQL-Abfrage und schränkt die zurückgegebenen Datensätze auf den Kunden aus dem Parameter ein. Wenn du den Reiter SQL öffnest, siehst du, was Nuclos generiert hat.
Ich hoffe, es hilft, sonst nochmal fragen.
Viele Grüße
SKoeper8 März 2016 um 14:49 Uhr #8782Julia Rataj
TeilnehmerVielen Dank euch Beiden für die fixe Hilfe!
Ich war jetzt kurzfristig ein paar Tage weg, werde mir das aber jetzt gleich mal genauer anschauen und probieren!
Danke 🙂
-
AutorBeiträge