Autor Thema: Queryopen  (Gelesen 2400 mal)

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Queryopen
« am: 22.09.05 - 08:54:27 »
Hallo,
ich habe über Notes ein spezielles Diskussionsforum entwickelt. Nun wollte ich per LS unterbinden, dass bei einem geschlossenen Hauptthema noch eine Antworten erstellt werden kann. Leider bekomme ich bei der Erstellung einer Antwort kein "Source" im Queryopen geliefert. Hat jemand ein Tipp, wie ich das trotzdem vor dem Erstellen des Dokuments abfangen kann.

Quelltext:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   Dim db As NotesDatabase   
   Dim session As New NotesSession
   Dim doc As NotesDocument
   Dim parentdoc As NotesDocument
   Dim tmp
   
   
   Set db = session.CurrentDatabase
   
   Set doc = Source.Document  'aktuelles Antwortdokument
   Set parentdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) '
   
   tmp = parentdoc.GetItemValue("NG_Status" )   
   
   If Isnewdoc=True Then
      If  tmp(0) = "Aktuelles Thema" Then
         Continue = True
      Else
         Messagebox "Diese Diskussion ist geschlossen. Eine neue Antwort zu erstellen, ist nicht mehr möglich.",,"Abbruch"
         Continue = False
      End If
   End If
   
End Sub

Danke im voraus.

Gruß Kristian
"Notes kann alles außer Kaffee kochen!"

Driri

  • Gast
Re: Queryopen
« Antwort #1 am: 22.09.05 - 09:08:28 »
Zitat
Set doc = Source.Document  'aktuelles Antwortdokument

Das funktioniert nicht, wenn es ein neues Dokument ist, denn das NotesDocument ist erst nach dem Speichern verfügbar.

Eine Alternative, die mir spontan einfällt, wäre, in den Aktionen die Formel zu ändern. Ich vermute mal, Du hast in den Views/Forms eine Aktion mit @Command([Compose]).

Dann könntest Du dort einfach mit

@If(@Contains(NG_Status; "Aktuelles Thema"); @Command([Compose]; ""); @Return("Fehlermeldung"))

arbeiten.

Das ist allerdings keine 100%ige Sicherheit, denn jeder User, der sich z.B. ein SmartIcon bauen kann, kann das umgehen.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Queryopen
« Antwort #2 am: 22.09.05 - 09:53:20 »
Warum dann Query und nicht Postopen?
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Re: Queryopen
« Antwort #3 am: 22.09.05 - 11:01:00 »
@Driri
Das ist eine gute Idee. Da muss ich noch die Aktionen der Maske etwas anpassen und dann mit "Verstecken, wenn Formel war" die Maske ansich anpassen. Wäre auch eine Lösung.  :)

@Gandhi
Da bekomme ich mit gleichen Quelltext bei Set parentdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) die Fehlermeldung "Invalid universal id". Also ist das Dokument in diesem Stadium der DB auch noch nicht richtig bekannt.
Von der Sache her, brauche ich ja nur den Status oder die ID des übergeordneten Dokuments auf welches ich antworte und alles würde klappen. Das Hauptdokument muss doch beim öffnen des Antwortdokuments bekannt sein ($Ref oder so), sonst wäre es doch später auch nicht bekannt.  ???

Gruß Kristian
"Notes kann alles außer Kaffee kochen!"

Driri

  • Gast
Re: Queryopen
« Antwort #4 am: 22.09.05 - 11:32:00 »
Das kann auch im Postopen nicht funktionieren, da auch dann noch kein Document für das neue Antwortdokument existiert. Einziger Workaround wäre dann, man speichert das neue Dokument einmal, holt dich dann das Background-Document und prüft ab. Dann muß man natürlich ggf. nach der Prüfung das Background-Document wieder löschen.

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Re: Queryopen
« Antwort #5 am: 22.09.05 - 11:46:15 »
Sicherlich möglich aber da müsste ich zu viel bedenken (Validierungen, Subject-Namen, Views etc.). Ich gehe da lieber über die Aktionen und Formelsprache und blende den Rest aus, falls der User es doch über eine Icon-Schaltfläche versucht (was ich gerade mal unseren Admins zutrauen würde). Vielen Dank für eure Hilfe.  ;)

Gruß Kristian
"Notes kann alles außer Kaffee kochen!"

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz