2013-06-08 2 views
0

나는 infopath를 처음 사용합니다. 이 시나리오를 달성하는 방법을 안내해 주시겠습니까?Infopath 2010 포뮬러 생성

1) 사용자는 날짜 작성일 인 항목 작성을 선택합니다.

2) 일정 간격 사용자는 첫 번째 드롭 다운에서 1을 선택하고 두 번째 드롭 다운에서 일을 선택합니다.

3) 다음 일정 간격에 다음 날짜가 추가되어야합니다.

예 : step1에서 사용자는 06/08/2013을 선택했습니다. 첫 번째 드롭 다운 1 및 두 번째 드롭 다운 일 이제 날짜가 06/08/2013으로 표시되어야합니다. 몇 달 동안 Smilarly ..... 같은 샘플 스크린 샷을 첨부.

https://lh5.googleusercontent.com/-F-h55ksETYA/UbN0NZ891XI/AAAAAAAAC14/Bxn84RpkqtE/w819-h460-no/1.jpg

답변

0

이 상자 밖으로 쉬운 일이 아니다. Infopath는 날짜에 요일을 추가하는 기능이 있습니다. selector 필드가 "days"값과 같을 때만 실행되는 규칙을 실행하십시오. 하나는 쉽게

addDays(StartDate, IncrementValue) 

내용 : 규칙은

규칙 1과 목표 날짜의 값을 설정할 수 있습니다.

연도를 추출하여 연도를 늘리는 것도 쉽습니다. 내부적으로 날짜는 YYYY-MM-DD 형식으로 저장되므로 sepparator로 대시를 사용하여 substring-before()로 연도를 추출 할 수 있습니다. 해당 숫자를 증가시킨 다음 concat() 함수를 사용하여 새해 값을 나머지 시작 날짜, 즉 대시를 사용하여 substring-after()와 결합합니다. 규칙을 만드는 것이 선택기 필드 값이 "년"을 가지고 그리고 그것은 정말로 달 복잡해진다

규칙 2

concat(substring-before(StartDate, "-") + IncrementValue, "-", substring-after(StartDate, "-")) 

와 목표 날짜를 설정 한 경우에만 발생합니다. 달을 추출하는 것과 같은 원칙을 사용하여 날짜를 늘리면 다시 날짜로 바꿀 수 있습니다. 유효한 날짜 항목에 대해 월은 선행 0을 가져야합니다. 그 달에 100을 더한 다음 마지막 두 자릿수 만 잡으면됩니다. 새 날짜가 다음 해로 넘어 가지 않는 한, 그 접근 방식이 효과적입니다. 새로운 날짜가 내년에있을 경우

규칙 3

concat(substring-before(StartDate, "-"), "-", substring-after(substring-before(substring-after(StartDate, "-"), "-") + 100 + IncrementValue, "1"), "-", substring-after(substring-after(StartDate, "-"), "-")) 

,이 공식은 오류가 발생합니다. 따라서 월 값을 저장하는 헬퍼 필드를 만들어야하고 계산 된 월이 12보다 큰 경우 연도를 증가시키고 그에 따라 월 값을 조정해야합니다.

설정이 규칙에 달 도우미 필드 :

concat(substring-before(StartDate, "-") + 1, "-", substring-after(MonthHelper - 12 + 100, "1"), "-", substring-after(substring-after(StartDate, "-"), "-")) 

달 경우 :

substring-before(substring-after(StartDate, "-"), "-") + IncrementValue 

가 다음 달 도우미가 12보다 큰 경우 화재이 규칙과 목표 일을 설정 헬퍼가 13보다 작 으면 위의 규칙 3을 실행하십시오

정말 어려운 문제는 달의 길이가 다릅니다.이 기술을 사용하여 2013-01-31에 한 달을 추가하면 결과는 2013-02-31 잘못된 날짜 문자열이됩니다. 또한 윤년을 고려해야합니다.

달성하려는 목표에 따라 addDays() 함수를 대신 사용하여 매월 30 일을 추가 할 수 있습니다.

정확한 월 증가 기법이 필요한 경우, 월/일 조합을 평가하기 위해 다른 헬퍼 셀 집합이 필요하며 조정을 수행하거나 날짜를보다 정상적으로 증가시키는 코드가 필요하지만 내가 도울 수있는 게 아니야.

InfoPath 양식에 추가 기능을 제공하는 Qdabra Software의 qRules와 같은 타사 도구가 있습니다. qRules에는 코드를 작성하지 않고 원하는 것을 할 수있는 날짜 함수가 포함되어 있습니다.

+0

나는 당신에게 알려줄 것입니다. – sandy143

관련 문제