per <link entity ... Daten aus n:n Verknüpfung in einer Datenreihe anzeigen, nicht in zwei getrennten Datenreihen, WIE ???

Вопрос per <link entity ... Daten aus n:n Verknüpfung in einer Datenreihe anzeigen, nicht in zwei getrennten Datenreihen, WIE ???

  • Thursday, 19 May, 2011 10:16 AM
     
     

    Hallo alle

    Ich habe per <link entity ... Daten aus einer n:n Verknüpfung geladen.

    Nun ist es so, dass der Datensatz zwar angezeigt wird, aber wenn es mehrere verknüpfte Datensätze sind, wird in der Berichtsausgabe einfach eine neue Zeile eingefügt, in der alle Vertragsdaten nochmals gleich stehen, nur der zweite n:n verlinkte wert ist dann geändert.
    Das sieht dann aber so aus, als gäbe es 2 Verträge. Es gibt aber nur 1 Vertrag mit 2 n:n verküpften Datensätzen aus anderer Enität.

    Ich denke irgendwas mache ich bei den Berichtsparametern falsch.

     <link-entity alias="ver_vp1" enableprefiltering="1" from="ass_vertragid" link-type="outer" name="new_person" prefilterparametername="CRM_new_person" to="new_vertragid">  

            <attribute alias="ver_vp_vertragid" name="new_personid" />

       <link-entity alias="ver_vp2" enableprefiltering="1" from="contactid" link-type="outer" name="contact" prefilterparametername="CRM_FilteredContact" to="contactid">

     <attribute alias="vp_fullname" name="fullname" />

       </link-entity>

          </link-entity>

    und die Daten werden dann im Bericht so angezeigt

    ---

    Feld1  Feld2

    fullname1 (gefundener n:n verknüpfter datensatz 1)

    ---

    Feld1  Feld2

    fullname2 (gefundener n:n verknüpfter datensatz 2)

    ---

    ICH möchte jedoch foglende Anzeige (in einer Zeile bzw. Datenreihe):

    Feld1  Feld2

    fullname1 (gefundener n:n verknüpfter datensatz 1), fullname2 (gefundener n:n verknüpfter datensatz 2)

    ---

    Was ich bei den Parametern noch nie kapiert habe ist, was muss ich einstellen, damit ich mehrere Werte geliefert bekommen kann und wie muss ich diese verarbeiten.

    Ich habe in VisualStudio bei den Berichtsparametern immer einen Haken bei "Null-Wert zulassen" angeklickt. Es gibt aber auch noch "Mehrere Werte zulassen". Sobald ich das anhake, muss ich null-werte zulassen abhaken. Dann funktioniert aber die Einstellung im Reiter "Standardwerte" nicht mehr. Hier hatte ich immer "Werte angeben" und bei "hinzufügen" hatte ich den Wert "(NULL)" ausgewählt. Das geht aber nicht mehr, da bei angehakten "mehrere WErte zulassen, "null" nicht zulässig ist. Wenn ich (null) wegmache und dann "kein Standardwert" aktiviere kommt beim ausführen des Berichts ein Fehler, das ein Parameter nicht angegeben wurde.

    Ich kann ja hier aber keinen Parameterwert angeben, denn der wird ja erst zu Berichtslaufzeit bekannt ?!

    Bin mir sicher, dass ich hier nur nen kleinen Schubs brauche, weil ich da was nicht richtig verstehe.

    Danke, Gruss Pit

All Replies

  • Friday, 20 May, 2011 9:43 AM
     
     

    Hallo Pit,

    Problem bei deiner Abfrage ist, dass du per Link-Entity auf eine Zwischentabelle zugreifst in der pro Verknüpfung ein Datensatz enthalten ist! Darum erhältst du auch bei der Abfrage getrennte Zeilen: Vertrag 1 <-> Contact 1 ; Vertrag 1 <-> Contact 2

    Liebe Grüße,

    Andreas


    Andreas Buchinger
    Microsoft Dynamics Certified Technology Specialist
    MCPD: SharePoint Developer 2010
  • Friday, 20 May, 2011 2:50 PM
     
     

    Ich habe es inzwischen gelöst. Für die, die es auch brauchen:

    Das muss im Ausdruck eines Textfeldes stehen (geht nicht (lookupset) in nem parameter oder in dem dataset (irrsinnigerweise geht das da nicht, warum? keine Plan. Iss halt so):

    =Join(LookupSet(Fields!ver_vertragid.Value, Fields!ass_vertragid.Value, Fields!vp_name_fullname.Value, "vp_verkn"), (vbCrLF))

    die äussere Klammer (join) zerlegt mehrere Ergebnisse zusammen mit (vbCrLF) (einer Zeilenschaltung) zu 

    Vorname1 Nachname
    Vorname 2 Nachname

    --

    Lookupset holt sich den Feldinhalt  "Fields!vp_name_fullname.Value" einer Verknüpfungstabelle, für die man zuvor ein dataset erstellen muss... "vp_verkn" ist der name des datasets.

    Das erste Fields!ver_vertragid.Value muss ein Feld aus dem akutellen dataset sein, also aus dem textfeld, in dem dieser code steht, der ja innerhalb eines anderen datasets steht.

    Das zweite Fields!ver_vertragid.Value ist dann der Feldname innerhalb des vernpüfungs-datasets "vp_verkn"

    es wird bei jedem Zeilendurchlauf geprüft, ob die id des vertrages in dem ursprünglichen dataset  mit der id des vertrages in der verknüpfungstabelle übereinsstimmt und dann werden die verknüpften werte zurückgegeben (in diesem Fall Fullname).

    Ich hoffe das hat jemand verstanden :-)

    Danke allen Helfern, Gruss Pit