+49 7531 9060-10| service@combit.net

Schaltfläche Scriptzeilen ausführen zum füllen eines Textfeldes

Hallo Forum,
ich möchte im CRM 9 eine Schaltfläche anlegen. Beim klicken auf diese Schaltfläche soll ein bestimmtes Textfeld mit einem Inhalt gefüllt werden.

Habe es im Eingabemaskendesinger mit einer Schaltfläche Scriptzeilen ausführen probiert.
Ausgeführt wird:

oInputForm.SetContentsByName "bezeichnerTextfeld", Inhalt

Es soll also in das Textfeld bezeichnerTextfeld der Text Inhalt geschrieben werden.
Klappt leider nicht da es einen Syntaxerror gibt.
Kann mir da jemand helfen?

Wenn Ihr Schaltflächen-Script-Code tatsächlich nur aus exakt dieser einen Zeile besteht, dann ist das Problem, dass die Objekt-Variable oInputForm nicht bekannt ist. Lösung:

Dim oInputForm : Set oInputForm = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(0)
oInputForm.SetContentsByName "PhysikalischerFeldname", "Inhalt"
oInputForm.SetContentsByName "PhysikalischerFeldname2", "Inhalt2"
...
Set oInputForm = Nothing

Wenn Sie wirklich nur ein einziges Feld belegen wollen, dann reicht auch eine Zeile.

cRM.CurrentProject.ActiveViews.ActiveView.InputForm(0).SetContentsByName "PhysikalischerFeldname", "Inhalt"

Aber sobald Sie mehrere Felder setzen wollen, sollten Sie die Objekt-Variable einführen (Performance!).

  • Ihr „bezeichnerTextfeld“ muss der physikalische Feldname sein (NICHT der Aliasname).
  • Falls Sie Fließkomazahlen oder Datumswerte mit dem Inhalt einer Variablen belegen möchten, sollten Sie SetContentsValueByName benutzen, diese umgeht Probleme mit Windows-System-spezifischer Fließkommazahlen- und Datumsformatierung.
  • CurrentInputForm(0) wechselt automatisch in den Bearbeiten-Modus, sofern dieser nicht bereits aktiv ist (Sie können nur im Bearbeiten-Modus ein Eingabemaskenfeld setzen, der Anwender muss danach ja noch selber speichern). Achtung! Falls der Benutzer kein Recht hat, diesen Datensatz zu bearbeiten, wird Nothing zurückgegeben und Ihr Script steigt dann mit einer Fehlermeldung aus. Um es perfekt zu machen, sollten Sie oInputForm noch auf <> Nothing abprüfen, oder (einfacher) die Schaltfläche darf per Bearbeitbarkeitsbedingung nur geklickt werden, wenn sie sich eh schon im Bearbeiten-Modus befindet, dann haben Sie das Problem umschifft.

Wenn Sie hierzu noch Fragen haben, dann schreiben Sie nochmal kurz. :blush:

Guten Tag Herr Eggstein,
ich habe einen Fehler gemacht, es handelt sich gar nicht um ein Textfeld sondern um eine ComboBox.

Der erste Vorschlag von Ihnen funktioniert, auch mit mehreren Comboboxen. Vielen Dank dafür.
Allerdings muss bei Neuanlage erst einmal gespeichert werden bevor die Schaltfläche angeklickt wird.
Sonst gibt es einen Fehler (Der Datensatz wurde zwischenzeitlich gelöscht.)

Allerdings muss bei Neuanlage erst einmal gespeichert werden bevor die Schaltfläche angeklickt wird.
Sonst gibt es einen Fehler (Der Datensatz wurde zwischenzeitlich gelöscht.)

Scheiben Sie in das Script als erste Zeile
<!--#pragma keepeditmode-->

© combit GmbH