[gelöst] Subform von einer Checkbox im Mainform abhängig

12. Juni 2007 10:39

Hallo miteinander.

Ich versuche seit Stunden ein Subform anzusteuern.

Folgendes Szenario:
Im Mainform habe ich einen Boolean (CheckBox). Abhängig von dieser soll bei TRUE das Subform auf EDITABLE:=TRUE gesetzt werden, bei FALSE, EDITABLE:=FALSE.

Das FALSE setzen funktioniert perfekt.

Aber beim TRUE-Setzen habe ich die Probleme:
Bei der Initialisierung des Forms funktioniert es, beim Blättern durch verschiedene Datensätze mit unterschiedlichen Booleans manchmal. Und auf dem gleichen Datensatz nie.

Hat da jemand Erfahrung?

Vielen Dank für eure Hilfe.
Zuletzt geändert von neoroot am 12. Juni 2007 13:32, insgesamt 1-mal geändert.

12. Juni 2007 11:46

Hi Boris!

In welchen Triggers hast du denn den Code stehen, der das Subform auf Editable:=FALSE bzw. Editable:=TRUE setzt? Und wie sieht der Code dazu aus?

Gruß, Marc

12. Juni 2007 11:53

hoi neoroot

funktioniert bei mir.

Code in Mainform:
Code:
Form - OnAfterGetCurrRecord()
CurrForm.MySubform.FORM.SetEditable(NOT Blocked);

Code im Subform:
Code:
SetEditable(_Editable : Boolean)
CurrForm.EDITABLE := _Editable;

12. Juni 2007 12:15

Merci für die Antworten.

Hoi Marc

Also bei OnAfterGetCurrentRecord im Mainform, und im OnAfterValidate der Checkboxen ("Color Lead" und "Size Lead") habe ich einen Aufruf von CheckSubforms() und führe danach ein CurrForm.UPDATE aus.

Code:
CheckSubforms()
IF ("Material Status" = "Material Status"::Released) THEN
  BEGIN
    CurrForm.sfColor.FORM.SetEditable(FALSE);
    CurrForm.sfSize.FORM.SetEditable(FALSE);
    CurrForm.sfColorSizeComb.FORM.SetEditable(FALSE);
  END
ELSE
  BEGIN
    CurrForm.sfColorSizeComb.FORM.SetEditable(TRUE);
    CurrForm.sfColor.FORM.SetEditable("Color Lead");
    CurrForm.sfSize.FORM.SetEditable("Size Lead");
  END;


und im Subform sieht die Funktion so aus:
Code:
SetEditable(bValue : Boolean);
CurrForm.EDITABLE(bValue);
CurrForm.UPDATE;


@wakestar:
wakestar hat geschrieben:hoi neoroot

funktioniert bei mir.


Das funktioniert bei mir auch, aber nicht wenn ich im Mainform über die CheckBox das Sub wieder aktivieren möcht.

12. Juni 2007 12:27

neoroot hat geschrieben:Das funktioniert bei mir auch, aber nicht wenn ich im Mainform über die CheckBox das Sub wieder aktivieren möcht.


Auch das klappt hier mit

Code:
Blocked - OnAfterValidate()
CurrForm.MySubform.FORM.SetEditable(NOT Blocked);

12. Juni 2007 13:17

Hi zusammen,

ich habe jetzt noch nicht ganz verstanden, warum es in der Subform noch die Funktion SetEditable geben muss. Reicht es nicht aus, wenn dein Code so aussieht:

Code:
CheckSubforms()
IF ("Material Status" = "Material Status"::Released) THEN
  BEGIN
    CurrForm.sfColor.EDITABLE(FALSE);
    CurrForm.sfSize.EDITABLE(FALSE);
    CurrForm.sfColorSizeComb.EDITABLE(FALSE);
  END
ELSE
  BEGIN
    CurrForm.sfColorSizeComb.EDITABLE(TRUE);
    CurrForm.sfColor.EDITABLE("Color Lead");
    CurrForm.sfSize.EDITABLE("Size Lead");
  END;

Oder hab ich jetzt was übersehen?

Gruß, Marc

12. Juni 2007 13:26

Hallo Marc

Das habe ich auch bereits versucht, das EDITABLE=TRUE hat aber auch nicht funktioniert. Daher versuchte ich verschiedene Wege dies zu erledigen.

Mittlerweile habe ich aufgegeben. Jetzt änderte ich die Funktion SetEditable() im SubForm und setzte darin die einzelnen Spalten des Forms auf EDITABLE FALSE. Nun klappt alles. Waren zum Glück nicht sehr viele Spalten...

Code:
SetEditable(bValue : Boolean)
bEditable := bValue;
CurrForm."Color Code".EDITABLE(bValue);
CurrForm."Special Color".EDITABLE(bValue);
CurrForm."Tariff No.".EDITABLE(bValue);

12. Juni 2007 13:45

Okay, aber merkwürdig ist das schon. Bei mir funktioniert es nämlich.

Gruß, Marc

12. Juni 2007 13:53

Jo, sehr merkwürdig. Mal wieder was aus dem unferforschten Mysterium des Navisions :)

12. Juni 2007 14:01

neoroot hat geschrieben:Jo, sehr merkwürdig. Mal wieder was aus dem unferforschten Mysterium des Navisions :)


villeicht hat's damit zu tun dass du mehrere subforms hast... (??)
ich hab's nur mit einem Subform getestet ...

und ja.. manchmal verhält sich Navision sehr eigenartig :wink:

17. Juni 2007 12:30

ICh vermute hier das gleiche Phänomen, dass ich bei der Artikelkarte habe, dort habe ich in einer Subform den Autotext untergebracht und diese ist nur editierbar, wenn auch schon ein Autotextheader vorhanden ist.
Wenn ich diesen nun für den aktuellen Artikel anlege, dann sieht die Subform immer noch nicht editierbar aus, ABER: wenn ich in die Subform klicke, kann ich sofort editieren.