最新 ActiveReports への 移行 のイロハがわかる Web セミナー グレープシティ株式会社 2016 年 6 月 16 日
アジェンダ 1. 移行の概要 2. ActiveX 版 ActiveReportsからの移行 3. Crystal Reportsからの移行 4. Accessからの移行 5. 質疑応答 (Q&Aパネルのチャット利用) 2
Road to ActiveReports for.net 9.0J 移行の概要 4
押さえておきたいポイント 移行元 (ActiveX 版 AR Access Crystal Reports) 移行先 (ActiveReports for.net 9.0J) 移行情報ページ ( 必見!) 製品ヘルプ レポートのアップグレード ( 必見!) レイアウト情報 移行できる コード 基本的には書き直し 5
移行パス ActiveReports 1.0J/1.5J (ActiveX) 移行 Access MDB ファイル Crystal Reports PRT ファイル ActiveReports 2.0J (ActiveX) インポートウィザード ActiveReports for.net 9.0J に付属 RPX ファイル RPX ファイル RDLX またはファイル セクションレポート (*.rpx) ActiveReports for.net 9.0J ページレポート (*.rdlx) ページレポート (*.rdlx) 6
移行手順のまとめ 移行元 移行ツール 手順 ActiveReports 1.0J/1.5J (ActiveX) なし 一旦ActiveReports 2.0Jへ移行した 直接の移行は不可 のち 2.0Jの手順を実施 ActiveReports 2.0J(ActiveX) なし 帳票レイアウトをRPXファイル ActiveReports 2.0Jが動作 *.rpx として書き出したものを するVB6環境が必要 読み込む Access インポートウィ ザード MDBファイル *.mdb に含まれ る帳票をRPXファイル *.rpx ま たはRDLXファイル *.rdlx に書 き出したものを読み込む 1 Access 97以上 のイン ストールが必要 Crystal Reports インポートウィ ザード 帳票ファイル *.rpt をRPXファ イル *.rpx またはRDLXファイ ル *.rdlx に書き出したものを 読み込む 2 Crystal Reports for Visual Studioのインストールが 必要 1 2 注意事項 Access2007ファイル形式 *.accdb には対応していません Crystal Reportsのアセンブリバージョンが9.x.x.x以降で作成された帳票ファイルに対応 それ以前の 帳票ファイルの場合 9.x.x.x以上のCrystal Reportsへ移行が必要 7
ActiveReports 2.0J -> ActiveReports for.net 9.0J ActiveX 版 ActiveReports からの移行 8
ActiveReports 年表 1.0J 1.5J 2.0J 1.0J 2.0J 3.0J 6.0J 7.0J 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 9.0J
機能の変遷 (.NET) プロダクト & コントロール ActiveReports for.net 1.0J ActiveReports for.net 2.0J ActiveReports for.net 3.0J ActiveReports for.net 6.0J ActiveReports for.net 7.0J ActiveReports for.net 9.0J Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject ChartControl Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject ChartControl ReportInfo Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject ChartControl ReportInfo CrossSectionLine CrossSectionBox セクションレポート Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject ChartControl ReportInfo CrossSectionLine CrossSectionBox ページレポート Table Matrix Chart CheckBox List BandedList Calendar SparkLine FormattedText Bullet Barcode TextBox Line Container Shape Image OverflowPlaceholder セクションレポート Label TextBox CheckBox RichTextBox Shape Picture Line PageBreak BarCode SubReport OleObject ChartControl ReportInfo CrossSectionLine CrossSectionBox ページレポート Table Matrix Chart CheckBox List BandedList Calendar SparkLine FormattedText Bullet Barcode TextBox Line Container Shape Image OverflowPlaceholder Map TableOfContents RDL レポート Table Matrix Chart CheckBox List BandedList Calendar SparkLine FormattedText Bullet Barcode TextBox Line Container Shape Image SubReport Map TableOfContents Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ActiveX ビューワ Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ActiveX ビューワ Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ActiveX ビューワ Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ToolBox(Pro) Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ToolBox(Pro) Viewer Designer(Pro) ReportExplorer(Pro) WebViewer(Pro) ToolBox(Pro) LayerList(Pro) 実行環境.NET Framework 1.0/1.1.NET Framework 1.1/2.0/3.0.NET Framework 1.1/2.0/3.0/3.5.NET Framework 2.0/3.0/3.5/4 (Client Profile 含む ).NET Framework 3.5 SP1/4/4.5 /4.5.1 /4.5.2 (Client Profile 含む ).NET Framework 3.5 SP1/4/4.5 /4.5.1 /4.5.2/4.6/ 4.6.1(Client Profile 含む ) 開発環境 Visual Studio 2002 /2003 Visual Studio 2003 /2005 Visual Studio 2003 /2005/2008 Visual Studio 2005 /2008/2010 Visual Studio 2008 SP1/2010/2012/ 2013 Visual Studio 2010/2012/2013/2015 OS Windows 2000/ XP Windows Server 2003 Windows 2000 /XP/Vista Windows Server 2003 Windows 2000 /XP/Vista/7 Windows Server 2003/2008/2008 R2 Windows XP/ Vista/7 Windows Server 2003/2008/2008 R2 Windows XP/Vista/7/8 /8.1 Windows Server 2003/2008/2008 R2/ 2012 /2012 R2 Windows Vista/7/8 /8.1/10 Windows Server 2008/2008 R2/2012/2012 R2 10
ActiveX 版と.NET 版の違い 基本的には互換性はない ActiveX 版と.NET 版で同じ機能を持つコントロールであっても コントロール名称が異なるもの 動作や使用方法が異なるものがある 相違点をまとめた PDF 資料 http://download2.grapecity.com/pdf/migration/activereportsnet9_diff_activex2dotnet.pdf 11
レイアウト情報の移行 ActiveReports 2.0J(ActiveX) ActiveReports for.net 9.0J [ ファイル ] メニューから [ 保存 ] を選択し レポートを RPX ファイルに保存します [ レポート ] メニューから [ レイアウトファイルを開く ] を選択し 保存した RPX ファイルを読み込みます 注 )ActiveReports 1.0J/1.5J からは移行不可 帳票デザイナに RPX ファイルへの書き出し機能が存在しない 12
帳票コントロール対応表 (ActiveX) ActiveReports 2.0J (ActiveX) Field Label CheckBox Image Line OleObject PageBreak RichEdit Shape SubReport Barcode (ActiveX コントロール ) ActiveReports for.net 9.0J TextBox Label CheckBox Picture Line OleObject PageBreak RichTextBox Shape SubReport 基本クラス ARControl に移行 ActiveReports 2.0J (ActiveX) ActiveReports for.net 9.0J Frame Frame 内部のコントロールのみ移行対象 ADO データコントロール XML データコントロール RDO データコントロール DAO データコントロール OLEDataSource Source(SQL) と ConnectionString のみ移行対象 XMLDataSource FileURL と RecordeSetPattern のみ移行対象 13
帳票レイアウト移行結果 (ActiveX) ActiveReports 2.0J(ActiveX) ActiveReports for.net 9.0J 14
コードの移行 ActiveX 版と.NET 版ではプラットフォームテクノロジが異なるため コード部分は作り直した方が良い アップグレードウィザード (Visual Studio 2008 に付属 2010 以降は付属しない ) を利用してもうまくいかない場合が多い [ 参考 ] 概要 -.NET 移行情報 GrapeCity Developer Tools - http://www.grapecity.com/tools/support/migration/ 私はコレで VB 6を卒業しました - @IT - http://www.atmarkit.co.jp/fdotnet/vblab/opensemi_02 /opensemi_02_01.html 15
コードの違い ActiveReports 2.0J(ActiveX) ActiveReports for.net 9.0J 帳票プレビューのためのコード (VB6) レポートインスタンスの生成 Dim rpt As New SampleReport レポートの実行 rpt.run False レポートのプレビュー rpt.show() 帳票プレビューのためのコード (VB.NET) レポートインスタンスの生成 Dim rpt As New SampleReport レポートの実行 rpt.run(false) レポートのプレビュー Me.Viewer1.Document = rpt.document ActiveReports for.net 9.0J には Show メソッドが存在しない! 16
Web 帳票の重要な変更点 ActiveX 版の ActiveX ビューワ (arview2.cab) は.NET 版には存在しない Flash ビューワや PDF を利用する 主な機能 ( クライアント側接続プリンタへの 機能 ) ActiveReports 2.0J(ActiveX) ActiveX ビューワ ActiveReports for.net 9.0J Flash ビューワ (Professional のみ ) 直接印刷 プレビュー 無し印刷 印刷ダイアログ 無し印刷 コーディングによる設定変更 ( プリンタ名 用紙サイズ 用紙方向 etc) 実現不可 PDF ビューワ ただし ClickOnce を使用したカスタムアプリで実現可 ( ) Web アプリケーションでプレビュー表示せずにレポートを印刷する方法は? サンプル有り http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=37766 17
.NET 移行に関する総合情報 ActiveReports を含む弊社 ActiveX 製品の移行に関する情報を集約したコンテンツ http://www.grapecity.com/tools/support/migration/information.htm 18
ActiveReports 2.0J 帳票 請求書 を移行する DEMO 19
Crystal Reports -> ActiveReports for.net 9.0J Crystal Reports からの移行 20
インポートウィザード ActiveReports for.net 9.0J に付属するスタンドアロン型アプリ Access データベース (*.mdb)/crystal Reports ファイル (*rpt) から ActiveReports の帳票定義ファイルを生成 注 ) Crystal Reports for.netが環境にインストールされている必要あり Crystal Reportsのアセンブリバージョンが9.x.x.x 以降で作成された帳票ファイルからの移行に対応 それ以前の帳票ファイルの場合 一旦 9.x.x.x 以上のCrystal Reportsへ移行が必要 21
Crystal Reports for Visual Studio Visual Studio で無償利用できる OEM 版 Crystal Reports Visual Studio Crystal Reports Crystal Reports のアセンブリバージョン 2002 Crystal Reports for Visual Studio.NET 2002 9.1.3300 2003 Crystal Reports for Visual Studio.NET 2003 9.1.5000 2005 Crystal Reports for Visual Studio 2005 10.2.3600 2008 Crystal Reports for Visual Studio 2008 10.5.3700 2010/2012/2013/2015 SAP Crystal Reports for Visual Studio 13.0.2000 Visual Basic 6.0 にバンドルされる Crystal Reports のバージョンは 4.6 Visual Studio 2010 以降は Crystal Reports がバンドルされなくなった 別途インストール必要 ActiveReports for.net 9.0J は Visual Studio 2010/2012/2013/2015 をサポート 22
Crystal Reports のインストール方法 1. SAP 社のダウンロードサイト (http://scn.sap.com/docs/doc- 7824) にアクセス 2. 最新のインストーラーをダウンロード 3. インストール 23
帳票コントロール対応表 (Crystal Reports) Crystal Reports ActiveReports for.net 9.0J 備考 セクションレポート (*.rpx) ページレポート /RDL レポート (*.rdlx) Box Shape Container 線の太さと角丸のボックスは反映されません 複数セクションに跨っている場合には Lineコント ロールとしてインポートされます CrossTab SubReport BandedList SubReportコントロールが配置されますが クロス 集計部分はインポートされません Line Line Line 点線や破線 鎖線は その間隔が異なります Subreport SubReport サブレポートを連結するには インポート後にコード を記述しなおす必要があります TextObject Label TextBox 特殊フィールドは ページ番号 合計ページ 数 ページ数 (N/M) のみサポートされます FieldObject TextBox TextBox 同上 Picture Container 画像データはインポートされません 注 ) 記載のない Crystal Reports レポートコントロールはインポートされません 24
帳票レイアウト移行結果 (Crystal Reports) Crystal Reports 帳票 ActiveReports 帳票 25
移行作業 1(Crystal Reports) 1 データ連結フィールドの修正 (DB 連結できていない!) 前 xxx.datafield=customername 後 xxx.datafield=customer Name 半角スペース入る 1 3 2 5 2 データ連結フィールドの修正 (DB 連結できていない!) 前 xxx.datafield=lastyear'ssales 後 xxx.datafield=last Year s Sales 半角スペース入る 3 データ連結フィールドの修正 (DB 連結できていない!) 前 xxx.datafield=customer.lastyear'ssales 後 xxx.datafield=last Year s Sales 半角スペース入る 4 23 桁区切り 通貨記号の設定 後 xxx.outputformat= #,##0 4 Country で昇順にソート 前 レポートデータソースのクエリ =select * from Customer 後 レポートデータソースのクエリ =select * from Customer order by Country 5 Sales のレポート合計に対するグループ合計の割合をパーセントで表示 Crystal Reports では PercentOfSum 式を利用しているが ActiveReports には存在しないため 次ページ記載の処理が必要 26
移行作業 2(Crystal Reports) 1) グループ合計 Sales を示す既存フィールドの名前を ST に変更 3) のコード内で利用するため便宜上変更 前 xxx.name=field9 後 xxx.name=st 1) ダミーフィールド 2) 5 2) レポート合計 Sales を示す非表示のダミーフィールド (GT) を追加 xxx.datafield=last Year s Sales xxx.summaryfunc=sum xxx.summarygroup=groupheadersection1 xxx.summaryrunning=none xxx.summarytype=grandtotal xxx.visible=false 3) グループの BeforePrint イベントで ST_LastYearSales/GT_LastYearSales を計算する public void GroupHeaderSection1_BeforePrint() { // Crystal Reports の PrcentOfSum 関数に相当する処理 decimal percent_of_sum = 0; string a = string.format("{0:#}", ST.Value); string b = string.format("{0:#}", GT.Value); percent_of_sum = decimal.parse(a) / decimal.parse(b); this.percentofsum.text = percent_of_sum.tostring("0.00%"); } 27
Crystal Reports 帳票を移行する DEMO 28
Access -> ActiveReports for.net 9.0J Access からの移行 29
インポートウィザード ActiveReports for.net 9.0J に付属するスタンドアロン型アプリ Access データベース (*.mdb)/crystal Reports ファイル (*rpt) から ActiveReports の帳票定義ファイルを生成 注 )Access からの移行の場合 Access(97 以上 ) が環境にインストールされている必要あり 30
帳票コントロール対応表 (Access) Access ActiveReports for.net 9.0J 備考 セクションレポート (*.rpx) ページレポート /RDL レポート (*.rdlx) Rectangle( 四角形 ) Shape Container Rectangleコントロール内に配置されているコント ロールもインポートされる CheckBox( チェックボックス ) Label TextBox Image( 画像 ) Image セクションレポートにはインポートされない Label( ラベル ) Label TextBox TextBox( テキストボックス ) TextBox TextBox Line( 直線 ) Line Line Page Break( 改ページ ) PageBreak Container ページレポート /RDLレポートでは PageBreakAtEndプロパティがTrueにセットされる Subform/Subreport( サブフォーム / サブレポート ) SubReport 注 ) 記載のない Access レポートコントロールはインポートされません VBA コードは ActiveReports のスクリプト部分にコメントとしてインポートされます 31
帳票レイアウト移行結果 (Access) Access 帳票 ActiveReports 帳票 32
移行作業 1(Access) 1 Access 関数 ( 日付 ) の設定 前 xxx.text=format(date(),"long Date") 後 xxx.datafield=system.datetime.now xxx.outputformat=yyyy 年 M 月 d 日 8 2 3 1 7 2 文字列連結式の置換の設定 前 xxx.text=" " & [ 出荷先郵便番号 ] 後 xxx.datafield=" " + 出荷先郵便番号 3 Access 条件式 (IIF) の設定 前 xxx.text=iif([ 出荷先都道府県 ] Is Null," " & [ 出荷先住所 1],[ 出荷先都道府県 ] & " " & [ 出荷先住所 1]) 後 xxx.datafield=( 出荷先都道府県 == System.DBNull.Value)? 出荷先住所 1 : 出荷先都道府県 + " " + 出荷先住所 1 4 日付書式の追加 後 xxx.outputformat=yyyy/m/d 4 5 6 56 桁区切り 通貨記号の設定 後 xxx.outputformat= #,##0 7 データ連結フィールドの設定 ( うまく移行できなかったもの ) 前 xxx.datafield= 運送会社. 運送会社 後 xxx.datafield= 運送会社 8 グループ化の設定 後 GroupHeader1.DataField= 受注コード 参考 PowerTools ActiveReports for.net 9.0J - フィールド式を追加する - http://docs.grapecity.com/help/activereports-9/#add%20field%20expressions.html 33
移行作業 2(Access) 9 グループフッタ上の小計 前 xxx.text=sum([ 明細金額 ]) 後 xxx.datafield= 明細金額 xxx.summaryfunc=sum xxx.summarygroup=groupheader1 xxx.summaryrunning=group xxx.summarytype=subtotal 10 グループフッタ上の合計 ( 小計 + 運送料 ) 前 xxx.text=[ 小計 ]+[ 運送料 ] 後 Before_Print イベントに以下のコード (C#) を記述 9 10 public void GroupFooter1_BeforePrint() { 合計.Value = decimal.parse( 小計.Value.ToString()) + decimal.parse( 運送料.Value.ToString()); } 参考 グループヘッダにグループ毎の集計を出力する方法は? http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=37830 34
Access 帳票 納品書 を移行する DEMO 35
参考情報 移行情報 - ActiveReports for.net 9.0J http://www.grapecity.com/tools/products/activereportsnet9/migration#info オンラインヘルプ ( レポートのアップグレード ) http://docs.grapecity.com/help/activereports-9/#upgrading%20reports.html ActiveX 版 1.0J/1.5Jから2.0Jへ移行する際の注意点 http://www.grapecity.com/tools/support/kb/?id=10427 ActiveX.NET 事例 ( みずほ情報総研株式会社様 ) http://www.grapecity.com/tools/info/case/mizuho-ir.htm オンラインヘルプ (MS Access/Crystal Reportsからの移行 ) http://docs.grapecity.com/help/activereports-9/converting%20with%20import%20wizard.html Crystal Reports Versions https://msdn.microsoft.com/ja-jp/library/ms225607(v=vs.90).aspx SAP Crystal Reports, developer version for Microsoft Visual Studio http://scn.sap.com/docs/doc-7824 36
Q & A ご質問のある方は Web Ex Event Center の Q&A パネル から質問を投稿してください 講師とチャット風の質疑応答ができます 質問の宛先は All Panelists を設定してください 質問文は講師が回答するまで他参加者からは見えません 時間内に回答できなかったものは後日メールで回答させていただきます 質問を入力 All Panelists を選択 最後に Send を押す 37
アンケートにご協力ください! 以下にアクセスをお願いします セミナー終了後に自動送信される お礼メール からもア クセスできます http://goo.gl/forms/7ruhtrpynh7jslcn1 38