Feldinhalt per Button in einem Eingabefeld anzeigen lassen

Hallo,

ich möchte den Inhalt eines Feldes (z.B. den Combobox-Eintrag) per Button in einem Eingabefeld rechts daneben anzeigen lassen. D.h. alle Einträge, die in der Combobox ausgewählt werden, sollen in einem Eingabefeld aufgelistet werden.
Wie müsste dann ein entsprechendes Script lauten?

Viele Grüße
Özlem

Hi Özlem,

„alle Einträge“? Man kann in einer Combobox immer nur einen Eintrag auswählen. Meinst du das so?: Ich wähle in der Combobox Eintrag „A“ aus, drücke den Button, im Eingabefeld steht „A;“. Ich wähle in der Combobox Eintrag „B“ aus und drücke den Button, im Eingabefeld steht dann „A;B;“?

Das geht (sinngemäß) mit einem Script-Code Button folgendermaßen:

<!--#pragma keepeditmode--> set oInputForm = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(2) oInputForm.SetContentsByName "EINGABEFELD", oInputForm.GetContentsByName("EINGABEFELD") & oInputForm.GetContentsByName("COMBOBOXFELD") & ";" set oInputForm = Nothing

Das müsste dann noch „wasserdichter“ gemacht werden:

1.) Man müsste checken, ob der Comboboxfeld-Inhalt nicht eventuell schon im Feld irgendwie drin steht um sowas wie „A;B;A“ zu verhindern.

2.) Der Button dürfte per Bearbeitbarkeitsbedingung nur im Datensatz-Bearbeiten-Modus aktiv sein, sowie - advanced - auch nur dann, wenn der Combobox-Eintrag nicht im EINGABEFELD bereits gefunden wird, das würde dann vorherigen Punkt gleich mit lösen :wink: - Vorsicht Falle: A und AA sind unterschiedlich, aber A ist auch in AA enthalten, d.h. ein simples „not Contains“ geht da schief. :wink:

Gruß

Alex

Hallo Alex,

vielen Dank für die ausführliche Anwort. Es funktioniert jetzt.
Allerdings habe ich noch ein paar Fragen dazu:

  1. „Der Button dürfte per Bearbeitbarkeitsbedingung nur im Datensatz-Bearbeiten-Modus aktiv sein“ kannst du das bitte etwas erläutern? Meinst du die Bearbeitbarkeitsbedingung unter der Registerkarte > Erweitert? Man muss also eine Formel definieren? Welche Funkion wäre da hilfreich?

  2. Ich wähle einen Combobox-Eintrag aus, drücke den Button und die Auswahl erscheint nun im Eingabefeld. Aber nachdem ich auf Speichern drücke erscheint in der Combobox folgendes: df0000000…
    Das ist aber nicht bei allen Comboboxen der Fall, obwohl ich die alle mit der gleichen Vorgehensweise eingefügt habe.

  3. Bei den Eingabefeldern-Eigenschaften habe ich „wortumbruch“ aktiviert damit die Einträge untereinander dargestellt werden. Dies funktioniert bei einigen doch und bei anderen Eingabefeldern wiederum nicht. Woran könnte das liegen?

Gruß

Özlem

combobox.JPG

Hi Özlem,

zu 1) Ja, genau die Bearbeitbarkeitsbedingung meine ich. Such mal im cRM Handbuch nach „cRM.FormMode“. Du musst also als Formel sowas wie

cRM.FormMode <> 0 

angeben.

zu 2) keine Ahnung, noch nie gesehen, am Scriptcode von mir kann es nicht liegen, der schreibt nichts in die Combobox. Evtl. gibt es eine Folgeverknüpfung oder ein Speichern-Ereignis-Script, welche sowas in die Combobox (bzw. in das Feld des Datensatzes) reinknallt?

zu 3) ein „;“ löst kein Wortumbruch aus, sondern ein Leerzeichen. D.h. „A;B;C“ wird nicht umbrechen, „A A;B;C“ hingegen schon - und zwar hässlicherweise ausgerechnet zwischen den beiden "A"s. Es hängt also von deinen Combobox-Einträgen ab, ob die Leerzeichen oder ‚-‘ enthalten, denn dort wird es dann umbrechen. Irgendwie nicht so doll. Daher: ersetze mal zum Test im Script das „;“ durch vbCRLF (ohne Anführungszeichen, diese Konstante steht für einen Zeilenumbruch) - das wird dann „hübscher“ :wink:

Gruß

Alex