[gelöst]Bericht Starten mittels button

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

[gelöst]Bericht Starten mittels button

Beitrag von juergen_w1987 »

Hey leute,

wieder mal ein weiteres Problem. Möchte mit einen Button den Datensatz Speichern (gibt es ja zur Auswahl im Reiter Allgemein) und weiters einen Bericht mit Hilfe des gleichen Buttons starten. Natürlich mit dem zuvor ausegwählten Datzensatz.
so habe scho den Befehl zum auslesen des ausgewählten Primkey (Datensatz):

Code: Alles auswählen

oform=ThisComponent.drawpage.forms.Mainform
oprimkey=oform.getint(1)
Nur wie über gebe ich den an den Report??????


danke schon mal im vorhinein.
verwende OOo3.2.1
HSQLDB 1.9
Reportbuilder
Zuletzt geändert von juergen_w1987 am Mo, 05.09.2011 18:50, insgesamt 1-mal geändert.
Benutzeravatar
herz4
****
Beiträge: 145
Registriert: Mi, 29.09.2010 13:41

Re: Bericht Starten mittels button

Beitrag von herz4 »

Hallo Jürgen,

verstehe ich recht, Du willst einen Bericht aufrufen, um nur einen Datensatz anzuzeigen bzw. auszuwerten?
LinuxMint 13 maya, LibreOffice 4.1 mit externer HSQLDB 2.3.2
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: Bericht Starten mittels button

Beitrag von juergen_w1987 »

hallo

war länger nicht mehr online. Das ganze Formular sieht ungefähr so aus Anlage auswählen (listenfeld), Gerät auswählen (listenf). Dann ist eine Übersichtstabelle der letzten prüfungen daraus wähle ich eine aus. Dann Button mit speichern und dem Makro "Bericht ausführen".

Mein Problem ist jetzt: wie Führe ich den Bericht mittels Makro aus und wie übergebe ich dem den Primkey von der ausgewählten Prüfung??? Habe den Bericht mit Reportbuilder erstellt.
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: Bericht Starten mittels button

Beitrag von juergen_w1987 »

Im Prinzip ja nur ein Datensatz. Über die berichtsabfrage bekomme ich noch andere Werte von Tabellen die sind aber mit dem Datensatz verknüpft.
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: Bericht Starten mittels button

Beitrag von juergen_w1987 »

Habe schon mal ein altes thema gefunden nur wie übergebe ich da den ausgewählten pk an den report?


viewtopic.php?f=18&t=49145
juergen_w1987
**
Beiträge: 48
Registriert: Fr, 04.02.2011 09:31

Re: [gelöst]Bericht Starten mittels button

Beitrag von juergen_w1987 »

Lösung: zusätzliche Spalte mit CheckPk.
Beim Öffnen des Formulars wird Funktion rueckstetzen ausgeführt

Code: Alles auswählen

Sub rueckstetzen
' checkPk zurücksetzen für nächsten import
   SQL_QUERY= "Update ""Prüfdaten"" SET ""CheckPk""=0"
   sendSQL(SQL_QUERY)
End Sub
Nach getätigter Auswahl in der Tabelle wird Funktion openReport über Button ausgeführt

Code: Alles auswählen

Sub openReport
oform=ThisComponent.drawpage.forms.MainForm
PrimKeyPruefdaten=oform.getint(11)
SQL_QUERY= "Update ""Prüfdaten"" SET  ""CheckPk""='1'  WHERE ""Pk""="+PrimKeyPruefdaten+""
 	sendSQL(SQL_QUERY)	
oReport = ThisDatabaseDocument.reportDocuments.getbyname("berichtabfrage2")
   oReport.open
rueckstetzen
End Sub
Ps. getint(11) ist die Postition des Pk in Tabelle. MainForm muss man möglicherweise auch umbenenen.

Code: Alles auswählen

Function sendSQL (sSQL As String)
	oDBCntxt = CreateUnoService("com.sun.star.sdb.DatabaseContext")		'für zugriff auf datenbank
	oDBSrc = oDBCntxt.getByName( "RegistrierterDatenbankname" )
    oConnection = oDBSrc.getConnection("","")		 		 
	oStatement = oConnection.CreateStatement
	oStatement.executeQuery(sSQL)
end Function 
hoffe das es Funktioniert so wie ich es hineingeschrieben habe
Antworten