[gelöst] RequestOptionsForm.EDITABLE einzelne Haken disable

7. Juli 2009 09:38

Hallo zusammen,

ich habe einen Report und in der RequestOptionsForm 3 Kästchen gesetzt, wo man einen Haken setzen kann.
Jetzt möchte ich im Coding von einem Kästchen im Trigger OnPush mit RequestOptionsForm.variable.EDITABLE(FALSE); setzen.
Sobald ich den Report ausführen möchte erhalte ich die Fehlermeldung, dass die Variable nicht existiert und unter C/AL Globals
angelegt werden muss. Diese habe ich aber angelegt und auch in den SourceExpr eingetragen.

Ziel soll es sein, wenn ein Häkchen gesetzt wurde, dass die anderen gesperrt werden, aber irgendwie will der Befehl nicht so wie ich will,
hat jemand eine Idee, was ich falsche mache? :-?
Zuletzt geändert von owenw am 7. Juli 2009 10:26, insgesamt 3-mal geändert.

Re: RequestOptionsForm.EDITABLE einzelne Haken deaktivieren

7. Juli 2009 09:40

Verwende ENABLED statt EDITABLE

Re: RequestOptionsForm.EDITABLE einzelne Haken deaktivieren

7. Juli 2009 09:42

owenw hat geschrieben:RequestOptionsForm.variable.EDITABLE(FALSE);

Du möchtest die Editierbarkeit der Kästchen steuern, nicht der Variablen. Daher gehört statt Variable der Name des KästchenControls in deinen Befehl.

Setze z.B. im 2. Kästchen-Control den Namen CheckBox2, dann kannst du im OnPush-Trigger der 1. Checkbox mit RequestOptionsForm.CheckBox2.EDITABLE(FALSE); darauf zugreifen.

Re: RequestOptionsForm.EDITABLE einzelne Haken deaktivieren

7. Juli 2009 09:49

Danke mit dem Namen der CheckBox hat es geklappt :-)

Edit:

leider zu früh gefreut :(

Wenn ich im Trigger OnPush folgenden Code für die Häkchen nehme:

Code:
Kästchen ShowIntra (CheckBoxIntra):
IF ShowIntra = TRUE THEN BEGIN
  RequestOptionsForm.CheckBoxAD.EDITABLE(FALSE);
  RequestOptionsForm.CheckBoxEK.EDITABLE(FALSE);
END ELSE BEGIN
  RequestOptionsForm.CheckBoxAD.EDITABLE(TRUE);
  RequestOptionsForm.CheckBoxEK.EDITABLE(TRUE);
END;

Kästchen ShowAD (CheckBoxAD):
IF ShowAD = TRUE THEN BEGIN
  RequestOptionsForm.CheckBoxIntra.EDITABLE(FALSE);
  RequestOptionsForm.CheckBoxEK.EDITABLE(FALSE);
END ELSE BEGIN
  RequestOptionsForm.CheckBoxIntra.EDITABLE(TRUE);
  RequestOptionsForm.CheckBoxEK.EDITABLE(TRUE);
END;

Kästchen ShowEK (CheckBoxEK):
IF ShowEK = TRUE THEN BEGIN
  RequestOptionsForm.CheckBoxIntra.EDITABLE(FALSE);
  RequestOptionsForm.CheckBoxAD.EDITABLE(FALSE);
END ELSE BEGIN
  RequestOptionsForm.CheckBoxIntra.EDITABLE(TRUE);
  RequestOptionsForm.CheckBoxAD.EDITABLE(TRUE);
END;


Habe ich folgendes Phänomen: Es werden ordnungsgemäß die Kästchen gesperrt, aber wenn ich z.B. CheckBoxIntra anklicke werden CheckBoxAD und CheckBoxEK gesperrt, klicke ich nun CheckBoxAD an (obwohl gesperrt) entsperrt es das Kästchen CheckBoxEK usw. was ist in meinem Code falsch?

Re: RequestOptionsForm.EDITABLE einzelne Haken deaktivieren

7. Juli 2009 10:21

Der Programmcode steht wahrscheinlich im OnPush-Trigger, sollte jedoch im OnValidate bzw. OnAfterValidate stehen.

Re: RequestOptionsForm.EDITABLE einzelne Haken deaktivieren

7. Juli 2009 10:25

perfekt, danke das war es :-)

Re: [gelöst] RequestOptionsForm.EDITABLE einzelne Haken disable

7. Juli 2009 10:29

Falls du dir noch etwas Getippe sparen willst, schreib beispielsweise anstatt
owenw hat geschrieben:IF ShowIntra = TRUE THEN BEGIN
RequestOptionsForm.CheckBoxAD.EDITABLE(FALSE);
RequestOptionsForm.CheckBoxEK.EDITABLE(FALSE);
END ELSE BEGIN
RequestOptionsForm.CheckBoxAD.EDITABLE(TRUE);
RequestOptionsForm.CheckBoxEK.EDITABLE(TRUE);
END;

doch einfach
Code:
RequestOptionsForm.CheckBoxAD.EDITABLE:=(Not ShowIntra);
RequestOptionsForm.CheckBoxEK.EDITABLE:=(Not ShowIntra);