0

여러 줄로 된 텍스트 상자 값이있는 데이터 집합에 하나의 필드가 있습니다. 그 레코드를 나눠서 배열에 저장하고, for 루프로 배열에서 값을 가져올 때 각 줄에 "*"를 덧붙이고 싶습니다. 나는 그것에 대한 수식을 작성했지만 2 개의 값에 대해서만 작동합니다. 그 후 그것은 작동하지 않으며 나는 이런 식으로 값을 검색하는 방법을 알 수 없습니다.Crystal Report 수식 문제 : 배열에 여러 줄 텍스트 값을 분할하는 방법 및 forloop에서 가져 오는 방법

* 123 
* 234 
* 786 

하지만 결과는군요 :

*123 
234 
786 

내 공식 대신 나누기 긴 식의

Local StringVar y; 
Local StringVar x; 
Local NumberVar i; 

y := ""+ chrw(10); 
x := y; 

Stringvar Array strings := Split({Touche.Concerns}, "\r\n"); 
Stringvar Array numbers; 


For i :=1 To Ubound(strings) Do 
(
y := y + chrw(10)+ "$" + strings[i]; 
); 
y; 
+0

수식이 로직에서 _basically_ 정확한 있지만 코드 자체가 지저분하고 오타가 있습니다. 그 위로 돌아가서 그것을 청소하면 그것이 당신을 위해 일할 것입니다. 시작하려면 :'x'와'numbers' 변수는 무엇을 사용하고 있습니까? 왜 당신은 당신의 출력 문자열'y'를 초기화하고 있습니까? 연결된 출력 문자를 다시 확인하십시오. – Ryan

답변

0

입니다

나는 결과가되고 싶어 배열에 넣고 각 줄을 조작하십시오. 왜 줄 바꿈을 줄 바꿈으로 바꾸지 않으십니까 별표?

"* " & replace(trim({Touche.Concerns}), "\r\n", "\r\n* ");

는 선도 '*'첫 번째 줄에 문자를 배치하고 trim 기능 (그래서 그냥 별표와 선이되지 않습니다) 후행 줄 바꿈을 제거하기 위해 호출됩니다.

+ char이 아닌 문자열을 연결할 때 보조 노트로 &을 사용하십시오. +을 사용하면 숫자 값을 함께 추가 할 때 강제 변환이 발생할 수 있습니다. 예를 들어 "12" + "34"1234 대신 46을 산출합니다. & char는 문자열 연결이 사용되는지 확인합니다.