Autor Thema: Parameter bei ws.EditDocument  (Gelesen 2414 mal)

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Parameter bei ws.EditDocument
« am: 30.07.06 - 14:23:44 »
Hallo!

Ich möchte abhängig von einem bestimmten Feldwert das Editieren von Dokumenten verhindern. Der Feldwert wird zuvor durch eine Änderung im Backend gesetzt.
Im Event "QueryModeChange" wird diese Änderung jedoch nicht gleich, sondern erst beim erneuten Öffnen des Dokumentes erkannt.

Ich hab also exakt das gleiche Problem wie Jerome in diesem Thread hier:
http://atnotes.de/index.php?topic=27666.0

Lt. Designer-Hilfe sollte mit
Call ws.Editdocument (True, doc,,,, False)
das Dokument im Edit-Mode ohne neues Fenster geöffnet werden.

Leider ist das bei mir nicht der Fall. Es wird zwar kein neues Fenster geöffnet, das Dokument ist aber leider nicht im Edit-Mode.

Stimmt evtl. ein Parameter nicht?

Gruß
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Parameter bei ws.EditDocument
« Antwort #1 am: 31.07.06 - 13:32:27 »
Soweit ich das sehe, sind die Parameter in Ordnung. Ich denke mal in irgendeinem Masken - Event wird der Edit - Modus wieder zurückgesetzt.


Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Parameter bei ws.EditDocument
« Antwort #2 am: 01.08.06 - 08:28:20 »
Ich hab jetzt nochmal geguckt, finde aber nirgends den Fehler.
Hier mein Code, der das Dokument in den Bearbeitungsmodus setzen soll:
Code
...
		doc.EditFlag = "1"
		Call doc.Save(True, True)
		Call ws.Editdocument (True, doc,,,, False)
...

Masken-Events:
Code
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
	If Not Isnewdoc Then  
		If Source.Document.EditFlag(0) = "0" And Mode Then
			Messagebox "Ein nachträgliches Verändern des Dokuments ist nicht möglich!!!", 48, "FEHLER"
			Continue = False
		End If
	End If	
End Sub

Code
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
	If Source.Document.EditFlag(0) = "0" Then
		Messagebox "Ein nachträgliches Verändern des Dokuments ist nicht möglich!" , 48, "FEHLER"
		Continue = False
	End If
End Sub

Code
Sub Postmodechange(Source As Notesuidocument)
	Call Source.Fieldsettext("SaveFlag","0")
End Sub

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	If source.fieldgettext("SaveFlag") = "0" Then
		Continue = False
		Msgbox "Bitte Dokument über Button speichern. Danke!", 64, "Hinweis zum Speichern"
	End If
End Sub

Weiß jemand einen Rat?

Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Parameter bei ws.EditDocument
« Antwort #3 am: 01.08.06 - 09:30:51 »
Das scheint ein Cache-Problem zu sein. Was soll denn das werden? Vielleicht gibt's noch einen anderen Weg.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

klaussal

  • Gast
Re: Parameter bei ws.EditDocument
« Antwort #4 am: 01.08.06 - 09:37:08 »
Vielleicht hilft auch ein reload des Dokuments.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Parameter bei ws.EditDocument
« Antwort #5 am: 01.08.06 - 09:42:44 »
Vielleicht hilft auch ein reload des Dokuments.

Yoo, habe ich auch erst gedacht, geht aber nicht.  Denn dazu muss das Dokument im Edit-Modus sein und das ist es zu diesem Zeitpunkt nicht.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

klaussal

  • Gast
Re: Parameter bei ws.EditDocument
« Antwort #6 am: 01.08.06 - 09:48:11 »
Zitat
Ich möchte abhängig von einem bestimmten Feldwert das Editieren von Dokumenten verhindern. Der Feldwert wird zuvor durch eine Änderung im Backend gesetzt.

Oder wird da was im Backend gemacht und das Frontend hat die Änderung nicht mitbekommen ?

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Parameter bei ws.EditDocument
« Antwort #7 am: 01.08.06 - 09:55:12 »
Richtig, Reload funktioniert hier leider nicht.

Also, das ganze hat folgenden Hintergrund:

Es werden Dokumente erstellt, die nach dem Speichern nicht mehr geändert werden dürfen. (Es wird nicht mit Autorenfeldern gearbeitet.)
Die Überprüfung erfolgt hier anhand des Feldes "EditFlag", das standardmäßig auf "0" gesetzt ist.
In einem weiteren Schritt soll es nun möglich sein, bestehende Dokumente in eine Historie zu verschieben und eine zuvor erstellte Kopie davon wieder zu bearbeiten.

Code
 ...
Set historydoc = doc.CopyToDatabase( db)
historydoc.History =  "1"
historydoc.Stat = "erledigt"
Call historydoc.Save(True,True)
		
doc.EditFlag = "1"
Call doc.Save(True, True)
		
Call ws.Editdocument (True, doc,,,, False)

Ja Klaus, die Änderung findet im Backend statt. Aber lt. dem og. Thread sollte das Problem doch mit dem Parameter von ws.EditDocument der unter R6 neu ist, doch funktionieren. Oder hab ich das falsch gelesen?

Bille




Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Parameter bei ws.EditDocument
« Antwort #8 am: 01.08.06 - 10:04:12 »
Der Code steckt mit Sicherheit als Aktion in der Maske. Gehe ich richtig in der Annahme?

Somit bekommt das Frontend die Änderung im Backend nicht mit, erst nach erneutem Öffnen.

Wenn du den Code in eine Aktion innerhalb der Ansicht packst und soweit abänderst, dass du Zugriff auf das markierte Dokument bekommst, dann sollte das gehen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Parameter bei ws.EditDocument
« Antwort #9 am: 01.08.06 - 11:09:10 »
Hallo Axel,

mit der Annahme, dass der Code in einer Maskenaktion steckt, liegst Du völlig richtig.

Nachdem das Bearbeiten (und Verschieben in die Historie) aber vom Ablauf her aus einem geöffneten Dokument passiert, gehe ich lieber den anderen Weg und benutze ws.EditDocument so wie in R5. Ich schließe also das alte uidoc und lasse das neue in einem neuen Fenster erstellen.

Danke für Eure Hinweise und Tipps!
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Parameter bei ws.EditDocument
« Antwort #10 am: 01.08.06 - 22:37:32 »
Ist dein Code, mit dem du das Feld EDITFLAG im Backend mit "1" befüllst, so kompliziert, daß es SCRIPT sein muß ? Wenn du in eine Aktion einfach

FIELD EDITFLAG:="1"
@Command([EditDocument];"1")

setzst, greifen deine Steuerungen nämlich durchaus, weil du nur im Frontend arbeitest. Und hinterher (nach ABlauf der Aktion) setzst du es wieder auf "0".
Situs vilate in isse tabernit.

Offline Bille

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Weiblich
  • Ich kam, sah und ... staunte!
Re: Parameter bei ws.EditDocument
« Antwort #11 am: 02.08.06 - 08:57:40 »
Nein, kompliziert ist der Code nicht (siehe Post#7). Da ich aber alle anderen Dinge, die diese  Maske betreffen, auch in Script geschrieben habe, werde ich dabei bleiben.
Die Lösung, das alte uidoc zu schließen und neu zu öffnen, ist ja kein Problem. Ich wollte nur sicher gehen, dass ich keinen Fehler bei der Verwendung der Parameter von ws.EditDocument gemacht habe.

Gruß
Bille
Experience is the name
everyone gives to his mistakes.
                                             (Oscar Wilde)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz