locked
How to make an entity to need approval RRS feed

  • Question

  • Hello,

       I need an entity ( custom or system ) to be able to put two buttons "Approve" and "Disapprove". And depending on those two buttons to make the record or some part of it (fields) read-only.

       Is this possible in Microsoft Dynamics CRM 2011 and how?

     

    Thank you for the help.

    Monday, October 24, 2011 8:19 AM

Answers

  • Try this

     

    create a new text field on CRM 2011 form (type : Multiple Lines of Text).

    OnLoad :

    ConvertToButton('new_fieldname', 'ButtonText','100px',FunctionName,'Button Label');

    the function definitions can also reside in another web resource.

    function ConvertToButton(fieldname, buttontext, buttonwidth,clickevent, title)

    {

    //check if object exists; else return
    if (document.getElementById(fieldname) == null)
    {
    return;
    }


    functiontocall=clickevent;
    crmForm.all[fieldname].DataValue = buttontext;
    crmForm.all[fieldname].readOnly = true;
    crmForm.all[fieldname].style.borderRight="#3366cc 1px solid";
    crmForm.all[fieldname].style.paddingRight="5px";
    crmForm.all[fieldname].style.borderTop="#3366cc 1px solid";
    crmForm.all[fieldname].style.paddingLeft="5px";
    crmForm.all[fieldname].style.fontSize="11px";
    crmForm.all[fieldname].style.backgroundImage="url(/_imgs/btn_rest.gif)";
    crmForm.all[fieldname].style.borderLeft="#3366cc 1px solid";
    crmForm.all[fieldname].style.width=buttonwidth;
    crmForm.all[fieldname].style.cursor="hand";
    crmForm.all[fieldname].style.lineHeight="18px";
    crmForm.all[fieldname].style.borderBottom="#3366cc 1px solid";
    crmForm.all[fieldname].style.backgroundRepeat="repeat-x";
    crmForm.all[fieldname].style.fontFamily="Tahoma";
    crmForm.all[fieldname].style.height="20px";
    crmForm.all[fieldname].style.backgroundColor="#cee7ff";
    crmForm.all[fieldname].style.textAlign="center";
    crmForm.all[fieldname].style.overflow="hidden";
    crmForm.all[fieldname].attachEvent("onmousedown",push_button);
    crmForm.all[fieldname].attachEvent("onmouseup",release_button);
    crmForm.all[fieldname].attachEvent("onclick",FunctionName);
    crmForm.all[fieldname].style.lineHeight="14px";
    crmForm.all[fieldname+'_c'].style.visibility = 'hidden';
    crmForm.all[fieldname].title=title;
    window.focus();

    function push_button(){
    window.event.srcElement.style.borderWidth="2px";
    window.event.srcElement.style.borderStyle="groove ridge ridge groove";
    window.event.srcElement.style.borderColor="#3366cc #4080f0 #4080f0 #3366cc";
    }

    function release_button(){
    window.event.srcElement.style.border="1px solid #3366cc";
    }
    }

     

    // now the definition of the function to call on button click

    function FunctionName()

    {

    //make the fields read only

    }


    Thanks,

    Kirsh


    • Edited by Kirsh Jay Monday, October 24, 2011 8:27 AM
    • Proposed as answer by Kirsh Jay Monday, October 24, 2011 8:28 AM
    • Marked as answer by Atanas Desev Monday, October 24, 2011 11:58 AM
    Monday, October 24, 2011 8:27 AM
  • Yes, this is very much possible in CRM 2011.

    To add buttons to CRM form, you will need to modify the ribbon settings for the entity. This can be done by exporting the entity customizations. Detailed steps are provided in CRM 2011 SDK.

    You can add custom bool attribute IsApproved. On the click on your button you will set the value for this attribute.

    Next through script written on the OnLoad event of the form, you can check for the value of IsApproved and accordingly enable/disable fields on the form.

    Please download the SDK for samples to help you with the above.

    HTH

    Sam


    Web: http://www.inogic.com
    Blog: http://inogic.blogspot.com
    Email: news@inogic.com
    If you find this post helpful then please "Vote as Helpful" and "Mark As Answer".
    • Proposed as answer by Sam - Inogic Monday, October 24, 2011 8:29 AM
    • Marked as answer by Atanas Desev Monday, October 24, 2011 11:58 AM
    Monday, October 24, 2011 8:29 AM

All replies

  • Try this

     

    create a new text field on CRM 2011 form (type : Multiple Lines of Text).

    OnLoad :

    ConvertToButton('new_fieldname', 'ButtonText','100px',FunctionName,'Button Label');

    the function definitions can also reside in another web resource.

    function ConvertToButton(fieldname, buttontext, buttonwidth,clickevent, title)

    {

    //check if object exists; else return
    if (document.getElementById(fieldname) == null)
    {
    return;
    }


    functiontocall=clickevent;
    crmForm.all[fieldname].DataValue = buttontext;
    crmForm.all[fieldname].readOnly = true;
    crmForm.all[fieldname].style.borderRight="#3366cc 1px solid";
    crmForm.all[fieldname].style.paddingRight="5px";
    crmForm.all[fieldname].style.borderTop="#3366cc 1px solid";
    crmForm.all[fieldname].style.paddingLeft="5px";
    crmForm.all[fieldname].style.fontSize="11px";
    crmForm.all[fieldname].style.backgroundImage="url(/_imgs/btn_rest.gif)";
    crmForm.all[fieldname].style.borderLeft="#3366cc 1px solid";
    crmForm.all[fieldname].style.width=buttonwidth;
    crmForm.all[fieldname].style.cursor="hand";
    crmForm.all[fieldname].style.lineHeight="18px";
    crmForm.all[fieldname].style.borderBottom="#3366cc 1px solid";
    crmForm.all[fieldname].style.backgroundRepeat="repeat-x";
    crmForm.all[fieldname].style.fontFamily="Tahoma";
    crmForm.all[fieldname].style.height="20px";
    crmForm.all[fieldname].style.backgroundColor="#cee7ff";
    crmForm.all[fieldname].style.textAlign="center";
    crmForm.all[fieldname].style.overflow="hidden";
    crmForm.all[fieldname].attachEvent("onmousedown",push_button);
    crmForm.all[fieldname].attachEvent("onmouseup",release_button);
    crmForm.all[fieldname].attachEvent("onclick",FunctionName);
    crmForm.all[fieldname].style.lineHeight="14px";
    crmForm.all[fieldname+'_c'].style.visibility = 'hidden';
    crmForm.all[fieldname].title=title;
    window.focus();

    function push_button(){
    window.event.srcElement.style.borderWidth="2px";
    window.event.srcElement.style.borderStyle="groove ridge ridge groove";
    window.event.srcElement.style.borderColor="#3366cc #4080f0 #4080f0 #3366cc";
    }

    function release_button(){
    window.event.srcElement.style.border="1px solid #3366cc";
    }
    }

     

    // now the definition of the function to call on button click

    function FunctionName()

    {

    //make the fields read only

    }


    Thanks,

    Kirsh


    • Edited by Kirsh Jay Monday, October 24, 2011 8:27 AM
    • Proposed as answer by Kirsh Jay Monday, October 24, 2011 8:28 AM
    • Marked as answer by Atanas Desev Monday, October 24, 2011 11:58 AM
    Monday, October 24, 2011 8:27 AM
  • Yes, this is very much possible in CRM 2011.

    To add buttons to CRM form, you will need to modify the ribbon settings for the entity. This can be done by exporting the entity customizations. Detailed steps are provided in CRM 2011 SDK.

    You can add custom bool attribute IsApproved. On the click on your button you will set the value for this attribute.

    Next through script written on the OnLoad event of the form, you can check for the value of IsApproved and accordingly enable/disable fields on the form.

    Please download the SDK for samples to help you with the above.

    HTH

    Sam


    Web: http://www.inogic.com
    Blog: http://inogic.blogspot.com
    Email: news@inogic.com
    If you find this post helpful then please "Vote as Helpful" and "Mark As Answer".
    • Proposed as answer by Sam - Inogic Monday, October 24, 2011 8:29 AM
    • Marked as answer by Atanas Desev Monday, October 24, 2011 11:58 AM
    Monday, October 24, 2011 8:29 AM