2017-11-17 24 views
0

tNames 변수에 저장된 모든 값을 반환하려고합니다.수식 언어를 사용하여 열 값 반환

필드에 값이 있습니다. 별도의 항목으로 표시된 다중 값이 이미 선택되었지만 이름이 반환되지 않습니다.

tNames := ""; 
@For(n := 0; n <= QuestionCount - 1; n := n + 1; 
tNames := tNames + ", " + @Implode(@GetField("ChecklistContact_" + 
    @Text(n));",") 
); 
@Trim(tNames) 

내가 왜 그 반환하지 아무것도 몰라요, 당신의 도움을 주셔서 감사합니다 :

다음은 샘플 코드입니다.

다음은 색인 0 인 연락처 만 반환하지만 각 문서의 모든 연락처를 반환하고 싶습니다.

tCount := 0; 
@For(n := 0; n <= QuestionCount - 1; n := n + 1; 
tCount := tCount + @If(@GetField("ChecklistContact_" + @Text(n)) = ""; 0; 1) 
); 
@GetField("ChecklistContact_" + @Text(tCount)) 

아래의 리차드의 의견에 따라 필요한 값을 반환하지만 필드 이름을 하드 코드하지 않는 것이 좋습니다.

for 루프를 사용하여 필드 이름과 값을 반환하는 방법이 있습니까?

tNames := ""; 
tNames:= @GetField("ChecklistContact_1") : @GetField("ChecklistContact_2") : ... @GetField("ChecklistContact_7"); 
@Trim(tNames) 

답변

2

당신이 당신의 양식에 열 공식 새로운 계산 필드를 만든 다음 사용할 수있는 경우는, 세련 소리 만 수를 표시 fieldName에 목록을 만들려면 루프를 사용하여 당신의 란에있는 그 새로운 필드. 또한, 성능 관점에서 당신은 더 나아질 것입니다.

2

나는 IBM's documentatio n은 명시 적으로 말한다 있다고 생각하지 않습니다,하지만 난 @GetField이 열 값 공식에서 작동 생각하지 않습니다. 의사가 "현재 문서"에서 작동하며 수식이 뷰에서 실행될 때 현재 문서가 없다고 말합니다.

당신이 N의 최대 수는 무엇인지 가정하면,이 작업을 수행하는 방법은 간단한 목록입니다 : N이 큰 경우,이 입력을 많이있을 것입니다

ChecklistContact_1 : ChecklistContact_2 : ChecklistContact_3 : ... : ChecklistContact_N 

,하지만 당신은거야 한 번만해야하고 복사 및 붙여 넣기 및 숫자 편집 꽤 빨리 갈 것입니다. 리처드는 제안

+0

팁 주셔서 감사합니다. @GetField()를 사용하는 첫 번째 인덱스 만 반환하는 새 스크립트를 추가했지만 모두 반환하려고합니다. –

+0

필요한 모든 값을 반환하는 스크립트를 추가했지만 필드 이름을 하드 코딩하지 않으려합니다. 당신의 도움을 주셔서 감사합니다. –

+1

shillem이 제안한대로 계산 된 필드를보기의 문서 양식에 추가 할 수 있습니다. 필드를 가져와 반복 전략을 사용할 수 있습니다. 그러나보기 수준에서 결과를보기 전에 모든 문서를 새로 고침하고 다시 저장해야합니다. 많은 문서가 있고 사용자가 복제본을 가지고 있으면 충돌이 발생합니다. 읽지 않은 자국도 바뀝니다. 또한 계산 된 필드에서 다중 값에 대한 확인란이 선택되어 있는지 확인하십시오. 이것이 하드 코딩을 피할 수있는 유일한 방법입니다. –

1

아마 다음 tNames

+0

나는 그것이 가능하다고 생각하지 않는다. AFAIK, 하드 코딩 된 이름으로 필드를 참조하는 것 이외의 열 수식에서 필드 값에 액세스 할 수있는 방법이 없습니다. –