Datum TT.MM.JJJJ wird nicht gespeichert

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Datum TT.MM.JJJJ wird nicht gespeichert

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von oOoAxel » So, 18.04.2010 23:22

Danke, habs auch alleine gefunden!

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von oOoAxel » Fr, 16.04.2010 14:41

eBayer hat geschrieben:Hallo Gino,
es war etwas problematisch, die richtige Lösung zu finden.... aber nun funktioniert es gut.
War halt etwas Forschungsarbeit. Ich hoffe, nun kommst Du ein Stück weiter.
Falls Du noch Fragen hast.... ich helfe gerne - kann ja dabei auch nur lernen.
Ich hänge das nun laufende Programm hier an.
Viel Spaß - es lohnt sich.
Gruß eBayer
Makro_DB.odb
Hallo Leute,

ich bin neu in oOo Base und bringe mir gerade die ersten Schritte bei.

Von daher wären die Beispiele eine gigantische Hilfe - nur leider ist das Programm nicht mehr angehängt...

Ist es möglich, mir diese Code-Schnippsel (ist das so richtig :? ?) noch einmal zur Verfügung zu stellen?

Danke für eure Unterstützung!

Gruß Axel

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von eBayer » Do, 05.03.2009 16:05

Hallo Gino,
tut mir leid, aber auch in der letzten Version war noch ein Problem.....
Wenn man wiederholt daten geändert und gespeichert hat, wurden die textfelder immer voller.
Es ist alles viel einfacher und das programm wird immer kleiner..... der schlüssel zur Lösung ist der commit auf die eingabe felder. selbst wenn ich dir auf den geist gehen sollte, aber mein ehrgeiz zwingt mich dazu.....
beiliegend meine endgültige lösung.

Gruß Eckhardt

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von Gino » Do, 05.03.2009 15:42

Hi eBayer,

das ist wirklich eine saubere Lösung. Da muss man erst mal drauf kommen.
Vielen vielen Dank. Auch für das saubere Auskommentieren der Zeilen. Muss ich mir auch mal angewöhnen.
Dann kann man Dinge später leichter nachvollziehen.
eBayer hat geschrieben:Aber ich denke, es lohnt sich, dein Programm noch einmal gegen die beiliegende Version auszutauschen.
Das habe ich natürlich sofort gemacht. Ich muss nur noch die Berechnung der Daten einbauen.

Dann stehen bestimmt schon die nächsten Fragen bezüglich Berichte und Formulare vor der Tür.
Da kommen bestimmt noch ein paar Fragen von mir.
Werde mich aber erst mal hier im Forum nach einer Lösung umsehen.
eBayer hat geschrieben:Ich packe übrigens allgemeingültige Sub´s und Funktionen in eine Library, die in in oO unter "Meine Macros" angelegt habe. Damit stehen sie mir in jedem anderen Programm zur Verfügung und ich brauche sie nur einmal korrigieren, falls es was zu ändern gibt
Gute Idee.

Also, nochmals Danke.

Gino

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von eBayer » Do, 05.03.2009 14:14

Hallo Gino,
Du schreibst: "Die Daten der DateFields werden nur übernommen wenn nachfolgend in einem anderen Feld ein noch Eintrag erfolgt"
Das hat mich veranlasst, noch etwas zu forschen. Die Dir gestern überlassene Programmversion funktioniert zwar, aber ist unsauber, besonders hinsichtlich der Focusschieberei. Es gibt einen erheblich besseren, kürzeren und vor allen Dingen bombensicheren Lösungsweg, den ich in der beiliegenden Version Deines Testprogramms realisiert habe. Die darin enthaltenen Funktionen sind so allgemein gehalten, daß sie überall benutzt werden können. Besonders hilfreich wird Dir die Funktion "DisplayMethods" sein (habe ich aus dem internationalen Forum übernommen), mit der Du beliebige Objecte untersuchen kannst. So bin ich im übrigen auch zu meiner Lösung gekommen. Aber ich denke, es lohnt sich, dein Programm noch einmal gegen die beiliegende Version auszutauschen.
Ich packe übrigens allgemeingültige Sub´s und Funktionen in eine Library, die in in oO unter "Meine Macros" angelegt habe. Damit stehen sie mir in jedem anderen Programm zur Verfügung und ich brauche sie nur einmal korrigieren, falls es was zu ändern gibt.

Viel Spaß weiterhin und beste Grüße
eBayer
Makro_DB.odb

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von Gino » Mi, 04.03.2009 22:54

Guten Abend eBayer,

vielen Dank für die wirklich kompetente Unterstützung.
Du hast mir sehr geholfen.

Ich habe noch etwas rumprobiert und komme zu folgendem Fazit:

Die Daten der DateFields werden nur übernommen wenn nachfolgend in einem anderen Feld ein noch Eintrag erfolgt


Und wenn zum Eintragen der Werte folgender Code von Dir verwendet wird:

Code: Alles auswählen

	oDocView = oDoc.getCurrentController()
	oDAT = oForm.getByName("datZielDat1")  'Name anpassen!
	oDatCtr = oDoc.CurrentController.GetControl(oDAT)
	oDatCtr.date = startdte
	oDocView.getControl(oDAT).setDate(startdte)
	oDocView.getControl(oDAT).setFocus()
Der Eintrag bei den DateFields kann auch als .Date erfolgen.

Code: Alles auswählen

oDatCtr.date = startdte
Du hattest es als Text übergeben.

Code: Alles auswählen

oDatCtr.text = startdte
Es funktionieren also beide Varianten.

Da die Memoboxen, die ja derzeit via Code beschrieben werden, händisch befüllt werden sollen werde ich ein "(pseudo)TextField" einrichten welches ich in der Maske verstecke und dort blind beschreibe. :wink:
eBayer hat geschrieben:Falls Du noch Fragen hast.... ich helfe gerne - kann ja dabei auch nur lernen.
Nochmals Danke, auch für das Angebot auf ich bestimmt noch mal zugreife.

Schöne Grüsse.

Gino

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von eBayer » Mi, 04.03.2009 22:01

Hallo Gino,
es war etwas problematisch, die richtige Lösung zu finden.... aber nun funktioniert es gut.
War halt etwas Forschungsarbeit. Ich hoffe, nun kommst Du ein Stück weiter.
Falls Du noch Fragen hast.... ich helfe gerne - kann ja dabei auch nur lernen.
Ich hänge das nun laufende Programm hier an.
Viel Spaß - es lohnt sich.
Gruß eBayer
Makro_DB.odb

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von Gino » Mi, 04.03.2009 12:47

Hallo eBayer,

erstmal vielen Dank für Deine Infos.
eBayer hat geschrieben:bei mir klappt das einwandfrei, wie ich es beschrieben habe.
Bei Textfields ist das bei mir auch kein Problem, wogegen sich die DateFields immer noch störrisch verhalten.
eBayer hat geschrieben:Bist Du sicher, daß Du keinen Fehler im Code hast?
Da bin ich mir sehr sicher. Ich habe auch diverse Codevarianten durchprobiert. Bin da seit zwei Tagen dran. :(

Die Eigenschaften der DateFields habe ich auch verglichen, diese sind vollkommen indentisch.
Auch die Feldtypen in der Tabelle stimmen überein.

Ich hänge die Datei mal an, vielleicht hat jemand mal Zeit und schaut sich das Ganze mal an.

Dank im voraus.

Gino
Dateianhänge
Makro_DB.odb
(14.4 KiB) 116-mal heruntergeladen

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von eBayer » Mo, 02.03.2009 21:49

Hallo Gino,
bei mir klappt das einwandfrei, wie ich es beschrieben habe.
Bist Du sicher, daß Du keinen Fehler im Code hast?
Ich würde im Zweifelsfall einfach mal ein simples Textfeld mit Bindung an ein Datenbankfeld in der Maske anlegen.
Dann mit einem PushButton per Macro das Feld mit irgendeinem Text füllen "Otto" oder irgendwas.
Der Text muß dann sofort in dem Textfeld sichtbar werden und wenn Du zu einem anderen Datensatz blätterst, müßte oOffice Dich fragen ob die Daten gespeichert werden sollen. Mit einem Datumsfeld habe ich es noch nicht probiert, es sollte aber genauso gehen.
Ich setze allerdings oOffice 3.01 ein..... hast Du vielleicht eine ältere Version?
Also probiers mal weiter und gib nicht auf.
Gruß
eBayer

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von Gino » Mo, 02.03.2009 10:54

Hallo eBayer,

vielen Dank für die schnelle Antwort.

Ich habe Deinen Code ausprobiert und dabei festgestellt, dass das Datum jetzt wie eingefroren in den Datefields bleibt.
Wenn ich in einen anderen Datensatz wechsele bleibt das Datum immer noch in den Feldern mit gleichem Wert.

Es wird auch nichts in die Datenbank geschrieben, egal ob ich über die Navigationsleiste oder die Form speichere. :(

Es scheint so, als wenn der Text oder das Datum wie ein Layer über dem Feld liegt.

Das Gleiche passiert auch mit Memoboxen. Allerdings ist es noch immer so, dass wenn ich z.B. die Memoboxen oder DateFields via Hand fülle, auch mehrere gleichzeitig, die Texte oder Daten in die Datenbank geschrieben werden.
Der Datentyp scheint also zu stimmen.

Wenn ich einen solch "eingfrorenen" Wert manuelle lösche, dann wird das Speichernsymbol > Navigationsleiste zwar aktiv geschaltet aber ein kick darauf löst kein speichern aus. Da Symbol bleibt weiter aktiv. Anders ist es, wenn ich auf das Speichernsymbol in der oberen Symbolleiste klicke. Dann wird gespeichert und das Symbol in der Navigationsleiste ist inaktiv.
??????????

Trotzdem Danke für Deine Unterstützung.

Mit ratlosen Grüssen.

Gino

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von eBayer » Mo, 02.03.2009 09:21

Hallo,
ich hatte ein ähnliches Problem wenn ich ein Eingabefeld per Macro gefüllt habe.
Habe dann eine Lösung im internationalen Forum gefunden und für mich angepasst.
Der Hintergrund ist, daß die Eingabemaske nichts davon mitbekommt, wenn die Änderung per Macro erfolgt. Es wird intern offensichtlich ein Modifyed-Flag erwartet damit Base die Daten automatisch speichert.
Unter dem beigefügten Link findest Du, wie ich es gelöst habe.
viewtopic.php?f=8&t=15659#p97121

Grüße und viel Erfolg
eBayer

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von Gino » Mo, 02.03.2009 08:19

Hallo Zusammen,

ich habe mit meiner Datenbank genau das gleiche Problem.
Dort werden vier verschiedene Revisionstermine in 4 Datefields im Formular via Makro eingetragen. Beim speichern des Datensatzes wird kein Datum in die Datenbank übernommen.
Der Trick mit

Code: Alles auswählen

oDocView.getControl(DF_2).setFocus()
funktioniert zwar, aber leider kann ich ja nicht gleichzeitig den Focus auf alle vier DateFields setzen. :(

Auch bei TextFields mit via Makro eingetragenen Texten funktioniert das nicht, wenn das Field keinen Focus hat.

Zwischenschritte mit

Code: Alles auswählen

	oForm.upDateRow ()  'speichern
	oForm.reload()
bringen keinen Erfolg.

Ja, die Feldtypen sind vorher entsprechend zugeordnet worden !

Schade, ein Traum ist zerplatzt.

Oder gibt es zwischenzeitlich schon eine andere Lösung?

Zur Info:
BS > WinXP
OOo > 3.0


Enttäuschte Grüsse von

Gino

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von egottfried » Fr, 06.07.2007 14:54

hallo,
der Longwert wurde eingesetzt ins Feld, aber auch nicht gespeichert, es hatte anscheinend nichts mit dem Format zu tun. Sobald ich (nach dem Einsetzen des Datums per Code) etwas in diesem Feld veränderte, egal bei welchem Format, z. B. einfach eine Leerstelle dahinter gesetzt habe, dann übernahm es den Feldinhalt. Ansonsten verschwandt der Inhalt beim Speichern und Neu laden.
Ich hatte die Idee, es könnte sich wie bei meinem Problem im Beitrag Cursor ins Formular setzen - beim Start
viewtopic.php?f=8&t=12889
um den Unterschied zwischen Feld und View des Feldes handeln. Deshalb habe ich folgenden Code ausprobiert:

Code: Alles auswählen

Sub Datum
Dim a as String
 a = Date() 
 oDoc = ThisComponent
 oDocView = oDoc.getCurrentController()
 oForm = oDoc.drawpage.forms(0)
 oFeld = oForm.getByName("datum")
 oDocView.getControl(oFeld).setFocus()
 oDocView.getControl(oFeld).text = cDate( a )
End Sub
Und siehe da, jetzt klappt auch das. Auf das "set.Focus" kann man vielleicht auch verzichten, probier ich noch.
mit freundlichen Grüßen
egottfried

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von komma4 » Fr, 06.07.2007 00:35

had a closer look:

Du setzt den TEXT eines Datums-controls. Das funktioniert erstmal, da auch dieses control (praktisch) ein "Eingabefeld" ist.

Du möchtest aber das Datum eines DATUM-controls setzen.
Das bedeutet: die Eigenschaft .DATE des controls, welches einen LONG-Wert erwartet. Copy/Paste funktioniert dann, da das clipboard die Zeichenkette nimmt, aber den Wert einfügt (Multi-clipboard und autom. Formaterkennung).
Soviel zur Theorie.
Praxis:

Code: Alles auswählen

oFeld.Date = CDateToISO( Date ) 
Erklärung:
DATE gibt den nummerischen Wert zurück 39269
Daraus wird durch CDateToISO 20070706 - ein LONG-Wert, der akzeptiert wird.

Have fun - bin mal im verlängertem WE

Re: Datum TT.MM.JJJJ wird nicht gespeichert

von egottfried » Do, 05.07.2007 18:51

hallo,
seht euch doch bitte meinen Code im ersten und zweiten Beitrag nochmal an. Das aufgezeichnete Makro mit den Copy und Paste Befehlen ist keine Lösung. Kann man diese Befehle auch außerhalb des Dispatcher Modells verwenden?
mit freundlichem Gruß
egottfried

Nach oben