Startseite > Betrieb, CRM 2011, JavaScript > CRM 2011 – Hilfreiche JavaScript Codeschnippsel Version 2

CRM 2011 – Hilfreiche JavaScript Codeschnippsel Version 2

Anbei findet ihr die zweite Version meines Artikels über hilfreiche JavaScript Codeschnippsel im CRM. Er beinhaltet neben den Beispielen des ersten Artikels weitere Beispiele.
Es gibt eine neue Version des Artikels, den ihr hier finden könnt.

Den Wert eines Feldes auslesen
Xrm.Page.getAttribute(‚Feldname‘).getValue();

Den Wert eines Feldes setzen
Xrm.Page.getAttribute(‚Feldname‘).setValue(‚NeuerWert‘);

Den Wert eines Lookup-Feldes auslesen
var lookup = new Array();
lookup =Xrm.Page.getAttribute(‚Feldname‘).getValue();
lookup[0].id;
lookup[0].name;
lookup[0].entityType

Den Wert eines Lookup-Feldes setzen
var lookup = new Array();
lookup[0] = new Object();
lookup[0].id = ‚GUID des Datensatzes‘;
lookup[0].name = ‚Name des Datensatzes‘;
lookup[0].entityType = typeValue;
Xrm.Page.getAttribute(‚Feldname‘).setValue(lookup);

ID des aktuellen Datensatzes ermitteln
Xrm.Page.data.entity.getId();

Ein Feld anzeigen/verstecken
Xrm.Page.ui.controls.get(‚Feldname‘).setVisible(true);
Xrm.Page.ui.controls.get(‚Feldname‘).setVisible(false);

Eine Sektion (Tab) anzeigen/verstecken
Xrm.Page.ui.tabs.get(2).setVisible(true);
Xrm.Page.ui.tabs.get(2).setVisible(false);

Anstelle des Indexes für den Tab kann auch der Name des Tabs verwendet werden

Das OnChange Ereignis eines Feldes aufrufen
Xrm.Page.getAttribute(‚Feldname‘).fireOnChange();

Den ausgewählten Eintrag einer Pickliste auslesen
Xrm.Page.getAttribute(‚Feldname‘).getSelectedOption().text;

Den Wert einer Pickliste setzen
Xrm.Page.getAttribute(‚Feldname‘).setValue(parseInt(Wert));

Den Level eine Feldes setzen
Xrm.Page.getAttribute(‚Feldname‘).setRequiredLevel(’none‘);
Xrm.Page.getAttribute(‚Feldname‘).setRequiredLevel(‚required‘);
Xrm.Page.getAttribute(‚Feldname‘).setRequiredLevel(‚recommended‘);

Den Focus auf ein Feld setzen
Xrm.Page.getControl(‚Feldname‘).setFocus(true);

OnSave Ereignis abbrechen
event.returnValue = false;

Ein Feld schreibschützen
Xrm.Page.getControl(‚Feldname‘).setDisabled(true);

Ein Schreibgeschütztes Feld in der Datenbank speichern
Xrm.Page.getAttribute(‚Feldname‘).setSubmitMode(‚always‘)

Nur eine Entitä bei einem Lookup anzeigen
document.getElementById(‚customerid‘).setAttribute(‚lookuptypes‘, ‚1‘);

Möchte man mehrere Entitäten zur Auswahl anbieten, kann man diese durch Kommas getrennt angeben.
Das folgende Script zeigt z.B. noch die Entitäten Firma und Kontakt an.

document.getElementById(‚customerid‘).setAttribute(‚lookuptypes‘, ‚1, 2‘);
Zusätzlich muss dann noch der Defaulttype für das Lookup gesetzt werden
document.getElementById(‚customerid‘).setAttribute(‚defaulttype‘, ‚1‘);

Wird die Standardardanzeige des Lookups entfernt, muss zusätzlich eine neue Standardanzeige definiert werden
Xrm.Page.getControl(‚customerid‘).setDefaultView(‚GUID der View‘);
Vielen Dank an Jan Nebendahl für den Hinweis.

Schlagwörter: ,
  1. thuld
    6. September 2011 um 08:58

    Hallo,

    handelt es sich bei der Einschränkung der lookup-types um eine unsupporteted Anpassung?

    Daniel

    • 6. September 2011 um 09:30

      Jein, die Anpassung sollte supportet sein, da Standard-JavaScript verwendet wird. Genau kann dir das aber nur Microsoft sagen.

  2. 3. November 2011 um 10:25

    Im Bereich „ein Feld anzeigen/verstecken“ hat sich ein Fehlerchen eingeschlichen:
    Es müssen die ui.controls hierzu verwendet werden:

    Xrm.Page.ui.controls.get(„CRMFeldSchemaName“).setVisible(true);
    Xrm.Page.ui.controls.get(„CRMFeldSchemaName“).setVisible(false);

    • 2. Februar 2012 um 10:44

      Hallo Oliver,
      vielen Dank für den Hinweis, habe ich korrigiert🙂

      Gruß Michael Sulz

  3. Thorsten Kamper
    1. Dezember 2011 um 17:16

    Gibt es eine besondere Vorgehensweise um den Status(statecode) eines Datensatzes auszulesen? „Xrm.Page.getAttribute(„statecode“).getValue();“ liefert die Meldung „…ist null oder undefiniert.“ Das Feld ist vom Typ „Status“ und schreibgeschützt, hat es damit was zu tun?

    Gruß Thorsten

    • 2. Februar 2012 um 10:49

      Hallo Thorsten,
      das liegt daran, das sich dieses Feld nur im Footer, aber nicht im BOdy des Formulares befindet. Entweder fügst du dieses Feld einfach zusätzlich in den Body ein, oder du gehst über den Webservice, um den Wert des Feldes zu ermitteln.

      Gruß Michael

  4. Jan Nebendahl
    2. Februar 2012 um 09:20

    Beim Anpassen der Entitätenauswahl von Lookups per JScript ist Vorsicht angebracht.

    Sollte man die Standarddefaultanzeige (z.b. Account/Firma) entfernen, muss man den Defaultview des Lookup mit

    Xrm.Page.getControl(‚requiredattendees‘).setDefaultView(‚A2D479C5-53E3-4C69-ADDD-802327E67A0D‘);

    anpassen. (Guid ist ein Beispiel für den Contact Lookup View)

  5. Jan Nebendahl
    2. Februar 2012 um 09:41

    Und vorher ebenso einen neuen Defaulttype setzen

    document.getElementById(‚requiredattendees‘).setAttribute(‚defaulttype‘, ‚2‘);

    • 2. Februar 2012 um 10:44

      Hallo Jan,
      vielen Dank für den Hinweis, habe ich überarbeitet🙂

      Gruß Michael Sulz

  1. 7. Oktober 2015 um 22:05

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: