von ulihueck » Mo, 03.08.2009 17:36
Hallo.
Vielen Dank für Eure Hilfe.
Habe nochmals einiges umgebaut, wil noch viele Denk- und Syntaxfehler versteckt waren
Mit diesem Code kann ich also nun mittels Dialog das Anfangs- und Enddatum eingeben und in die Abfrage einbauen.
Code: Alles auswählen
Sub Leistungen_Zeitintervall
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog_Datum)
dim oDatabaseContext, oDataSource, oConnection , oStatement as object
dim query, sSqL1 as string
oDatabaseContext=CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource=oDatabaseContext.getbyName("ABH")
oConnection=oDataSource.getConnection("", "")
oStatement=oConnection.createStatement()
Dim dlgBeschreibung, DateField1, Statement, ResultSet, Connection as Object
Dim Anfang, Ende , Year1, Year2, Month1,Month2, Date1, Date2 as string
dlgBeschreibung = DialogLibraries.Standard.Dialog_Datum
dlg = CreateUnoDialog(dlgBeschreibung)
DateField1 = dlg.getControl("DateField1")
DateField2 = dlg.getControl("DateField2")
Dlg.Execute()
sDate = DateField1.Date
edate = DateField2.date
Year1 = Mid(sDate, 1,4)
Month1 = Mid(sDate, 5,2)
Date1 = Mid(sDate, 7,2)
sdate = Year1 &"-"& Month1 &"-"& Date1
edate = DateField2.date
Year2 = Mid(eDate, 1,4)
Month2 = Mid(eDate, 5,2)
Date2 = Mid(eDate, 7,2)
edate = Year2 &"-"& Month2 &"-"& Date2
Anfang = sdate
Ende = edate
query = "SELECT ""Kunden"".""Anrede"", ""Kunden"".""Vorname"", ""Kunden"".""Name"", ""Leistungen"".""Leistung"", ""Leistungsnachweis"".""Menge"", ""Preise"".""Preis"", ""Kunden"".""Kunden-ID"", ""Preis"" * ""Menge"" AS ""Gesamt"", ""Leistungsnachweis"".""Datum"" FROM ""Leistungsnachweis"" AS ""Leistungsnachweis"", ""Kunden"" AS ""Kunden"", ""Preise"" AS ""Preise"", ""Leistungen"" AS ""Leistungen"" WHERE ""Leistungsnachweis"".""Kunden-ID"" = ""Kunden"".""Kunden-ID"" AND ""Preise"".""Kunden-ID"" = ""Kunden"".""Kunden-ID"" AND ""Preise"".""Leistungs-ID"" = ""Leistungen"".""Leistungs-ID"" AND ""Leistungsnachweis"".""Datum"" = ""Leistungsnachweis"".""Datum"" AND ""Preise"".""Kunden-ID"" = ""Leistungsnachweis"".""Kunden-ID"" AND ""Preise"".""Leistungs-ID"" = ""Leistungsnachweis"".""Leistungs-ID"" AND ""Kunden"".""Kunden-ID"" = 0 AND ""Leistungsnachweis"".""Datum"" >= {D '"
sSQL1 = query & Anfang & "'} AND ""Leistungsnachweis"".""Datum"" <= {D '" & Ende &"' }"
oResultSet = oStatement.executeQuery(sSQL1)
End Sub
Ich möchte mit dieser Abfrage einen Bericht erstellen.
Muss ich einen Umweg gehen und eine Tabelle anlegen, in die die abgefragten Daten zwischengespeichert und dann mit dem Report weiter verarbeitet werden?
Grüße
Uli
Hallo.
Vielen Dank für Eure Hilfe.
Habe nochmals einiges umgebaut, wil noch viele Denk- und Syntaxfehler versteckt waren :shock:
Mit diesem Code kann ich also nun mittels Dialog das Anfangs- und Enddatum eingeben und in die Abfrage einbauen.
[code]
Sub Leistungen_Zeitintervall
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog_Datum)
dim oDatabaseContext, oDataSource, oConnection , oStatement as object
dim query, sSqL1 as string
oDatabaseContext=CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDataSource=oDatabaseContext.getbyName("ABH")
oConnection=oDataSource.getConnection("", "")
oStatement=oConnection.createStatement()
Dim dlgBeschreibung, DateField1, Statement, ResultSet, Connection as Object
Dim Anfang, Ende , Year1, Year2, Month1,Month2, Date1, Date2 as string
dlgBeschreibung = DialogLibraries.Standard.Dialog_Datum
dlg = CreateUnoDialog(dlgBeschreibung)
DateField1 = dlg.getControl("DateField1")
DateField2 = dlg.getControl("DateField2")
Dlg.Execute()
sDate = DateField1.Date
edate = DateField2.date
Year1 = Mid(sDate, 1,4)
Month1 = Mid(sDate, 5,2)
Date1 = Mid(sDate, 7,2)
sdate = Year1 &"-"& Month1 &"-"& Date1
edate = DateField2.date
Year2 = Mid(eDate, 1,4)
Month2 = Mid(eDate, 5,2)
Date2 = Mid(eDate, 7,2)
edate = Year2 &"-"& Month2 &"-"& Date2
Anfang = sdate
Ende = edate
query = "SELECT ""Kunden"".""Anrede"", ""Kunden"".""Vorname"", ""Kunden"".""Name"", ""Leistungen"".""Leistung"", ""Leistungsnachweis"".""Menge"", ""Preise"".""Preis"", ""Kunden"".""Kunden-ID"", ""Preis"" * ""Menge"" AS ""Gesamt"", ""Leistungsnachweis"".""Datum"" FROM ""Leistungsnachweis"" AS ""Leistungsnachweis"", ""Kunden"" AS ""Kunden"", ""Preise"" AS ""Preise"", ""Leistungen"" AS ""Leistungen"" WHERE ""Leistungsnachweis"".""Kunden-ID"" = ""Kunden"".""Kunden-ID"" AND ""Preise"".""Kunden-ID"" = ""Kunden"".""Kunden-ID"" AND ""Preise"".""Leistungs-ID"" = ""Leistungen"".""Leistungs-ID"" AND ""Leistungsnachweis"".""Datum"" = ""Leistungsnachweis"".""Datum"" AND ""Preise"".""Kunden-ID"" = ""Leistungsnachweis"".""Kunden-ID"" AND ""Preise"".""Leistungs-ID"" = ""Leistungsnachweis"".""Leistungs-ID"" AND ""Kunden"".""Kunden-ID"" = 0 AND ""Leistungsnachweis"".""Datum"" >= {D '"
sSQL1 = query & Anfang & "'} AND ""Leistungsnachweis"".""Datum"" <= {D '" & Ende &"' }"
oResultSet = oStatement.executeQuery(sSQL1)
End Sub
[/code]
Ich möchte mit dieser Abfrage einen Bericht erstellen.
Muss ich einen Umweg gehen und eine Tabelle anlegen, in die die abgefragten Daten zwischengespeichert und dann mit dem Report weiter verarbeitet werden?
Grüße
Uli