Subgrid Filter

6. November 2013 10:41

Hallo,

ich möchte ein Subgrid auf einer Aktivitäts-Entität filtern. Es sollen nur Daten angezeigt werden, die auch einem dem Datensatz zugeordneten Kunden angehören:

Code:
function setFilteredView_Rezepturen()

var viewId = "{a76b2c46-c28e-4e5e-9ddf-951b71202c9d}";
 var customerId = Xrm.Page.getAttribute("new_kundeid").getValue();
 
if (customerId != null)
{
  var qryRezepturen = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
        "<entity name='new_rezeptur'>" +
         "<attribute name='new_name' />" +
         "<attribute name='new_land' />" +
         "<filter type='and'>"+
          "<condition attribute='new_kundeid' operator='eq' value='" + customerId[0].id + "' />"+
         "</filter>"+
        "</entity>"+
        "</fetch>";

  var layoutXml = "<grid name='resultset' object='1' jump='name' select='1' icon='1' preview='1'>" +
       "<row name='result' id='new_rezepturid'>" +
       "<cell name='new_name' width='300' />" +
       "<cell name='new_land' width='150' />" +
       "</row>" +
      "</grid>";
     
  var viewDisplayName = "Zugeordnete Daten"; 
  var grid = document.getElementById("Rezepturen");     
  if (grid)
  {         
   if (grid.readyState == "complete")
   {               
       grid.control.SetParameter("fetchXml", qryRezepturen);
    grid.control.SetParameter("layoutXml", layoutXml);
    grid.control.SetParameter("viewDisplayName", viewDisplayName);
    grid.control.refresh();
   }                   
  } 
}
}


Der Code läuft auch ohne Probleme durch. Allerdings stand dann im Subgrid etwas mit "Kann Unterraster nicht zuordnen". Ich habe also vermutet, dass mein Fetch kaputt sein könnte. Daraufhin habe ich mir ein Subgrid mit der Entität Contacts angelegt und ein Fetch hinterlegt, dass bei einem bereits bestehenden Lookup funktioniert. Die Meldung mit Unterraster erscheint dann nicht mehr. Allerdings ist der Filter bei "Vorhandenen Datensatz hinzufügen" - "Zugeordnete Daten" nicht gesetzt bzw. gar nicht vorhanden.


Ich hoffe, es kann jemand helfen. Danke!

Re: Subgrid Filter

6. November 2013 15:50

Hallo,

wie schon im Microsoft Forum von Arash ausgeführt, dürfte die Ursache darin liegen, das du ein Customer Feld verwendest, also entweder Firma oder Kontakt.

Was für ein Typ ist den das Feld new_kundeid?
Du solltest den Filter so aufbauen das er nur Datensätze ausfiltert, die auch diesem Datentyp entsprechen.

Re: Subgrid Filter

6. November 2013 16:12

Hallo Herr Sulz,

vielen Dank für die Antwort.

Bei dem Feld new_kundeid in der Entität "Firmenbericht" handelt es sich um ein Lookup auf die Firmen. In der Entität Rezepturen ist ebenfalls ein Lookup auf die Firmen vorhanden- es können also Rezepturen den Firmen zugeordnet werden. In den Firmenberichten mit dem Subgrid soll der Filter dann alle Rezepturen mit derselben Firma gehen(Wenn ich einen vorhandenen Datensatz hinzufügen möchte)...

Re: Subgrid Filter

6. November 2013 19:05

Hallo,

funktioniert denn dein Funktion, wenn du eine Firma als Kunden auswählst, oder bleibt es immer bei der Fehlermeldung, egal ob Firma oder Kontakt?

Re: Subgrid Filter

7. November 2013 16:08

Hallo,

der Code funktioniert leider bei beiden nicht. Das Problem hat sich für uns allerdings jetzt erledigt, da wir unsere gewünschte m-n Beziehung jetzt über die Entität Verbindung abbilden. Hier kann dann ein Datensatz in einem einfachen Lookup ausgewählt werden, bei dem die Filterung problemlos läuft.

Danke.