2017-11-14 11 views
-1

가끔 할당 된 테이블의 공간보다 긴 문자열이 있습니다. 내가 가지고있는 문제는 내가 세부 sub-sections로 followup 행을 가지고 두 번째 줄로 갈 수 있도록 "성장할 수있는"기능을 사용할 수 없다는 것입니다.깡통을 사용하는 대신 자연스럽게 문자열 자르기

그래서 자연스럽게 (예 : 한 공간에서) 줄을 깨는 방법을 생각할 수 있습니다. "성장할 수있는 방법"이 수식을 통해 줄을 끊을 수있는 것과 유사합니다. 후속 세부 하위 섹션의 표시 여부를 기반으로 두 번째, 세 번째 등의 줄과 일치하는 수식입니다.

예 : 세부 사항 A는 - 초기 행을 가지고있다.
세부 정보 B - 텍스트가있을 수 있으며 표시하지 않을 수 있습니다.
세부 정보 C - 텍스트가있을 수 있으며 표시하지 않을 수 있습니다.
세부 정보 D - 텍스트가있을 수 있으며 표시하지 않을 수 있습니다.

그래서 수식을 만들 수 있으므로 세부 정보 B가 표시되지 않으면 두 번째 줄이 세부 정보 B 아래에 표시됩니다. 몇 가지 멋진 if 문 (또는 다른 방법?)을 사용하면 세부 정보 B 및/또는 C 및/또는 D를 표시 할 수 있으므로 전체 문자열을 표시 할 수 있습니다. 단어 줄 바꿈과 같은 "자연스러운"방법으로 초기 문자열을 끊는 방법을 알아 내지 못했습니다.

Overview of report layout

DevLibSubType은 더 이상 공간보다 될 수있는 필드 내가 줄 바꿈을 수 있어야합니다. 세부 정보 B, C 및 D의 하위 보고서는 인쇄해야하는 정보가 있거나 포함되지 않은 하위 보고서입니다.

+0

텍스트에 따라 전체 세부 정보 섹션을 숨기지 말고 섹션이 표시되지 않으면 줄도 표시되지 않는 이유는 무엇입니까? – KuKeC

+0

나는 당신이 제안한 것을 따르지 않는다. 세부 정보 섹션에는이 특정 텍스트 블록의 내용과 관계없이 표시해야하는 다른 콘텐츠가 있습니다. 그것들이 억압되지 않고 "성장할 수있는"텍스트 영역을 사용한다면, 다른 데이터는 시각적으로 다음 행으로 표시하는 대신 해당 데이터 열에 간격 행이 있습니다. – tincanfury

답변

0

당신은 4 수식이 효과를 얻을 수 있지만, 각 행의 문자 적절한 수를 지정해야합니다. (이론적으로는 각 문자의 길이를 개별적으로 계산할 수 있지만 방법은입니다.) 대신 한 줄에 100 자 정도의 문자가 있다고 가정하십시오. 그래서

IF LEN({yourString}) > 200 THEN MID({yourString},201,100) 

그리고 :

IF LEN({yourString}) > 100 THEN MID({yourString},101,100) 

세부 C는 같은 것이다 : 수식처럼 보일 수 있습니다

당신의 세부 사항 : 같은

LEFT({yourString},100) 

세부 사항 B는 볼 수 있습니다. 공백이나 구두점을 기준으로 줄 바꿈을 사용하려면이 중 하나가 나타날 때까지 문자를 거꾸로 반복하여 추가 절을 추가 할 수 있습니다. 그런 다음 결과 길이를 다음 공식에 사용할 공유 변수로 밀어 넣으십시오.

+0

그래서 나는 이것을 시도했다. 나의 걱정은 라인 중간을 방해 할 수 있다는 것이다. 단어 줄 바꾸기 기능이 공백 문자에서 줄을 방해하는 텍스트 편집기에서 어떻게 완료되는지, 그리고 Crystal Reports에서 사용할 수있는 명령으로 쉽게 구현할 수 있는지 궁금합니다. 감사합니다. – tincanfury

+0

@tincanfury 나는 마지막 단락에서 그렇게하는 방법을 언급하지만, 전에 Crystal이 만들어진 것이 아닌 것처럼 말입니다. "쉽게 구현할 수있는"것에 대한 최선의 선택은 Can Grow의 공간을 허용하도록 보고서를 재 설계하는 것입니다. – 4444

+0

맞습니다.하지만 문자열을 거꾸로 반복하는 방법을 모르겠습니다. 명령을 허용하는 것에 대해 좀 더 연구해야 할 것입니다. "Can Grow"가 작동하도록 허용하는 방법을 생각하고 구현하려고 시도했지만 Can Grow가 해당 섹션을 더 오래 밀어 넣었으므로 각각의 세부 줄이 나타나거나 나타나지 않을 수 있으므로 조합 된 조합을 찾을 수 없었습니다. 디테일 라인이 인쇄 될 필요가 없다면 이상한 틈새가 생기지 않을 것입니다. 감사합니다! – tincanfury