Создать форме кнопку отвечающую за открытие ранее созданного отчета

Автор Dja, 26 января 2023, 16:14

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

sokol92

Цитата: Dja от 12 марта 2023, 08:50текущую директорию с файлом
Если имеется в виду файл, который содержит макрос, то можно так (для всех операционных систем):
Sub OpenReport3
  Dim oDBDoc, arr
  arr=Split(ThisComponent.URL, "/")  ' полный путь к данному документу, разбитый на части по символу "/"
  arr(Ubound(arr))="Celsius.odb"     ' заменяем имя файла
  oDBDoc = StarDesktop.LoadComponentFromUrl(Join(arr, "/"), "_blank", 0, Array())
  With oDBDoc.currentcontroller
    If  Not .isConnected Then .connect
  End With
  ODBDoc.ReportDocuments.getbyname("Temperature").open()   
End Sub
Владимир.


Dja

Цитата: sokol92 от 27 января 2023, 15:29Если документ базы данных не нужен, можем вообще его не показывать.
Sub OpenReport3
  Dim oDBDoc
  Dim props(0) As New com.sun.star.beans.PropertyValue
  props(0).Name="Hidden": props(0).Value=True
  oDBDoc = StarDesktop.LoadComponentFromUrl(ConvertToUrl("C:\temp\Celsius.odb"), "_blank", 0, props)
  With oDBDoc.CurrentController
    If  Not .isConnected Then .connect
  End With
  ODBDoc.ReportDocuments.getbyname("Temperature").open()   
  ODBDoc.Close False
End Sub


С этим макросом все также? прописываем вместо полного пути такой код?

Dim oDBDoc, arr
  arr=Split(ThisComponent.URL, "/")  ' полный путь к данному документу, разбитый на части по символу "/"
  arr(Ubound(arr))="Celsius.odb"    ' заменяем имя файла
  oDBDoc = StarDesktop.LoadComponentFromUrl(Join(arr, "/"), "_blank", 0, Array())