JavaScript - Arbeiten mit Lookups

5. November 2009 18:17

Ein Lookup ist immer vom Datentyp Array. Der Wert, der im Lookup angezeigt wird, ist immer der erste Datensatz in diesem Array. Es gibt nur sehr wenige Entitäten, in denen das Feld tatsächlich mehrere Datensätze enthält, z.B. kann das Feld Empfänger einer E-Mail mehrere Datensätze beinhalten.

Auf die Daten in einem Lookup zugreifen
  • Auf folgende Felder eines Lookups kann direkt zugegriffen werden
    Code:
    crmForm.all.regardingobjectid.DataValue[0].id;    // Die GUID des Datensatzes im Lookup
    crmForm.all.regardingobjectid.DataValue[0].name;        // Der Text, der im Lookup angezeigt wird
    crmForm.all.regardingobjectid.DataValue[0].typename;  // Der Typ des Datensatzes, der im Lookup angezeigt wird
Ein Lookup mit einem Standardwert füllen
  • Version 1
    Code:
    var lookupitem = new Array();
    lookupitem[0] = new LookupControlItem('58e9ce6d-021d-de11-a316-005056a11444', 10008, 'Test1');
    crmForm.all.sulz_testid.DataValue = lookupitem;
    Parameter:
    Die ID des Datensatzes, die zugewiesen werden soll
    Der Typecode der Entität, die zugeordnet werden soll
    Der Name des Datensatzes, der im Lookup angezeigt wird
  • Version 2
    Code:
    var lookupitem = new Array();
    var lookupitemobject = new Object();
    lookupitemobject .id =  '{6F7329E4-45C5-4393-A08E-6AE3AC070902}';
    lookupitemobject .typename = 'uom';
    lookupitemobject .name = 'Primary Unit';
    lookupitem [0] = lookupitemobject;
    crmForm.all.primaryUnit.DataValue = lookupitem;

Den Wert in einem Lookup löschen
Code:
crmForm.all.<lookupField>.DataValue = null;


Den Default Lookuptyp ändern
Wenn ein Lookup mehre Entitätstypen enthalten kann, kann mit diesem Code der Default-Wert festegelegt werden, der beim öffnen des Lookups ausgewählt ist.
Das Beispiel setzt den Typ auf Kontakt.
Code:
if (crmForm.all.regardingobjectid != null) {
    crmForm.all.regardingobjectid.setAttribute("defaulttype", "2");


Mehrere Einträge zu einem Multi Select Lookup hinzufügen (z.B. An-Feld in einer eMail)
Code:
var lookup = new Array();
var item0 = new Object();
item0.typename = 'account';
item0.id = '';
item0.name = 'Name1';
lookup[0] = item0;

var item1 = new Object();
item1.typename = 'account';
item1.id = '';
item1.name = 'Name2';
lookup[1] = item1;

crmForm.all.to.DataValue = lookup;


Alle Datensätze in einem Lookup anzeigen
Code:
crmForm.all.<Name des Lookup Feldes>.lookupclass = "alllookups";


Bei einem Lookup das Suchfeld ausblenden
crmForm.all.<Name des Feldes>.style.display = "none";

Verweis auf weitere Beiträge zum Them Lookups

Der Artikel ist unter diesem Link in meinem Blog erschienen.