Autor Thema: Rahmengrupen-Manager IGNORE Rückgabecode  (Gelesen 3111 mal)

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Rahmengrupen-Manager IGNORE Rückgabecode
« am: 22.10.06 - 18:10:21 »
Hallo Forum !

Die im Thema gezeigte Meldung erscheint bei folgendem Code. Das ganze ist als Aktion in einer Maske drin.

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If Not uidoc.ModifiedSinceSaved Then
   If ws.prompt(PROMPT_YESNO,"Original und Kopie sind gleich !","Kopie trotzdem speichern?") Then
      Call uidoc.save
      Call uidoc.close
      Goto ende
   Else
      If ws.prompt(PROMPT_YESNO,"Kopie !","Möchten Sie die Kopie korrigieren?") Then
         Exit Sub
      Else
         uidoc.editmode = False  *
         Call uidoc.deletedocument  *
      End If
End If
Else
Call uidoc.save
Call uidoc.close
End If
ende:

Die Meldung erscheint im mit * gekennzeichneten Zweig.
Sowas schon mal gesehen ? Sagt mir irgendwie garnix die Meldung.

Falls jemeand einen Tipp hat, der ist jederzeit willkommen.

Gruß RK
« Letzte Änderung: 25.10.06 - 21:54:38 von RKuehle »

Driri

  • Gast
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #1 am: 23.10.06 - 08:45:06 »
Wird das Dokument in einem Frameset geöffnet ? Klingt ein wenig nach einem Fokusproblem, versuch doch mal vorher mit SetTargetFrame den Fokus sauber zu setzen.

Glombi

  • Gast
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #2 am: 23.10.06 - 08:57:52 »
In der Hilfe steht:

Marks the current document for deletion and closes it. The NotesUIDocument object is no longer available once you call this method.

D.h. das UI-Dok. wird automatisch geschlossen.

Also am besten mal so versuchen:
 Call uidoc.deletedocument 
Exit Sub               'Abbruch, da Dokument automatisch geschlossen wird.


Andreas

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #3 am: 24.10.06 - 21:22:37 »
Hallo Leutz !

Hat alles irgendwie nicht so gefunzt.
Gibt auch recht wenig Aussagen dazu (kommt wohl selten vor).

Einen Hinweis gibt's hier:

http://searchdomino.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid4_gci882739_tax289239,00.html

(Sind Links eigentlich im Forum erlaubt oder eher verpönt   :-: ?

Was haltet ihr davon ?

Gruß RK



Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #4 am: 24.10.06 - 22:46:55 »
Hat alles irgendwie nicht so gefunzt.

Was ist "funzen"? Andere Frage: Was funktioniert denn nun nicht wo? Wie äussert sich das? Was wiederspricht dem, was Andreas geschrieben hat?

Es gibt durchaus Threads, bei denen ich dann wirklich darüber nachdenke, warum ich mich hier im Forum uneigennützig um andere bemühe ... Nicht umbedingt dieser hier, aber ...

Bernhard

Glombi

  • Gast
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #5 am: 25.10.06 - 07:48:46 »
Hast Du in den Maskeneigenschaften den Rahmen definiert?

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #6 am: 25.10.06 - 08:50:49 »
@Bernhard

"funzt nicht" -> geht nicht, bringt nicht den erhofften Erfolg
Die Berliner haben manchmal eine komische Aussprache , ich weis.

Okay zum Thema / Worum gehts eigentlich:
- Ein typisches Frameset mit Navigator (links), Anzahl Einträge einer View(rechts oben) und der View selbst (rechts unten) ist geöffnet.
- Dokument wird in der View geöffnet
- In der Maske des Dokuments gibts einen Button mit dem eine Kopie des Dokuments erzeugt wird.
- dabei wird die Kopie erstmal gespeichert und dann in Editmode gesetzt.
- Die Kopie benutzt eine andere Maske, da hier die Aktion zum Speichern über modifiedsincesaved prüft ob Änderungen gemacht wurden. (Soll verhindern,dass "echte", unveränderte Kopien gespeichert werden)
- Wenn nicht geändert wurde sollte die Kopie per deletedocument gelöscht werden
Stand:
- Der Frame in dem sich die View befindet hatte keinen Namen (habe ich wohl geschludert  ??? ) . Ist jetzt korrigiert, targetframe wird jetzt gesetzt.
- Erfolg: Die og. Meldung erscheint zwar nicht mehr, aber das Dokument bleibt im Frontend offen , im Windowtitle steht "(Gelöscht)....", in der View ist das Dokument als gelöscht markiert und es erscheint eine Fehlermeldung
"Document command not avaiable" (editmode ist definitiv auf false gesetzt)
- Exit Sub blieb ohne erkennbare Änderung

Inzwischen überlege ich die Löschung über einen Agenten zu machen, wie in dem og. Link empfohlen. Ödet mich zwar an, da man dazu erst wieder ein Dokument erzeugen muss um die NoteID an den Agenten zu übergeben  :-X.

Dazu noch eine allgemeinere Frage :
Weis jemand ob es generelle Unterschiede zwischen den Methoden run und runonserver in der Agent class bzgl. Kommunikationsaufwand  Client-Server gibt ? An dem ganzen Teil sollen bis zu 20 Nutzer parallel über eine recht dünne Anbindung (2 bis 6 MBit) arbeiten, da sollte man ja möglichst Traffic vermeiden.

So, das ist der Stand der Dinge. Bei neuen Erkenntnissen zum Thema melde ich mich wieder.

Bis die Tage !

Gruß RK

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #7 am: 25.10.06 - 18:27:19 »
Hallo Forum !

Ich habe das Problem lösen können. Letztlich musste wirklich ein Agent herhalten.

Hier der Code:

Button:

If Not uidoc.ModifiedSinceSaved Then
      If ws.prompt(PROMPT_YESNO,"Original und Kopie sind gleich !","Kopie trotzdem speichern?") Then
         Goto sichern
      Else
         If ws.prompt(PROMPT_YESNO,"Kopie !","Möchten Sie die Kopie korrigieren?") Then
            Goto ende
         Else
            xuniversalid=uidoc.document.universalid  <- Unid der aktuell geöffneten Kopie die in diesem Zweig gelöscht werden soll
            Call uidoc.close
            Set doc = New notesdocument(db)  <- Parameterdokument des Agenten
            doc.xuniversalid=xuniversalid <- Unid in das Dokument für den Agenten
            Call doc.save(True,False)
            Set a=db.getagent("DelDoc")  <- Agent aufrufen, der die Kopie löscht
            Call a.runonserver(doc.NoteID)
            Set view =db.getview("Literatur")  <- View aktualisieren
            Call view.refresh
            Goto ende
         End If
      End If
   Else
      Goto sichern
   End If
sichern:
........bla bla verschiedene Aktionen zur Speicherung der Kopie
ende:
End Sub

Agent DelDoc / Manuell aus der Liste der Agenten / Alle Dokumente in der Datenbank

Sub initialize
   Dim s As New notessession   
   Dim a As notesagent
   Set a=s.currentagent
   Dim db As notesdatabase
   Dim doc As notesdocument <- Parameterdokument des Agenten
   Dim doc2 As notesdocument  <- Document welches gelöscht werden soll (die Kopie)
   Set db=s.currentdatabase
   Set doc=db.getdocumentbyid(a.parameterdocid)
   Set doc2=db.getdocumentbyunid(doc.xuniversalid(0))
   Call doc2.remove(True)  <- Kopie löschen
   Call doc.remove(True)  <- Parameterdokument löschen
End Sub

Vielleicht hilfts ja jemanden !

Grüße RK

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #8 am: 27.10.06 - 10:59:39 »
Und warum übergibst Du nicht direkt die NoteID des Dokuments, welches löschen willst?
call a.runonserver(uidoc.document.noteid) ?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline RKuehle

  • Junior Mitglied
  • **
  • Beiträge: 80
  • Geschlecht: Männlich
Re: Rahmengrupen-Manager IGNORE Rückgabecode
« Antwort #9 am: 27.10.06 - 17:50:49 »
@umi

Ich mache das alles nur durch lesen,lesen,lesen. Habe nie ein Training auf LS oder @Formula gehabt / bekommen (Arbeitgeber ist einfach zu geizig  :-: )
Also im Forum gelesen und da gabs die Frage nach dem Motto Parameterdokument erstellen und dem Agenten übergeben, der die Werte dann ausliest. Antwort war eindeutig ja.
Von daher habe ich's erstmal als einzige Lösung angenommen.
Deine Version würde wieder ein paar zeilen sparen. Ich probiers mal.
Danke für den Tipp.

grüße RK

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz