Home Forum Nuclos Konfiguration Vorgänge und Objekte Ansprechpartner fest an einen Kunden binden

Ansicht von 13 Beiträgen - 1 bis 13 (von insgesamt 13)
  • Autor
    Beiträge
  • #8532
    Kevin Johnson
    Teilnehmer

    Hallo 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.

    #8535
    Thomas Hempel
    Teilnehmer

    Das übernimmt ein Valuelistprovider. Hier gibts eine gute Anleitung:
    wiki.nuclos.de/display/Konfiguration/Valuelist+Provider

    Gruß
    Thomas

    #8546
    Kevin Johnson
    Teilnehmer

    Klasse. Danke für die schnelle Antwort ich werde mich direkt damit auseinander setzen.

    LG

    #8552
    Kevin Johnson
    Teilnehmer

    Nun 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

    #8558
    Papa Schlumpf
    Teilnehmer

    Die 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]).

    #8562
    Kevin Johnson
    Teilnehmer

    Vielen 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:

    #8564
    Papa Schlumpf
    Teilnehmer

    Ich 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.

    #8579
    Kevin Johnson
    Teilnehmer

    Vielen 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

    #8587
    Thomas Hempel
    Teilnehmer

    meiner 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ß
    Thomas

    P.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..

    #8774
    Julia Rataj
    Teilnehmer

    Hallo 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

    #8775
    Dieter Mennig
    Teilnehmer

    Hallo 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 😉

    #8777
    Matthias KÖPER
    Teilnehmer

    Hallo 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
    SKoeper

    #8782
    Julia Rataj
    Teilnehmer

    Vielen 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 🙂

Ansicht von 13 Beiträgen - 1 bis 13 (von insgesamt 13)