Autor Thema: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus  (Gelesen 28849 mal)

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Hallo und noch eins  ;D ::) ::) :-X
Ein User ist im Lesemodus eines Dokuments.
Gleichzeitig ändert eine andere Person dieses Dok.

Jetzt benötige ich eine Art "Aktualisieren" Button.
Hab in der Hilfe folgendes gefunden:

Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Reload
   End If
End Sub

Die Reload Methode müßte doch normal funzen? Oder?
Viele Grüße
Gruß Jason

klaussal

  • Gast
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #1 am: 24.10.08 - 11:54:58 »
Das steht doch alles in der Hilfe:

Zitat
Refreshes the current document with any changes that have been made to the corresponding back-end document. Refreshing the current document updates its representation in memory, as well as visually on the workspace, to reflect the changes that have been made to the back-end document.

PS: Wie soll der User denn die Änderung mitbekommen ? Den blauen Kringel gibt's ja nicht.
« Letzte Änderung: 24.10.08 - 11:56:29 von klauss »

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #2 am: 24.10.08 - 12:00:25 »
Das steht doch alles in der Hilfe:

Zitat
Refreshes the current document with any changes that have been made to the corresponding back-end document. Refreshing the current document updates its representation in memory, as well as visually on the workspace, to reflect the changes that have been made to the back-end document.

PS: Wie soll der User denn die Änderung mitbekommen ? Den blauen Kringel gibt's ja nicht.

Ja das hab ich auch gelesen. Oder hab mit meinem Englisch was falsch verstanden?
Im Grunde: Das Dok wird refresht mit allen Änderungen die im Backend gemacht wurden.
Da der User ja die Änderung nicht mitbekommt, benötige ich ja einen Button/eine Aktion.

Gruß Jason

klaussal

  • Gast
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #3 am: 24.10.08 - 12:04:30 »
Aber woher soll der User denn wissen, ob und wann er den Knopf drücken soll ?

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #4 am: 24.10.08 - 12:08:13 »
Aber woher soll der User denn wissen, ob und wann er den Knopf drücken soll ?

Sagen wirs mal blöd ausgedrückt-> "Darüber mach ich mir keinen Kopf" da der Kunde diese Funktion halt so will.
Versteh es auch nicht  ::) ;)

Er geht morgens um 6:00 in das Dok und schaut z.B. um 10:00 nochmals rein.
Dann will er den Button um den aktuellsten Stand abrufen zu können.
Bisher geht er immer raus und dann wieder rein.

Gruß Jason

Glombi

  • Gast
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #5 am: 24.10.08 - 12:09:01 »
Wenn dann so:

Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
dim doc as NotesDocument
   Set uidoc = workspace.CurrentDocument
set doc = uidoc.Document
   If Not ( uidoc.IsNewDoc ) Then
call uidoc.Close
call ws.EditDocument(False,doc)
   End If
End Sub

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #6 am: 24.10.08 - 12:17:35 »
Wenn dann so:

Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
dim doc as NotesDocument
   Set uidoc = workspace.CurrentDocument
set doc = uidoc.Document
   If Not ( uidoc.IsNewDoc ) Then
call uidoc.Close
call ws.EditDocument(False,doc)
   End If
End Sub

Danke schon mal.
Hab jetzt nen Termin und darf dann ins WE.
Meld mich am Montag nochmal.
Euch ein schönes WE.
Gruß
Gruß Jason

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #7 am: 27.10.08 - 08:59:07 »
Sodala,
script läuft durch, aber es ändert nix.

Hab das entsprechende Dok geöffnet im Lesemodus.
Meine Kollegin ändert derweil einen Feldwert und speichert es ab.
Ich lass das Script drüberlaufen, aber der Feldwert ist immer noch der alte.
Benötige deshalb immer noch Eure hilfe bitte.
Mfg

Hier das Script:
Sub Click(Source As Button)
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Call workspace.EditDocument(False,doc)
   End If
End Sub
Gruß Jason

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #8 am: 27.10.08 - 11:32:30 »
UNID merken,
dann Set doc = db.GetDocumentByUNID

und dann dieses doc über ws.EditDocument öffnen

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #9 am: 27.10.08 - 13:43:06 »
UNID merken,
dann Set doc = db.GetDocumentByUNID

und dann dieses doc über ws.EditDocument öffnen

Dann muss ich aber in alle bestehenden Doks ein Feld mit der UNID einfügen oder?
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #10 am: 27.10.08 - 13:45:58 »
nein, einfach eine Stringvariable inerhalb des Scriptes damit belegen.

grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #11 am: 27.10.08 - 15:05:13 »
Sorry aber da komm ich nicht dahinter:

Sub Click(Source As Button)
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim unid As String
   Set doc = db.GetDocumentByUNID (unid )
   Set uidoc = workspace.CurrentDocument
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Call workspace.EditDocument(False,doc)
   End If
End Sub

Mir fehlt noch was, hab aber keinen Schimmer.
Kann mir bitte jemand helfen?
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #12 am: 27.10.08 - 15:15:11 »
Sub Click(Source As Button)
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim unid As String

'Set doc = db.GetDocumentByUNID (unid )
Set uidoc = workspace.CurrentDocument
unid = uidoc.document.universalID

If Not ( uidoc.IsNewDoc ) Then
Call uidoc.Close
Set doc = db.GetDocumentByUNID (unid )

Call workspace.EditDocument(False,doc)
End If
End Sub


oder so ähnlich



grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #13 am: 27.10.08 - 15:16:37 »
Sodala,
script läuft durch, aber es ändert nix.

Hab das entsprechende Dok geöffnet im Lesemodus.
Meine Kollegin ändert derweil einen Feldwert und speichert es ab.
Ich lass das Script drüberlaufen, aber der Feldwert ist immer noch der alte.
Benötige deshalb immer noch Eure hilfe bitte.
Es könnte natürlich auch sein, dass Kollege und Kollegin jeweils auf eigenen, lokalen Repliken der DB arbeiten. Und solange die nicht ausrepliziert haben, sieht der Kollege nicht die Änderungen der Kollegin.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #14 am: 27.10.08 - 15:51:58 »
Es könnte natürlich auch sein, dass Kollege und Kollegin jeweils auf eigenen, lokalen Repliken der DB arbeiten. Und solange die nicht ausrepliziert haben, sieht der Kollege nicht die Änderungen der Kollegin.

Ist definitiv nicht der Fall. Hab ich gleich am Anfang überprüft.

Bastle noch an dem Script vom DAU-in --> danke Dir schon mal für Deine Hilfe.

Momentan sind wir beim "Object variable not set".

Gruß
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #15 am: 27.10.08 - 16:39:11 »
dann solltest du das entsprechende Objekt setzen?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #16 am: 28.10.08 - 13:33:40 »
So hab jetzt folgendes Script:


Bei Set doc = db.GetDocumentByUNID (unid )
kommt der object variable not set.
Aber ist doch gesetzt. :-: :'(


Sub Click(Source As Button)
   Dim db As NotesDatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim unid As String
   
   Set uidoc = workspace.CurrentDocument
   unid = uidoc.document.universalID
   
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Set doc = db.GetDocumentByUNID (unid )
      
      Call workspace.EditDocument(False,doc)
   End If
End Sub

Macht es eigentlich einen Unterschied ob ich das Script in einer Ansichtsaktion laufen lass oder muss die Schaltfläche im Dok sein.

Mfg Jason
Gruß Jason

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #17 am: 28.10.08 - 13:39:46 »
Ich kann aber nirgendwo sehen, dass db gesetzt ist  ^-^ ..


Also noch die Datenbank db initialisieren. Dann sollte es gehen
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #18 am: 28.10.08 - 13:42:28 »
Und die Frage nach der Ansichtsaktion beantwortet die Hilfe:

Set notesUIDocument = notesUIWorkspace.CurrentDocument
Return value: notesUIDocument
Represents the current document. If there is no document currently open on the workspace, this method returns Nothing.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #19 am: 28.10.08 - 13:52:50 »
Ähmmmm ja  8) ::) die session und db.
Jetzt geändert und schon paßt es fast, nur dass ich jetzt "invalid universial id" bekomme.  :-: :-: :-:
Sub Click(Source As Button)
   Dim session As New notessession
   Dim db As notesdatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim unid As String
   
   Set db = session.currentdatabase
   Set doc = db.GetDocumentByUNID (unid )
   Set uidoc = workspace.CurrentDocument
   unid = uidoc.document.universalID
   
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Set doc = db.GetDocumentByUNID (unid )
      
      Call workspace.EditDocument(False,doc)
   End If
End Sub

Wegen meiner Frage:
Sorry mein Fehler.
Hab mich verschrieben. Meinte statt Ansichtaktion die Maskenaktion.
Aber das dürfte ja wieder gleich sein.
Gruß Jason

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz