Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: feel_x am 28.04.03 - 11:14:14

Titel: Felder nur einmal bearbeiten
Beitrag von: feel_x am 28.04.03 - 11:14:14

Schönen Montagmorgen :)

Ich suche eine Möglichkeit, ein Feld nur ein einziges Mal zu bearbeiten und dann gegen überschreiben  (durch bestimmte Personen) zu sichern.

Mein Weg ist bis jetzt
- ein bearbeitbares Feld;
- ein berechnetes Feld zur Anzeige des Wertes im bearbeitbaren Feld
- und ein Feld, das seinen Status auf "locked" stellt, wenn im bearbeitbaren Feld was drin steht.
Funktioniert; ist aber bei 150 Feldern in der Maske spaßig..

Gibt's für diese Anforderung eine einfachere Lösung?
 :-\

felix s.

Titel: Re:Felder nur einmal bearbeiten
Beitrag von: Performance am 28.04.03 - 13:58:24
verstehe ich es richtig - hast du 3 Felder für diese Aktion ?

Tabelle mit 2 Spalten...
FeldA - bearbeitbar - verstecke das Feld wenn gefüllt
FeldAA - berechnet zur Anzeige: FeldA - verstecke das Feld wenn FeldA leer ist

im Prinzip gibt es keinen einfacheren Weg....


cu
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 28.04.03 - 14:02:08


im Prinzip gibt es keinen einfacheren Weg....


cu


Oki, es geht auch mit zwei Feldern, aber ich kann mit dem "Locked"- Feld einfacher programmieren als wenn ich nur zwei Felder habe und dann mit @if Feld 1 leer, dann soundso.. rumbastel.

hab schon gesehen, alle anderen machen es auch mit mehreren Feldern..
Na gut, dann halt ganz viel manuell

:)

Titel: Re:Felder nur einmal bearbeiten
Beitrag von: Performance am 28.04.03 - 14:05:43
du hast einen Overhead von 300% .... benötigte Felder = 50 ... tatsächliche Felder = 150 .....  mache das Leben der Kollegen nicht schwer die nach dir die db bearbeiten  ;D ;D ;D


cu
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: dirk_2909 am 28.04.03 - 14:24:49
Wie wäre es mit dem folgenden Script im Entering des jeweiligen Feldes:
'########################################
Sub Entering(Source As Field)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim strFeld As String
   Dim strWert As String
   Set uidoc = workspace.CurrentDocument
   strFeld = uidoc.CurrentField
   strWert = uidoc.FieldGetText( strFeld )
   If strWert <> "" Then
      Call uidoc.GotoField( "Dummy2" )
   End If
End Sub

'#####################################
Wenn der User das Feld bearbeiten will, spingt der Focus sofort auf das Feld "Dummy2" . So kann der User das Feld nur einmal bearbeiten und du benötigst nicht doppelt so viele Felder ???

Dirk
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: Performance am 28.04.03 - 14:36:33
Wenn der User das Feld bearbeiten will, spingt der Focus sofort auf das Feld "Dummy2" . So kann der User das Feld nur einmal bearbeiten und du benötigst nicht doppelt so viele Felder ???

...n'tschuldigung  den Designer würde ich als einfacher user glatt erschiessen  ;)


cu
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 28.04.03 - 14:44:00


Hehe :)

offensichtlich ist man sich einig :))

Oki, ich mach's im Mittelweg: Ich versuch mal, den Overhead der Felder zu kürzen (ich schaff's mit 2..) und baue kein skript ein, für das mich die Leude steinigen :)

Hmm.. ich brauch eh eine Lösung, bei der die Manager der DB trotzdem Felder ändern können, auch wenn sie für die normalos gesperrt sind.
Die 2-Feld-Lösung scheint mir da einfacher zu sein..

thx,
felix
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ghost am 28.04.03 - 14:44:46
Ich habe außderdem die Erfahrung gemacht, dass die Verwendung von vielen Entering- und Exiting-Events eine Maske ziemlich ausbremsen. Mal abgesehen von dem eigenwilligen UI, wo der Curser einfach in ein "Dummy2" springt....
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: dirk_2909 am 28.04.03 - 14:53:19
War ja nur ein Vorschlag !!!!

Ich arbeite bei sowas ja auch mit bearbeitbaren und berechneten Feldern.

... und manche User haben es verdient sie zu ärgern ;-)


Dirk
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ata am 28.04.03 - 16:20:52
... was heißt den 1 x bearbeiten - bis zum ersten Speichern des Feldinhaltes oder wirklich nur einmal einen Wert eingeben können und dann is babela...

ata
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: Performance am 28.04.03 - 16:40:27
tja ata... einmal bearbeiten = einmal was eintragen..... laut erstem Posting "dann gegen überschreiben" .....


cu
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 28.04.03 - 16:53:35

Oki, ich definier das nochmal

:)

Also: Ein normaler User soll ein Feld einmal bearbeiten können und dann beim nächsten öffnen nicht mehr drankommen.
Der SuperUser allerdings soll auch nachträglich noch den Status ändern können.
Meines Achtens ist hierfür die zwei-Feld-Technik am besten,
weil man dann sowas hier per Button oder per Feld machen kann:

@If(AnmeldungBestaetigungLock="open";@SetField("AnmeldungBestaetigung";"ja");AnmeldungBestaetigung);
@SetField("AnmeldungBestaetigungLock";"locked");

und dann müsste man eine Ausnahme reintun:
if @UserName = SuperUser
dann darf der SuperUser trotzdem ändern, auch, wenn das Locked-Feld auf "locked" steht

 ;)


feel_x

Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ata am 28.04.03 - 17:31:50
... gilt das dann für alle Felder in der Maske, oder nur für bestimmte Felder?

... weil dann wäre doch ein Leser und ein Autorenfeld der richtige Weg - im Leserfeld die Rolle "[NormalerUser]" im Autorenfeld "[SuperUser]"

ata
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 29.04.03 - 10:30:14

... weil dann wäre doch ein Leser und ein Autorenfeld der richtige Weg - im Leserfeld die Rolle "[NormalerUser]" im Autorenfeld "[SuperUser]"

ata

gilt für die meisten Felder.. nicht alle.
und der Zugriff?
Leserfeld einmal bearbeitbar und dann nur noch lesbar und Autorenfeld immer bearbeitbar?


Danke,
felix


Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ata am 29.04.03 - 13:55:17
... wer nur als Leser eingetragen ist, kann nicht in den Bearbeitungsmosus...

... da du aber bestimmte Felder weiterhin bearbeitbar benötigst, ist diese Lösung nicht verwendbar...

... Wie wird dein SuperUser denn definiert - ist es der Admin - dann kannst du eine Rolle "[Admin]" verwenden. Für jedes betroffene Feld nimmst du ein Feld berechnet zur Anzeige in der Zeile darunter auf. Über die Rolle "[Admin]" kannst du dann die Felder in ihrer Bearbeitbarkeit switchen...

ata
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 29.04.03 - 14:08:23

Zur Vorstellung: Das ganze ist ein Workflow (immer noch meine Seminardatenbank)
Ich wickle die komplette Sache in einer Maske ab,
das heißt, die User füllen zuerst die Anmeldung aus;
dann "unterschreibt" der angegebene Vorgesetzte (bzw. Prof.),
dann nimmt der User am Seminar teil,
füllt ein Feedbackformular aus
und nach ein paar Monaten ein zweites (à la: "was ist vom Seminar hängengeblieben").
Alles in einer Maske.

Dafür will ich halt Felder haben, die für die normalen User nur einmal bearbeitbar sind, bei Fehleingaben oder Änderungen muss dann der Admin ran.

Ich denke, mit Deiner Lösung und der Rolle [Admin] ist das lösbar :)

thanx,
felix
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ata am 29.04.03 - 14:15:25
... du könntest es zusätzlich noch über eine flag steuern. Wird das Dokument zum ersten mal gespeichert, dann wird über die flag und die Rolle gesteuert. Du könntest dann vom Admin die Flag zurücksetzen lassen, und der User kann selbst nochmals seine Änderungen tätigen...

ata
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: feel_x am 29.04.03 - 14:36:06
... du könntest es zusätzlich noch über eine flag steuern. Wird das Dokument zum ersten mal gespeichert, dann wird über die flag und die Rolle gesteuert. Du könntest dann vom Admin die Flag zurücksetzen lassen, und der User kann selbst nochmals seine Änderungen tätigen...

ata

Oha, das klingt ja noch besser..  :D
ich guck mal in meinen Skripten und in der Hilfe nach Flags.

Danke Dir :)
Titel: Re:Felder nur einmal bearbeiten
Beitrag von: ata am 29.04.03 - 19:35:40
... eine flag ist ein Feld in deiner Maske, in der du Kontrollwerte ablegst. Du kannst die Felder (flags) frei definieren...

... den Wert des Feldes kannst du zu unterschiedlichen Events setzen. Im entscheidenden Moment fragst du deren Inhalt ab und steuerst somit deinen Code...

ata