Top > OOoBasic > Base > Reports

レポート Edit

Base ドキュメントに埋め込まれたレポートドキュメント。

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

レポートコンテナ Edit

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

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

レポートの読み込み Edit

レポートドキュメントはレポートコンテナから読み込み、開くことができます。

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.getReportDocuments()
  oReports.loadComponentFromURL("ReportName", "_blank", 0, args)
End Sub

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

レポートドキュメントの構成 Edit

レポートドキュメントは普通の 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