Autor Thema: Prüfen ob Dokument im Editiermodus ist  (Gelesen 2909 mal)

Offline mariab

  • Aktives Mitglied
  • ***
  • Beiträge: 123
Prüfen ob Dokument im Editiermodus ist
« am: 20.02.08 - 09:44:42 »
Habe in einer Maske eine Schaltfläche zum Löschen erstellt. Drückt der Benutzer auf die Schaltfläche, so sollten die entsprechenden Felder ausgefüllt werden. In der Ansicht prüfe ich dann diese Felder und zeige das Dokument an wenn die Felder leer sind.
Das Problem habe ich mit der Prüfung ob das Dokument im Edit-Mode ist oder nicht. Kann der Benutzer das Dokument nicht editieren, so sollte ihm die Meldung erscheinen, dass er dieses Dokument nicht löschen kann.


Code
Ergebnis :=@Prompt([YesNo]; "Eintrag löschen?"; "Soll der ausgewählte Eintrag gelöscht werden?");
@If(Ergebnis = 1;
@Do(
	@Command([EditDocument];"1");
	@If(@Command([EditDocument]) = "1";
		@Do(
			@SetField("Loesch";"gelöscht");
			@SetField("LoeschVon";@UserName);
			@SetField("LoeschAm";@Now)
				);
		@Prompt([Ok];"Achtung!";"Sie können diesen Eintrag nicht löschen") & @Return(null)
			));
@Return(null))

Glombi

  • Gast
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #1 am: 20.02.08 - 10:57:09 »
@If(@Command([EditDocument]) = "1";
ersetzen durch
@If(@IsDocBeingEdited;

Andreas

Offline mariab

  • Aktives Mitglied
  • ***
  • Beiträge: 123
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #2 am: 20.02.08 - 11:25:21 »
Habe nun die Änderung mit @If(@IsdocBeingEdited;...  gemacht.
Ist das Dokument nicht im Editiermodus, so erscheint die Meldung "Sie können den Eintrag nicht löschen", klicke ich nochamls auf die Schaltfläche funktioniert es einwandfrei. Sieht fast so aus als ob Notes nicht ganz mitkommt, bzw zuerst das Prompt ausführt und dann erst das Dokument in den Edit-Mode switcht.

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #3 am: 22.02.08 - 14:19:25 »
Hallo mirab,

versuch mal damit:

@If( @IsMember(@Name([CN];@UserName);@Author);
   @Do(
      Ergebnis :=@Prompt([YesNo]; "Eintrag löschen?"; "Soll der ausgewählte Eintrag gelöscht werden?");
         @If(Ergebnis = 1;
            @Do(
               @Command([EditDocument]; "1");
               @SetField("Loesch";"gelöscht");
               @SetField("LoeschVon";@UserName);
               @SetField("LoeschAm";@Now)
            );
         @Return(null)
         )
      );
   @Prompt([Ok];"Achtung!";"Sie können diesen Eintrag nicht löschen") & @Return(null)
)

Die Formel kann man je nach Einsatzbedarf noch vereinfachen. Aber so tut es auf Grundlage der Beschreibung erstmal.

Wesentlich eleganter wäre es allerdings das Löschen über eine Hide-When auf der Schaltfläche nur im Editmode zuzulassen.

Gruß, Fineas.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #4 am: 22.02.08 - 14:27:55 »
@Author ist kritisch zu sehen - es wird nur auf das erste Item mit IsAuthors = True zurückgegriffen. Wenn gar kein entsprechendes Item vorhanden ist, funktioniert's natürlich auch nicht ...

Bernhard

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #5 am: 22.02.08 - 15:20:08 »
Mhmm. Stimmt auffällig.

Dann einfach ohne die Prüfung. Im Ergebnis gibt es dann keine Fehlermeldung.

Ergebnis :=@Prompt([YesNo]; "Eintrag löschen?"; "Soll der ausgewählte Eintrag gelöscht werden?");
         @If(Ergebnis = 1;
            @Do(
               @Command([EditDocument]; "1");
               @SetField("Loesch";"gelöscht");
               @SetField("LoeschVon";@UserName);
               @SetField("LoeschAm";@Now)
            );
         @Return(null)
         )

Wenn man irgendwie einen Fehler provozieren und abfangen könnte, wäre das sicher gangbar - nur leider wirft @Command([EditDocument]; "1"); keinen solchen.

Gruß, Fineas!

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #6 am: 23.02.08 - 14:00:33 »
Für diesen Fall nicht getestet, aber @Commands haben auch einen Rückgabewert:

Return value
Number.
1 if the @command executes successfully
0 if the @command does not execute successfully

Schau mal, was ein @if( @command([EditDocument];"1") ... liefert, wenn keine Autorrechte gegeben sind.

Hubert

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #7 am: 25.02.08 - 08:40:30 »
Hallo Hubert,

interessante Anregung - tut aber leider nicht. Egal ob in den Editmode gewechselt wird oder nicht, bleibt der Rückgabewert von @command([EditDocument];"1") gleich. Schade.

Gruß, Fineas!

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #8 am: 25.02.08 - 20:55:24 »
Daß der Rückgabewert für dich, der du in dem Dokument in den Edit-Modus wechseln kannst, gleich bleibt, ist klar. Aber wie verhält es sich bei dem Benutzer, der ein Dokument nicht editieren kann? Dort muß das Kommando UNSUCCESSFUL enden - und dann ist der Rückgabewert normalerweise ein anderer. Und das ist es doch, was du suchst.

Gruß

Norbert
Situs vilate in isse tabernit.

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Prüfen ob Dokument im Editiermodus ist
« Antwort #9 am: 26.02.08 - 10:34:00 »
Hallo Norbert,

ich habe es keiner Erwähnung für wert gehalten: selbstverständlich habe ich beide Konstellationen getestet (Client 6.5.5). Offenbar wird @command([EditDocument];"1") auch dann successfully ausgeführt, wenn es mangels Berechtigung zu keinem Wechsel in den Editmode kommt.

Gruß, Fineas!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz