BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2732
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten