Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wilhelm Weber am 30.10.09 - 15:00:03

Titel: Collection.count im Queryopen ?
Beitrag von: Wilhelm Weber am 30.10.09 - 15:00:03
Hallo zusammen,

ich möchte sicherstellen, dass beim erstellen eines Dokuments per Schaltfläche in einer Ansicht genau ein Dokument markiert sein muss, da in dem neu zu erstellenden Dokument Felder aus dem ausgewählten Dokument übernommen werden sollen.

Der Code im Queryopen der Maske ist bisher so...

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   Dim Session As New NotesSession
   Dim DB As NotesuiDatabase     
   Dim Doc As NotesDocument
   Dim DC As NotesDocumentCollection
   
   Set DB = Session.CurrentDatabase
   Set DC = DB.UnprocessedDocuments
   
   'Messagebox DC.Count
   
   If DC.Count = 1 Then
      continue = True
   Else
      Messagebox "Bitte nur ein Dokument markieren!", 64, "Hinweis"
      continue = False
   End If
End Sub

Schon die aukommenterte MSGBox zeigt immer eine 0 an auch wenn ich ein Dokument markiert habe ??

Grüße
Wilhelm

Titel: Re: Collection.count im Queryopen ?
Beitrag von: ascabg am 30.10.09 - 15:05:48
Hallo,

Geht das nicht besser mit

Code
uiview.Documents


Andreas
Titel: Re: Collection.count im Queryopen ?
Beitrag von: Axel am 30.10.09 - 15:08:47
Warum frägst du das nicht in der Aktion/Button/Agent ab mit der das neue Dokument erstellt wird?

Axel
Titel: Re: Collection.count im Queryopen ?
Beitrag von: Wilhelm Weber am 30.10.09 - 15:32:24
Hallo

das war mein erster Ansatz. Habe jetzt bemerkt, dass es nicht reicht in einer Kalenderansicht mit der Maus das Dokument zu markieren , sondern es muss mit der Space taste markiert werden um es auszuwählen.

Der folgende Code geht dadurch jetzt auch, aber wie kann ich es in script machen, dass das neue Dokument auch direkt geöffnet wird.

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim WorkSpace As New NotesUIWorkSpace
   Dim uiview As NotesUIView
   Dim Doc As NotesDocument
   Dim db As NotesDatabase      
   Dim DC As NotesDocumentCollection
   Set uiview = WorkSpace.CurrentView
   Set DC = uiview.Documents
   
   Messagebox DC.Count
   
   If DC.Count = 1 Then
      Set db = session.CurrentDatabase
      Set doc = db.CreateDocument
      doc.Form = "X"
   Else
      Messagebox "Bitte nur ein Dokument markieren!", 64, "Hinweis"
      continue = False
   End If
End Sub

Grüße
Wilhelm
Titel: Re: Collection.count im Queryopen ?
Beitrag von: ascabg am 30.10.09 - 15:37:16
Wenn du nur das Dokument haben moechtest, auf dem sich der Select-Balken gerade befindet, sollte dir doch

Code
set doc = db.GetDocumentByID(uiviw.CaretNoteID)

das gewuenschte Ergebnis liefern


Andreas
Titel: Re: Collection.count im Queryopen ?
Beitrag von: Wilhelm Weber am 30.10.09 - 15:51:23
das funktioniert auch, aber ich möchte dass das Dokument sich dann auch öffnet und editierbar ist ?

evaluate geht ja mit @command[compose] nicht
Titel: Re: Collection.count im Queryopen ?
Beitrag von: ascabg am 30.10.09 - 16:02:55
Code
Dim ses As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim uivw As NotesUIView
Dim uidoc As NotesUIDocument

Dim db As NotesDatabase
Dim doc As NotesDocument

'aktuelle View als UIView holen
Set uivw = uiws.CurrentView

'aktuelle Datenbank holen
Set db = ses.CurrentDatabase

'aktuelles Dokument holen
Set doc = uivw.CaretNoteID

'aktuelles Dokument zum Bearbeiten oeffnen
Set uidoc = uiws.EditDocument(True, doc)

Vielleicht hilft das ein wenig weiter.

Andreas
Titel: Re: Collection.count im Queryopen ?
Beitrag von: DAU-in am 30.10.09 - 16:04:00
NotesuiWorkspace Class

Methode : edit document

und dann das doc mitgeben
Titel: Re: Collection.count im Queryopen ?
Beitrag von: Wilhelm Weber am 30.10.09 - 16:17:24
das nützt aber ja auch nichts wenn ich durch die Aktion ein neues Dokument mit einer anderen Maske erstellen will, das lediglich einige felder üübernhemen soll.

Titel: Re: Collection.count im Queryopen ?
Beitrag von: Wilhelm Weber am 30.10.09 - 16:21:49
Code
Dim ses As New NotesSession
Dim uiws As New NotesUIWorkspace
Dim uivw As NotesUIView
Dim uidoc As NotesUIDocument

Dim db As NotesDatabase
Dim doc As NotesDocument

'aktuelle View als UIView holen
Set uivw = uiws.CurrentView

'aktuelle Datenbank holen
Set db = ses.CurrentDatabase

'aktuelles Dokument holen
Set doc = uivw.CaretNoteID

'aktuelles Dokument zum Bearbeiten oeffnen
Set uidoc = uiws.EditDocument(True, doc)

Vielleicht hilft das ein wenig weiter.

Andreas

Da läuft hier auf einen Fehler...

'aktuelles Dokument holen
Set doc = uivw.CaretNoteID