Autor Thema: uiDoc ohne Bearbeitunsmodus aktualisieren  (Gelesen 8316 mal)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
uiDoc ohne Bearbeitunsmodus aktualisieren
« am: 21.09.04 - 11:54:37 »
Hallo zusammen!

Bei folgendem Sachverhalt komm ich irgendwie nicht ganz klar:

Ein Dokument wird vom Erfasser abgespeichert. Der Sachbearbeiter soll dieses Dokument nicht mehr verändern können. Allerdings soll er den Status auf "bearbeitet" setzen, damit ersichtlich ist, dass das Dokument schon von jemanden bearbeitet wird.
Also hab ich eine Aktion mit folgendem Code erstellt:

     Set uidoc = w.CurrentDocument
     Set doc = uidoc.Document          
     
     doc.Status = "3) in Bearbeitung"
     doc.Status2 = "durch " + s.CommonUserName
     
     Call doc.Save(True,False)  

Ich bräuchte nun also noch ein  "uidoc.refresh()", damit der Sachbearbeiter auch gleich den aktualisierten Status sieht.
Allerdings steht uidoc.refresh nur im EDIT-MODUS zur Verfügung.
Das uidoc zu schliessen und erneut zu öffnen, halte ich auch nicht gerade für gelungen.

Kann ich das Problem irgendwie anders lösen?

Gruß
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline cococo69

  • @Notes Preisträger
  • Senior Mitglied
  • ****
  • Beiträge: 286
  • Geschlecht: Männlich
  • Super dieses Forum!!!
    • Mein Hobby...
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #1 am: 21.09.04 - 12:56:21 »
Hallo Bille,

wie wär's mit Formelsprache?

FIELD Status := "3) in Bearbeitung";
FIELD Status2 := "durch "+@Username
@Command([ViewRefreshFields]);

Setzte ich so auch ein (z.B. in "Kunde wünscht") ;)

Gruß aus dem sonnigen Lahr
Armin

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #2 am: 21.09.04 - 13:56:40 »
Hi Armin,

entweder stell ich mich total doof an, oder das mit der Formelsprache funktioniert auch nur, wenn man im Bearbeitungsmodus ist.
Sonst krieg ich die Meldung "Kann Befehl nicht ausführen"....

Grüße
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #3 am: 21.09.04 - 19:53:31 »
Hi,

versuch's doch mal so:

Set uidoc = w.CurrentDocument
Set doc = uidoc.Document          

uidoc.EditMode = True 'Dokument in Editmodus    
doc.Status = "3) in Bearbeitung"
doc.Status2 = "durch " + s.CommonUserName

Call uidoc.Refresh
Call uidoc.Save

uidoc.EditMode = False 'Dokument in Lesemodus    


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #4 am: 21.09.04 - 19:59:08 »
Was bedeutet eigentlich das:
Zitat
Der Sachbearbeiter soll dieses Dokument nicht mehr verändern können.

Autorenfelder ? Oder was ?
Wenn nicht, warum kann dann das Doc nicht im EditMode geöffnet werden ?
Alle Refreshs funktionieren nur im EditMode ...

Bernhard

Offline cococo69

  • @Notes Preisträger
  • Senior Mitglied
  • ****
  • Beiträge: 286
  • Geschlecht: Männlich
  • Super dieses Forum!!!
    • Mein Hobby...
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #5 am: 21.09.04 - 20:22:53 »
Hallo Bille,

sorry, habe dein Posting nicht aufmerksam genug gelesen  :)

Wie Bernhard schon angedeutet hat, musst du uns erst mal erklären, auf welche Art du verhinderst, dass ein Sachbearbeiter in den Editmodus wechselt (durch Autorenfelder oder QueryModeChange...)!
Erst dann kann man sich überlegen, wie man das löst.

Axels Lösung kann nur funktionieren, wenn der Editmodus NICHT gesperrt wird. Das willst du aber nicht, oder?

Gruß
Armin

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #6 am: 21.09.04 - 20:26:51 »
Alle Refreshs funktionieren nur im EditMode ...

Nachtrag zu meinem und Armins Postings: Das gilt für LS und für @functions.

Wenn wir dann mehr wissen - auch hier schliesse ich mich Armins Postings an (danke, Armin) - dann können wir auch eine Lösung finden.

Bernhard

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #7 am: 22.09.04 - 09:37:47 »
Den Zugriff möchte ich über QueryModeChange einschränken.
   
          If Source.Document.Status(0) = "2) weitergeleitet" Then
               Messagebox "Eine Bearbeitung des Auftrages ist nicht möglich!!!", 48, "FEHLER"
               Continue = False
          End If
         
Da aber beide Refresh-Varianten nur im Edit-Modus funktionieren, muss ich wohl doch das Dokument schließen und neu anzeigen lassen.

Oder könnt Ihr mir noch einen anderen Tipp geben.

Danke schon vorab!
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #8 am: 22.09.04 - 09:56:37 »
Hi,

so ganz komme ich da nicht mit. Du "verbietest" das Editieren wenn das Dok den Status weitergeleitet hat, aber gleichzeitig soll der Status wieder auf in Bearbeitung gesetzt werden können. Was denn nu? Soll denn Status nur der ändern können, der es weitergeleitet bekommen hat ?

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #9 am: 22.09.04 - 10:32:09 »
Hi Axel,

sorry, irgendwie hab ich Schwierigkeiten genau zu erklären, was ich will. (Ich gelobe Besserung...)

Also:
Der Auftrag wird vom Verkäufer erfasst und an den Sachbearbeiter weitergeleitet. Danach darf der Auftrag nicht mehr geändert werden.
Der Sachbearbeiter sollte aber die Möglichkeit haben, den Status zu ändern, damit ersichtlich ist, dass dieser Auftrag bereits bearbeitet wird.

Hab ich hier bereits einen Gedankenfehler drin, wenn ich zuerst sage "Auftrag darf nicht bearbeitet werden" und anschließend möchte, daß der SB doch den Status ändern soll?
Mittels Aktion kann ich das Doc ändern, ist kein Problem, eben nur mit der Anzeige hab ich ein Problem ...

Bille

PS: Der Code im QueryModeChange wird noch um die weiteren Stati ergänzt, die das Dokument im Laufe der Zeit annehmen kann.
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #10 am: 22.09.04 - 10:39:30 »
Du brauchst auch noch Code im PostOpen, sonst kann man direkt aus der Ansicht das Dokument im EditMode öffnen (Strg-B zum Beispiel).

Um das Schliessen und wieder Öffnen wirst Du leider nicht umhinkommen ...

Bernhard

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re:uiDoc ohne Bearbeitungsmodus aktualisieren
« Antwort #11 am: 22.09.04 - 10:46:25 »
Ja, den Code für das PostOpen hab ich schon.
Aber Danke für den Hinweis.
Als Neuling ist man wirklich für jeden Tipp froh!

Danke an alle!
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline cococo69

  • @Notes Preisträger
  • Senior Mitglied
  • ****
  • Beiträge: 286
  • Geschlecht: Männlich
  • Super dieses Forum!!!
    • Mein Hobby...
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #12 am: 22.09.04 - 16:33:02 »
Hallo Bille,

was hälst du davon, die Statusänderung in einer ANSICHTSaktion durchzuführen?

Du könntest 2 Ansichtsaktionen erstellen

1. "Öffnen und Auftrag bearbeiten"
Hier wird der Status automat. geändert und das Dokument im Lesemodus geöffnet --> Sachbearbeiter sieht Status "in Bearbeitung"

2. "Öffnen OHNE Bearbeitung"
Hier wird das Auftragsdokument lediglich geöffnet, der Status wird NICHT geändert!

Die Sachbearbeiter müssten halt angewiesen / gezwungen werden, die Dokumente über die entspr. Aktionsbuttons zu öffnen  ;)

Gruß
Armin

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #13 am: 22.09.04 - 18:14:44 »
Hi,

das halte ich zu fehlerträchtig (Fehlerquelle Mensch).


Ich hab folgende Idee.

In der Aktion, in der der Status geändert werden soll, wird eine INI-Variable gesetzt, dann das Dokument geändert und anschliessend die INI-Variable wieder gelöscht.

Im PostOpen- und QueryModeChange-Event wird dann abgefragt, ist die INI-Variable gesetzt, dann lässt man die Änderung zu. Ist die Variable nicht vorhanden, dann greift die Prüfung des Status-Feldes und ein Editieren zuzulassen oder nicht.

Wie gesagt, ist nur 'ne Idee. Ob's funktioniert und welche Seiteneffekte die Lösung hat kann ich im Moment nicht sagen.


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #14 am: 22.09.04 - 18:22:21 »
Armin, Axel: Beides sind gangbare Wege. Bille sollte darüber nachdenken.

Armins Vorschlag: Es kann (!) gut sein, dass Sybille genau das vermeiden will, weil in der Ansicht nicht alle Infos stehen und daher auch mal das falsche Dokument auf "in Bearbeitung" gesetzt wird.

Axel's Vorschlag: INI-Variablen setzen, selbige wieder löschen (wegen "Ordnung und Sauberkeit im Schlachthof") - ich weiss nicht. Ein NotesUIDocument.Close und ein erneutes Öffnen sollten nicht komplizierter sein ...

Sybille: Es ist leider so, dass der ganze FrontEnd-bezogene Trödel nur funktioniert, wenn das ebendort geöffnete Dokument auch im EditMode ist. Immerhin vollziehen ja die FrontEnd-Methoden auch das nach, was genauso im Client passieren würde bzw. passieren kann.

Eine Auswahl an Lösungsmöglichkeiten hast Du jetzt auf jeden Fall  ;)

Bernhard

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #15 am: 23.09.04 - 11:17:26 »
Hallo zusammen!

Da der Sachbearbeiter eine Mail mit DocLink erhält, befindet er sich bereits im jeweiligen Dokument.
Deswegen ist die Lösung über die Ansichtsänderung für mich nicht relevant.

Ich hab mich jetzt für das Schließen und erneute Öffnen entschieden.

Vielen Dank für Eure Tipps!
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Durri

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
Re:uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #16 am: 03.02.05 - 16:21:26 »
Hallo zusammen,
ich bin neu hier.
Ich habe das gleiche Problem mit dem Code im QueryModeChange gelöst:

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   Dim Sperre As String   
   Sperre = source.FieldGetText("Sperre")
   If Sperre = "ja" Then
      Success = Messagebox ("Das Dokument ist historisch, ausgebucht oder archiviert und kann nicht mehr bearbeitet werden!",0+64,"Fehler!")
      Continue = False
   Else
      Continue = True
   End If
End Sub


Aber die Thematik mit dem PostOpen steht noch, d.h. die Dokumente sind bearbeitbar, wenn ich sie über Strg-B aus der Ansicht heraus öffne.
Wie kann der Code, den ich im PostOpen brauche aussehen, wenn ich die Bearbeitungsmöglichkeit zum Beispiel vom Feld Sperre="ja" abhängig machen muss.
Leider bin ich in Script nicht so firm.

Michael


Du brauchst auch noch Code im PostOpen, sonst kann man direkt aus der Ansicht das Dokument im EditMode öffnen (Strg-B zum Beispiel).

Um das Schliessen und wieder Öffnen wirst Du leider nicht umhinkommen ...

Bernhard
« Letzte Änderung: 03.02.05 - 16:27:23 von Durri »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #17 am: 03.02.05 - 16:39:51 »
Zunächst mal musst Du im QMC noch ein If EditMode = False vor das Continue = False setzen.

Im PostOpen musst Du auf Deine Bedingung prüfen und auf Source.EditMode = True:
If Source.EditMode = True And Source.Document.Sperre (0) = "Ja" then
    Source.EditMode = False
Das triggert dann wiederum das QMC-Event, wo dann Dein Code zuschlägt.

HTH,
Bernhard


Offline Durri

  • Frischling
  • *
  • Beiträge: 18
  • Geschlecht: Männlich
Re: uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #18 am: 03.02.05 - 17:43:26 »
Hallo Bernhard,
danke Dir, das war's.

special thanks
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: uiDoc ohne Bearbeitunsmodus aktualisieren
« Antwort #19 am: 03.02.05 - 17:50:12 »
Gern geschehen - und herzlich willkommen im Forum !

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz