12. Februar 2010 18:33
Es gibt immer wieder kleine hilfreiche Codeschnipsel oder Helferlein, die ich ständig suche und hier einfach mal sammeln möchte. Anregungen und/oder Ergänzungen sind jederzeit willkommen.
Wichtiger Hinweis:
Die meisten der hier stehenden Codeschnipsel sind unsuppportete Anpassungen am CRM und werden offiziell von Microsoft nicht unterstützt.
Code ausführen, der in einem anderen Feld im OnChange hinterlegt istcrmForm.all.<Name des Feldes>.FireOnChange();
Schreibgeschütztes Feld in der DB speicherncrmForm.all.<Name der Feldes>.ForceSubmit = true;
Die GUID des Datensatzes im aktuellen Fenster ermittelncrmForm.all.<Name des Feldes>.DataValue = window.location.href.split("?")[1].split("=")[1];
crmForm.all.<Name des Feldes>.DataValue = crmForm.all.new_recordguid.DataValue.replace("#", "");
crmForm.ObjectId;
Speichern eines Formulares erzwingenwindow.opener.parent.document.crmForm.Save();
Speichern eines Formulares verhindernDurch folgende zwei Codezeilen wird das speichern eines Formulares verhindert.
event.returnValue=false;
return false;
Abfangen, wenn ein CRM Formular mit dem x oben rechts geschlossen wirdwindow.attachEvent("onunload",dispose);
function dispose()
{
alert("Window is closing");
}
SetFocusUnter CRM 4.0 gibt es ein Problem mit dem SetFocus Befehl in JavaScript, siehe hierzu auch diesen
KB-Artikel.
Mit folgendem Trick funktioniert SetFocus dann auch im CRM.
var oField = crmForm.all.<meinFeld>;
oField.onblur = function() { oField.SetFocus(); oField.onblur = null; }
oField.SetFocus();
Namen eines Attributes auslesen- Code:
function GetFieldLabel(fieldname)
{
var field = crmForm.all[fieldname+ '_c'];
if (field != null){
return field.firstChild.firstChild.nodeValue;
}
else {
return '';
}
}
alert(GetFieldLabel('subject'));
Code von ckeller aus diesem ArtikelFormular schließen ohne Sicherheitsabfrage bei geänderten DatenManchmal ist es wünschenswert, das ein CRM Formular mit JacaScript geschlossen werden kann. Solange die Daten nicht geändert wurden, ist das kein Problem, da reicht einfach window.close() um das Fenster zu schließen.
Wurden aber bereits Daten im Formular geändert, kommt eine Sicherheitsabfrage, ob das Formular wirklich ohne speichern geschlossen werden soll. Diese Sicherheitsabfrage kann mit folgendem Code ausgeschaltet werden.
- Code:
crmForm.detachCloseAlert()
window.close()
Dabei kann die Zeile "crmForm.detachCloseAlert()" im OnLoad gesetzt werden oder direkt vor dem benötigten window.close() Befehl.
Code von thorstenkleibs aus diesem ArtikelDer Artikel ist unter diesem
Link in meinem Blog erschienen.