Benutzer mit den meisten Antworten
Berechnungen im Formular

Frage
-
Hallo Gemeinde,
Wir nutzen CRM 2011 seit januar in unserem Unternehmen. Ich probiere auf einem Testmandanten nun was alles so möglich ist ohne unseren Dienstleister zu bemühen um das System an unsere Bedürfnisse anzupassen! Gerade bei u.g. Kleinigkeiten halte ich das für überzogen.
So, da ich aber Anfänger bin und auch sonst wenig Ahnung habe und die gefundenen Ergebnisse im Forum mich auch nicht weiterbringen muss ich also fragen. Meine Try & Error Versuche mit gefundenen Codeschnipseln enden stets mit ERROR. Da ich aber der Meinung bin, dass eine klitzekleine Berechnung kein Hexenwerk sein kann, ist hier meine Frage:
Ich möchte in einem Formular (bsp. Verkaufschancenentität) ein weiteres Feld einfügen in dem eine einfache Berechnung statt findet. Die Berechnung bezieht sich auf ein anderes Feld in dieser Entität und ich will einfach nur eine Summe Bilden. Es wird also ein fixer Wert hinzu gerechnet. Zum Verständnis reicht mir das.
Ich hab nun also das Feld eingefügt und in die Formularbibliothek folgenden Code eingegeben:
crmForm.all.new_feldb.DataValue = crmForm.all.freightamount.DataValue + 100
nach Recherche hab ich dann herausgefunden, dass CRM 2011 ein "anderes Jscript" verwendet und dass es einen tollen Konvertierer gibt
Xrm.Page.getAttribute("new_feldb").getValue() = Xrm.Page.getAttribute("freightamount").getValue() + 100
Den Bibliothekseintrag habe ich dann im OnChange Ereignis des Feldes zugewiesen. (Ich habe keine Ahnung ob das auch nur ansatzweise richtig war)
Erwartungsgemäß funktioniert das alles nicht und ich bekomme folgende Meldung:
Fehler im benutzerdefinierten Ereignis dieses Feldes
Feld: freightamount
Ereignis. onchange
Fehler: Objekt erwartetNun ich hatte in meinem jugendlichen Leichtsinn auf ein Spontanerfolgserlebnis gehofft, dass nun aber ausbleibt. Ich habe auch keine Ahnung von Objekten/Javaskript und sonstiger Programmierung. Aber so eine kleine berechnung sollte doch möglich sein und ich hoffe nun hier auf Hilfe.
Was mache ich falsch? Was muss in dem OnChange Ereignis stehen und warum?
Ich hoffe es kann mir jemand helfen.
Viele Grüße
Antworten
-
Hallo,
dann gib dir doch einfach mal mit alert aus, was denn gerechnet wird.
function calculate() { var value = Xrm.Page.getAttribute('freightamount').getValue() + 100; alert(value); Xrm.Page.getAttribute('new_feldb').setValue(value); }
Und natürlich hat RBecker recht, Werte werden mit setValue gesetzt.
Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
Blog
Website XING LinkedIn Facebook Twitter- Als Antwort markiert Michael Schulze Mittwoch, 22. August 2012 08:06
-
- Als Antwort markiert Michael Schulze Mittwoch, 22. August 2012 08:07
-
Hallo Michael,
anders als bei CRM 4.0 werden in CRM 2011 die JavaScripte in Bibliotheken gespeichert. Du kannst also nicht mehr direkt den Code in das Feld schreiben, sondern musst erst eine Funktion definieren und diese Funktion dann aufrufen. In deinem Beispiel würde das bedeuten, dass du eine JavaScript Bibliothek erstellst und diese dem Formular zuordnest.
In die Bibliothek fügst du folgenden Code ein:
function calculate() { Xrm.Page.getAttribute('new_feldb').getValue() = Xrm.Page.getAttribute('freightamount').getValue() + 100; }
Im OnChange deines Feldes rufst du jetzt die Funktion calculate auf, und schon wird dein Feld berechnet.Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
Blog
Website XING LinkedIn Facebook Twitter- Als Antwort markiert Michael Sulz Mittwoch, 28. September 2016 11:25
Alle Antworten
-
Hallo Michael,
anders als bei CRM 4.0 werden in CRM 2011 die JavaScripte in Bibliotheken gespeichert. Du kannst also nicht mehr direkt den Code in das Feld schreiben, sondern musst erst eine Funktion definieren und diese Funktion dann aufrufen. In deinem Beispiel würde das bedeuten, dass du eine JavaScript Bibliothek erstellst und diese dem Formular zuordnest.
In die Bibliothek fügst du folgenden Code ein:
function calculate() { Xrm.Page.getAttribute('new_feldb').getValue() = Xrm.Page.getAttribute('freightamount').getValue() + 100; }
Im OnChange deines Feldes rufst du jetzt die Funktion calculate auf, und schon wird dein Feld berechnet.Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
Blog
Website XING LinkedIn Facebook Twitter- Als Antwort markiert Michael Sulz Mittwoch, 28. September 2016 11:25
-
-
Hallo,
dann gib dir doch einfach mal mit alert aus, was denn gerechnet wird.
function calculate() { var value = Xrm.Page.getAttribute('freightamount').getValue() + 100; alert(value); Xrm.Page.getAttribute('new_feldb').setValue(value); }
Und natürlich hat RBecker recht, Werte werden mit setValue gesetzt.
Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
Blog
Website XING LinkedIn Facebook Twitter- Als Antwort markiert Michael Schulze Mittwoch, 22. August 2012 08:06
-
Aha,
also jetzt wird gerechnet.
Allerdings erfolgt die Berechnung nur "halbautomatisch". Wenn ich also einen Wert bei "freightamount" eingebe passiert zunächst nichts. Speichern, Klicken..keine Funktion. Wenn ich dann aber in "feldb" einen beliebigen Wert eingebe, wird gerechnet und der richtige Wert auch gesetzt.
-
- Als Antwort markiert Michael Schulze Mittwoch, 22. August 2012 08:07