BITTE helfen Sie uns das LibreOffice Forum zu erhalten!
Vielen Dank für Ihre SPENDE.
> KEINE WERBUNG FÜR REGISTRIERTE LIBREOFFICE-FORUM-USER!<
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 in Makro Datum setzen
Fehler in Makro Datum setzen
Hallo zusammen,
ich hänge gerade an einem kleinen Makro fest und krieg es nicht zum laufen.
Wenn das Feld leer ist wird die IF-Then Bedingung nicht ausgeführt.
Ohne die IF/Then Bedingung funktioniert es, das Datum wird geschrieben.
Es soll dabei nur verhindert werden dass ein eingetragenes Datum überschrieben wird.
Hat da jemand eine Idee wo das hängt?
Bin für jeden Tip dankbar.
Sub Datum_Notizen_Firma
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")
oDatum = oSubForm.getByName("Datum")
print oDatum.getCurrentValue()'Testfunktion
IF ISEMPTY (oDatum.getCurrentValue()) THEN
print ("Bedingung erfüllt")'Testfunktion
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
oSubForm.updateRow() ' Weitergabe der Änderung an die Datenbank
end if
print ("Verzweigungsende")'Testfunktion
End Sub
ich hänge gerade an einem kleinen Makro fest und krieg es nicht zum laufen.
Wenn das Feld leer ist wird die IF-Then Bedingung nicht ausgeführt.
Ohne die IF/Then Bedingung funktioniert es, das Datum wird geschrieben.
Es soll dabei nur verhindert werden dass ein eingetragenes Datum überschrieben wird.
Hat da jemand eine Idee wo das hängt?
Bin für jeden Tip dankbar.
Sub Datum_Notizen_Firma
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")
oDatum = oSubForm.getByName("Datum")
print oDatum.getCurrentValue()'Testfunktion
IF ISEMPTY (oDatum.getCurrentValue()) THEN
print ("Bedingung erfüllt")'Testfunktion
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
oSubForm.updateRow() ' Weitergabe der Änderung an die Datenbank
end if
print ("Verzweigungsende")'Testfunktion
End Sub
Re: Fehler in Makro Datum setzen
Versuche einmal für das Datumsfeld
IsEmpty(oField.CurrentValue())
das ist beim Datumsfeld nicht so einfach, weil das Datum selbst in einem Struct gespeichert wird (oField.Date.Day; oField.Date.Month usw.)
Den aktuellen Wert bekommst Du über CurrentValue auch nicht als String raus. Weil darunter eben die Eigenschaften "Date.Day", "Date.Month" usw. gespeichert werden.
IsEmpty(oField.CurrentValue())
das ist beim Datumsfeld nicht so einfach, weil das Datum selbst in einem Struct gespeichert wird (oField.Date.Day; oField.Date.Month usw.)
Den aktuellen Wert bekommst Du über CurrentValue auch nicht als String raus. Weil darunter eben die Eigenschaften "Date.Day", "Date.Month" usw. gespeichert werden.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Fehler in Makro Datum setzen
Hallo Robert,
danke für die Antwort.
Mit CurrentValue geht´s auch nicht.
Eigentlich will ich ja nur sehen ob überhaupt was in dem Feld steht.
Wenn es leer ist, dann Datum eintragen wenn schon ein Wert drin ist
dann nicht. Da wäre doch das Format erstmal egal, oder?
danke für die Antwort.
Mit CurrentValue geht´s auch nicht.
Eigentlich will ich ja nur sehen ob überhaupt was in dem Feld steht.
Wenn es leer ist, dann Datum eintragen wenn schon ein Wert drin ist
dann nicht. Da wäre doch das Format erstmal egal, oder?
Re: Fehler in Makro Datum setzen
Hallo Robert,
noch ein Nachtrag.
In einem anderen Makro funktioniert es.
Da wird aber eine Tabellenkontrollfeld verwendet.
Sub Datum_Notizen_Kontakt
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm2 = oForm.getByName("SubForm2")
oSubForm4 = oForm.SubForm2.getByName("SubForm4")
oDatum=oSubForm4.SubForm4_Grid."Datum"
oStatus=oSubForm4.SubForm4_Grid."Mail-gesendet"
If Isempty (oDatum.GetCurrentValue()) Then
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
oForm.updateRow() ' Weitergabe der Änderung an die Datenbank
end if
End Sub
noch ein Nachtrag.
In einem anderen Makro funktioniert es.
Da wird aber eine Tabellenkontrollfeld verwendet.
Sub Datum_Notizen_Kontakt
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm2 = oForm.getByName("SubForm2")
oSubForm4 = oForm.SubForm2.getByName("SubForm4")
oDatum=oSubForm4.SubForm4_Grid."Datum"
oStatus=oSubForm4.SubForm4_Grid."Mail-gesendet"
If Isempty (oDatum.GetCurrentValue()) Then
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
oForm.updateRow() ' Weitergabe der Änderung an die Datenbank
end if
End Sub
Re: Fehler in Makro Datum setzen
Da scheint mir aber der Fehler an anderer Stelle zu sitzen. Bei mir funktioniert die Nachfrage nach IsEmty(CurrentValue()) auch bei einem Datumsfeld, das ganz normal in einem Formular liegt.
print oDatum.getCurrentValue()'Testfunktion
kann nicht funktionieren, weil das Ganze entweder leer ist oder ein Struct.
Ich hoffe, dass Du das raus genommen hast, bevor Du weiter getestet hast.
Ich nutze für solche Tests hier immer xray.
print oDatum.getCurrentValue()'Testfunktion
kann nicht funktionieren, weil das Ganze entweder leer ist oder ein Struct.
Ich hoffe, dass Du das raus genommen hast, bevor Du weiter getestet hast.
Ich nutze für solche Tests hier immer xray.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Fehler in Makro Datum setzen
Hallo Robert,
ich habe noch keinen funktionierenden Link für XRAY gefunden.
Auf der Seite geht der Download Button nicht, hab ´s mit anderem Browser probiert
auch Fehlanzeige und der Link von Craig geht in´s Leere - Seiten-Ladefehler.
Eine Idee dazu?
ich habe noch keinen funktionierenden Link für XRAY gefunden.
Auf der Seite geht der Download Button nicht, hab ´s mit anderem Browser probiert
auch Fehlanzeige und der Link von Craig geht in´s Leere - Seiten-Ladefehler.
Eine Idee dazu?
Re: Fehler in Makro Datum setzen
Ich habe das gerade auch auf den alten Links versucht - erfolglos. Da ich hier die Version 60 davon habe habe ich die einfach hoch geladen:
https://www.familiegrosskopf.de/robert/ ... l60_de.odt
… und an diesen Post angehängt.
https://www.familiegrosskopf.de/robert/ ... l60_de.odt
… und an diesen Post angehängt.
- Dateianhänge
-
- XrayTool60_de.odt
- Xray 6.0 zur Objektanalyse von Makros
- (819.83 KiB) 66-mal heruntergeladen
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Fehler in Makro Datum setzen
Danke Robert.
Ich hoffe ich komme damit zurecht.
Frohes Wochenende
Gruß Helmut
Ich hoffe ich komme damit zurecht.
Frohes Wochenende
Gruß Helmut
Re: Fehler in Makro Datum setzen
Hallo Helmut,
getestet. Neue leere Datenbankfelder geben in der Regel null zurück wenn diese noch nicht angefasst wurden.
wirkt meines wissens erst wenn Whitespaces drinn stehen, oder nach vorherigen Inhalten nichts mehr.
In Postgresql kann mit
die Spalte bzw. das Feld wieder zu null gesetzt werden.
HTH
hast du mal mitIF ISEMPTY (oDatum.getCurrentValue()) THEN
Code: Alles auswählen
isnull
Code: Alles auswählen
empty
In Postgresql kann mit
Code: Alles auswählen
update <tabelle> set <spalte> = DEFAULT Where ...;
HTH
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 16
LibreOffice 24.2.5.2
GELÖST - Fehler in Makro Datum setzen
Hallo zusammen,
hab jetzt durch probieren eine Lösung gefunden:
Sub Datum_Notizen_Firma
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")
oDatum = oSubForm.getByName("Datum")
IF oDatum.getCurrentValue() = "" Then
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
Exit Sub
End if
oSubForm.updateRow()
End Sub
Alle anderen Bedingungen wie Isnull oder Isempty gingen nicht.
Jetzt wird nur in ein leeres Feld das Datum geschrieben, wenn schon was eingetragen ist nicht.
Gruß Helles58
hab jetzt durch probieren eine Lösung gefunden:
Sub Datum_Notizen_Firma
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("MainForm")
oSubForm = oForm.getByName("SubForm")
oDatum = oSubForm.getByName("Datum")
IF oDatum.getCurrentValue() = "" Then
oDatum.BoundField.updateDate( CDateToUnoDate(NOW()) )
Exit Sub
End if
oSubForm.updateRow()
End Sub
Alle anderen Bedingungen wie Isnull oder Isempty gingen nicht.
Jetzt wird nur in ein leeres Feld das Datum geschrieben, wenn schon was eingetragen ist nicht.
Gruß Helles58
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 ❤️