Как сделать главную форму?

Автор raptor, 21 декабря 2010, 13:43

0 Пользователи и 1 гость просматривают эту тему.

raptor

Добрый день!
Не подскажете, как в Base сделать так, чтобы база данных открывалась сразу с главной формы с собственным меню.
Так как это сделано в Access на снимке.

[вложение удалено Администратором]

K8611

Сервис - Настрока - Вкладка события - открытие файла привязать макрос:
REM  Открытие главной формы
'****************************************************************************
Global oDoc
Sub OpenForm0
oDoc=ThisComponent
sDBURL$=oDoc.URL
oDoc.CurrentController.Frame.ContainerWindow.setVisible(False)
sFormName$="formHeading"
OpenFormDB(sDBURL$, sFormName$)
End Sub
'*****************************************************************************
Function OpenFormDB(sDBURL$, sFormName$)
   Dim oDBDoc
   Dim oFormDef
   Dim oFormDocs
   Dim oFormDoc
   Dim oCon
   Dim oBaseContext
   Dim oDataBase
   Dim oParms() As New com.sun.star.beans.PropertyValue
         oDBDoc = oDoc   'ThisComponent
         oFormDocs = oDBDoc.getFormDocuments()
         oFormDef = oDBDoc.getFormDocuments().getByName(sFormName)
         oDummyFormDef = oFormDef
         oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
         oDataBase = oBaseContext.getByName(sDBURL$)
         oCon = oDataBase.getConnection("", "")
         AppendProperty(oParms(), "OpenMode", "open")
         AppendProperty(oParms(), "ActiveConnection", oCon)
         oFormDoc = oFormDocs.loadComponentFromURL(sFormName$, "", 0, oParms())
         OpenFormDB() = oFormDoc
End Function
'********************************************************************************
Function CreateProperty(sName$, oValue) As com.sun.star.beans.PropertyValue
   Dim oProperty As New com.sun.star.beans.PropertyValue
         oProperty.Name = sName
         oProperty.Value = oValue
         CreateProperty() = oProperty
End Function
'********************************************************************************
Sub AppendProperty(oProperties(), sName As String, ByVal oValue)
         AppendToArray(oProperties(), CreateProperty(sName, oValue))
End Sub
'********************************************************************************
Sub AppendToArray(oData(), ByVal x)
   Dim iUB As Integer
   Dim iLB As Integer
         iUB = UBound(oData()) + 1
         iLB = LBound(oData())
ReDim Preserve oData(iLB To iUB)
         oData(iUB) = x
End Sub

Hasim

А файл с примером можно выложить?

Hasim

Цитата: raptor от 21 декабря 2010, 12:43как в Base сделать так, чтобы база данных открывалась сразу с главной формы с собственным меню
В вопросе ключевая фраза: с собственным меню.
Это и есть основная трудность.

K8611

Если попробовать:  Сервис - Настройка - Создать - Новое меню и т.д.

Hasim

Цитата: K8611 от 23 июня 2014, 22:04
Если попробовать:  Сервис - Настройка - Создать - Новое меню и т.д.
Попробуйте и результаты сообщите.

K8611

Вас какие интересуют результаты ?

Hasim

Цитата: K8611 от 24 июня 2014, 12:59
Вас какие интересуют результаты ?
И положительные, и отрицательные - получилось новое меню вместо старого?

K8611

Не поверите, получилось и даже работает, алгоритм создания примерно как в ms access.

Hasim

#9
Цитата: K8611 от 24 июня 2014, 16:53
Не поверите, получилось и даже работает, алгоритм создания примерно как в ms access.
Не поверю, пока не увижу работающий пример.