現在、データセット内のユーザーごとに個別のレターを生成するアプリケーションを構築しています。レターの内容は vb.net アプリケーションで管理され、RTF 形式でデータベースに保存されます。レターが作成されると、すべてのコンテンツがデータベースから取得され、vb.net ロジックを使用してレターが形成されます。
コンパイルされると、パラメーターとして Crystal に送信されます。これはうまく機能し、フィールドテキストの解釈をRTFに設定すると、適切なRTF表示が可能になりました。クライアントは代わりに、Crystal 内のロジック (テキストをコンパイルする if ステートメント) を変更したいと考えています。
そこで、一連の列を含む空のデータセットを作成し、それらの列に RTF を入力しました (ID で並べ替えられているため、段落が削除されない限り値は変更されず、これに対するオプションはありません)。これにより、{table.1} + {table.2} などに移動して RTF 文字列を作成できます...
ここが問題です。数式で RTF 文字列を作成すると (+ または & を使用)、最初の RTF エントリのみが表示されます。数式を解釈なしに切り替えると、すべての内容が書き出されたエントリの RTF が表示されるので、そこにあることがわかります。また、数式フィールドで RTF を手動で組み合わせたところ、同じ問題が発生しました。
StringVar 出力;
output := output & "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}\viewkind4\uc1\pard\lang1033\f0\fs23 これは最初のテストです }" ; output := output & "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}\viewkind4\uc1\pard\lang1033\f0\fs23 これは 2 番目のテストです \par \パー}";
出力
現時点では、すべてのテキストを移動して Crystal 内の Formula フィールドを分離してから結合する以外に、これを回避する方法があるかどうかはわかりません。これは、テキストを変更したい場合、Crystal 内で行う必要があることを意味します。私はこのルートには行きたくないので、意見や提案を探しています。