[Gelöst] - [CC] - Form - Nur ein Control Enablen?

3. April 2013 10:57

Hi,

ich vermute die Antwort wird Nein sein, aber ich frage trotzdem mal nach :)

User die kein Artikeladmin sind, dürfen auf der A-Karte nichts ändern.

Code:
IF NOT UserSetup."Item Administrator" THEN BEGIN
  CurrForm.EDITABLE(FALSE);
END;


Das hat Jahrelang wunderbar funktioniert.
Nun sollen die User das Feld "Suchbegriff" ändern können, und nur das Feld Suchbegriff...

Code:
CurrForm.ctrltxtSearchDescription.EDITABLE(TRUE);


Greift Logischerweise nicht, weil das Form ja Vorher schon Disabled wurde.

Bleibt also nur der Weg über Alle Felder, bis auf Search Description, zu disablen?
War es evtl. möglich Registerkarten einzeln zu Disablen?

Danke
Zuletzt geändert von elTorito am 3. April 2013 12:43, insgesamt 1-mal geändert.

Re: [CC] - Form - Nur ein Control Enablen?

3. April 2013 11:06

elTorito hat geschrieben:User die kein Artikeladmin sind, dürfen auf der A-Karte nichts ändern.

Sorry, aber unter A-Karte denke ich spontan an was anderes :mrgreen:

Bleibt also nur der Weg über Alle Felder, bis auf Search Description, zu disablen?
War es evtl. möglich Registerkarten einzeln zu Disablen?

Registerkarten direkt nicht, aber indirekt: Platziere auf jede Registerkarte einen Frame (und vergib einen Namen). Schiebe alle Felder der Registerkarte in den Frame. Wenn du alles richtig gemacht hast, hat jede ungebundene Textbox als Parent den Namen des Frames stehen (sonst korrigieren).
Steuerst du nun die Visibility-Eigenschaft des Frames an, vererbt sich das auf alle enthaltene (Child-)Felder.
Dies bedeutet aber auch, dass das Feld "Suchbegriff" den Frame NICHT als Parent haben darf, damit für ihn die Frame-Sichtbarkeit nicht greift.

Re: [CC] - Form - Nur ein Control Enablen?

3. April 2013 11:46

Sonst hatten wir mal eine Lösung (glaube ich), die über OnAcitivate und OnDeactivate des Suchtextes die ganze Maske enabled und anschließend wieder disabled hat.

Re: [CC] - Form - Nur ein Control Enablen?

3. April 2013 11:58

Alternativ einfach eine neue editierbare Übersichtsform für Tabelle 27 anlegen, wo nur der "Suchbegriff" als Spalte vorhanden ist, und diese als neuen Menüpunkt unter Funktion z.B. als "Suchbegriff ändern…" über die Artikelnr. verlinken.

Re: [CC] - Form - Nur ein Control Enablen?

3. April 2013 12:43

Hi und danke für eure Antworten,

Natalie hat geschrieben:Platziere auf jede Registerkarte einen Frame (und vergib einen Namen). Schiebe alle Felder der Registerkarte in den Frame. Wenn du alles richtig gemacht hast, hat jede ungebundene Textbox als Parent den Namen des Frames stehen (sonst korrigieren).
Steuerst du nun die Visibility-Eigenschaft des Frames an, vererbt sich das auf alle enthaltene (Child-)Felder.


Das funktioniert, aber man kann leider nur die VISIBLE Eigenschaft ansprechen. Nicht so schön.

Kowa hat geschrieben:Alternativ einfach eine neue editierbare Übersichtsform für Tabelle 27 anlegen, wo nur der "Suchbegriff" als Spalte vorhanden ist, und diese als neuen Menüpunkt unter Funktion z.B. als "Suchbegriff ändern…" über die Artikelnr. verlinken.


Finde ich eine sehr schöne Lösung, aber da würde ein Form für drauf gehen, die sind bei uns mal wieder knapp.

McClane hat geschrieben:Sonst hatten wir mal eine Lösung (glaube ich), die über OnAcitivate und OnDeactivate des Suchtextes die ganze Maske enabled und anschließend wieder disabled hat.


Das ist wohl die einfachste Lösung:

im OnActivateTrigger von "Search Description":
Code:
CurrForm.EDITABLE(TRUE);

und im OnDeactivateTrigger :
Code:
CurrForm.EDITABLE(FALSE);


Beim Form Start ist das Form EDITABLE = FALSE.
Sobald ich auf das Feld "Search Description" gehe, ist das ganze Form Editable,
und sobald es wieder verlassen wird, ist das Form wieder nicht editierbar.

Top. Danke!

PS: Die Lösung mit dem OnActivate/OnDeactivate hat den Nachteil das wenn man den Suchbegriff ändert, und man das Feld mit Pfeiltaste verlässt, wird die Änderung nicht gespeichert, es kommt die Meldung: "Artikel kann in diesem Formular nicht verändert werden". Verlässt man das Feld mit PageUp/PageDown (so das man im nächsten ARtikel auch im Feld Suchbegriff steht, wird die Änderung gespeichert.
Zuletzt geändert von elTorito am 3. April 2013 12:50, insgesamt 1-mal geändert.

Re: [CC] - Form - Nur ein Control Enablen?

3. April 2013 12:49

elTorito hat geschrieben:Das funktioniert, aber man kann leider nur die VISIBLE Eigenschaft ansprechen. Nicht so schön.

Sorry, hatte mich die ganze Zeit verlesen und VISIBLE verstanden!

Re: [Gelöst] - [CC] - Form - Nur ein Control Enablen?

3. April 2013 13:04

elTorito hat geschrieben:Die Lösung mit dem OnActivate/OnDeactivate hat den Nachteil das wenn man den Suchbegriff ändert, und man das Feld mit Pfeiltaste verlässt, wird die Änderung nicht gespeichert, es kommt die Meldung: "Artikel kann in diesem Formular nicht verändert werden". Verlässt man das Feld mit PageUp/PageDown (so das man im nächsten ARtikel auch im Feld Suchbegriff steht, wird die Änderung gespeichert.

Da könntest du noch mit Triggern wie OnBeforePutRecord testen, ob du die Form kurzfristig wieder auf editable und woanders wieder abstellen kannst.

Re: [Gelöst] - [CC] - Form - Nur ein Control Enablen?

3. April 2013 14:27

Hi,

ich hab jetzt doch die Lösung mit dem zusätzlichen Form genommen .

im OnActivateTrigger vom Feld "Search Description" rufe ich das Form auf.
Da nach dem öffnen des Forms das Feld "Search Description" den Focus hat, würde der OnActivate Trigger nicht nochmal greifen, solange man das Feld nicht verlässt, deswegen gebe ich den Focus an das Feld No zurück.

Code:
FORM.RUN(50050,Rec,"Search Description");
CurrForm."No.".ACTIVATE;


Habe die Lösung jetzt gewählt weil das neue Form etwas mehr Gestaltungsmöglichkeit gibt, so habe ich groß und Fett eine Überschrift, etwas kleiner den Artikeltext, das Textfeld für den Suchbegriff, und eine Text Info wo die Benutzer lesen können was bei der Vergabe/Änderung von Suchbegriffen zu beachten ist. Taste Enter drücken und man kommt zurück zu der Artikelkarte.

Danke nochmal.