2017-11-20 1 views
0

모두에게 좋은 하루.activiti 동적 테이블 재설정 내용

양식 영역에 동적 테이블을 만들었습니다. 자바 스크립트를 통해 내용을 다시 설정하는 항목을 드롭 다운 목록에서 선택한 경우 표의 내용을 재설정하고 싶습니다.

샘플 및 스 니펫을 보내 주시면 감사하겠습니다.

감사합니다.

+0

어떤 버전을 사용하고 있습니까? 그것은 솔루션에 대한 차이를 만듭니다. –

답변

1

당신이 example 참조하거나 사용자 정의 FTL

<#include "/org/alfresco/components/form/controls/common/utils.inc.ftl" /> 

<#if field.control.params.optionSeparator??> 
    <#assign optionSeparator=field.control.params.optionSeparator> 
<#else> 
    <#assign optionSeparator=","> 
</#if> 
<#if field.control.params.labelSeparator??> 
    <#assign labelSeparator=field.control.params.labelSeparator> 
<#else> 
    <#assign labelSeparator="|"> 
</#if> 

<#assign fieldValue=field.value> 

<#if fieldValue?string == "" && field.control.params.defaultValueContextProperty??> 
    <#if context.properties[field.control.params.defaultValueContextProperty]??> 
     <#assign fieldValue = context.properties[field.control.params.defaultValueContextProperty]> 
    <#elseif args[field.control.params.defaultValueContextProperty]??> 
     <#assign fieldValue = args[field.control.params.defaultValueContextProperty]> 
    </#if> 
</#if> 

<div class="form-field"> 
    <#if form.mode == "view"> 
     <div class="viewmode-field"> 
     <#if field.mandatory && !(fieldValue?is_number) && fieldValue?string == ""> 
      <span class="incomplete-warning"><img src="${url.context}/res/components/form/images/warning-16.png" title="${msg("form.field.incomplete")}" /><span> 
     </#if> 
     <span class="viewmode-label">${field.label?html}:</span> 
     <#if fieldValue?string == ""> 
      <#assign valueToShow=msg("form.control.novalue")> 
     <#else> 
      <#assign valueToShow=fieldValue> 
      <#if field.control.params.options?? && field.control.params.options != ""> 
       <#list field.control.params.options?split(optionSeparator) as nameValue> 
        <#if nameValue?index_of(labelSeparator) == -1> 
        <#if nameValue == fieldValue?string || (fieldValue?is_number && fieldValue?c == nameValue)> 
         <#assign valueToShow=nameValue> 
         <#break> 
        </#if> 
        <#else> 
        <#assign choice=nameValue?split(labelSeparator)> 
        <#if choice[0] == fieldValue?string || (fieldValue?is_number && fieldValue?c == choice[0])> 
         <#assign valueToShow=msgValue(choice[1])> 
         <#break> 
        </#if> 
        </#if> 
       </#list> 
      </#if> 
     </#if> 
     <span class="viewmode-value">${valueToShow?html}</span> 
     </div> 
    <#else> 
     <label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label> 
     <#if field.control.params.options?? && field.control.params.options != ""> 
     <select id="${fieldHtmlId}" name="${field.name}" tabindex="0" 
       <#if field.description??>title="${field.description}"</#if> 
       <#if field.indexTokenisationMode??>class="non-tokenised"</#if> 
       <#if field.control.params.size??>size="${field.control.params.size}"</#if> 
       <#if field.control.params.styleClass??>class="${field.control.params.styleClass}"</#if> 
       <#if field.control.params.style??>style="${field.control.params.style}"</#if> 
       <#if field.disabled && !(field.control.params.forceEditable?? && field.control.params.forceEditable == "true")>disabled="true"</#if>> 
       <#list field.control.params.options?split(optionSeparator) as nameValue> 
        <#if nameValue?index_of(labelSeparator) == -1> 
        <option value="${nameValue?html}"<#if nameValue == fieldValue?string || (fieldValue?is_number && fieldValue?c == nameValue)> selected="selected"</#if>>${nameValue?html}</option> 
        <#else> 
        <#assign choice=nameValue?split(labelSeparator)> 
        <option value="${choice[0]?html}" <#if choice[0] == fieldValue?string || (fieldValue?is_number && ((fieldValue - choice[0]?number)?string == "0"))> selected="selected"</#if>>${msgValue(choice[1])?html}</option> 
        </#if> 
       </#list> 
     </select> 
     <@formLib.renderFieldHelp field=field /> 
     <#else> 
      <select id="${fieldHtmlId}" name="${field.name}" tabindex="0" 
       <#if field.description??>title="${field.description}"</#if> 
       <#if field.indexTokenisationMode??>class="non-tokenised"</#if> 
       <#if field.control.params.size??>size="${field.control.params.size}"</#if> 
       <#if field.control.params.styleClass??>class="${field.control.params.styleClass}"</#if> 
       <#if field.control.params.style??>style="${field.control.params.style}"</#if> 
       <#if field.disabled && !(field.control.params.forceEditable?? && field.control.params.forceEditable == "true")>disabled="true"</#if>> 

     </select> 
     <@formLib.renderFieldHelp field=field /> 
     <!-- <div id="${fieldHtmlId}" class="missing-options">Hello ${msg("form.control.selectone.missing-options")}</div> --> 
     </#if> 
    </#if> 
</div> 

<script type="text/javascript">//<![CDATA[ 



//var abcd = 

YAHOO.util.Event.onContentReady("${fieldHtmlId}", function() 
{ 

    console.log("type name "+"${fieldHtmlId}"); 

    Alfresco.util.Ajax.jsonGet({ 
     url: encodeURI(Alfresco.constants.PROXY_URI + 'url'), 
     successCallback: 
     { 
      fn: function loadWebscript_successCallback(response, config) 
      { 
       var obj = eval('(' + response.serverResponse.responseText + ')'); 
       var allResults = obj.values; 
       function sorting(json_object, key_to_sort_by) { 
         function sortByKey(a, b) { 
          var x = a[key_to_sort_by]; 
          var y = b[key_to_sort_by]; 
          return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
         } 

         json_object.sort(sortByKey); 
        } 
       if (obj) 
       { 
        sorting(allResults, 'value'); 
        for (i = 0; i < allResults.length; i++) { 
          var newOption = document.createElement('option'); 
          newOption.value = allResults[i].value; 
          newOption.text = (allResults[i].desc == "")?allResults[i].value:allResults[i].value +" - "+ allResults[i].desc; 
          YAHOO.util.Dom.get("${fieldHtmlId}").options.add(newOption); 
        } 
        if("${fieldValue}" != null && "${fieldValue}" != "" && "${fieldValue}" != undefined){ 
         YAHOO.util.Dom.get("${fieldHtmlId}").value = "${fieldValue}"; 
        } 
       } 

      } 
     } 
    }); 

}, this); 
</script> 

이 저장소에서 동적 데이터를 얻을 수있는 간단한 선택 FTL입니다 사용할 수 있습니다. 값 선택에 따라 onChange 이벤트에서 js 코드를 실행할 수 있습니다.

0

안녕하세요.

방금 ​​답변을 찾았습니다. 저는 activiti 6.0 커뮤니티를 사용하고 있습니다. 필수 열을 false로 재설정하는 조건과 가시성 조건도 있습니다. 스크립트를 정리하고 정리 한 후 스 니펫을 보여 드리겠습니다.

감사합니다.