Bericht per Makro öffnen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Bericht per Makro öffnen

Re: Bericht per Makro öffnen

von Toxitom » So, 29.07.2007 18:02

Hallo Tarno,

Lösung steht auch irgendwo im Buch, vielleicht nicht bei den Berichten.... bzw. kommt in der nächsten Auflage ;-)

Hier mal ein Codebeispiel, wie du ein weiteres Formular per "Knopfdruck" öffnen kannst. Berichte gehen analog, musst du halt entsprechend anpassen.

Code: Alles auswählen

Sub Formular_Oeffnen
  dim sFormularName as string, i as integer
  dim oContext as object, oDB as Object, oVerb as object
  dim arg(1) as new com.sun.star.beans.PropertyValue
  dim aListe()
  
  sFormularName = "Artikel"
  REM alleFormulare und Bericht
  aListe = StarDesktop.CurrentComponent.getFormDocuments().getElementNames()
  REM das richtige suchen
  for i = lBound(aListe) to uBound(aListe)
    if aListe(i) = sFormularName then
      oContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
      oDB = oContext.getByName(StarDesktop.CurrentComponent.GetLocation)
      oVerb = oDB.getConnection("", "")
      arg(0).Name = "OpenMode"
      arg(0).Value = "open"
      arg(1).Name = "ActiveConnection"
      arg(1).Value = oVerb
      StarDesktop.CurrentComponent.getFormDocuments(). loadComponentFromURL(aListe(i), "", 0, arg())
      Exit sub
    end if
  next  
End Sub
Viele Grüße
Thomas

Bericht per Makro öffnen

von tarno » Sa, 21.07.2007 13:51

Hallo,

ich möchte einen existierenden Bericht aus einem existierenden Formular heraus per Button öffnen.

Anhand eines Beispielcodes auf Seite 493 aus dem Buch "Makros mit OOo 2.0" von Thomas Krumbein schaffe ich es nur, die Index-Nummer des Berichts zu ermitteln.

Code: Alles auswählen

'	Drucken

	objDoc = objDatenquelle.DatabaseDocument
	objReport = objDoc.getReportDocuments().getByName("rptFinanzbericht")
	objReportDoc = objReport.getComponent()

	s = s & i & ":" & objReport.name & chr(13)

	msgbox s
Könnt ihr mir sagen, welche Anweisung notwendig ist, um den richtigen Bericht angezeigt zu bekommen?

Tausend Dank im Voraus.

Tarno

Nach oben