В настоящее время я создаю приложение, которое генерирует отдельную букву для каждого пользователя в наборе данных. Содержимое письма управляется через приложение vb.net и их формат RTF сохраняется в базе данных. Когда письмо создается, весь контент извлекается из базы данных для формирования буквы с использованием логики vb.net.Можете ли вы конкатенировать RTF в формуле Crystal Reports? Поле
После компиляции он был отправлен как параметр Crystal. Это отлично поработало, установив интерпретацию текста в полевых условиях, чтобы RTF разрешил просмотр RTF. Клиент решил, что вместо этого они захотят внести изменения в логику (если инструкции, которые компилируют текст) в Crystal.
Так что я создал пустой набор данных с кучей столбцов и заполнил эти столбцы с помощью RTF (упорядоченный по ID, чтобы значения никогда не изменились, если абзац не был удален, и для этого нет возможности). Это позволило бы мне построить строку RTF, перейдя {table.1} + {table.2} и т. Д.
В этом проблема. При построении строки RTF в Формуле (с использованием + или &) она отображает только первую запись RTF. Если я переключу формулу на отсутствие интерпретации, я могу увидеть RTF для записей, списанных со всем их содержанием, поэтому я знаю, что он есть. Я также вручную объединил RTF в поле формулы и имел ту же проблему.
StringVar output;
выход: = выход & «{\ rtf1 \ ANSI \ ansicpg1252 \ deff0 {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;}} \ viewkind4 \ uc1 \ пард \ lang1033 \ f0 \ FS23 это первый тест} "; output: = output & «{\ rtf1 \ ansi \ ansicpg1252 \ deff0 {\ fonttbl {\ f0 \ fnil \ fcharset0 Times New Roman;}} \ viewkind4 \ uc1 \ pard \ lang1033 \ f0 \ fs23 это второй тест \ п \ п} ";
Выход
На данный момент я не уверен, если есть способ обойти эту проблему, кроме перемещения всего текста на отдельные поля Формулы внутри самого кристалла и затем объединить. Это будет означать, что если они захотят изменить текст, это нужно будет сделать в кристалле. Я бы предпочел не идти по этому маршруту, поэтому я ищу мнения и предложения.