2013-11-14 3 views
0

현재 데이터 집합의 각 사용자에 대해 별도의 문자를 생성하는 응용 프로그램을 작성 중입니다. 편지 내용은 vb.net 응용 프로그램을 통해 관리되며 RTF 형식은 데이터베이스에 저장됩니다. 편지가 작성되면 vb.net 로직을 사용하여 모든 컨텐츠가 데이터베이스에서 가져와 글자를 만듭니다.Crystal Reports 수식에서 RTF를 연결할 수 있습니까?

일단 컴파일되면 Crystal에 매개 변수로 전송됩니다. 이것은 잘 작동하여 필드 텍스트 해석을 RTF로 설정하면 적절한 RTF보기가 허용됩니다. 클라이언트는 Crystal 내에서 로직 (텍스트를 컴파일하는 명령문)을 변경하고 싶다고 결정했습니다.

그래서 내가 한 일은 일련의 열이있는 빈 데이터 집합을 작성하고 해당 열을 RTF로 채웠습니다 (ID로 정렬되므로 단락이 삭제되고이 옵션이없는 경우 값이 변경되지 않습니다). 이렇게하면 {table.1} + {table.2} 등으로 RTF 문자열을 만들 수 있습니다.

여기가 문제의 원인입니다. 수식 (Using + 또는 &)에 RTF 문자열을 작성할 때 첫 번째 RTF 항목 만 표시합니다. 수식을 해석하지 않으면 모든 내용으로 작성된 항목의 RTF를 볼 수 있으므로 거기에 있음을 알 수 있습니다. 또한 수동으로 수식 필드에서 RTF를 결합하고 동일한 문제가있었습니다.


StringVar 출력;

출력 = 출력 & "{\ rtf1 \ ANSI \ ansicpg1252 \ deff0 {\ fonttbl {\ F0 \ fnil \ fcharset0 굴림;}} \ viewkind4 \ UC1 \ PARD \ lang1033는 F0의 \ \ 이것이 fs23 첫 번째 테스트} ";출력 : 출력 & "{\ rtf1 \ ansi \ ansicpg1252 \ deff0 {\ font0 \ fnil \ fcharset0 Times New Roman;}} \ viewkind4 \ uc1 \ pard \ lang1033 \ f0 \ fs23 이것은 두 번째 테스트 \ 파 \ 파} ";


내가 확실하지 오전이 시점에서 출력

결정 자체가 다음 결합 내에서 별도의 수식 필드에 모든 텍스트를 이동하는 것보다이 다른 주위에 방법이 있는지. 이것은 그들이 텍스트 내에서 이루어져야 할 텍스트를 바꾸고 싶다면 의미 할 것입니다. 나는이 길을 가고 싶지 않으므로 의견과 제안을 찾고 있습니다.

답변

0

크리스탈은 RTF를 지원하지만 RTF 항목의 첫 번째 발생 내에 완전히 형성되어야합니다. 내 질문에 그것은 두 개의 별도 COMPLETE RTF 항목을 보여줍니다. 항목 모두에 RTF ID 태그가 있기 때문에이 작업을 수행 할 수 없습니다. 위의 텍스트를 텍스트 편집기에 복사하여 RTF로 저장 한 경우에도 동일한 문제가 발생합니다. 첫 번째 줄만 가져옵니다. 이것은 왜 공식이 아닌 매개 변수로 작동하는지 설명하지만 각각의 평가 방법과 나중에 (매개 변수가 미래에 느슨해 질 수 있음) 설명합니다.

제대로 RTF를 크리스탈로 전달하려면 두 개의 서식있는 텍스트 상자 개체가 필요합니다. 하나는 템플리트 상자이고 다른 하나는 빌더 상자이며 서식있는 텍스트 만 선택하고 전체 RTF 컨텐트는 선택하지 마십시오. 사용 가능한 그러나 괄호를 제거하면 지원되지 않는 구성으로 이어질 수

같은 RTF 문자열에서 닫는 괄호를 제거하거나 RTF 테이블을 재 구축과 같은 몇 가지 해킹에서 제외 http://moneybaron.org/2011/08/23/vb-net-merge-rtf-documents/

는 또한이의 예에서 찾을 수 있습니다 재건축은 정말 지저분해질 수 있습니다.

희망이 도움이됩니다!