Almindelig DHTML kan anvendes til at manipulere de objekter, der er vist i formularer i MS CRM. Det forventes, at en udvikler, der tilpasser hændelser i MS CRM, i forvejen har erfaring med at arbejde med DHTML DOM.
MS CRM Form Object Model
MS CRM-formularer vises som HTML-sider i Internet Explorer, også når formulererne vises i MS CRM til Microsoft Office Outlook. Alle de HTML-dokumenter der vises i en browser indeholder objekter, der kan manipuleres ved hjælp af kode.
På alle formularer er der et Form-objekt, som hedder crmForm. Objektet er placeret under Body-objektet.
<body scroll="no">
<table class="ms-crm-Form-Area" cellspacing="0" cellpadding="0">
<col width="180"><col>
<tr height="80">
<td colspan="2">
<form name="crmForm" class="ms-crm-Form" setinitialfocus="true" formtype=2>
<input type="hidden" name="crmFormRootElem" value="account"/>
<tr>
Ovenstående konstruktion vil derfor betyde, at når man vil referere til et objekt på en formular er syntaksen:
crmForm.all.<navn på objekt>.<egenskab eller metode>
eksempel
crmForm.all.name.DataValue
Læsning af crmForm-egenskaber og -metoder
I visse situationer kan det være praktisk at kunne "aflæse" i hvilken tilstand en formular er i. Da man derved kan indrette sin kode derefter. I følgende liste er en række forskellige egenskaber og metoder.
| Egenskab/Metode |
Forklaring |
| crmForm.FormType == 1 |
Der oprettes en ny post. |
| crmForm.FormType == 2 |
En eksisterende post redigeres. |
| crmForm.FormType == 3 |
Posten kan ikke opdateres da brugeren ikke har rettigheder til det. |
| crmForm.FormType == 4 |
Posten kan ikke opdateres, f.eks. fordi den er deaktiveret (disabled). |
| crmForm.FormType == 5 |
Oprettelse af post med hurtig oprettelse (Quick Create). |
| = crmForm.ObjectId |
Hente det entydige ID for posten (GUID). |
| = crmForm.ObjectTypeCode |
Identificere hvilken posttype der er tale om (nummer på Entity, f.eks. Account, Contact mv.). |
| crmForm.IsForOutlookClient==true |
Undersøge om brugeren anvender Outlook-klienten. |
| crmForm.IsForOutlookLightClient == true |
Undersøge om brugeren anvender Outlook Light-klienten. |
| crmForm.IsOnline==true |
Undersøge om brugeren arbejder med MS CRM online. |
| crmForm.IsDirty==true |
Undersøge om der er ændret værdier i et felt eller felter på formularen. |
For at se nummeret på en entity, som kan bruges i forbindelse med ObjectTypeCode, kan man gøre følgende:
- Brug adressen http://<crm-server>/sdk/list.aspx

En liste over alle entities vises.
- Klik på ikonen i kolonnen Definition.

Man kan nu identificere ObjectTypeCode, sammen med andre informationer om den pågældende entity.
Brug af crmForm-metoder
I koden kan du kalde metoder for at udføre bestemte handlinger i formularen. I tabellen herunder beskriver de metoder, der er tilgængelige for crmForm-objektet. Disse svarer til handlinger, som brugeren kan udføre i formularen.
| Metode |
Syntaks |
Forklaring |
| Gem |
crmForm.Save() |
Udløser lagringsfunktionen. Dette funktionskald kan bruges til at gennemtvinge den samme proces, som når brugeren trykker på Gem i formularen. |
| Gem og Luk |
crmForm.SaveAndClose() |
Udløser funktionen Gem og luk. |
Fælles egenskaber
De fleste felter har en række fælles egenskaber. Min, Max og Accuracy anvendes kun af felter, som har numeriske datatyper. Følgende tabel beskriver de generelle feltegenskaber og datatyper, der anvendes sammen med dem.
| Egenskab |
Beskrivelse og datatype |
| DataValue |
Hente eller angive værdien i et felt. Værdien afhænger af felttypen. |
| Value |
Hente den uformaterede værdi i et felt, f.eks. hente en værdi som bliver vist som 10.250,00, men som hentes med Value og bliver vist som 10250,00. |
| MaxLength |
Hente den maksimale længde for en streng eller et memofelt. Heltalsværdi. |
| Disabled |
Deaktivere eller aktivere et felt. Boolesk værdi. |
| RequiredLevel |
Læse det påkrævede niveau for et felt. Heltalsværdi.
0 = Ingen begrænsning (No Constraint) 1 = Forretning anbefalet (Business Recommended) 2 = Forretning krævet (Business Required)
|
| IsDirty |
Afgøre, om feltets værdi er ændret. Boolesk værdi. |
| Min |
Bestemme den lavest tilladte værdi for et heltal, et flydende felt eller et valutafelt. Heltalsværdi. |
| Max |
Bestemme den maksimalt tilladte værdi for et heltal, et flydende felt eller et valutafelt. Heltalsværdi. |
| Accuracy |
Bestemme det tilladte antal cifre for flydende felter eller valutafelter. Heltalsværdi. |