Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Designer am 01.07.05 - 17:04:17

Titel: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 17:04:17
Hallo!
hab eine response form mit felder und embedded views...
wenn ich die form öffne muss ich erst einmal F9 drücken um den inhalt der embedded views korrekt anzeigen zu lassen...
kann ich es irgendwie erzwingen das er nach öffnen nochmal die form refresht ohne irgendetwas drücken zu müssen?

vielen dank im voraus
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 17:09:47
Du öffnest frisch ein Dokument, und dann wird der Inhalt der embedded View nicht automatisch korrekt angezeigt?

Was steht denn in den Vieweigenschaften der eingebetten View im Propeller-Tab unter "Refresh" ?
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 17:20:32
die bedingung für die "Show Single Category" bezieht sich auf ein computed field was wohl ebenfalls in der response Form ist, das aber einen wert vom hauptdokument bezieht?
liegts vielleicht daran? muss bis jetzt auf jeden fall einmal F9 drücken,... find ich irgendwie unkomfortabel!

tut mir leid wenn die frage jetzt nen bissle doofi klingt, aber wo ist der propeller- Tab???
hab die englische version!   :)
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 17:26:59
Das ist der Propeller-Tab, auch genannt "Karlson auf dem Dach":  ;D
(http://www.atnotes.de/attachments/karlson.gif)

Das mit dem computed Feld könnte der Grund sein, aber berichte mal, was beim Propeller steht.
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 17:30:45
wenn ich auf die embedded view einmal klicke und dann unter properties ist kein propellerhaus vorhanden   :(
Titel: Re: automatisches refreshen
Beitrag von: koehlerbv am 01.07.05 - 17:33:13
Matthias meint die View, nicht deren Einbettung.

Ich bin aber überzeugt, dass die View an sich da keine Schuld trägt, sondern die Berechnungsreihenfolge beim Öffnen des Dokuments.

Gibt mal einem NotesUIWorkspace.ViewRefresh (was sich dann auf die Maske, nicht auf die View bezieht - diese Methode ist etwas missverständlich benannt) im PostOpen-Event der Maske eine Chance.

HTH,
Bernhard
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 17:36:08
hö???
 :-:
bin frischling   ;D
aber über die reihenfolge der fields kann ich sagen das alle erforderlichen fields vor der embedded view erscheinen
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 17:40:06
1. ich vermute auch, dass es eher an dem berechneten Feld liegt, nachdem Du gar nicht den Propeller-Tab kennst ;-)
2. was steht denn nun beim Propeller?
3. was heißt "hö???", d.h. was ist Dir noch nicht klar?
4. hat NotesUIWorkspace.ViewRefresh was gebracht?
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 17:48:57
Sub Postopen(Source As Notesuidocument)
   NotesUIWorkspace.ViewRefresh
End Sub

hab das im postopen- event reingeschrieben aber da zeigt er mir dann einen fehler an:
"Variant does not contain an objekt"???

Propeller: "Auto, after first use"

warum klappt das denn net?
   :-\
Titel: Re: automatisches refreshen
Beitrag von: koehlerbv am 01.07.05 - 17:50:20
Dazu befragst Du bitte die DesignerHelp, die auch entsprechende Beispiele liefert. Es wäre etwas aufwändig, wenn wir jedes Mal die Angaben der DesignerHelp hier nochmals posten müssten.

Bernhard
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 17:53:50
Jip.

Zum Propeller: "Auto, after first use" ist die Standardeinstellung, die View wird also refreshed beim öffnen des Dokumentes, sprich diese Einstellung ist OK und daran liegt es nicht.
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 18:20:07
Sub Postopen(Source As Notesuidocument)
   Dim workspace As New NotesUIWorkspace
   Call workspace.ViewRefresh
End Sub

klappt net    :-[
 ???
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 18:25:51
Ich glaube Du musst das NotesUIDocument refreshen.
Kann sein, dass Dir die Reihenfolge der Ausführung einen Streich dabei spielt, dies sollte aber in der Designerhilfe stehen.

Mach mal im Postopen:

Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = uiws.CurrentDocument
Call uidoc.Refresh

Problematisch hierbei ist aber (wie beim F9), dass Feldvalidierungen zuschlagen.
Titel: Re: automatisches refreshen
Beitrag von: koehlerbv am 01.07.05 - 18:32:05
Matthias, das funktioniert dann aber nur im EditMode ...

Ich habe eben mal die Situation prinzipiell nachgebaut: Kategorisierte Ansicht, Maske mit embedded view. Über der embedded view ein berechnetes Feld. Und beim Öffnen des Dokuments oder Erstellen eines neuen Dokuments bekomme ich die Ansicht mit Werten sofort angezeigt.

Vielleicht könnte Designer seine DB mal hier veröffentlichen, bevor wir weiter im Nebel stochern - dann wird des Pudels Kern bestimmt gleich zu entdecken sein.

Bernhard
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 18:38:19
Du hast komplett Recht, Bernhard.
Hab gerade eine bestehende DB von mir angesehen, da verhält es sich auch exakt so wie von Dir beschrieben.

@Designer: poste am besten mal Deine DB. Oder Du machst schnell eine neue mit 2 Masken, 2 Views und rekonstruierst das ganze, und hängst diese DB dann rein. Eine Lösung finden wir IMHO zu 99,9 %.
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 18:49:17
habe eine nachgebaut und da ist das gleiche Problem...
wie hänge ich denn eine DB hier rein?
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 18:50:41
Menü File / Attach

Ähm, nein  ;D

Klicke auf "Erweiterte Optionen" beim Nachricht schreiben, dort gibt es "Datei anhängen".
Titel: Re: automatisches refreshen
Beitrag von: Designer am 01.07.05 - 18:59:20
start über About This... - dann den button!
Titel: Re: automatisches refreshen
Beitrag von: TMC am 01.07.05 - 19:27:16
OK.

Vermutlich spielt Dir die Form-Eigenschaft "Formulas inherit values from selected document" einen Streich, und dieses Feld ist noch nicht gefüllt beim Berechnen der embedded View.
Zusätzlich handelt es sich um ein neues Dokument.

Mit uidoc.Refresh war ich schon richtig dran.

Unten der Code, mit dem es gehen sollte.


Sub Postopen(Source As Notesuidocument)
   
   On Error Goto ErrorHandler
   
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = uiws.CurrentDocument
   
   'Wir müssen hier refreshen, ansonsten wird bei einem neu erzeugten Response-Dokument
   'der Inhalt der eingebetteten View nicht angezeigt. Liegt wohl an der Ausführungsreihenfolge
   'der Codes. Tatsächlich ist wohl die Form-Eigenschaft "Formulas inherit values from selected document"
   'mit beteiligt.
   If uidoc.IsNewDoc Then   
      Call uidoc.Refresh
   End If
   
GoOut:
   Exit Sub
ErrorHandler:
   Msgbox "Fehler #" & Err & " — " & Error$ & " (Zeile: " & Erl & ")", 48, "Laufzeitfehler"
   Resume GoOut
End Sub