facebook

旧バージョンとの互換性

RapidReportのバージョンアップによって、 旧バージョンとは異なる動作をするようになる場合があるために、問題を生ずる可能性があります。 そこで、新しいバージョンを使っていたとしても、 旧バージョンと同じ動作となるようにするための互換性オプションが用意されています。

互換性オプションは、Report.Compatibilityというクラスのクラス変数として用意されており、 プログラムの実行開始時に一度だけ設定することで、全体に適用されます。 また、レポートデザイナ上では「設定」ダイアログで各オプションを有効にするかを指定できます。

※ レポートデザイナ上での互換性オプションの設定はデザイナの動作にのみ影響し、プログラムの実行時には反映されません。
 互換性オプションの設定が必要な場合は、必ずプログラム内でも設定を行ってください。

また、独自のプレビュー画面や要素を作成している場合、RapidReportのバージョンアップによって、コンパイルエラー等が発生する場合があります。 この解消方法についても、ここで紹介します。

バージョン4.37以前での、テキスト割付

バージョン4.37以前では、PDF出力を行った場合、レポートデザイナでデザインした内容に比べて差異が生じていました。
(配置された要素幅に出力可能な文字数が異なる、文字間隔が異なる、改行位置が異なる、等)

4_37_Typeset.png

バージョン5.0で、等幅フォントを利用している場合に限り、デザイン内容とPDF出力の内容がほぼ一致するよう、 適切にテキストの割付が行われるようになりました。

4_37_Typeset_Fix.png

この修正のために、PDFレンダラと直接印刷/プレビュー機能のいずれかを利用している場合、 バージョンアップによってテキストの割付方法が変わります。

※直接印刷/プレビューのみを利用し、PDF出力を利用していない場合でも、この修正による影響を受けることにご注意ください。

5.0以降をご利用の場合でも、従来通りの出力内容としたい場合は、_4_37_Typesetという変数をTrueにします。

  // C#
  Report.Compatibility._4_37_Typeset = true;
  ' VisualBasic
  Report.Compatibility._4_37_Typeset = True
  // Java
  Report.Compatibility._4_37_Typeset = true;

バージョン4.37以前での、改行時のトリム

バージョン5.0にて、[改行して全体表示]または[文字列行分割]によって改行が行われた際、 改行後の行頭の空白がトリムされるようになりました。

以前のバージョンでは、PDF出力時または文字列行分割機能を利用している場合、 行頭に空白があってもトリムされずに出力されていました。

4_37_WrappedTextNoTrim.png

5.0をご利用の場合でも、従来通りの出力内容としたい場合は、_4_37_WrappedTextNoTrimという変数をtrueとします。

  // C#
  Report.Compatibility._4_37_WrappedTextNoTrim = true;
  ' VisualBasic
  Report.Compatibility._4_37_WrappedTextNoTrim = True
  // Java
  Report.Compatibility._4_37_WrappedTextNoTrim = true;

バージョン4.37以前での、画像のスケーリング

バージョン5.0にて、画像要素を描画する際、画像の解像度(Dpi)に基づいて正しい大きさで描画されるようになりました。

以前のバージョンでは、画像のピクセルサイズを単位変換せず、そのままポイント単位で描画を行っていました。 例えば、100 x 100ピクセルの画像は、100 x 100ポイントというサイズで描画されるので、 画像のDpiが96だった場合、本来のサイズよりも 96/72 = 約1.33倍 に拡大して表示されていました。

5.0以降をご利用の場合で、従来通りの動作としたい場合は、_4_37_ImagePixelScaleという変数をtrueとします。

  // C#
  Report.Compatibility._4_37_ImagePixelScale = true;
  ' VisualBasic
  Report.Compatibility._4_37_ImagePixelScale = True
  // Java
  Report.Compatibility._4_37_ImagePixelScale = true;

バージョン4.37以前での、毎ページ表示

バージョン5.0にて、[毎ページ表示]を指定することによって表示されたコンテントにグループが含まれていた場合、 そのグループには空データが割り当てられて表示されるようになりました。
※以前のバージョンでは、コンテントに割り当てられたデータ全体を表示していました。
※[毎ページ空グループ]プロパティにチェックを入れることで、空データを表示するように指定可能でしたが、このプロパティは5.0で廃止されました。

5.0以降をご利用の場合で、従来通りの動作としたい場合は、_4_37_EveryPageAllDataという変数をtrueとします。

  // C#
  Report.Compatibility._4_37_EveryPageAllData = true;
  ' VisualBasic
  Report.Compatibility._4_37_EveryPageAllData = True
  // Java
  Report.Compatibility._4_37_EveryPageAllData = true;

バージョン4.34以前での、プレビュー/直接印刷での中央寄せ/右寄せ(.NETのみ)

バージョン4.35にて、.NET版のGDIレンダラのテキスト/フィールド要素にて、中央寄せまたは右寄せを指定した場合、 出力する文字列末尾の空白幅も含めて、表示位置が設定されるようになりました。
※以前のバージョンでは、末尾の空白は無視されていました。

4_34_GdiTextNotMeasureTrailingSpaces

4.35以降の.NET版をご利用の場合で、従来通り文字列末尾の空白を無視したい場合は、_4_34_GdiTextNotMeasureTrailingSpacesという変数をtrueとします。

  // C#
  Report.Compatibility._4_34_GdiTextNotMeasureTrailingSpaces = true;
  ' VisualBasic
  Report.Compatibility._4_34_GdiTextNotMeasureTrailingSpaces = True

バージョン4.34以前での、PDF出力での改行して全体表示

バージョン4.35にて、PDF出力でのテキスト/フィールド要素の「改行して全体表示」にて、 単語(半角)の途中、句読点の直前、開きカッコの直後、閉じカッコの直前等での改行ができるだけ避けられるようになりました。

4_34_PdfWrapNoRule

4.35以降をご利用の場合で、従来通りの改行方法としたい場合は、_4_34_PdfWrapNoRuleという変数をtrueとします。

  // C#
  Report.Compatibility._4_34_PdfWrapNoRule = true;
  ' VisualBasic
  Report.Compatibility._4_34_PdfWrapNoRule = True
  // Java
  Report.Compatibility._4_34_PdfWrapNoRule = true;

バージョン4.34以前での改行(.NETのみ)

バージョン4.35にて、.NET版のGDIレンダラでの[縦書き]、PDFレンダラでの[縦書き]および[改行して全体表示]、wsplitメソッド、文字列行分割機能、 での改行位置の判断が文字列中にLF(ラインフィード)が出現するたびに行われるようになりました。
※以前のバージョンではCR(キャリッジリターン)で改行となっていました。

Java版では以前のバージョンからLFで改行する動作となっていたので、この修正によりJava/.NETで動作が統一されました。

4.35以降の.NET版をご利用の場合で、従来通りCRでの改行としたい場合は、_4_34_TextSplitByCrという変数をtrueとします。

  // C#
  Report.Compatibility._4_34_TextSplitByCr = true;
  ' VisualBasic
  Report.Compatibility._4_34_TextSplitByCr = True

バージョン4.32.1以前に作成したGdi要素レンダラの移行(.NETのみ)

バージョン4.33にて、GdiTextクラスの_GetStringFromatメソッドは、引数としてalignment, lineAlignment, formatFlagsを受け取るようになり、 メソッド内でこれらのプロパティを設定した上でStringFormatオブジェクトを返すように仕様変更されました。 これにより、StringFormatへの設定をより柔軟に行えるようになりました。

4.32.1以前ではこのメソッドに引数はなく、単にStringFormatのインスタンスを返すようになっていたため、 バージョンアップを行うとコンパイルエラーが発生します。

4.33のGdiTextクラスでは、_GetStringFormatは以下のように実装されています。 これを参考に、バージョンアップの際はメソッドの修正を行ってください。

    Protected Overridable Function _GetStringFormat(
      alignment As StringAlignment,
      lineAlignment As StringAlignment,
      formatFlags As StringFormatFlags) As StringFormat
        Dim ret As New StringFormat()
        ret.Alignment = alignment
        ret.LineAlignment = lineAlignment
        ret.FormatFlags = formatFlags
        Return ret
    End Function

バージョン4.32.1以前に作成した独自プレビュー画面の移行(.NETのみ)

バージョン4.33にて、PrintPreviewZoomのAutoFit、およびAutoFitWidthプロパティがPrintPreviewに移動しました。 独自のプレビュー画面を用意している場合、これらのプロパティを利用しているならば、コードの書き換えが必要になります。

  // C#
  this.PrintPreviewZoom.AutoFit = true; 
  this.PrintPreview.AutoZoomFit = true; に変更
  
  this.PrintPreviewZoom.AutoFitWidth = true; 
  this.PrintPreview.AutoZoomFitWidth = true; に変更
  ' VisualBasic
  Me.PrintPreviewZoom.AutoFit = True 
  Me.PrintPreview.AutoZoomFit = True に変更
  
  Me.PrintPreviewZoom.AutoFitWidth = True 
  Me.PrintPreview.AutoZoomFitWidth = True に変更

また、Designerファイルでエラーが発生する可能性があります。この場合、エラーが発生している行を手動で削除して下さい。

  // C# XX.Designer.cs
  this.PrintPreviewZoom.AutoFit = false;	削除
  this.PrintPreviewZoom.AutoFitWidth = false;	削除
  ' VisualBasic XX.Designer.vb
  Me.PrintPreviewZoom.AutoFit = False		削除
  Me.PrintPreviewZoom.AutoFitWidth = False	削除

バージョン4.32.1以前のプレビュー画面での見開き表示(.NET版のみ)

.NET版のバージョン4.33以降で、プレビュー画面に見開き表示機能が追加されました。

4.33以降をお使いの場合で、もし見開き表示機能を利用しない場合は、_4_32_PreviewMultiPageDisabledという変数をtrueとします。

  // C#
  Report.Compatibility._4_32_PreviewMultiPageDisabled = true;
  ' VisualBasic
  Report.Compatibility._4_32_PreviewMultiPageDisabled = True

バージョン4.32.1以前の「空行を出力」機能

バージョン4.33以降では、グループの「空行を出力」機能によって出力されたコンテントに、さらに子グループが存在した場合、 その子グループの内容も空行として出力するようになりました。(4.32.1以前では子グループは出力されませんでした)

4_32_BlankSubGroup

※「空行を出力」を設定したグループ以下に、子グループが存在しないならば、この変更による影響はありません。

4.33以降をお使いの場合で、もし4.32.1以前の動作のままとしたい場合は、_4_32_BlankSubGroupという変数をtrueとします。

  // C#
  Report.Compatibility._4_32_BlankSubGroup = true;
  ' VisualBasic
  Report.Compatibility._4_32_BlankSubGroup = True
  // Java
  Report.Compatibility._4_32_BlankSubGroup = true;

なお、このオプションを有効にした場合、クロス集計表の空行部分の要素(罫線など)が出力されなくなります。

バージョン4.31以前のコンテントの[改ページしない]指定(Java版のみ)

.Java版のバージョン4.31以前では、コンテントの[改ページしない]機能の動作に問題がありました。

複数の階層を持つ帳票の場合、ページの終端に配置されるコンテントのうち、 最上位のものだけを改ページ抑止チェックの対象とすべきところを、 全ての階層のコンテントを対象にしていました。 このため、.NET版(レポートデザイナを含む)の動作と、改ページ位置が異なる場合がありました。

4.32以降をお使いの場合で、もし4.31以前の動作のままとしたい場合は、 _4_31_unbreakableという変数をtrueとします。

  // Java
  Report.Compatibility._4_31_unbreakable = true;

バージョン4.15以前のプレビュー画面でのテキスト検索(.NETのみ)

.NET版のバージョン4.16以降で、プレビュー画面にテキスト検索機能が追加されました。

4.16以降をお使いの場合で、もしテキスト検索機能を利用しない場合は、 _4_15_PreviewSearchDisabledという変数をtrueとします。

  // C#
  Report.Compatibility._4_15_PreviewSearchDisabled = true;
  ' VisualBasic
  Report.Compatibility._4_15_PreviewSearchDisabled = True

なお、FmPrintPreviewクラスのSearchEnabledプロパティによって、 テキスト検索機能を有効にするかを個別に設定することもできます。

バージョン4.13.2以前のavrメソッド(.NETのみ)

.NET版のバージョン4.13.2以前では、0件のデータに対してavrメソッドを呼ぶと、 NULLではなく0が返されていました。 4.14以降ではNULLが返されるように修正されました。

4.14以降をお使いの場合で、もし4.13.2以前と同じく0を返すようにしたい場合は、 _4_13_2_AverageZeroという変数をtrueとします。

  // C#
  Report.Compatibility._4_13_2_AverageZero = true;
  ' VisualBasic
  Report.Compatibility._4_13_2_AverageZero = True

Java版では、4.13.2以前でもNULLが返されるので、 同様のオプションはありません。

バージョン4.6以前のPDF出力時の太字

バージョン4.6以前では、PDF出力時に[フォント][太字]にチェックを入れていた場合、 文字が太くなりすぎていました。 4.7以降では適正な太さで出力されます。

4.7以降をお使いの場合で、もし4.6以前の文字太さとしたい場合は _4_6_PdfFontBold という変数をtrueとします。

  // C#
  Report.Compatibility._4_6_PdfFontBold = true;
  ' VisualBasic
  Report.Compatibility._4_6_PdfFontBold = True
  // Java
  Report.Compatibility._4_6_PdfFontBold = true;