[Gelöst] Menueinträge sperren

Bild Microsoft Dynamics NAV 3.xx
(ehem. Navision Attain)

[Gelöst] Menueinträge sperren

Beitragvon Guenther » 20. Dezember 2005 13:10

Hallo,

ich möchte einigen Usern in unserem Unternehmen den Zugriff auf Menueinträge in einer Form versperren. Man könnte das auch per Rolle machen, aber ich möchte es so lösen.

Einzelne Spalten ausblenden oder Felder mit wirren Zeichen zu fĂĽllen, wenn eine bestimmte Voraussetzung in der Benutzereinrichtung gegeben ist, ist kein Problem:

Code: Alles auswählen
OnOpenForm()
IF UserSetup.GET(USERID) THEN
IF UserSetup.ShowUnitCost=FALSE THEN

BEGIN
  Hidecost := NOT(UserSetup.ShowUnitCost);
  CurrForm.Code.EDITABLE := FALSE;
  CurrForm.Description.EDITABLE := FALSE;
  CurrForm.Description.VISIBLE := FALSE;
END;


Jetzt habe ich aber auch mehrere Menus am unteren Bildschirmrand, die ich ebenfall deaktivieren will. Gibt es dort eine Möglichkeit, diese ähnlich wie Spalten und Felder anzusprechen?

btw: kann ich die Spalten auch komplett dem Zugriff einzelner Benutzer entziehen? Derzeit wären Sie ja "nur" nicht sichtbar und editierbar.

GruĂź,
Guenther

[Editiert von Marc Teuber: Code-Tag hinzugefĂĽgt.]
Zuletzt geändert von Guenther am 12. April 2006 14:44, insgesamt 1-mal geändert.
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015

Beitragvon mikka » 20. Dezember 2005 15:46

Hallo,
wenn es eine Subform ist die du meinst im unteren Menü und hier einzelne Spalten ausgeblendet werden sollen, hätte ich folgenden Vorschlag:

Auf der Form:
Der Subform in den Properties unter Name einen Namen Vergeben z.B. "Subform1"
Auf dem gewĂĽnschten Trigger folgenden Code hinterlegen:(DEINFUNKTIONSNAME mit den Funktionsnamen in der Subform austauschen!)
CurrForm.Subform1.FORM.DEINFUNKTIONSNAME(FALSE);
bzw. CurrForm.Subform1.FORM.DEINFUNKTIONSNAME(TRUE); (Je nach dem!!)
(Benutze am besten das "C/AL Symbol Menu")

Auf der SubForm:
Eine Funktion erstellen
Parameter Name:Show
DataType:Boolean

Folgenden Code eingeben: (Textbox gegen die Felder die du haben möchtest austauschen!)

IF show THEN BEGIN
CurrForm.Textbox1.VISIBLE := TRUE;
END ELSE BEGIN
CurrForm.Textbox1.VISIBLE := FALSE;
END;

Gleiches sollte auch mit (glaube ich!) mit Editable funktionieren!
Ich hoffe das ich das Verständlich rüberbringen konnte :-)
GruĂź Mikka
GruĂź, Mikka

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Beitragvon Guenther » 20. Dezember 2005 16:51

im speziellen Fall handelt es sich um die Form 5730 Item Categories. Hier möchte ich unseren Filialen lediglich den Code und die Beschreibung zeigen. Alles andere auf der Form, außer OK und Abbrechen, sollte ausgeblendet sein.

Also möchte ich nicht die ganze Subform ausblenden bzw gibt es dort ja auch gar keine. Ich möchte "lediglich" die Menubuttons ausblenden. Nur wie spreche ich die an?!
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015

Beitragvon Timo Lässer » 20. Dezember 2005 17:33

Geht es hier darum, dass die Benutzer die Daten der Ăśbersicht halber nicht sehen sollen (da Sie durch die Vielzahl nur verwirrt wĂĽrden), oder dĂĽrfen Sie sie nicht sehen (da sie geheim sind)?.

Wenn nur der Ăśbersicht halber:
Gib jedem (auszublendenden) Button ĂĽber die Properties einen Namen, dann kannst du die Controls mit CurrForm.ControlName.ENABLED := FALSE; deaktivieren bzw. mit CurrForm.ControlName.VISIBLE := FALSE; ausblenden.

Wenn die Daten nicht eingesehen werden dĂĽrfen:
  1. Die User dĂĽrfen keinen Zugriff auf den Zoom (Strg+F8) haben.
  2. Das Ausblenden der Spalten reicht nicht, da die User sich die Felder wieder einblenden könnten.
    Hier mĂĽsste die Abfrage der Benutzerberechtigungen sowie das Ausblenden der Controls (Spalten) im Trigger OnAcitvateForm wiederholt werden.
    Dann können sich die Anwender die Spalten so oft einblenden, wie sie wollen. Sobald sie wieder auf die Karte zurückkämen würden die Spalten wieder ausgeblendet ;-)
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Guenther » 20. Dezember 2005 18:00

Aha, da hätte ich auch selber drauf kommen müssen.

Ich habe jetzt alle Spalten auf DISABLED und INVISIBLE gesetzt und die Werte jeweils mit dem Text '*************' überschrieben. Geht auch, ist abernicht die schönste Variante.
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015

Beitragvon Guenther » 20. Dezember 2005 18:03

Timo hat mich gerade darauf aufmerksam gemacht, dass ich noch nicht erwähnt habe, dass wir mit der Branchenlösung "Wheels&Tires" arbeiten. Da ich da auf angepasste Felder zurückgreife, sind meine Fragen nicht immer ganz verständlich. Ich bitte, dies zu entschuldigen.

GruĂź,
Guenther
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015

Beitragvon mikka » 20. Dezember 2005 18:08

Stimmt Timo (An was mann alles denken muss!)

Auf dem OnAcitvateForm Trigger reicht nicht aus, der Code "CurrForm.Code.VISIBLE := FALSE;" muss auch auf den "Form - OnAfterGetRecord()" Trigger, dann kann der User die Spalte nicht mehr Anzeigen!

@Timo: Welche Rolle darf der User nicht haben, wenn der Zoom deaktiviert sein soll? (ID-5330 Objektart System)?
GruĂź Mikka
GruĂź, Mikka

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Beitragvon Timo Lässer » 20. Dezember 2005 18:23

mikka hat geschrieben:Auf dem OnAcitvateForm Trigger reicht nicht aus, der Code "CurrForm.Code.VISIBLE := FALSE;" muss auch auf den "Form - OnAfterGetRecord()" Trigger, dann kann der User die Spalte nicht mehr Anzeigen!
Da sich die Rechte nicht von Datensatz zu Datensatz ändern, sollten die Trigger OnOpenForm() und OnActivateForm() ausreichen.
Sind jedoch bestimmte Werte des Datensatzes noch zu berücksichtigen, dann wäre OnAfterGetRecord() anstelle von OnOpenForm() zu wählen.

mikka hat geschrieben:@Timo: Welche Rolle darf der User nicht haben, wenn der Zoom deaktiviert sein soll? (ID-5330 Objektart System)?
GruĂź Mikka
Richtig! Zugriffsrecht System 5330 "Tools, Zoom" darf in keiner Rolle den Usern zugeteilt werden.
Einmal erteilt (durch irgendeine Rolle), kann man es ihm nicht mehr entziehen.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

nochmal

Beitragvon Guenther » 7. April 2006 09:40

hab doch nochmal eine Frage:

Ich möchte jetzt nicht einfach nur einfach den ganzen Button einer Maske sperren, sondern einen einzelnen Menueintrag des Buttons.
Ich habe versucht, dem Menueintrag einen Namen zu geben und dann ĂĽber CurrForm das ganze unvisible zu machen.
Leider finde ich die Eintragsnamen nicht.

Besteht die Möglichkeit, Menueinträge per Code zu sperren?

GruĂź
Guenther
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015

Re: nochmal

Beitragvon Marc Teuber » 7. April 2006 11:47

Hallo GĂĽnther,

Guenther hat geschrieben:Besteht die Möglichkeit, Menueinträge per Code zu sperren?
Das geht leider nicht. Du müsstest für für jede Möglichkeit einen eigenen Button haben, die dann alle übereinander liegen und dann ein- und ausgeblendet werden.

GruĂź, Marc
Benutzeravatar
Marc Teuber
Microsoft Partner
Microsoft Partner
 
Beiträge: 1064
Registriert: 2. Oktober 2005 13:36
Wohnort: Greven
Arbeitsort: MĂĽnster, Dortmund
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

ok

Beitragvon Guenther » 12. April 2006 14:46

Hallo Marc,

soeben geschehen. Habe es tatsächlich mit zwei Buttons gelöst. Etwas umständlich, finde ich, aber wenn es anders nicht geht, muß das wohl so sein.
Danke dafĂĽr.

GruĂź
Guenther
Guenther
 
Beiträge: 56
Registriert: 21. November 2005 08:38
Arbeitsort: Diepholz
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Nav3.6,2009,2015


ZurĂĽck zu NAV 3.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast