Top > OOoBasic > Base > Reports

* レポート [#cb8a30c9]
Base ドキュメントに埋め込まれたレポートドキュメント。

レポートドキュメントは普通の Writer ドキュメントに隠しコントロールフィールドを挿入したものです。com.sun.star.container.XChild インターフェースをサポートおり、そのインターフェースのメソッドを使用して親ドキュメントへアクセスできます。

#contents

** レポートコンテナ [#hbb760a2]
データベースドキュメントに埋め込まれたレポートドキュメントにはレポートコンテナからアクセスできます。

 Sub Reports_1
   oDoc = StarDesktop.getCurrentComponent()
   oReports = oDoc.getReportDocuments()
 End Sub

** レポートの読み込み [#f33444de]
レポートドキュメントはレポートコンテナから読み込み、開くことができます。
 Sub Reports_2
   oDoc = StarDesktop.getCurrentComponent()
   Dim args(1) As New com.sun.star.beans.PropertyValue
   args(0).Name = "ActiveConnection"
   args(0).Value = oDoc.DataSource.getConnection("", "")
   args(1).Name = "OpenMode"
   args(1).Value = "open"
   
   oReports = oDoc.getFormDocuments()
   oReports = oDoc.getReportDocuments()
   oReports.loadComponentFromURL("ReportName", "_blank", 0, args)
 End Sub

編集する場合には OpenMode に openDesign を指定します。


** レポートドキュメントの構成 [#g5fe6313]
レポートドキュメントは普通の Writer ドキュメントと変わりありませんが、レポートに表示するレコードの指定などが隠しフォームコントロールとして埋め込まれています。

フォーム名は ReportSource を使用します。また、レポートの部分はセクション RecordSection に入れられています。表は Tbl_RecordSection。

-  CommandType~
Command で指定したコマンドの種類を integer で指定

- QueryName~
CommandType がクエリー (1) のときにはクエリー名。コマンドの時には空

- Command~
CommandType がコマンド (0) のときにはレコードを取得するコマンド。CommandType に指定した種類のコマンド

- GroupFieldNames

- FieldNames~
レポートドキュメント中でのフィールド名をセミコロンで区切って

- RecordFieldNames~
レコード中でのフィールド名をセミコロンで区切って。FieldNames のフィールドと対応させる


レポートを生成するコードは以下にあります。
http://lxr.go-oo.org/source/installation/wizards/com/sun/star/wizards/report/ReportTextImplementation.java

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes