ページ 11

フォームのボタンを押すとレポートが開くプログラム

Posted: 1月 24, 2010, 3:02 am
by norip
baseでフォームとフォーム上のボタンと、それからレポートを
作成した状態なのですが
フォーーム上のボタンを押したときに
レポートを開く方法がわかりません
ご教授ねがいたいと思います
なお、仮にフォーム名をF
フォーム上のボタンをB
レポートをR
とします。

Re: フォームのボタンを押すとレポートが開くプログラム

Posted: 1月 29, 2010, 10:40 am
by tani
以下のようなマクロを作成して, ボタンが押されたときに実行されるように設定すればいいんじゃないでしょうか。

コード: 全て選択

Sub hoge
  ' baseファイルがOOoデータソースとして登録されているとき。
  oDBCon = CreateUnoService("com.sun.star.sdb.DatabaseContext")
  oSource = oDBCon.getByName("データソース名")
  oSource.DatabaseDocument.ReportDocuments.getByName("レポート名").open()
End Sub
なお汎用的なのは↑だと思いますが、Baseファイルにマクロを含めるときなんかは↓のほうがいいかもしれません。

コード: 全て選択

Sub hoge
'  oDoc = ThisComponent  
'  If oDoc.supportsService("com.sun.star.text.TextDocument") Then
'    oDoc = ThisComponent.parent
'  End If
' 今は↓でいけるみたい

  oDoc = ThisDatabaseDocument  
  If oDoc.supportsService("com.sun.star.sdb.OfficeDatabaseDocument") = false Then
    Exit Sub
  End If
  oDoc.ReportDocuments.getByName("レポート名").open()
End Sub

Re: フォームのボタンを押すとレポートが開くプログラム

Posted: 2月 11, 2010, 1:28 am
by norip
taniさんありがとうございます
これでボタンからフォームやレポート
にアクセスできると思います
感謝です