Autor Thema: Wechsel EditMode im Postopen  (Gelesen 2595 mal)

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Wechsel EditMode im Postopen
« am: 13.11.06 - 16:49:01 »
Hallo,
ich habe eine Maske, bei der der Bearbeitungsmodus nicht automatisch aktiviert wird. Dokumente werden also normalerweise im Lesemodus angezeigt. Unter bestimmten Umständen möchte ich jetzt im Postopen den Bearbeitungsmodus einschalten, ein paar Änderungen an Feldern durchführen und das Dokument wieder in den Lesemodus nehmen:
@If (Status="6" & @IsMember(@UserName;AktBearbeiterListe); @Do(
@Command([EditDocument];"1");
@setfield...
@Command([EditDocument];"0")
);@Success)

Leider erhalte ich beim letzen Umschalten die Fehlermeldung "Document command is not available".
Hat jemand ne Idee, warum dies so ist oder wie ich das ganze besser lösen könnte?
Gruß Matthias

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wechsel EditMode im Postopen
« Antwort #1 am: 13.11.06 - 17:51:32 »
Ich glaub mit Script kannst du das im Backend machen und am Ende uidoc.refresh.
Ist vielleicht einfacher.
Wenn in dem Postopen bereits Formelsprachen-Code drin ist, kannst du einen Agenten aufrufen, der in Script programmiert ist.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #2 am: 20.11.06 - 16:04:01 »
Hallo,
ich hab jetzt so einiges ausprobiert, aber ich komme einfach nicht weiter. Also,
- das Dokument soll generell im Lesemodus geöffnet werden
- bei bestimmten Usern soll das Dokument im Bearbeitungsmodus geöffnet werden und das Öffnen soll protokolliert werden
- im POSTOPEN wird also unter Umständen der EditMode eingeschaltet, anschließend sind einige Felder editierbar.
ABER
- hat das Dokument einen bestimmten Status erreicht, soll zwar weiterhin protokolliert werden, dass diese bestimmten User das Dokument geöffnet haben, die Felder des Dokuments dürfen jedoch nicht mehr verändert werden.

Ich wollte das in diesem Fall so lösen, dass im POSTOPEN der Bearbeitungsmodus eingeschaltet wird, die Protokollinformationen in bestimmte Felder eingetragen werden, das Dokument gespeichert wird und anschließend der Lesemodus wieder eingeschaltet wird.
Unabhängig von Formelsprache oder LS erhalte ich aber in jedem Fall einen harten Programmabbruch. Und zwar offensichtlich dann, wenn ich speichern möchte, also vor dem Zurückschalten in den Lesemodus. Lasse ich den Speicherbefehl weg, läuft alles durch, der Anwender erhält aber als Eingabeaufforderung die Anfrage auf Speicherung, ist also murks.

Hat jemand ne Idee oder einen Hinweis, wie ich das vielleicht ganz anders lösen könnte.
(Berechnete Anzeigefelder helfen in diesem Fall nichts, da ich u.a. ein RTF-Feld habe, in dem ich Anhänge speichere. Und hier habe ich bisher keine Möglichkeit gefunden, dieses Feld berechnen zu lassen.)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #3 am: 20.11.06 - 16:07:38 »
Wozu setzt Du denn das Dokument in den EditMode, nur um Protokollinformationen zu speichern? Mach das doch im Backend.

Bernhard

klaussal

  • Gast
Re: Wechsel EditMode im Postopen
« Antwort #4 am: 20.11.06 - 16:12:20 »
Ich würde das Doc grundsätzlich nur im Lesemodus öffnen. Schaltfläche "Bearbeiten" nur zeigen , wenn bestimmte Rolle vorhanden.

Wenn der bestimmte Status da ist, das Bearbeiten nicht mehr erlauben. (Was soll denn da überhaupt protokolliert werden, wenn man nix mehr darf?)


Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #5 am: 20.11.06 - 16:25:19 »
@bernhard: mein gesamter POSTOPEN ist in Formelsprache, daher suchte ich hier eine Lösung (oder kann ich auch hier ins Backend schreiben?)

@klauss: es muss protokolliert werden, dass die Mitarbeiter das Dokument gesehen haben.

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wechsel EditMode im Postopen
« Antwort #6 am: 20.11.06 - 16:29:04 »
Nicht durchdacht. Was machst du mit Benutzern die zwar lesen aber nicht editieren dürfen. Was machst du mit Benutzern die nur Leseberechtigung auf der DB haben was machst du mit .....

Guckst du hier. das ist vielleicht eine mögliche Lösung für dein Problem.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline wuschel

  • Junior Mitglied
  • **
  • Beiträge: 71
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #7 am: 20.11.06 - 16:49:03 »
@Thomas:
wieso nicht durchdacht?
Hast Du noch nie eine Prüfinstanz in einem Miniworkflow gehabt, die einfach NUR sichtgenehmigen soll und KEINE Felder verändern können soll?
Und wieso soll ich Benutzer haben, die nur eine Leseberechtigung auf der DB haben?

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Wechsel EditMode im Postopen
« Antwort #8 am: 14.02.07 - 17:47:55 »
so habe ich das auch.. oder so ähnlich und komme nicht wirklich weiter:

Also mal von Anfang an:

Ich habe eine Datenbank mit Vordrucken erstellt. Mich interessiert wieoft der User den Vordruck öffnet.

Also habe ich jeden User Editor rechte gegeben. Außerdem 2 Rollen definiert Editor und Leser
der Editor sieht auch die Felder die er editieren darf der Leser sieht nur die berechneten  Felder.

im Postopen habe ich folgende Formel reingeschrieben:


@Command( [EditDocument]; "1" );
FIELD Statistik:=@If(Statistik="";@Text(@Now);Statistik:@Text(@Now));
FIELD Statistik_1:=@If(Statistik_1="";1;Statistik_1+1);
@Command( [EditDocument]; "1" );
@Command([FileSave];"1")

Somit wird jeder Zugriff gezählt. Der Leser kriegt davon nichts mit weil für ihn alle Felder trotzdem dicht sind. Jetz würde ich o .g . Fomel gerne erweitern so das wenn ein User mit Rolle Editor zugreift eben nichts gezählt wird sondern dasDokument am besten erst garnicht in in Edit-Modus geht. Leider kriege ich das nicht hin.

WEnn ich folgende Eintrage:

@If(@IsMember("[Leser]";@UserRoles);
@PostedCommand( [EditDocument]; "1" );
FIELD Statistik:=@If(Statistik="";@Text(@Now);Statistik:@Text(@Now));
FIELD Statistik_1:=@If(Statistik_1="";1;Statistik_1+1);
@PostedCommand( [EditDocument]; "1" );
@PostedCommand([FileSave];"1");
@Return(""))

funktioniert es nicht sonder es kommt eine Felermeldung...

Zahl erwartet

Gruß

Cash

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #9 am: 14.02.07 - 18:31:19 »
So kann das auch nichts werden.

Generell: Was Du da machst für "Statistiken", ist nicht besonders smart. Ein Dokument kannst Du Dir dann so maximal 1.700 mal anschauen, dann ist Ende Gelände - das Feld "Statistik" ist voll.
Weiters: Statistik_1 ist unnötig - das wäre das gleiche wie @Elements (Statistik).

Warum man sich aber gar nicht weiter mit der Sache beschäftigen muss: Selbst, wenn Du den EditMode wieder auf False setzen könntest, braucht der User ja nur Strg-B zu drücken ... Vielleicht habe ich das aber nur missverstanden.
Mir erschliesst sich nicht, was Du mit dem @If-Konstrukt überhaupt gedacht hast zu erreichen: Die Formel widerspricht ja jeglicher Syntax für @If.

Du wirst das nur sauber hinbekommen, wenn Du statt @functions LotusScript verwendest.

Bernhard

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Wechsel EditMode im Postopen
« Antwort #10 am: 15.02.07 - 10:08:38 »
Das es nicht smart ist habe ich mir schon gedacht. Nur leider habe ich bisher keinen Schimmer von LotusScript.

Das beste ist aber die User haben auch keinen schimmer ;D und deshalb kommen die auch nicht auf STRG+B

und 1700 wird dort auch nie erreicht, denn sooft werden die Vordrucke nicht aufgerufen.
Das Unternehmen ist nicht so groß...

Habe auch gerade erst angefangen in Notes Datenbanken zu erstellen. Werde in diesen Jahr noch 6 Tage Fortbildung dort haben, aber bis dahin bin ich halt am probieren. Ob gut oder nicht ist mir erstmal egal hauptsache es läuft...

Mit dem If Konstrukt habe ich versucht zu sagen wenn User hat Rolle Leser dann
gehe in EditMode und fühle die beiden Statistik Felder, wenn nicht mach garnichts.

Gruß

Cash

Offline Otto

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #11 am: 15.02.07 - 11:23:41 »
Gemeint haben dürftest Du :

@If(@IsMember("[Leser]";@UserRoles);
@Do(
@PostedCommand( [EditDocument]; "1" );
FIELD Statistik:=@If(Statistik="";@Text(@Now);Statistik:@Text(@Now));
FIELD Statistik_1:=@If(Statistik_1="";1;Statistik_1+1);
@PostedCommand( [EditDocument]; "1" );
@PostedCommand([FileSave];"1")
);
@Return(""))


Ein 'Strg-B' zu verhindern ist auch kein Hexenwerk (auch wenns nur mit Script klappt)
So z.B. lässt Du alle Ottos draußen:

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   Dim s As New notessession
   continue = source.Editmode And (Instr("OTTO", Ucase(s.username)) > 0)
End Sub

Gruß
Otto

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Wechsel EditMode im Postopen
« Antwort #12 am: 19.02.07 - 10:21:43 »
mit dem Do funktioniert leider auch nicht. Zwar macht er keine Fehlermeldung aber zählen tut er auch nicht.

Wenn ich mit Rolle Editor reingehe bin ich nicht im EditMode (so soll es sein). Bei der Rolle Leser sieht es zwar gut aus aber die Statistikfelder erhöhen sich nicht.

Cash

Offline Otto

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: Wechsel EditMode im Postopen
« Antwort #13 am: 19.02.07 - 11:45:09 »
Sorry, das war wohl etwas missverständlich.
Ich wollte mit dem eingefügten @do eigentlich nur auf die @if-Syntax hinweisen; die ist nämlich so ausgelegt, dass Deine Formel schon mal daher an die Wand fährt.

Weiterhin: wenn Du Deine Formel so im Postopen stehen hast, im
Querymodechange aber den Übergang zum Editmode  blockst ...

Wenn Du unbedingt auf @Formel bestehst, bau mal diese im Queryopen ein:

@If(@IsMember("[Leser]";@UserRoles);
@Do(
FIELD Statistik:=@If(Statistik="";@Text(@Now);Statistik:@Text(@Now));
FIELD Statistik_1:=@If(Statistik_1="";1;Statistik_1+1);
@Prompt(1;@Text(Statistik_1); "EDITMODE!")
);
@Return(""))

Gruß
Otto

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz