2009-04-20 1 views
2

내가 InfoPath는 (변경 요청) 양식을 설계하고있다 : 나는 새로운 형태가 만들어 질 때보기 자동 다음 숫자로 증가 텍스트 상자를 추가 할 수있는 방법InfoPath는 일련 번호 필드

1) (새로운 변경 요청 양식을 추가 양식 라이브러리에).

2) 기존 양식의 정보를 새 양식으로 어떻게 검색합니까?

참고 :이 필드는 반복되는 테이블 안에 없습니다. 새로운 변경 요청 양식마다 다음 변경 요청 번호를 생성해야합니다.

TIA!

답변

2

이 작업을 수행하는 방법은 없지만 원하는 작업 (데이터베이스 쿼리 또는 SPList 쿼리)을 수행하는 데는 여러 가지 방법이 있습니다. 그러나 이런 종류의 요청은 어떻게 든 다른 문제에 대한 해결 방법과 같은 냄새를 풍깁니다. 숫자를 증가 일반적인 경우는 다음과 같습니다

  • 고유 ID
  • ID가 추측을 (같은 ID와 같은) 외부 목록 (타임 스탬프가없는)
으로 참조 가능한 요청을
  • 메이크업을 계산

    ID가 필요한 경우 : 대부분의 경우 정수 ID를 사용하지 않아도됩니다. 양식 제목을 자연 ID로 사용하기 만하면됩니다. (예 : 고객 + 타임 스탬프)

    추측 할 수있는 ID가 필요한 경우 외부 시스템이 요청에 액세스하거나이를 참조하기 때문에 ID가 필요합니다. 이 경우 푸시 방향을 푸시 방향 (예 : 워크 플로우 사용)으로 변경하거나 다른 시스템이 양식에서 호출하여 알려진 ID (추측 할 필요 없음)를 얻을 수있는 "getID"기능을 제공하도록하십시오.

    어쨌든 - 나를 위해, 당신이 다른 문제를 해결하기 위해 이것을 달성하고자하는 것처럼 보입니다. 어쩌면 그 문제에 대한 다른 해결책도 있을까요?

  • 0

    # num #과 같이 자동 번호 매기기를 원하는 양식의 텍스트 제목에 토큰을 입력 한 다음 javascript 또는 jquery를 사용하여 해당 토큰을 찾아 증분 된 숫자로 바꿀 수 있습니다.

    이 단점은 목록을 Excel로 내보내는 경우 토큰이 숫자로 변환되지 않는다는 것입니다. 그러나 이것은 화면 상 렌더링을위한 좋은 솔루션입니다.

    방화범을 사용하여 자동 태그를 보관하는 컨테이너의 클래스를 파악하십시오. 아마도 뭔가를과 같이 할 수 있습니다.

    function TokenReplacement(){ 
        var ClassName = 'ms-formlabel'; 
        var elements = new Array(); 
        var elements = document.getElementsByTagName('td'); 
        var numerator=0; 
        //Now do find and replace on everything else 
        for(var e=0;e<elements.length;e++){ 
         thiselement = elements[e]; 
         if(thiselement.className == ClassName){ 
          //autonumber the questions by replacing the #num# token 
          if(thiselement.innerHTML.search('#num#') > -1){ 
           numerator++ 
           var replacenum = "<b>" + numerator + ".&nbsp;&nbsp;</b>"; 
           thiselement.innerHTML = elements[e].innerHTML.replace('#num#',replacenum); 
          } 
         } 
        } 
    }