2017-01-31 4 views
0

Javascript가 처음인데 LiveCycle Designer ES4에서 Forms를 만드는 데 사용되는 기본 언어 및 함수 중 일부를 사용하고 있습니다.LiveCycle Designer에서 배열의 테이블 채우기

4 개의 확인란 (예 : "check1", check 2 ...)과 4 개의 미리 정의 된 배열 ("array1", array2 ....)이 있습니다. 나는이 모든 아래에 3 개의 열 (col1, col2, col3)이있는 테이블을 가지고 있습니다. 내가하는 array1과 테이블의 COL2을 채우는 싶다 "CHECK1"를 검사 할 때

  • :

    는 내가하고 싶은 것은 이것이다.

  • 그런 다음 배열의 각 데이터에 대해 새 행을 추가하십시오.
  • 다른 체크 박스에서도 같은 작업을 수행하고 필요에 따라 테이블에 추가하려고합니다.

나는 다양한 옵션을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 이 단계에서는 여러 개의 테이블을 채울 수있는 하나의 배열을 얻을 수 없습니다.

이 내 현재 코드입니다 : (주석 처리 된 부분은 배열에 합류 단지 시도했다)

var array1 = new Array("one","two","Three","Four","Five"); 
var array2 = new Array("this","that", "and this"); 
var array3 = new Array("another one"); 
var array4 = new Array("Finally this"); 
var k = []; 

//if(check1.rawValue == "Yes") 

//{k = k.concat(array1)} 

//if(check2.rawValue == "Yes") 

//{k = k.concat(array2)} 

for 
(i=0; i<array1.length; i++){ 
if (i>0) {Row01.InstanceManager.addInstance(1)} 
xfa.resolveNode("Table.Row01["+i+"].col2").rawValue = array1[i]; 
} 

어떤 도움을 주시면 감사하겠습니다.

답변

0

이 솔루션을 테스트 한 결과 작동합니다 :)
- 배열은 매번 같은 순서로 추가됩니다. 원하는 순서대로 클릭하면 확인란이 복잡해질 수 있지만 그렇지는 않습니다.

가 시작하기 전에 :

  • 이 더 많은 경우 (하단의 체크 박스) enter image description here
  • 을 만들 수있는 행을 허용해야합니다 특히 그 요구는 그래서 당신이 작동하는 방법을 이해하기 위해 충분한 희망
  • w를 알고 있는지 확인하십시오. 모자는 당신의 체크 박스의 - 값이 (내 경우에는 1)입니다 "의" enter image description here
  • 각 체크 박스 내부
    enter image description here

는 클릭 이벤트를 logic.populateCol2(); 쓰기 (선택 사항) 코드에 대한 Scriptobject 만들기 :

Formular1.#subform[0].Kontrollkästchen1[0]::click - (JavaScript, client) 
logic.populateCol2(); 

그리고 logic Scriptobject이 쓰기 :

function populateCol2() { 
    var array1 = ["one", "two", "Three", "Four", "Five"]; 
    var array2 = ["this", "that", "and this"]; 
    var array3 = ["another one"]; 
    var array4 = ["Finally this"]; 

    var cb1 = Kontrollkästchen1; 
    var cb2 = xfa.resolveNode("Kontrollkästchen1[1]"); 
    var cb3 = xfa.resolveNode("Kontrollkästchen1[3]"); 
    var cb4 = xfa.resolveNode("Kontrollkästchen1[2]"); 

    //Put in all your checkboxes here and corresponding array 
    var chbxs = [ 
     [cb1, array1], 
     [cb2, array2], 
     [cb3, array3], 
     [cb4, array4] 
    ]; 

    var allValues = []; 
    for (var x = 0; x < chbxs.length; x++) { 
     var currentCbx = chbxs[x][0]; 
     var currentArr = chbxs[x][1]; 
     //Or ==="Yes" in your case 
     if (currentCbx.rawValue === 1) { 
      allValues = allValues.concat(currentArr); 
     } 
    } 

    //Set it back so it won't add up rows to infinity 
    Table.Row01.instanceManager.setInstances(1); 
    Table.Row01.col2.rawValue = ""; 

    for (var i = 0; i < allValues.length; i++) { 
     if (i > 0) { 
      Table.Row01.instanceManager.addInstance(true); 
     } 
     xfa.resolveNode("Table.Row01[" + i + "].col2").rawValue = allValues[i]; 
    } 
}