Autor Thema: Query Paste Event in einer View  (Gelesen 2565 mal)

Offline LisaS

  • Senior Mitglied
  • ****
  • Beiträge: 429
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
    • [WCM4U]
Query Paste Event in einer View
« am: 21.04.04 - 16:44:18 »
Hallo,
Ich habe ein Script welches im Query-Paste-Event in einer View ist.
Dieses Script funktioniert aber nur wenn ich die Dokumente vor dem kopieren mit einem Häkchen markiert habe.
Wenn ich nur den Curser auf einem Dokument habe und dann kopiere und ein füge bekomme ich keine dc -> Collection.
Frage: Was kann ich da tun?

Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim dctmp As NotesDocumentCollection
   Dim doc As NotesDocument
   
   Dim run_state As String
   Dim flag As Integer
   
   Set db = session.CurrentDatabase
   Set dc = source.Documents  'alle einzufügenen Dokumente
   Set doc = dc.GetFirstDocument()
   While Not(doc Is Nothing)
      If doc.HasItem("run_state") = True And _
      (doc.form(0) = "Timesheet" Or _
      doc.form(0) = "TimesheetSummery") Then
         run_state=doc.run_state(0)
         flag = run_state
         'Set TempDoc = doc
         If flag < 5 Then
            Set doc =dc.GetNextDocument(doc)
         Else
            continue = False
            Messagebox "Sie haben ein freigegebenes Dokument aus gewählt!", MB_OK, "Achtung"
            End
         End If        
      Else
         Set doc =dc.GetNextDocument(doc)
      End If
   Wend

Gruß
Hitcher
« Letzte Änderung: 19.05.04 - 15:54:16 von Hitcher »
Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Server Windows , Domino 8.5.2, Workstation Win 7, Client 8.5.2, Designer 8.5.2 Browser IE 9, Firefox

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Query Paste Event in einer View
« Antwort #1 am: 21.04.04 - 20:17:04 »
Set dc = source.Documents  'alle eingefügten Dokumente

Der Kommentar stimmt so nicht, denn es heißt ja Query und nicht Post.

Daher solltest Du den PostPaste - Event nehmen.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:Query Paste Event in einer View
« Antwort #2 am: 21.04.04 - 20:26:04 »
Gibt es im QueryPaste nicht bereits als Argument die Dokumente? Habe leider momentan keinen Designer...

Andreas

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Query Paste Event in einer View
« Antwort #3 am: 21.04.04 - 20:29:18 »
Nö, leider ned:

Code
Sub Querypaste(Source As Notesuiview, Continue As Variant)
Sub Postpaste(Source As Notesuiview)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline LisaS

  • Senior Mitglied
  • ****
  • Beiträge: 429
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
    • [WCM4U]
Re:Query Paste Event in einer View
« Antwort #4 am: 19.05.04 - 15:49:12 »
schieb nach oben  ::)

ich hab immer noch keine Idee wie das klappen könnte.
Postpaste könnte man benutzen und dann einfach das Dok löschen welches eingefügt wurde,
aber der Haken ist das die User keine Lösch-Berechtigung haben und somit diese Lösung auch flach fällt.
Vieleicht hat ja einer ne Idee.
Gruß
Hitcher
Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Server Windows , Domino 8.5.2, Workstation Win 7, Client 8.5.2, Designer 8.5.2 Browser IE 9, Firefox

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Query Paste Event in einer View
« Antwort #5 am: 19.05.04 - 16:18:58 »
ich sehe da einen kleinen Denkfehler.
Das Dokument, auf dem der Balken steht, ist ja nicht zwingenderweise das Dokument, das per 'Paste' eingefügt wird.
Insofern nützt ein Test an dieser Stelle (QueryPaste-Event) recht wenig. So seh ich das auf jeden Fall.

Ein Workaround (recht simpel und pragmatisch):
du nutzt das PostPaste-Event und checkst da die Dokumente.
Wenn ein schlechtes dabei ist, dann setzt du ein Flag in dem Dokument (geht natürlich nur, wenn die User Editorrechte haben)
Und dann baust du dir nen Agent, der die bösen Dokumente regelmäßig Teile löscht.
Und du passt die Ansichten entsprechend an, dass sie die bösen Dokumente nicht anzeigen.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Query Paste Event in einer View
« Antwort #6 am: 20.05.04 - 21:06:10 »
hast dus schonmal mit dem DocumentContext der NotesSession probiert, an das Dokument zu kommen? Kanns leider selber nicht ausprobieren...

Dim session As NotesSession
Dim docCurrent As NotesDocument

Dim session = New NotesSession
Set docCurrent = session.DocumentContext
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Query Paste Event in einer View
« Antwort #7 am: 20.05.04 - 21:13:20 »
Alternativ könntest Du das Script in einen Agenten auslagern.

Trigger: When documents are pasted
Der Agent wird gestartet, sobald ein Dokument in die Datenbank eingefügt wird.
Berechtigung: Dieser Agent ist ist client-basierend, d.h. der läuft mit der Berechtigung die der User hat, der ein Dokument einfügt.

Ich sitze gerade bei meinem Agent-Dokumention für BP, daher kam mir das jetzt in den Sinn.....

Gearbeitet habe ich mit diesem Trigger selber allerdings noch nie.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline LisaS

  • Senior Mitglied
  • ****
  • Beiträge: 429
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
    • [WCM4U]
Re:Query Paste Event in einer View
« Antwort #8 am: 24.05.04 - 09:20:37 »
Danke für die zahlreichen Antworten.
Ich hab das erstmal so gelöst, daß im Query-Paste dieser Agent läuft.
Es werden nur Dokumente eingefügt die markiert waren.

Sub Querypaste(Source As Notesuiview, Continue As Variant)
       Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim run_state As String
   Dim flag As Integer
   
   Set db = session.CurrentDatabase
   Set dc = source.Documents  'alle einzufügenen Dokumente
   'Dokumente müssen markiert sein
   If dc.Count = 0 Then
      continue = False
   End If      
   Set doc = dc.GetFirstDocument()
   
   While Not(doc Is Nothing)
      If doc.HasItem("run_state") = True And _
      (doc.form(0) = "Timesheet" Or _
      doc.form(0) = "TimesheetSummery") Then
         run_state=doc.run_state(0)
         flag = run_state
         If flag < 5 Then
            Set doc =dc.GetNextDocument(doc)
         Else
            continue = False
            Messagebox "Sie haben ein freigegebenes Dokument aus gewählt!", MB_OK, "Achtung"
            End
         End If         
      Else
         Set doc =dc.GetNextDocument(doc)
      End If
   Wend
End Sub

@Thomas:
DocumentContext funktioniert nicht.
Gruß
Hitcher
@TMC:
Trigger-Agent geht nicht da di User keine Löschrechte haben.

Gruß
Hitcher
Rechtschreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.
Server Windows , Domino 8.5.2, Workstation Win 7, Client 8.5.2, Designer 8.5.2 Browser IE 9, Firefox

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz