ich sitze mal wieder an einem Problem, bei dem ich alleine nicht weiter komme.
Ich träume von einer Suchfunktion für Rechnungen, die auf dem Hauptrechner im Netzwerk gespeichert sind. Für unsere großen Kunden ist das auch kein Problem, da ich diese Rechnungen aus der Datenbank heraus schreibe und auch abspeichere, es sind also alle Daten vorhanden, aus denen sich der Dateiname zusammensetzt.
Aber wir haben auch eien Anzahl kleinerer Kunden, die selten etwas bestellen und die (noch) nicht alle in der DB vertreten sind. Hier ist lediglich Rechnungs- und Kundennummer in der DB hinterlegt.
Ich bräuchte also soetwas wie einen Platzhalter für die Auftragsnummer (kann auch Wörter enthalten).
Versuche mit *, % oder Like scheiterten bisher allesamt.
Als wäre das nicht alles schon blöd genug, sind zudem nicht alle Rechnungen im .pdf-Format gespeichert, sondern einige (v.a. ältere) im .odt-Format...
Folgendes Makro funktioniert (eingeschränkt aufgrund der verschiedenen Formate) für unsere großen Kunden:
Code: Alles auswählen
Sub Rechnungoeffnen
oDatasource = thisComponent.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
CONST Suchpfad="file://Computer/Ordner/Unterordner/"
oSQL_Statement = oConnection.createStatement()
ReNr=RechnungSuchen.GetControl("NumericField1").Value
stSQL= "SELECT ""Auftragsnr"",""Kürzel"" FROM ""Zahlungen"",""Kunden"" WHERE ""Re-Nr""='"+ReNr+"' AND ""Kd-Nr.""=""Kunden_ID"""
oResult=oSQL_Statement.executeQuery(stSQL)
WHILE oResult.next
stAN= oResult.GetString(1)
stKd= oResult.GetString(2)
WEND
IF ReNr<2021165 THEN
Dateiname=Dir$ &Suchpfad & ReNr & stKd & stAN & ".odt"
oShell=createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(Dateiname,,0)
END IF
IF ReNr>=2021165 THEN
Dateiname=Dir$ &Suchpfad & ReNr & " stKd "& stAN & ".pdf"
oShell=createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(Dateiname,,0)
END IF
IF NOT EXISTS THEN
Dateiname=Suchpfad
oShell=createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute(Dateiname,,0)
END IF
End Sub
z.B.
Code: Alles auswählen
Dateiname=Dir$ &Suchpfad & Text LIKE "' ReNr' "
Gibt es eine Möglichkeit, für stAN und die Dateiendung einen Platzhalter zu setzen?
Das würde eine alte Frau (mich) sehr glücklich machen...