Robert Großkopf schrieb:
Hallo Richard,
Da aber die Ereignisse bzw der Stand der Parameter in verschiedenen
Zeitintervallen ( einige h bis max 180h) neu bewertet und der Ist-Stand
neu einzutragen ist, wäre das Eintragen der Zeit (jetzt-Zeit) sehr
hilfreich. Dazu gibt es in der Tabelle "Bestand" eine Feld "um" mit dem
Format [TIMESTAMP]. In einem Formular, in welchen unter anderen auch
diese Tabelle mit eingearbeitet ist, werden die verschiedenen Wert
eingetragen. Mein Wunsch wäre: Wenn der Fokus auf diesem Formularfeld
ist, durch eine bestimmte Taste oder noch besser durch ein Schaltfeld
ein Makro aufgerufen wird, welches in dieses Tabellenfeld "um" die Zeit
z.B. NOW() einschreibt. Vielen Dank für Eure Hilfe im Voraus.
SUB Jetzt
        DIM d AS DATE
        DIM oForm AS OBJECT
        DIM oFeld AS OBJECT
        oForm=thisComponent.drawpage.forms.getByName("Formularname")
        oFeld=oForm.getByName("Feldname")
        d = now()
        oFeld.BoundField.updateDate(d)
END SUB

Das würde ich an den Eventhandler "onfocus" (oder so ähnlich heißt das)
des Feldes "Feldname" klemmen.
Leider klappt der Aufruf nicht wie geplant. Wenn  das Feld den Fokus
erhält, kommt eine Fehlermeldung, die besagt: "Typ:
com.sun.star.container.NoSuchElementException Message:. " Der
Formularname ist ("Ist_Bestand") und ist auch so wie er hier geschrieben
steht auch im Makro so eingetragen. Im Editor-Fenster erscheint er rot.
auch der Feldname ("um") ist rot. Deute das auf einen Fehler hin? Für
weitere Hilfe wäre ich dankbar

Ich habe das gerade einmal ausprobiert. Die Geschichte mit der Datumsübergabe ist vermutlich eine Sache von amerikanischer und deutscher Schreibweise. Das hat mich einiges an probieren gekostet, bis ich dahinter kam: Du hast das Feld als Timestamp definiert. Im Formular hast Du ein formatiertes Feld, das eben den Timestamp darstellt. Jetzt musst Du das Makro folgendermaßen anpassen:


DIM d AS DOUBLE
d = now()
oFeld.BoundField.updateDouble(d)

Das führt dazu, dass das Feld im Formular den Timestamp anzeigt und die darunter liegende Tabelle den Wert auch übernimmt.

Gruß

Robert
Hallo Robert,
Danke für deine Hilfe. Leider wird das Makro nicht bis dahin abgearbeitet. Bereits in der Zeile oForm=thisComponent.drawpage.forms.getByName("IstBestand") des Makros bleibt der Debuger stehen und gibt die obige Fehlermeldung aus. Ich habe aus dem Formularnamen den Unterstrich rausgenommen, aber das Ergebnis ist das gleiche. Auch die Änderung drawpage in basepage brachte nichts anderes. Ich bin für jede Anregung dankbar, weil auch Fehleingaben dadurch vermieden werden und genauere Aussagen möglich sind. Danke im Voraus

--
Einen Gruß aus dem Weide- und Wanderparadies Allrode/Harz sendet Richard

Antwort per Email an