2017-07-26 4 views
1

Was ich versuche zu tun ist eine HTML-Schaltfläche hinzufügen, die als wirklich einfache JavaScript-Funktion ausgelöst wird. Im Wesentlichen Onclick, ich möchte sehen, ob ein Feld einen Wert von 0,00 enthält - wenn ja, entfernen Sie diesen Wert. Oder, wenn das Feld keine Daten enthält, addiere den Wert von 0,00, so dass es zwischen diesen beiden Werten wechseln sollte.Hinzufügen von HTML-Button zu Dynamics CRM 2016 Formular

<html> 
    <head> 
    </head> 
    <body> 
    <button onclick="ReCalc">Re-Calculate Balance</button> 
     <script> 
     function ReCalc() { 
     var BalanceWriteOff = Xrm.Page.getAttribute("jucy_balancewriteoff").getValue(); 
     if ((BalanceWriteOff) ==null) 
      Xrm.Page.getAttribute("balancewriteoff").setValue("0"); 
      Xrm.Page.data.entity.save(); 
     if ((BalanceWriteOff) =="0") 
      Xrm.Page.getAttribute("jucy_balancewriteoff").setValue(null); 
      Xrm.Page.data.entity.save(); 
      return; 
    } 
    </script> 
    </body> 
    </html> 

Wenn ich versuche, dies auf dem Formular auszuführen, wo das HTML-Element platziert wurde. Nichts passiert. Ich habe ein paar Breakpoints bei der var und bei beiden if-Statements eingefügt und bekomme keine Pause, wenn ich das onclick-Event starte.

Ich bin hier irgendwie ratlos. Wenn jemand irgendwelche Einsichten für mich hat, die großartig wären

Antwort

0

Um CRM Formularfelder aus einer HTML-Web-Ressource zuzugreifen, fügen Sie dieses Skript zu dem HTML:

<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script> 

und prepend "Eltern" zum Xrm.Page-Objekt:

parent.Xrm.Page.getAttribute("jucy_balancewriteoff").getValue(); 
1

Hoppla! In Ihrem onclick Attribut haben Sie vergessen, die Methode aufzurufen.

Um dies zu beheben, ändern Sie einfach onclick="ReCalc" zu onclick="ReCalc()".

Hier ist ein Code Stift Ihnen zu zeigen, es funktioniert jetzt - https://codepen.io/trentrand/pen/Jyomgr

+0

Absolut. Wenn Sie der Meinung waren, dass meine Antwort das in Ihrem ursprünglichen Beitrag beschriebene Kernproblem gelöst hat, markieren Sie es bitte als akzeptiert, damit sich andere in Zukunft darauf als Lösung beziehen können. – Trent

Verwandte Themen