2

Microsoft Dynamics CRMで開発中です。私は日付フィールドの年の部分でテキストフィールドをオートポピュレートするいくつかのJavaScriptコードを書いた。私はまだ私のコードはよく書かれていないかもしれないので、私はまだjavascriptの開発で初心者であることを認めます。コードが機能していて、その年が最終的に入力されると、最初は「1969」が1秒間点滅して消えます。正しい年が表示される前に、保存ボタンを2回押す必要があります。私は、1969年がいつでも表示されないようにし、ユーザーが保存ボタンを押すとすぐにフィールドに値を入力できることを好みます。お知らせ下さい。ありがとうございました!日付フィールド値を含むテキストフィールドの自動入力

var dateString = Xrm.Page.getAttribute('finalizeddate').getValue(); 
var finalDate = new Date(dateString); 
var finalYear = finalDate.getFullYear(); 
var str = finalYear.toString(); 
var revisionStatus = Xrm.Page.getAttribute('revisionstatus'); 

// If status is final, then populate quota year with finalized date year. 
// Otherwise, do not set a value 
if (revisionStatus.getSelectedOption().value == final) { 
    Xrm.Page.getAttribute('quotayear').setValue(str); 
} else { 
    Xrm.Page.getAttribute('quotayear').setValue(); 
} 
+2

「最終」とは何ですか? –

+0

'OnSave'を実行するとうまくいくでしょう – Alex

+1

" 1969 "はそのフィールドのデフォルト値ですか? – DenLun

答えて

0

は、ジェームス・ウッドは、彼のコメント

決勝は何であるに述べたように?

は、JavaScript(https://www.w3schools.com/js/js_reserved.asp)の予約語です。これは、オプションセットの値が引用符で囲まれている必要があるためです。

また、私が持っているSDKのバージョンでは、それはあなたが見つけるためにあなたのカスタマイゼーションをチェックする必要があるかもしれませんので、は、optionフィールド上getValue()は、数ないラベルオプションのテキストを返すことを言いますfinalオプションの正しい値。

これを済ませたら、次のコードを試して、動作するかどうか確認できますか?

var revisionStatus = Xrm.Page.getAttribute('revisionstatus'); 
var finalOption = '1';  // this is the value of the optionset, not the label 

// If status is 'final', then populate quota year with finalized date year. 
if (revisionStatus.getSelectedOption().value == finalOption) 
{ 
    var finalizedDate = Xrm.Page.getAttribute('finalizeddate').getValue(); 
    var year = new Date(finalizedDate).getFullYear().toString(); 
    Xrm.Page.getAttribute('quotayear').setValue(year); 
} 
// Otherwise, do not set a value 
else 
{ 
    Xrm.Page.getAttribute('quotayear').setValue(); 
} 

また、サイドノートとして、開発者プレフィックスがないため、実際のスキーマ名ではありません。

関連する問題