2016-04-21 1 views
0

Я новичок в alfresco. Я создаю рабочий процесс, используя kickstart. Я развертываю в alfresco. Он работает нормально. В форме рабочего процесса мне нужно умножить два текстовых поля values.I хочу, чтобы результат умножения появлялся в 3-м текстовом поле, как только введите значения в первых двух текстовых окнах, без нажатия какой-либо кнопки? и как ?Форма рабочего процесса Alfresco Добавьте два значения текстового поля и автоматически отобразите сумму в третьем текстовом поле

+0

Каков рабочий процесс? Почему вы хотите умножить значения в форме? –

+0

Вам нужно определить свои собственные элементы управления и сопоставить их с свойствами формы в share-config-custom.xml. В этих элементах управления используется javascript для любых действий с вашими текстовыми полями. –

+0

Его рабочий процесс расчета расценок может я знаю, как заданные свойства в share-config-custom.xml вы можете предложить любую ссылку и пример – JohnPaul

ответ

1

Вот несколько фрагментов из примера, который скрывает второе поле, основанное на выпадающем значении в первом поле. У вас есть аналогичное требование, поэтому это должно помочь.

Сначала измените конфигурацию формы share-config-custom.xml, чтобы указать, что ваши свойства должны использовать настраиваемые элементы управления формой. Это будет выглядеть примерно так:

  <field id="sc:field2" label-id="prop.sc_field2" > 
       <control template="/com/someco/components/form/controls/dynamicField.ftl" > 
        <control-param name="maxLength">255</control-param> 
       </control> 
      </field> 

В этом случае я собираюсь динамически скрывать СБН: поле2 на основе стоимости СБН: field1. В вашем случае у вас есть три поля, с которыми вы имеете дело - два, которые умножаются, а третий - результат. Вероятно, вам понадобится только настраиваемый контроль формы в третьем поле. Он может легко захватывать значения из двух других полей.

Теперь создайте пользовательский элемент управления формой. В элементе управления пользовательской формы добавьте JavaScript, который связывается с событием onChange из ваших двух полей, чтобы вызвать пользовательскую функцию, которая вычисляет значение.

В моем примере динамического скрытые поля, я что-то похожее на мой контроль пользовательских форм с помощью JQuery:

<@markup id="js"> 
    <@script type="text/javascript" src="${url.context}/res/jquery/jquery-1.6.2-min.js" group="form" /> 
</@> 

<script type="text/javascript">//<![CDATA[ 
    // grab the field1 dropdown element 
    var field1El = $("#template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_sc_field1"); 

    // declare a function that knows how to show/hide the div 
    var toggleField2 = function(field1) { 
     if (field1 === "Show Field2") { 
      $("#field2").show(); 
     } else { 
      $("#template_x002e_edit-metadata_x002e_edit-metadata_x0023_default_prop_sc_field2").val(''); 
      $("#field2").hide();    
     } 
    } 

    // bind the field1 dropdown element's change event to a function that calls our toggle function 
    field1El.bind("change", function(e) { 
     var selected = $("option:selected", this); 
     var field2 = this.value; 
     toggleField2(field2); 
    }); 

    // invoke the toggle function based on the current value of the dropdown before it is changed 
    // by the user, ie, when the form is first opened 
    toggleField2(field1El.find("option:selected").text()); 
//]]></script> 

В вашем случае, вы не показа/скрытия поля на основе значения выпадающего, но вместо этого захватывают значение двух полей, умножая их и устанавливая их в третьем поле, но применяется одна и та же логика. В любое время, когда какое-либо из двух полей меняется, вы хотите перепроверить продукт и сохранить его в третьем поле.

+0

благодаря ее работе – JohnPaul