Datums - Automatik

Vielleicht stehe ich gedanklich mal wieder auf dem Schlauch aber immer wieder scheitere ich bei dem Versuch, mir automatisch das aktuelle Datum und Uhrzeit in entsprechende Felder eintragen zu lassen (NOW in Feld Zeitpunkt bzw Zeit).

Eine Vorbelegung für das Aufrufen eines NEUEN Datensatzes kriege ich ja gerade noch so hin, aber ich hätte die Automatik auch gerne später, wenn der Datensatz geändert wird. Hintergrund: Wenn ich einen NEUEN Auftrag bekomme, bekomme ich automatisch Datum und Uhrzeit geliefert, aber was mache ich, wenn der Auftrag FERTIG ist? Das möchte ich auch festhalten. Daher nützt mir auch “letzte Änderung” nichts,

Eine “Programmierorgie” endete vor längerer Zeit bei mir einmal damit, das ich ein Feld “Zeitpunkt eintragen” mit Häckchen versehen habe, und im Feld “abgeholt” für genau diesen Fall das aktuelle Datum / Uhrzeit eintragen liess. Nachteil: in diesem Zustand trägt Papyrus STÄNDIG das aktuelle Datum / Uhrzeit ein. Das will ich nu auch nicht, deswegen muss ich in dem Feld jetzt immer “Rechenergebnis überschreiben” auswählen. Dann klappts, ist aber sehr uncool und kräuselt einem Programmierer sicherlich die Zehennägel.

Gibt´s die Funktion und ich sehe sie nicht? Gibt´s ne Formel und ich kenne Sie nicht? Oder geht das einfach nicht?

Hallo blake.

Nachfrage

Du schreibst:

Wenn ich einen NEUEN Auftrag bekomme, bekomme ich automatisch Datum und Uhrzeit geliefert, aber was mache ich, wenn der Auftrag FERTIG ist? Das möchte ich auch festhalten. Daher nützt mir auch „letzte Änderung“ nichts,

Eine „Programmierorgie“ endete vor längerer Zeit bei mir einmal damit, das ich ein Feld „Zeitpunkt eintragen“ mit Häckchen versehen habe, und im Feld „abgeholt“ für genau diesen Fall das aktuelle Datum / Uhrzeit eintragen liess.

Nachteil: in diesem Zustand trägt Papyrus STÄNDIG das aktuelle Datum / Uhrzeit ein.

Das will ich nu auch nicht, deswegen muss ich in dem Feld jetzt immer „Rechenergebnis überschreiben“ auswählen. Dann klappts, ist aber sehr uncool und kräuselt einem Programmierer sicherlich die Zehennägel.

Gibt´s die Funktion und ich sehe sie nicht? Gibt´s ne Formel und ich kenne Sie nicht? Oder geht das einfach nicht?<<

Wann ist denn ein Auftrag bei Dir fertig?

- Wenn der Auftraggeber etwas abgeholt hat? (Manuell)

- Wenn Du das letzte Feld im Eingabeformular ausgefüllt hast? (ggf. automatisch)

- Wenn eine Rechnung (Report) erzeugt wurde? (ggf. automatisch)

- Oder wenn … ? (Manuell / ggf. automatisch)

Wenn Du die CheckBox „Zeitpunkt eintragen“ auf WAHR gesetzt hast, dann zeigt Dir wohl das DB-Feld „abgeholt“ automatisch das aktuelle System-Datum und die aktuelle System-Uhrzeit an?

Was bitte stört Dich denn an dieser Anzeige?

Welche Datum-Anzeige sollte denn sonst nach dem Eintreten eines der o.g. Ereignisse dort erscheinen?

So wie ich es verstanden habe, erscheint dann das jeweils aktuelle Datum, also heute der 14., morgen der 15. usw. Es ändert sich quasi bei jedem Aufruf des Formulars.

Vermutlich das Datum, zu dem das Ereignis eingetreten ist. Einmal und unveränderlich.

Ja, das ist das Problem, das Datum wird eingesetzt, dann rufe ich den Datensatz eine Woche/Jahr später wieder auf, und nun wird im Feld Abholdatum WIEDER das aktuelle Datum eingesetzt, das ist dann nicht mehr das Datum des Abholens, sondern das Datum des aufrufens…

Aha - Abholdatum - also.

Hallo blake.

Wahrlich, ich hab’ jetzt einiges versucht…

Ich würde es so machen, denn es geht schnell und auch recht komfortabel:

Wenn also ein Kunde zu Dir ins Geschäft kommt und seine Sachen abholt, wählst Du einfach „HEUTE“ aus der ComboBox „Abholdatum“ aus.

Man könnte auch im Gespräch sagen: …bitte kommen Sie doch nächsten Dienstag („nächster Di“) vorbei, dann ist ihr Auftrag fertig.

Das Datum bleibt - es verändert sich nicht.

Details - siehe bitte Dateianlage: „Abholdatum.jpg“

Na, dann hab ja nicht nur ich das Problem… :confused: Ich finds ein bißchen schade, das es da keine Formel für gibt. Das mit dem intelligenten Format habe ich auch schon versucht, aber wie ist es dann mit der Uhrzeit?

am Tag werden 20-30 Sachen abgeholt (genauer weiss ich das erst, wenn die Datenbank und die Auswertung steht :cry: ), da hat mich diese fehlende Funktion darauf gebracht, einfach abends einmalig alle abgeholten Sachen auszuwählen und dann über „Global ersetzten“ das Tagesdatum einzusetzen. Da das wahrscheinlich schneller geht, als die Datensätze einzeln aufzurufen, fand ichs fast schon wieder gut, das Papyrus manchmal zu Umwegen zwingt.

Das Problem :smirk: : für die Ermittlung der Kundenfrequenz (und damit der besten Einsatzzeit für eine Verkäuferin) bräucht ich dann doch die UHRZEIT, wann abgeholt wurde, und dann muss ich doch die Abholzeit eintragen.

Ich habe mich auch schon an einer Stoppuhr versucht, um zu ermitteln, wie lange Arbeiten dauern, auch da bräuchte ich NUR die Zeit, ohne Datum.

Kann man Papyrus da nicht mit einer Formel überlisten, in dem Sinne: setz das Datum/die Zeit ein, aber nur so lange bis…

Ganz einfach. Das realisierts Du auch über eine ComboBox. Datentyp “Uhrzeit”.

Gebe als Werte bspw. 08:00, 08:15,08:30 … ein.

Tja, ich kenne Deinen Arbeitsstil und dein Arbeitsumfeld nicht.

Bei mir jedenfalls läuft der PC den ganzen Tag. So würde ich wahrscheinlich das Abholdatum und die Abholuhrzeit zeitnah nach einen Kundenbesuch in die Datenbank eingeben. hier leistet die ComboBox-Methode schon mal gute Dienste.

Tja, Arbeitsstil und Arbeitsumfeld werden ein Bondrucker, ein Touchsreen und der PC sein. Klappt übrigens klasse, die Bedienung von Papyrus mit Touchsreen! Der Kauf war riskant, weil ich nicht wusste, obs funzt und keinen kannte, der jemanden kennt…aber hat gottseidank funktioniert.

Mich wunderts ein bißchen, das aktuelles Datum und Uhrzeit so Stiefmütterlich behandelt werden. Geht das vielleicht auch über ein Textmakro? Könnte man ja auch im Textverarbeitungsteil gut brauchen.

Es muss halt einfach nur schnell sein, manche Kunden stehen scheinbar gern im Parkverbot…

Die Combobox hat auf dem Touchscreen (wegen meiner Wurstfinger) ein verringerte Trefferquote (Ich habe den Zoom der Eingabemaske schon auf 150% gestellt, aber die ComboBoxen juckt das nicht, die bleiben klein.) Da wärs halt schöner, auf den Knopf “abgeholt” zu drücken, als in der Combobox zu wühlen, abrutschen, nochmal wühlen, das läppert sich.

Ist wohl ein Einzelschicksal.

Es hat eher was damit zu tun, dass hier auf ein bestimmtes Ereignis hin reagiert werden muss. Für diesen Zweck steht in anderen Programmen eine Programmiersprache bereit, mit der man das Ereignis auswerten und entsprechende Folgereaktionen programmieren kann. Dass Papyrus eine solche Programmiersprache fehlt, wird an deinem Beispiel leider sehr deutlich.

Guten Morgen!

Ich glaube, ich habe öfters mal schon kleine Programme gesehen (Freeware oder nicht teuer), mit denen kann man Macros programmieren; also bei dem Klick auf “HEUTE” oder “ABHOLEN” Papyrus Datum & Uhrzeit übergeben oder so ähnlich. Wenn ich so ein Programm finde, werde ich es hier posten.

Es gibt ein ziemlich gutes Programm, mit dem man weit mehr als nur Makros programmieren kann, nämlich Autohotkey. Damit habe ich sogar schon größere automatische Testsuiten erstellt, es funktioniert prima. Und weil man damit beliebige Aktionen mit einem systemweiten Hotkey versehen kann, sollte sich das hier auch eignen.

Link ist: www.autohotkey.com

So ist zum Beispiel das c’t-Tool ac’tivAID komplett damit programmiert worden.

Sowas hat mir sowieso gefehlt, vielen Dank für den Tip. Muss ich mich erst ein bißchen einarbeiten, in das Programm, hoffentlich klappts. Danke an Glucose für die Erklärung.

Hi Blake,

hier zwei simple Funktionen, die Dir Zeit und Datum geben in Autohotkey … in unterschiedlichem Format, was bei der Einarbeitung vielleicht hilft.

Du kannst gern fragen, wenn Du Hilfe mit Autohotkey brauchst.

;----------------------------------------------------------- ----------------

; liefert das aktuelle Datum im Format YYYYMMDD

GetDate() {

StringLeft, sDatum, a_now, 8

return sDatum

}

;----------------------------------------------------------- ----------------

; liefert die aktuelle Zeit im Format “hh:mm:ss”

GetTime() {

StringRight, sTime, a_now, 6

StringLeft, hh, sTime, 2

StringRight, ss, sTime, 2

mm := SubStr(sTime,3,2)

sTime = %hh%:%mm%:%ss%

return sTime

}

;----------------------------------------------------------- ----------------

Wow, vielen Dank, das hat mir aber SEHR viel Zeit gespart! Wie ordne ich das dann einer Taste(nkombination) zu? (da kommt dann noch ein # davor, oder anders?).

Hier mal ein Script, das die aktuelle Uhrzeit und das aktuelle Datum in ein Papyrus-Dokument einfügt:

;----------------------------------------------------------- ----------------
#HotkeyInterval 500
SetTitlematchMode, 2
#MaxThreadsperhotkey 1
;----------------------------------------------------------- ----------------
SendDate() {
StringLeft, sDatum, a_now, 8
StringRight, dd, sDatum, 2
StringLeft, yy, sDatum, 4
mm := SubStr(sDatum, 5, 2)
sDatum = %dd%.%mm%.%yy%
Send, %sDatum%
return
}
;----------------------------------------------------------- ----------------
SendTime() {
StringRight, sTime, a_now, 6
StringLeft, hh, sTime, 2
StringRight, ss, sTime, 2
mm := SubStr(sTime,3,2)
sTime = %hh%:%mm%:%ss%
Send, %sTime%
return
}
;----------------------------------------------------------- ----------------
SendDateTime() {
SendTime()
Send, %A_Space%
SendDate()
}
;----------------------------------------------------------- ----------------
#IfWinActive, ahk_class one_and_only_window_class
#b::SendDateTime()
#t::SendTime()
#d::SendDate()
return
exitapp
;----------------------------------------------------------- ----------------

Einfach in einen Editor kopieren, als (z.B.) papDate.ahk irgendwohin speichern, starten.

Es passiert dies:

Das Script definiert 3 systemweite Hotkeys, nämlich Windows-Taste+d (fügt Datum ein), Windows-Taste+t (fügt Zeit ein) und Windows-Taste+b (fügt Zeit und Datum ein).

Wenn Du einen dieser Hotkeys drückst, guckt das Script, ob das aktive Fenster ein Papyrus ist. Falls nicht, tut es nix, sonst schickt es halt Datum, Zeit oder beides an das Papyrus-Fenster. Der Cursor muß natürlich da stehen, wo Datum oder Zeit hinsollen.

Hoffe, das hilft. Lustig übrigens, wie die Papyrus-Leute ihre Fensterklasse nennen :wink:

Falls Dir die Windows-Taste nicht genehm ist, kannst Du natürlich leicht beliebige andere Kombinationen nehmen, das steht aber gut erklärt in der Autohotkey-Hilfe.

one and only window class?

Auf jeden Fall vielen vielen Dank!!!