JavaScript - kleine Codeschnipsel

Bild Tipps & Tricks zu den Dynamics CRM Versionen
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.

JavaScript - kleine Codeschnipsel

Beitragvon Michael Sulz » 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 ist
crmForm.all.<Name des Feldes>.FireOnChange();

SchreibgeschĂĽtztes Feld in der DB speichern
crmForm.all.<Name der Feldes>.ForceSubmit = true;

Die GUID des Datensatzes im aktuellen Fenster ermitteln
crmForm.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 erzwingen
window.opener.parent.document.crmForm.Save();

Speichern eines Formulares verhindern
Durch 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 wird
window.attachEvent("onunload",dispose);
function dispose()
{
alert("Window is closing");
}

SetFocus
Unter 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: Alles auswählen
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 Artikel

Formular schließen ohne Sicherheitsabfrage bei geänderten Daten
Manchmal 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: Alles auswählen
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 Artikel

Der Artikel ist unter diesem Link in meinem Blog erschienen.
GruĂź, Michael Sulz
Mein Blog
Xing LinkedIn Facebook Twitter

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.

Wie man Fragen richtig stellt
Benutzeravatar
Michael Sulz
Microsoft Partner
Microsoft Partner
 
Beiträge: 4939
Registriert: 9. September 2009 17:41
Wohnort: MĂĽnster
Realer Name: Michael Sulz
Arbeitsort: MĂĽnster
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics CRM

ZurĂĽck zu CRM Tipps & Tricks

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 1 Gast