Autor Thema: Postopen, Frontend und Backend  (Gelesen 8097 mal)

botschi

  • Gast
Postopen, Frontend und Backend
« am: 10.04.08 - 13:39:41 »
Hallo,

ich beziehe mich auf diesen Thread http://atnotes.de/index.php?topic=39840.0, den ich mal (erfolgreich) beendet habe.

Jetzt habe ich das gleiche Problem in einer anderen Anwendung. Ich bekomme nicht das Fenster "Möchten Sie speichern?"
Ich habs zwar so umgesetzt, wie damals, aber es will trotzdem nicht. Meine Vermutung ist, dass ich Frontend und Backend vermische oder nicht rechtzeitig (oder zu früh) das Frontend refreshe oder sowas.
Anbei mein Postopen, kann mir jemand sagen, warum ich die Frage nach dem Speichern nicht bekomme?
Danke!

Matthias


Code
Sub Postopen(Source As Notesuidocument)
	
'########
	' hier wird die globale Variable gvFrontendTicket gesetzt
	Dim s As New NotesSession
	Set gvFrontendTicket = source
	Set gvBackendTicket = gvFrontendTicket.Document
	Set gvDB = s.CurrentDatabase
'###
	' wird beim öffnen eines tickets gesetzt, wenn es noch kein schattendokument gibt
	If gvFrontendTicket.FieldGetText("copy") <> "" Then
		
		Set gvBackendTicket = gvFrontendTicket.Document
		Call gvFrontendTicket.FieldSetText("prioaufnehmender","")
		Call gvFrontendTicket.Refresh
		'Call gvFrontendTicket.Reload
	End If	
'##########################################
	
End Sub

Glombi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #1 am: 10.04.08 - 13:56:46 »
Das Dokument ist auch schon im Bearbeitenmodus wenn das Postopen läuft ?

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #2 am: 10.04.08 - 14:03:24 »
Ja, mein Button macht das
Code
Call ws.EditDocument(True, gvKopie)
'	' eindeutiges zeichen, dass das dok kopiert wurde
	gvKopie.copy = "ja"

Vielleicht nochmal zum Vorgehen:
Ich habe ein Dok mit einem Button (Code oben), der erzeugt eine Kopie mit der selben Maske, wie das Ausgangsdokument und öffnet die Kopie im Bearbeitungsmodus.
Kann es ne Maskeneigenschaft sein? Felder automatisch aktualisieren ist angehakt.

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen, Frontend und Backend
« Antwort #3 am: 10.04.08 - 14:06:16 »
Da Du das Dokument im Backend bereits erstellst, hat es im Frontend nicht mehr die Eigenschaft IsNewDoc. Du musst also eine Änderung vornehmen, damit NotesUIDocument.ModifiedSinceSaved True wird.
Im Prinzip läuft es also wieder auf Deinen anderen Thread hinaus.

Bernhard

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #4 am: 10.04.08 - 14:26:57 »
Ich hab doch aber mit
Call gvFrontendTicket.FieldSetText("prioaufnehmender","")
das Doc verändert  ???

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen, Frontend und Backend
« Antwort #5 am: 10.04.08 - 14:30:51 »
Da könnte der Leerstring und das Vorher = Nachher das Problem sein.

Bernhard

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #6 am: 10.04.08 - 14:44:30 »
Das wäre schön, ist es aber nicht  :)

Auch wenn ich das mache
      Call gvFrontendTicket.FieldSetText("prioaufnehmender","hfgfhgsda")
      Call gvFrontendTicket.FieldSetText("prioaufnehmender","")

werde ich nicht gefragt. Und "hfgfhgsda" steht garantiert vorher nicht im Feld  ;D

Matthias

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Postopen, Frontend und Backend
« Antwort #7 am: 10.04.08 - 15:05:42 »
Spricht was dagegen ein Save nachzuschieben? Dann werden die Anpassungen im Dokument gleich gespeichert.


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

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #8 am: 10.04.08 - 15:09:54 »
Meinst Du im Button ein Save nachschieben oder im Postopen?
Ich habe im Button mal ein Speichern gehabt, aber die Frage nach dem erneuten Speichern kam trotzdem nicht.
Generell ist das schon möglich, muss ich nur gut verkaufen. Eigentlich soll ein Dok gespeichert werden, wenn man speichern drückt... "Ich wollte das doch gar nicht speichern..."

Ist das Postopen für meinen Stunt nicht richtig?

Matthias

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Postopen, Frontend und Backend
« Antwort #9 am: 10.04.08 - 15:18:45 »
Meinst Du im Button ein Save nachschieben oder im Postopen?

Im Postopen.

Ich habe im Button mal ein Speichern gehabt, aber die Frage nach dem erneuten Speichern kam trotzdem nicht.

Wenn du schon gespeichert hast und keine weiteren Änderungen gemacht hast, dann kommt die Speicherabfrgae auch nicht mehr.

Ist das Postopen für meinen Stunt nicht richtig?

Ich denke ja. Wo anders sollte man das sonst geregelt bekommen.


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

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #10 am: 10.04.08 - 15:25:39 »
Das ist aktuelle mein Button
Code
	gvKopie.prioaufnehmender = ""
	' Kopie im neuen Tab bearbeitbar öffnen
	Call ws.EditDocument(True, gvKopie)
	' eindeutiges zeichen, dass das dok kopiert wurde
	gvKopie.copy = "ja"
	Call gvKopie.Save( True, True )	

Und das steht im Postopen
Code
Sub Postopen(Source As Notesuidocument)
	
'########
	' hier wird die globale Variable gvFrontendTicket gesetzt
	Dim s As New NotesSession
	Set gvFrontendTicket = source
	Set gvBackendTicket = gvFrontendTicket.Document
	Set gvDB = s.CurrentDatabase
'###
	' wird beim öffnen eines tickets gesetzt, wenn es noch kein schattendokument gibt
	If gvFrontendTicket.FieldGetText("copy") <> "" Then
		
		Call gvFrontendTicket.FieldSetText("prioaufnehmender","hfgfhgsda")
		'Call gvFrontendTicket.FieldSetText("prioaufnehmender","")
		Call gvFrontendTicket.Refresh
		'Call gvFrontendTicket.Reload
	End If	
'##########################################
	
End Sub

Mehr, als ein Feld im Frontend im Postopen ändern, kann ich nicht...

Matthias

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Postopen, Frontend und Backend
« Antwort #11 am: 10.04.08 - 15:39:31 »
Was passiert wenn du das Save im Buton weglässt?


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

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #12 am: 10.04.08 - 15:48:11 »
Nix, also macht keinen Unterschied.
Das Dok (die Kopie) wird dann halt gespeichert, aber es ändert nix an der Abfrage...

Matthias

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Postopen, Frontend und Backend
« Antwort #13 am: 11.04.08 - 07:37:35 »
... gibt es in der Maske eventuell ein Feld namens "SaveOptions" mit dem Wert "1" ?

Toni
Grüßle Toni :)

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #14 am: 11.04.08 - 09:00:22 »
Ja, aber wenn ich das leere, werde ich gar nicht mehr nach dem Speichern gefragt, auch wenn ich per Tastatur einen Wert ändere.
Langsam steige ich da nicht mehr durch...  ???

Matthias

NACHTRAG:
Wenn ich im Postopen explizit den Wert in SaveOptions auf "1" setze, werde ich nicht nach Speichern gefragt. Wenn ich den Wert per Hand auf "1" setze, werde ich gefragt. Irgendwie ist es Notes egal, dass ich per Script im Postopen Werte setze... Warum?!
« Letzte Änderung: 11.04.08 - 09:06:31 von botschi »

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Postopen, Frontend und Backend
« Antwort #15 am: 11.04.08 - 09:08:32 »
Hast du das Feld SaveOptions nur leer gemacht oder ganz gelöscht?

Du musst das Feld löschen. Bei einem leeren Feld bin ich mir nicht sicher, ob da Seiteneffekte auftreten können.


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

Glombi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #16 am: 11.04.08 - 09:12:04 »
In SaveOptions muss entweder 1 oder 0 stehen, nicht "1" oder "0". Das muss ein Zahlfeld sein.
In früheren Versionen war Notes da nicht so pingelig...

siehe
http://atnotes.de/index.php?topic=37220.0

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen, Frontend und Backend
« Antwort #17 am: 11.04.08 - 09:23:36 »
Hallo Andreas,

in allen Dokus, Beispielen, in der kBase etc. fordert Lotus Strings für die Belegung von SaveOptions & Co. Ich arbeite im Frontend-Operationen sehr viel mit SaveOptions - und verwende dort immer Strings. Und es funktioniert wie erwartet.
War das mit dem Datentyp Zahl nicht doch ein Bug in einer bestimmten 6er Version?

Bernhard

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #18 am: 11.04.08 - 09:29:33 »
Ich habe das Feld aus der Maske gelöscht UND im Postopen den Wert für SaveOptions im Backend auf 1 gesetzt.

Code
gvBackendTicket.SaveOptions = 1
			Call gvFrontendTicket.Reload
			Call gvFrontendTicket.Refresh	
			Call gvFrontendTicket.FieldSetText("prioaufnehmender","dasdasdas")

Jetzt werde ich wieder gar nicht mehr nach dem Speichern gefragt. Ich glaube, mit dem Stringwert hat es besser funktioniert...

Auch wenn ich es nicht gebacken bekomme, geht das was ich will überhaupt? Hat jemand vielleicht ein funktionierendes Beispiel, an dem ich mich orientieren kann? Ich brauch ja kein fertiges Hexenwerk...  :'(

Matthias

botschi

  • Gast
Re: Postopen, Frontend und Backend
« Antwort #19 am: 11.04.08 - 10:30:07 »
Auch mit einer ganz neuen DB bekomme ich es nicht gebacken. Meiner Meinung nach kann man das nicht so lösen- vielleicht mit einem ganz anderen Ansatz.

Ich hänge mal eine Test-DB an. Sie enthält 1 Dok und in der Maske 1 Button, der das Problem zeigt. Wenn jemand eine Lösung kennt, kann er sie hier posten.

Danke für die Hilfe!

Matthias

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz