🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Dateien suchen und öffnen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
JuRo
Beiträge: 10
Registriert: So 14. Feb 2021, 20:49

Dateien suchen und öffnen

Beitrag von JuRo » Mi 11. Aug 2021, 13:14

Hallo ihr lieben,
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... :roll:
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
Wobei allerdings der Ordner ("Suchpfad") immer mitgeöffnet wird, was aber nicht weiter stört.

z.B.

Code: Alles auswählen

 Dateiname=Dir$ &Suchpfad & Text LIKE "' ReNr' " 
führt zu der Meldung, dass "False" nicht gefunden werden konnte.

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... ;)
Lo Version 7.0.6.2 (64x)
Eingebettete HSQLDB
Windows 10

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Dateien suchen und öffnen

Beitrag von RobertG » Mi 11. Aug 2021, 20:52

Du brauchst doch einen Platzhalter für die Dateisuche. Was hat das dann mit Base zu tun?

Bei Deinem System dürfte der Platzhalter das '*' für beliebig viele Buchstaben sein. Ein '?' steht für lediglich einen Buchstaben.
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten