Top > OOoBasic > Base > Forms

フォーム Edit

データベースドキュメントに埋め込まれたフォーム。

フォームドキュメントは普通の Writer ドキュメントと変わりありませんが、com.sun.star.container.XChild インターフェースをサポートおり、そのインターフェースのメソッドを使用して親ドキュメントへアクセスできます。

フォームコンテナ Edit

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

Sub Forms_1
  oDoc = StarDesktop.getCurrentComponent()
  oForms = oDoc.getFormDocuments()
End Sub

フォームの読み込み Edit

フォームドキュメントの読み込みには loadComponentFromURL メソッドを使用します。

Sub Forms_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"
  
  oForms = oDoc.getFormDocuments()
  oForms.loadComponentFromURL("FormName", "_blank", 0, args)
End Sub

編集状態で開く場合には OpenMode に openDesign を指定します。

フォームの削除 Edit

フォームは名前を指定して削除できます。

Sub Form_3
  oDoc = StarDesktop.getCurrentComponent()
  oForms = oDoc.getFormDocuments()
  oForms.removeByName("FormName")
End Sub

フォームの作成 Edit

新しいフォームドキュメントを追加するには次のように com.sun.star.sdb.DocumentDefinition サービスをインスタンス化して挿入します。

Sub Form_4
 oFormDocuments = StarDesktop.getCurrentComponent().getFormDocuments()
 oForm = oFormDocuments.createInstance("com.sun.star.sdb.DocumentDefinition")
 oFormDocuments.insertByName("New", oForm)
end sub

フォームから親データベースドキュメント Edit

フォームから親データベースドキュメントへアクセスするには getParent メソッドで親オブジェクトを取得します。

Sub Form_10
  oDoc = ThisComponent
  oParent = oDoc.getParent()
  msgbox oParent.getLocation()
End Sub

フォームがデータベースドキュメントに埋め込まれている場合には、次のようにしてフォームからデータベースドキュメントにアクセスできます。3.1 以降。

oDbDoc = ThisDatabaseDocument

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