11. November 2009 11:44
Hallo,
Ein kleines Problem mit den Feldern in der Debitorenform, ich müsste alle Felder spereren ausser dem Suchfeld dass kein Anwender mehr die Daten ändern kann, ausser bestimmte User die dann in der Benutzereinrichtung die Berechtigung haben durch setzen eines Haken(darf ändern), jedoch soll die Form bei erstellen eines neuen Debitors von jedem benutzt werden können, nur eben nicht mehr von jedem geändert oder unwillkürlich überschrieben werden können.
Wollten auf der Form einen Button einsetzen , der wenn er angewählt wird die Möglichkeit gibt die Daten zu ändern.
Kann jemand mir einen kurzen Tipp geben wie ich das hinbekommen könnte.
Vielen Dank im voraus.
Patchen
11. November 2009 13:21
Das Thema wurde bereits schon Diskutiert (finde es jetzt aber nicht), benutze die
Suche.
Wenn ich es recht weiß, musst du jedes Feld einzeln im Code Programmieren?!
Z.B. für das Feld Nr. (Editieren, ist eine Boolsche Variable, die entsprechend gesetzt werden muss):
- Code:
IF Editieren THEN
CurrForm."No.".EDITABLE := TRUE
ELSE
CurrForm."No.".EDITABLE := FALSE;
11. November 2009 13:30
Da war doch irgendwo der Trick, die ganze Form im OnActivate eines Feldes auf editable(true) und im OnDeactivate wieder zurück zu stellen. Nun muss man nur doch noch dafür sorgen, dass das nur die User betrifft, die nicht editieren dürfen.
11. November 2009 13:46
Ja, das könnte sein.
Nur auch hier wird jedes Feld in der Programmierung berücksichtigt werden müssen.
11. November 2009 13:49
mikka hat geschrieben:Nur auch hier wird jedes Feld in der Programmierung berücksichtigt werden müssen.
Wieso? Es geht doch nur um das Suchfeld .. also ein Feld, der Rest im OnOpen.
11. November 2009 14:44
McClane hat geschrieben:Wieso? Es geht doch nur um das Suchfeld .. also ein Feld, der Rest im OnOpen.
Naja, auf dem einen oder anderen Weg, müsste doch immer der Wert "Editable" (für jedes Feld) geändert werden (sprich beim Programmieren).
Die Form selbst auf "Editable" = FALSE und nur das einzelne Feld, geht ja auch nicht.
Wie es später zu Runtime ist, ist dem User / Admin ziemlich egal, hauptsache es funktioniert.
11. November 2009 14:55
Deswegen ja das Freigeben/Sperren der Form im OnActivate/OnDeactivate einer Textbox. Bearbeiten kannst du dann effektiv nur das eine Feld.
11. November 2009 16:25
Hallo zusammen,
Vielen Dank mal für eurer Antworten , es ist schon so wie es mir gedacht habe,nur das wenn man einen neuen Debitor anlegen will es dann auch nicht mehr geht weil die Felder nicht editierbar sind,müssten aber bei der Neuanlage des Debitors edierbar sein, Nummer des Debitors wird automatisch aus der Nummernserie gezogen, es soll so sein wenn nach der Neuanlage des Debitors keine Änderungen von den Usern gemacht werden können, ausser den bestimmten wobei dann auf der Benutzereinrichtung ein Haken gesetzt werden muss Debitoren ändern erlaubt.
Vielen Dank im voraus
Patchen
11. November 2009 16:55
Patchen hat geschrieben:...,nur das wenn man einen neuen Debitor anlegen will es dann auch nicht mehr geht weil die Felder nicht editierbar sind,müssten aber bei der Neuanlage des Debitors edierbar sein,...
Wenn nicht die Form sondern nur die Felder auf Editable=FALSE gesetz werden, kann doch trotzdem per F3 ein neuer Datensatz angelegt werden?!
Es muß nur auf dem entsprechenen Trigger (vermutl. OnNewRecord oder so) ein Code ausgeführt werden, der die Felder zurücksetzt und ggf. eine Berechtigungsabfrage durchführt.
Ebenso muss die Prüfung bei OnAfterGetrecord erfolgen.
@McClane
Irgenwie reden wir einandern Vorbei, ich weiß nicht was du meinst?!
(Aber sollche Tage soll es auch geben
)
11. November 2009 17:12
Ich weiß nicht was das Suchfeld für ein Feld ist, aber auch bei nicht editierbaren Feldern ist doch ein Suchen weiterhin möglich (eher besser)
Um die ganze Form auf nicht editierbar zu setzen:
1. In dem Trigger "OnOpenForm" CurrForm.EDITABLE(FALSE) eingeben
2. Unter einem Menüpunkt (z.B. Debitor) ein MenuItem "Änderungsmodus" einbauen,
wo im ONPush auf CurrForm.EDITABLE(TRUE) gesetzt wird.
Wenn nur das Suchfeld editierbar sein soll, dann so wie Mikka scheibt,
1. In dem Trigger "OnOpenForm" für alle Felder einzeln eingeben
No: ==> CurrForm."No.".EDITABLE(FALSE)
Description ==> CurrForm.Description.EDITABLE(FALSE)
...
2. Unter einem Menüpunkt (z.B. Debitor) ein MenuItem "Änderungsmodus" einbauen,
wo im ONPush auf für jedes Feld auf editierbar gesetzt wird.
No: ==> CurrForm."No.".EDITABLE(TRUE)
Description ==> CurrForm.Description.EDITABLE(TRUE)
...
Wenn ich dann den Änderungsmodus aktiviere, kann ich in beiden Fällern auch einen neuen Datensätze anlegen, bzw. ändern
mfg Michael
11. November 2009 23:30
mikka hat geschrieben:@McClane
Irgenwie reden wir einandern Vorbei, ich weiß nicht was du meinst?!
(Aber sollche Tage soll es auch geben )
Och, das machen wir doch ständig. Trotzdem ist es meist unterhaltsam
Und zugegeben: meine Variante klappt nicht, wenn jeder MA auch neue Datensätze anlegen dürfen soll. Das habe ich aber mal wieder überlesen
12. November 2009 10:44
McClane hat geschrieben:Och, das machen wir doch ständig. Trotzdem ist es meist unterhaltsam
Und zugegeben: meine Variante klappt nicht, wenn jeder MA auch neue Datensätze anlegen dürfen soll. Das habe ich aber mal wieder überlesen
Stimmt, Unterhaltsam ist es.
Bei mit ist auch nicht jeder Lösungsvorschlag perfekt (schreibe ja auch meistens dabei, wenn ich mir nicht sicher bin).
Und das mit dem Überlesen, passiert mir auch. Viel öfters aber, das ich beim zweiten oder dritten mal lesen die Problemstellung ganz anders interpretiere.
(liegt wohl daran, das man ja die Beiträge ab und an nebenbei liest)
12. November 2009 10:57
mikka hat geschrieben:(liegt wohl daran, das man ja die Beiträge ab und an nebenbei liest)
Ein Auge aufs Forum, das andere auf den Chef
12. November 2009 11:29
McClane hat geschrieben:Ein Auge aufs Forum, das andere auf den Chef
Naja und zumindest wir Männer (wenn auch nicht alle), sind ja beim Multitasking nicht so gut
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.