[Gelöst] Editable von Debitorenkarte

7. September 2006 14:11

Hi,
habe lange in diesem Forum nur mitgelesen benötige nur jetzt eine wenig mehr Hilfe :wink:
Ich möchte gerne, das ich die Debitoren Karte bei einem bestimmten Benutzter nicht editierbar ist.
Code:
IF USERID = 'CHECKOUT' THEN BEGIN
CurrForm.EDITABLE(FALSE);
END;


Der Code klappt leider nicht da das Tab weiterhin aktiv ist.
Möchte jedoch nicht alle Controls einzelt anspreche.

Code:
IF USERID = 'CHECKOUT' THEN BEGIN
CurrForm.Name.EDITABLE(FALSE);
CurrForm."No.".EDITABLE(FALSE);
CurrForm."Name 2".EDITABLE(FALSE);
CurrForm.Address.EDITABLE(FALSE);
END;


Hat einer ne IDEE?

Frederik
Zuletzt geändert von roeming01 am 7. September 2006 15:28, insgesamt 1-mal geändert.

7. September 2006 14:30

Führst du den Code auf dem OnOpenForm-Trigger aus?

Du kannst das in einer Zeile erledigen:

Code:
CurrForm.EDITABLE(USERID <> 'CHECKOUT');

7. September 2006 14:40

Ja es wir im Trigger OnOpenForm aufgeführt.
Jedoch kann ich weiterhin daten änern.

FR

7. September 2006 14:48

Wird vielleicht irgendwo auf dem Form noch ein CurrForm.EDITABLE(TRUE) ausgeführt? Auf einem anderen Trigger?

7. September 2006 14:50

Ich bekomme die Tabs nicht gesperrt geht das bei jemanden anders?

FR

7. September 2006 15:21

Gefunden!!!!
Hatte doch noch ein EDITABLE(TRUE) drin.

FR

7. September 2006 20:36

Ich empfehle prinzipiell, solche Sachen in der Tabelle "User Setup" abzulegen, so kann es für jeden Benutzer individuell eingerichtet werden.
Natürlich sollte man über die Zugriffsrechte sicherstellen, dass (zumindest die "benachteiligten" User diese Daten nicht ändern können.

Der Code lautet dann wie folgt:
Code:
OnOpenForm()
IF NOT UserSetup.GET(USERID) THEN
  UserSetup.INIT;
CurrForm.EDITABLE(UserSetup."Customer Card Editable");


Optimal wäre es natürlich, wenn es schon über die Zugriffsrechte sichergestellt ist, dass der User die Daten nicht ändern darf.
In diesem Fall könnte man dann sogar folgenden Code verwenden:
Code:
OnOpenForm()
CurrForm.EDITABLE(WRITEPERMISSION);