Wir sind auf Ihre Unterstützung angewiesen!
💚 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. 🤗

Fehler beim Aufruf eines Berichts über externes Formular

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Mi 18. Okt 2017, 16:02

Hallo Swordfish76,
Swordfish76 hat geschrieben:
Mi 18. Okt 2017, 12:18
Lokal funktioniert alles wunderbar über das externe Formular.
Die Berichte werden genauso aufgerufen, wie es sein soll.

Sobald ich das Ganze aber auf den Server lege und in der gleichen
Konstellation arbeite (Pfade sind natürlich angepasst und Formulare und
die Datenbank liegen im selben Verzeichnis, stürzt mir Base komplett ab.
Ich nehme nicht an, dass das etwas mit einfachen Verzögerungszeiten zu tun hat. Funktioniert denn der einfache Aufruf der Datenbankdatei auf dem Server, d.h. hast Du da tatsächlich das Recht, von außen heraus Dateien auszuführen, also nicht nur zu lesen und zu schreiben?

Gruß

Robert
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

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Do 19. Okt 2017, 10:38

RobertG hat geschrieben:
Mi 18. Okt 2017, 16:02
Hallo Swordfish76,
Swordfish76 hat geschrieben:
Mi 18. Okt 2017, 12:18
Lokal funktioniert alles wunderbar über das externe Formular.
Die Berichte werden genauso aufgerufen, wie es sein soll.

Sobald ich das Ganze aber auf den Server lege und in der gleichen
Konstellation arbeite (Pfade sind natürlich angepasst und Formulare und
die Datenbank liegen im selben Verzeichnis, stürzt mir Base komplett ab.
Ich nehme nicht an, dass das etwas mit einfachen Verzögerungszeiten zu tun hat. Funktioniert denn der einfache Aufruf der Datenbankdatei auf dem Server, d.h. hast Du da tatsächlich das Recht, von außen heraus Dateien auszuführen, also nicht nur zu lesen und zu schreiben?

Gruß

Robert
Hallo Robert,

daran habe ich auch schon gedacht.

Da ich aber in dem Verzeichnis einen Unterordner für die Dateien anlegen und die Dateien hier abspeichern konnte, gehe ich mal davon aus, dass Lese- und Schreibrechte vorhanden sind.

Mein Eingabeformular für die Daten habe ich aus der Datenbank in dieses Verzeichnis ausgelagert. Hier habe ich keine Probleme, bei geschlossener Datenbank Daten neu zu erfassen, zu ändern oder zu löschen. Das funktioniert auf dem Server wunderbar.

Der Start der Datenbank in dem Serververzeichnis funktioniert einwandfrei. Rufe ich daraus direkt die Berichte oder auch die Formulare auf, klappt es ohne Fehlermeldung.

Leider ist unsere IT-Abteilung genauso ratlos wie ich auch. :-(

Was könnte es u. U. noch sein?

Gruß,
Swordfish

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Do 19. Okt 2017, 17:08

Hallo Swordfish,

Du kannst also mit der Datenbank dort arbeiten. Kannst Du auch, wenn Du die Datenbankdatei selbst öffnest, den Bericht starten?

Gruß

Robert
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

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Fr 20. Okt 2017, 16:34

RobertG hat geschrieben:
Do 19. Okt 2017, 17:08
Hallo Swordfish,

Du kannst also mit der Datenbank dort arbeiten. Kannst Du auch, wenn Du die Datenbankdatei selbst öffnest, den Bericht starten?

Gruß

Robert
Ja, das funktioniert einwandfrei. :-)

Gruß,
Swordfish76

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Fr 20. Okt 2017, 19:20

Hallo Swordfish,

ich versuche einmal den Code des Makros so zu ergänzen, dass wir dem Fehler auf die Spur kommen - frei nach dem Prinzip "Trial and Error", da ich keine entsprechende Verbindung zu einer Datenbank im Netz hier habe.

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
oDocument.getCurrentController().connect
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
END IF
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Ich nehme also erst einmal den Aufruf des Berichtes raus und mache das zu einem Kommentar. Dann überprüfe ich mit der Bedingung, ob überhaupt eine Verbindung zur Datenbank besteht.

Jetzt kannst Du die Bedingungsabfrage auch ein zweites Mal direkt im Anschluss laufen lassen und die Zeit zur Verbindung dadurch steuern, dass Du eben die Messagebox eingebaut hast.

Gruß

Robert
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

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Mo 23. Okt 2017, 09:29

RobertG hat geschrieben:
Fr 20. Okt 2017, 19:20
Hallo Swordfish,

ich versuche einmal den Code des Makros so zu ergänzen, dass wir dem Fehler auf die Spur kommen - frei nach dem Prinzip "Trial and Error", da ich keine entsprechende Verbindung zu einer Datenbank im Netz hier habe.

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
oDocument.getCurrentController().connect
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
END IF
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Ich nehme also erst einmal den Aufruf des Berichtes raus und mache das zu einem Kommentar. Dann überprüfe ich mit der Bedingung, ob überhaupt eine Verbindung zur Datenbank besteht.

Jetzt kannst Du die Bedingungsabfrage auch ein zweites Mal direkt im Anschluss laufen lassen und die Zeit zur Verbindung dadurch steuern, dass Du eben die Messagebox eingebaut hast.

Gruß

Robert
Guten Morgen Robert,

danke für Deine Unterstützung! :-)

Leider erreiche ich mit dem neuen Makro das gleiche Fehlerbild. Das Fenster wird erst grau und dann stürzt LO ab. Egal wie ich die "Wait"-Zeit einstelle - im Zweifel dauert es ein bisschen länger, bevor LO abstürzt. Starte ich meine Datei "Start.odt" erneut, möchte er einen Fehlerbericht senden und die Widerherstellung starten. Das funktioniert aber auch immer nur bei dem Writer Dokument (Start.odt). Versucht er das bei der "Interessentenverwaltung.odb", scheitert er immer. Verwerfe ich diese Wiederherstellung bei der eigentlichen DB, komme ich wieder wie gewohnt rein.

Gruß,
Swordfish76

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Mo 23. Okt 2017, 11:33

Hallo Swordfish,

wenn Du das Makro so genommen hast, wie von mir aufgezeigt, dann scheint bereits der Versuch zu scheitern überhaupt einen Kontakt zur Datenbank aufzunehmen.

Ich würde jetzt schrittweise nachsehen, mit welcher Zeile das passiert. Du kannst ja lauter Messageboxen einfügen. Eine direkt nach oDocument = ... , eine nach oDocument.get ...
Sieht dann so aus:

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
oDocument.getCurrentController().connect
msgbox "2"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
END IF
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Die Wait-Einstellung müsste ja, wie der Aufruf des Berichtes, überhaupt nicht aktiviert sein (' - Kommentarzeichen).

Gruß

Robert
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

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Di 24. Okt 2017, 08:54

RobertG hat geschrieben:
Mo 23. Okt 2017, 11:33
Hallo Swordfish,

wenn Du das Makro so genommen hast, wie von mir aufgezeigt, dann scheint bereits der Versuch zu scheitern überhaupt einen Kontakt zur Datenbank aufzunehmen.

Ich würde jetzt schrittweise nachsehen, mit welcher Zeile das passiert. Du kannst ja lauter Messageboxen einfügen. Eine direkt nach oDocument = ... , eine nach oDocument.get ...
Sieht dann so aus:

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
oDocument.getCurrentController().connect
msgbox "2"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
END IF
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Die Wait-Einstellung müsste ja, wie der Aufruf des Berichtes, überhaupt nicht aktiviert sein (' - Kommentarzeichen).

Gruß

Robert
So....

Deine Idee mit den einzelnen Schritten ist ganz gut. Zumindest kann ich jetzt sagen, wo LO aussteigt.

Nach dem Klick auf den Button, erscheint brav die msgbox "0". Dann öffnet sich die Datenbank und msgbox "1" geht auf.
Allerdings stürzt er hier dann ab.

Nach dem abändern des Makros habe ich allerdings auch folgende Meldung bekommen:

Verbindungsaufbau gescheitert.

General error: org.hsqldb.lib.FileSystemRuntimeException:
java.io.lOException


Über "mehr" erhalte ich dann den "SQL-Status:S1000, Fehler-Code: -40"

Deutet das vielleicht auf ein Problem mit Java hin? Wie gesagt, die Datenbank kann LO ja öffnen. Allerdings ist das Fenster nicht "aktiv", bevor LO abstürzt.

Gruß,
Swordfish

RobertG
Beiträge: 2735
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von RobertG » Di 24. Okt 2017, 15:40

Hallo Swordfish,

habe ich das richtig verstanden: msgbox "1" geht auf, Du bestätigst mit "OK" und dann stürzt Base ab?
Versuche einmal

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
	oDocument.getCurrentController().connect	
END IF
msgbox "2"
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Die Meldung kommt ja direkt von der HSQLDB. Es muss also etwas an der Verbindung zur internen Datenbank scheitern.

Gruß

Robert
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

Swordfish76
Beiträge: 19
Registriert: Di 11. Jul 2017, 20:32

Re: Fehler beim Aufruf eines Berichts über externes Formular

Beitrag von Swordfish76 » Di 24. Okt 2017, 15:54

RobertG hat geschrieben:
Di 24. Okt 2017, 15:40
Hallo Swordfish,

habe ich das richtig verstanden: msgbox "1" geht auf, Du bestätigst mit "OK" und dann stürzt Base ab?
Versuche einmal

Code: Alles auswählen

SUB Kundenliste
DIM oDocument AS OBJECT
DIM Arg()
msgbox "0"
oDocument = StarDesktop.loadComponentFromURL("file:///J:/Documents/Immobilien/Interessentenverwaltung.odb", "_blank", 0, Arg() )
msgbox "1"
IF NOT (oDocument.CurrentController.isConnected()) THEN 
	msgbox "Keine Verbindung"
	oDocument.getCurrentController().connect	
END IF
msgbox "2"
' Wait(100)
' oDocument.ReportDocuments.getByName("Kundenliste").open
END SUB
Die Meldung kommt ja direkt von der HSQLDB. Es muss also etwas an der Verbindung zur internen Datenbank scheitern.

Gruß

Robert
Hallo Robert,

das hast Du richtig verstanden. Msgbox "1" geht auf und nach dem Klick auf OK stürzt Base ab.

Beim neuen Makro erhalte ich die Meldung "Keine Verbindung".
Also wird, wenn ich dein Makro richtig interpretiere, die Datenbank zwar geöffnet, aber nicht die Verbindung hergestellt.
Danach stürzt Base wie gewohnt ab. Also scheint es am Verbindungsaufbau selbst zu liegen...

Gruß,
Swordfish

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