[РЕШЕНО] Ошибка открытия главной формы

Автор adi_den2013, 6 января 2015, 10:30

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

adi_den2013

Сто лет уже не редактировалась эта форма! Последняя дата работы с файлом  - месяц назад. И вот сегодня такая печаль - беда:

Global sDBURL$

Sub OpenForm0
oDoc=ThisComponent
sDBURL$=oDoc.URL
'oDoc.CurrentController.Frame.ContainerWindow.setVisible(False)
sFormName$="balans"
OpenFormDB(sDBURL$, "Главная")
'MsgBox "Cделать видимым файл баланс.ODB"
'oDoc.CurrentController.Frame.ContainerWindow.setVisible(True)
End Sub

Sub Exit_bal
dim document as object
dim dispatcher as object
  document = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  ThisComponent.getParent().DataSource.DatabaseDocument.store()  'принудительное сохранение базы целиком
  dispatcher.executeDispatch(document, ".uno:CloseWin", "", 0, Array()) 'закрытие главной формы was CloseDoc
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 = 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 'The upper bound of the array.
Dim iLB As Integer 'The lower bound of the array.
iUB = UBound(oData()) + 1
iLB = LBound(oData())
ReDim Preserve oData(iLB To iUB)
oData(iUB) = x
End Sub

Принудительное открывание формы "Главная" приводит к сообщению на скрине 3
Яна (in real)

JohnSUN

Ой, беда... Как-то неправильно год начинается...
Яна, пара встречных вопросов:
ZIP'ом в базу не смотрела? В папку forms? Что там и как?..
А рабочие архивы - совершенно случайно! - не сохранились? Возможно, самое простое это перекинуть из резервной копии соответствующую папку forms\ObjХХ\ в битую базу
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

УРА! Вот СПАСИБО ОГРОМНОЕ  :D

Копий у меня завались  ;). Нашла рабочую, вытащила папку forms и вуаля  - ЗАРАБОТАЛА база.

П.С. Спасибо за ликбез. Не знала, что можно смотреть базу ZIP'ом  :roll:
Яна (in real)

JohnSUN

Вот и славненько! С праздниками!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

adi_den2013

Яна (in real)