37
最新ActiveReportsへの ”移行”のイロハがわかるWebセミナー グレープシティ株式会社 2016年6月16日

最新ActiveReportsへの ”移行”のイロハがわか …gcar.grapecity.com/event/material/ar_webinar_migration...帳票プレビューのためのコード(VB6) 帳票プレビューのためのコード(VB.NET)

Embed Size (px)

Citation preview

最新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

6

移行パス

ActiveReports for .NET 9.0J

セクションレポート(*.rpx)

ページレポート(*.rdlx)

ActiveReports 2.0J(ActiveX)

Access

インポートウィザード※ActiveReports for .NET 9.0Jに付属

ページレポート(*.rdlx)

ActiveReports 1.0J/1.5J(ActiveX)

Crystal Reports

移行

RPXファイル

RPXファイル

RDLXファイルまたは

PRTファイル

MDBファイル

移行手順のまとめ

移行元 移行ツール 手順 注意事項

ActiveReports

1.0J/1.5J (ActiveX)

なし 一旦ActiveReports 2.0Jへ移行したのち、2.0Jの手順を実施。

直接の移行は不可。

ActiveReports

2.0J(ActiveX)

なし 帳票レイアウトをRPXファイル(*.rpx)として書き出したものを読み込む。

ActiveReports 2.0Jが動作するVB6環境が必要。

Access インポートウィザード

MDBファイル(*.mdb)に含まれる帳票をRPXファイル(*.rpx)またはRDLXファイル(*.rdlx)に書き出したものを読み込む。※1

Access(97以上)のインストールが必要。

Crystal Reports インポートウィザード

帳票ファイル(*.rpt)をRPXファイル(*.rpx)またはRDLXファイル(*.rdlx)に書き出したものを読み込む。※2

Crystal Reports for Visual Studioのインストールが必要。

7

※1 Access2007ファイル形式(*.accdb)には対応していません。※2 Crystal Reportsのアセンブリバージョンが9.x.x.x以降で作成された帳票ファイルに対応。それ以前の

帳票ファイルの場合、9.x.x.x以上のCrystal Reportsへ移行が必要。

ActiveX版ActiveReportsからの移行

ActiveReports 2.0J -> ActiveReports for .NET 9.0J

8

ActiveReports年表

98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

1.0J

1.5J

2.0J

1.0J

2.0J

3.0J

6.0J

9.0J

7.0J

10

機能の変遷(.NET)ActiveReports for .NET 7.0J

ActiveReports

for .NET 1.0J

Label

TextBox

CheckBox

RichTextBox

Shape

Picture

Line

PageBreak

BarCode

SubReport

OleObject

ActiveReports

for .NET 2.0J

Label

TextBox

CheckBox

RichTextBox

Shape

Picture

Line

PageBreak

BarCode

SubReport

OleObject

ChartControl

ActiveReports

for .NET 3.0J

Label

TextBox

CheckBox

RichTextBox

Shape

Picture

Line

PageBreak

BarCode

SubReport

OleObject

ChartControl

ReportInfo

ActiveReports

for .NET 6.0J

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

Visual Studio 2002

/2003

.NET Framework

1.0/1.1

Windows XP/

Vista/7

Windows Server

2003/2008/2008

R2

ページレポート

Table

Matrix

Chart

CheckBox

List

BandedList

Calendar

SparkLine

FormattedText

Bullet

Barcode

TextBox

Line

Container

Shape

Image

OverflowPlaceholder

プロダクト&

コントロール

実行環境

開発環境

OS Windows 2000/

XP

Windows Server

2003

Visual Studio 2005

/2008/2010

Windows XP/Vista/7/8 /8.1

Windows Server 2003/2008/2008 R2/

2012 /2012 R2

.NET Framework 3.5 SP1/4/4.5 /4.5.1

/4.5.2 (Client Profile含む)

Visual Studio 2008 SP1/2010/2012/

2013

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)

Visual Studio 2003

/2005

Windows 2000

/XP/Vista

Windows Server

2003

.NET Framework

1.1/2.0/3.0

.NET Framework

1.1/2.0/3.0/3.5

Visual Studio 2003

/2005/2008

Windows 2000

/XP/Vista/7

Windows Server

2003/2008/2008

R2

.NET Framework

2.0/3.0/3.5/4

(Client Profile含む)

Windows Vista/7/8 /8.1/10

Windows Server 2008/2008 R2/2012/2012 R2

.NET Framework 3.5 SP1/4/4.5 /4.5.1 /4.5.2/4.6/

4.6.1(Client Profile含む)

Visual Studio 2010/2012/2013/2015

ActiveReports for .NET 9.0J

セクションレポート

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

Viewer

Designer(Pro)

ReportExplorer(Pro)

WebViewer(Pro)

ToolBox(Pro)

LayerList(Pro)

RDLレポート

Table

Matrix

Chart

CheckBox

List

BandedList

Calendar

SparkLine

FormattedText

Bullet

Barcode

TextBox

Line

Container

Shape

Image

SubReport

Map

TableOfContents

基本的には互換性はない

ActiveX版と.NET版で同じ機能を持つコントロールであっても、コントロール

名称が異なるもの、動作や使用方法が異なるものがある

相違点をまとめたPDF資料 http://download2.grapecity.com/PDF/migration/activereportsnet9_diff_activex2dotnet.pdf

11

ActiveX版と.NET版の違い

ActiveReports 2.0J(ActiveX) ActiveReports for .NET 9.0J

12

レイアウト情報の移行

[ファイル]メニューから[保存]を選択し、

レポートをRPX ファイルに保存します。

[レポート]メニューから[レイアウト ファイルを開く]

を選択し、保存したRPX ファイルを読み込みます。

注)ActiveReports 1.0J/1.5Jからは移行不可。帳票デザイナにRPXファイルへの書き出し機能が存在しない。

ActiveReports 2.0J

(ActiveX)

ActiveReports for .NET

9.0J

Field TextBox

Label Label

CheckBox CheckBox

Image Picture

Line Line

OleObject OleObject

PageBreak PageBreak

RichEdit RichTextBox

Shape Shape

SubReport SubReport

Barcode

(ActiveXコントロール)

×※基本クラス「ARControl」に

移行

13

帳票コントロール対応表(ActiveX)

ActiveReports 2.0J

(ActiveX)

ActiveReports for .NET

9.0J

Frame ×※Frame内部のコントロールの

み移行対象

ADOデータコントロール OLEDataSource※Source(SQL)と

ConnectionStringのみ移行

対象

XMLデータコントロール XMLDataSource

※FileURLと

RecordeSetPatternのみ

移行対象

RDOデータコントロール ×

DAOデータコントロール ×

14

帳票レイアウト移行結果(ActiveX)

ActiveReports 2.0J(ActiveX) ActiveReports for .NET 9.0J

ActiveX版と.NET版ではプラットフォームテクノロジが異なるため、

コード部分は作り直した方が良い

アップグレードウィザード(Visual Studio 2008に付属、2010以降

は付属しない)を利用してもうまくいかない場合が多い

15

コードの移行

[参考]

概要 - .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

ActiveReports 2.0J(ActiveX) ActiveReports for .NET 9.0J

16

コードの違い

‘レポートインスタンスの生成Dim rpt As New SampleReport‘レポートの実行rpt.Run False‘レポートのプレビューrpt.Show()

帳票プレビューのためのコード(VB6) 帳票プレビューのためのコード(VB.NET)

‘レポートインスタンスの生成Dim rpt As New SampleReport‘レポートの実行rpt.Run(False)‘レポートのプレビューMe.Viewer1.Document = rpt.Document

ActiveReports for .NET 9.0JにはShowメソッドが存在しない!

ActiveX版のActiveXビューワ(arview2.cab)は.NET版には存

在しない。FlashビューワやPDFを利用する。

17

Web帳票の重要な変更点

主な機能

(クライアント側接続プリンタへの

○○○機能)

ActiveReports

2.0J(ActiveX)

ActiveReports for .NET 9.0J

ActiveXビューワ Flashビューワ

(Professionalのみ)

PDFビューワ

直接印刷 ○ ○ ○

「プレビュー」無し印刷 ○ ○ ○

「印刷ダイアログ」無し印刷 ○ × ×

コーディングによる設定変更(プリンタ名、

用紙サイズ、用紙方向、etc)

○ × ×

実現不可

※Webアプリケーションでプレビュー表示せずにレポートを印刷する方法は?【※サンプル有り】

http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=37766

ただし、ClickOnceを使用したカスタムアプリで

実現可(※)

ActiveReportsを含む弊社ActiveX製品の移行に関する情報を

集約したコンテンツ

18

.NET移行に関する総合情報

http://www.grapecity.com/tools/support/migration/information.htm

DEMO

ActiveReports 2.0J帳票「請求書」を移行する

19

Crystal Reportsからの移行

Crystal Reports -> ActiveReports for .NET 9.0J

20

ActiveReports for .NET 9.0Jに付属するスタンドアロン型アプリ

Accessデータベース(*.mdb)/Crystal Reportsファイル

(*rpt)からActiveReportsの帳票定義ファイルを生成

21

インポートウィザード

• Crystal Reports for .NETが環境にインストールされている必要あり。

• Crystal Reportsのアセンブリバージョンが9.x.x.x以降で作成された帳票ファイルからの移行に対応。それ

以前の帳票ファイルの場合、一旦9.x.x.x以上の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

22

Crystal Reports for Visual Studio

Visual Studioで無償利用できるOEM版Crystal Reports

• Visual Basic 6.0 にバンドルされるCrystal Reportsのバージョンは4.6

• Visual Studio 2010以降はCrystal Reportsがバンドルされなくなった。別途インストール

必要

• ActiveReports for .NET 9.0JはVisual Studio 2010/2012/2013/2015をサポート

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 画像データはインポートされません。

24

帳票コントロール対応表(Crystal Reports)

注)記載のないCrystal Reportsレポートコントロールはインポートされません。

25

帳票レイアウト移行結果(Crystal Reports)

Crystal Reports帳票 ActiveReports帳票

26

移行作業1(Crystal Reports)

【前】xxx.DataField=LastYear'sSales

【後】xxx.DataField=Last Year‘s Sales ← 半角スペース入る

③ データ連結フィールドの修正(DB連結できていない!)

【前】xxx.DataField=Customer.LastYear'sSales

【後】xxx.DataField=Last Year‘s Sales ← 半角スペース入る

②③ 桁区切り、通貨記号の設定【後】xxx.OutputFormat=¥#,##0

④ Countryで昇順にソート

【前】レポートデータソースのクエリ=select * from Customer

【後】レポートデータソースのクエリ=select * from Customer order by Country

① データ連結フィールドの修正(DB連結できていない!)

【前】xxx.DataField=CustomerName

【後】xxx.DataField=Customer Name ← 半角スペース入る

② データ連結フィールドの修正(DB連結できていない!)

⑤ Salesのレポート合計に対するグループ合計の割合をパーセント

で表示。Crystal ReportsではPercentOfSum式を利用している

が、ActiveReportsには存在しないため、次ページ記載の処理が

必要。

27

移行作業2(Crystal Reports)

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%");

}

3)グループのBeforePrintイベントでST_LastYearSales/GT_LastYearSalesを

計算する。

2)レポート合計Salesを示す非表示のダミーフィールド(GT)を追加

xxx.DataField=Last Year’s Sales

xxx.SummaryFunc=Sum

xxx.SummaryGroup=GroupHeaderSection1

xxx.SummaryRunning=None

xxx.SummaryType=GrandTotal

xxx.Visible=False

ダミーフィールド 2)

1)グループ合計Salesを示す既存フィールドの名前をSTに変更。3)のコード

内で利用するため便宜上変更。

【前】xxx.Name=Field9

【後】xxx.Name=ST

1)

DEMO

Crystal Reports帳票を移行する

28

Accessからの移行

Access -> ActiveReports for .NET 9.0J

29

ActiveReports for .NET 9.0Jに付属するスタンドアロン型アプリ

Accessデータベース(*.mdb)/Crystal Reportsファイル

(*rpt)からActiveReportsの帳票定義ファイルを生成

30

インポートウィザード

注)Accessからの移行の場合、Access(97以上)が環境にインストールされている必要あり

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

31

帳票コントロール対応表(Access)

注)記載のないAccessレポートコントロールはインポートされません。

VBAコードは、ActiveReportsのスクリプト部分にコメントとしてインポートされます。

32

帳票レイアウト移行結果(Access)

Access帳票 ActiveReports帳票

33

移行作業1(Access)

① Access関数(日付)の設定

【前】xxx.Text=Format(Date(),"Long Date")

【後】xxx.DataField=System.DateTime.Now、xxx.OutputFormat=yyyy年M月d日

② 文字列連結式の置換の設定【前】xxx.Text="〒 " & [出荷先郵便番号]

【後】xxx.DataField="〒 " + 出荷先郵便番号

③ Access条件式(IIF)の設定【前】xxx.Text=IIf([出荷先都道府県] Is Null," " & [出荷先住所1],[出荷先都道府県] &

" " & [出荷先住所1])

【後】xxx.DataField=(出荷先都道府県 == System.DBNull.Value) ? 出荷先住所1 : 出

荷先都道府県 + " " + 出荷先住所1

④ 日付書式の追加【後】xxx.OutputFormat=yyyy/M/d

④⑤ ⑥

⑤⑥ 桁区切り、通貨記号の設定【後】xxx.OutputFormat=¥#,##0

⑦ データ連結フィールドの設定(うまく移行できなかったもの)【前】xxx.DataField=運送会社.運送会社

【後】xxx.DataField=運送会社

⑧ グループ化の設定【後】GroupHeader1.DataField=受注コード

【参考】PowerTools ActiveReports for .NET 9.0J - フィールド式を追加する -

http://docs.grapecity.com/help/activereports-9/#Add%20Field%20Expressions.html

34

移行作業2(Access)

⑨ グループフッタ上の小計

【前】xxx.Text=Sum([明細金額])

【後】

xxx.DataField=明細金額

xxx.SummaryFunc=Sum

xxx.SummaryGroup=GroupHeader1

xxx.SummaryRunning=Group

xxx.SummaryType=SubTotal

【参考】グループヘッダにグループ毎の集計を出力する方法は?

http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=37830

⑩グループフッタ上の合計(小計+運送料)

【前】xxx.Text=[小計]+[運送料]

【後】 Before_Printイベントに以下のコード(C#)を記述

public void GroupFooter1_BeforePrint()

{

合計.Value = decimal.Parse(小計.Value.ToString()) +

decimal.Parse(運送料.Value.ToString());

}

DEMO

Access帳票「納品書」を移行する

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」を設定してください。

質問文は講師が回答するまで他参加者からは見えません。

時間内に回答できなかったものは後日メールで回答させていただきます。

37

All Panelists を

選択質問を入力

最後にSendを

押す

http://goo.gl/forms/7RUhtrpYNH7Jslcn1

以下にアクセスをお願いします。

セミナー終了後に自動送信される「お礼メール」からもア

クセスできます。

38

アンケートにご協力ください!