Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: schwaste am 12.11.03 - 16:22:00

Titel: Emmbedded View aktualisieren
Beitrag von: schwaste am 12.11.03 - 16:22:00
Hallo zusammen,

ich hab ein Problem... schon wieder.

zuerst zur Ausgangslage: Ich habe eine Maske, in der ist eine EmbeddedView eingebaut. Diese EmbeddedView enthält verschiedene Dokumente.
Nun suche ich eine Möglichkeit, wenn ich zum Beispiel einen aktualisieren knopf drücke, dass sich die Dokumente kurz öffnen, editieren, speichern und wieder schliessen, also sowas ähnliches wie "toolsrefreshalldocs".
Es geht aber nicht mit der @Formel, dieses muss in LotusScript sein.
Wie stell ich das an?

Für Antworten bin ich wie immer super dankbar.


Gruß Steffen
Titel: Re:Emmbedded View aktualisieren
Beitrag von: ata am 12.11.03 - 16:24:46
... geht es um die Aktualisierung der eingebetteten View, oder um eine Neuberechnung aller Dokumente in der Ansicht?

ata
Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 12.11.03 - 18:51:37
Hi,

ich vermute mal es geht um die Aktualisierung der Dokumente, die in der eingebetteten Ansicht angezeigt werden. Das ist nicht ganz so trivial wie es sich vielleicht anhört, denn einfach die Dokumente in der Ansicht markieren und einen Button drücken, ist nicht. Du hast kein Zugriff auf die markierten Dokumente einer eingebetteten Ansicht.

Du musst dir die Dokumente anders besorgen, z.B. über eine Suche mit der Methode Search aus der NotesDatabase-Klasse. Damit hast du die entsprechenden Dokumente in einer Collection und kannst die Dokumente der Reihe nach abarbeiten.

Allerdings gibt es in Script keine 100% funktionierende Lösung für die Formelbefehle "ToolsRefreshAllDocs" bzw. "ToolsRefreshSelectedDocs". Du kannst es mal mit der Methode ComputeWithForm aus der Klasse NotesDocument versuchen. Allerdings werden meines Wissens hier keine berechneten Felder aktualisiert.

Die andere Möglichkeit, die hab ich mal probiert, ist die Dokumente aus der Collection in einer Schleife mit Frontend-Befehlen zu öffnen, zu speichern und wieder zu schliessen. Haken bei dieser Lösung ist, der Client schmiert irgendwann ab. Das Problem hab ich hier im Forum auch noch von anderen Usern gehört.

Erkläre mal, was du genau machen willst. Vielleicht gibt es einen anderen Weg.

Axel
Titel: Re:Emmbedded View aktualisieren
Beitrag von: schwaste am 13.11.03 - 09:37:30
Hallo,

so, ich erklär nochmal, was ich genau will.
Ich bastel an einer Art CallTrackingSystem, d.h. der Kunde gibt sein Problem in einen Call, eine bestimmte Maske, ein und wir bearbeiten das Problem. Der Call erhält eine Call-ID, die eindeutig ist. Nun gibt es zu jedem Call FolgeDokumente wie Rückfragen, Antworten usw. Diese Folgedokumente haben eine andere Maske und sind dann als eingebettete Ansicht im Hauptdokument verfügbar, und zwar in der Reihenfolge, in der sie erstellt werde.
Das Problem ist nun, das die Sortierung oft nicht stimmt und ich dieses Problem nur dadurch lösen kann, dass ich die Dokumente kurz öffne, irgendwas editiere und dann wieder speichere. Dies will ich aber nicht bei jedem Dokument einzeln machen, sondern per Knopdruck bei allen, die in der embedded View vorhanden sind, und zwar aus dem Hauptdokument heraus. Und das ganze muss noch in Lotusscript sein, weil der aktualisieren knopf auch noch andere sachen berechnet, daher kann ich das toolsrefreshdocs nicht nehmen.

Ich hoffe auf Antworten, bitte bitte bitte...

Gruß Schwaste
Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 13.11.03 - 09:44:15
Hi,

was verstehst du denn unter "irgendwas editieren" ?

Axel





Titel: Re:Emmbedded View aktualisieren
Beitrag von: ata am 13.11.03 - 09:49:05
... wenn du es über die eingebettete Ansicht machen willst wird das Handling umständlich. Man kann auf Dokumente daraus zugreifen - ich habe das mal in einer Demo exerziert...

... du findest sie auf meiner Homepage unter

http://www.anton-tauscher.de/download/DynView.nsf (http://www.anton-tauscher.de/download/DynView.nsf)

... ich würde dir allerdings empfehlen es über eine Picklist zu machen. Der Weg ist einfacher und schneller realisierbar...

ata

Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 13.11.03 - 10:05:58

... ich würde dir allerdings empfehlen es über eine Picklist zu machen. Der Weg ist einfacher und schneller realisierbar...


Hi,

ich glaube nicht, dass es das ist was er will. Meine Vermutung geht dahin, dass es einen Button geben soll. Da klickt man dann drauf und dann sollen alle Dokumente der eingebetteten Ansicht aktualisiert werden.

Meines Erachtes geht das am einfachsten über ein Search nach dem entsprechenden Kriterium. Das sollte bei einer embedded view ja vorhanden sein. Dann hat man alle Dokumente in einer Collection.

Das Problem wird in der geforderten Aktualisierung liegen. An so einem Problem bin ich schon mal gescheitert.


Axel
 
Titel: Re:Emmbedded View aktualisieren
Beitrag von: schwaste am 13.11.03 - 10:06:54
@Axel


ich muss nur z.B. ein Leerzeichen irgendwo einfügen und dann speichern, dann tuts

@ata

kannst du mir das mal erklären wie das im script aussieht mit den picklisten?
Titel: Re:Emmbedded View aktualisieren
Beitrag von: ata am 13.11.03 - 10:19:04
... 2 Möglichkeiten

PickList => gibt es über NotesUIWorkspace oder über Formel
... mehr dazu in der Hilfe, da sind brauchbare Beispiele drin...

oder per LS über die Ansicht, die du bereits verwendest und dann in eine NotesDocumentCollection mit view.GetAllDocumentsByKey( "der Schlüssel des Kunden" , True )
... dann hast du alle Dokumente des Kunden

ata
Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 13.11.03 - 10:19:04
Hi,

wie willst du denn das automatisieren?


Das mit der Picklist ist eigentlich ganz einfach. Du nimmst als Ansicht für die Picklist die gleiche Ansicht wie für die eingebettete Ansicht. Seit der Version 5 kannst du der Picklist-Funktion einen Parameter für eine Kategorie die angezeigt werden soll, übergeben. Du hast in der Picklist-Anzeige dann die gleiche Anzeige wie in der eingebetteten Ansicht. Die PicklistCollection liefert dir dann eine Collection mit allen ausgewählten Dokumenten. In der Designer-Hilfe findest du weitere Infos zu PicklistCollection.

Axel
Titel: Re:Emmbedded View aktualisieren
Beitrag von: ata am 13.11.03 - 10:29:25
@Axel

... zeitgleiche Antwort - aber hoppala

ata  ;D
Titel: Re:Emmbedded View aktualisieren
Beitrag von: schwaste am 13.11.03 - 11:31:16
Hallo


vielen Dank für die Antworten, ich hoffe ich kann mir da was zusammenschustern.

Gruß Schwaste
Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 13.11.03 - 12:32:58
Hi,

versuch's mal mit ComputeWithForm. Ich kann dir aber nicht versprechen ob's funktioniert.

Könnte ansatzweise so aussehen

Dim ws As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Dim doc as NotesDocument

...
Set collection = ws.PickListCollection(...

Set doc = collection.GetFirstDocument
While Not (doc Is Nothing)
  Call doc.ComputeWithForm(True, True)
  Call doc.Save(True,False)
  Set doc = collection.GetNextDocument(doc)
Wend
...
 
Wie gesagt, ob's funktioniert musst du testen. Im Backend bist du in dieser Beziehung etwas aufgeschmissen. Es gibt keine richtige Funktion zum Aktualisieren.

Die einzigste richtige Methode um ein Dokument zu aktualisieren ist die Frontend-Methode Refesh (aus NotesUIDocument). Dazu muss das Dokument aber im Edit-Modus geöffnet sein. Das automatisiert zu machen bringt nach einigen Dokumenten den Client zum Absturz.


Axel
Titel: Re:Emmbedded View aktualisieren
Beitrag von: schwaste am 13.11.03 - 12:52:46
Hi axel,

das computewithforms berechnet berechnete felder nicht neu, das ist das problem dabei, daher gehts net so, ausserdem läufts im backend irgendwie net so richtig...

gruß Schwaste
Titel: Re:Emmbedded View aktualisieren
Beitrag von: Axel am 13.11.03 - 13:11:31
Hi,

das war mir fast klar. Ich stand vor einiger Zeit vor dem gleichen Problem.

Ich habe dafür auch keine passende Lösung gefunden. Zum Schluß habe ich es manuell gemacht, jedes Dokument geöffnet, neu berechnet, gespeichert und wieder geschlossen. War Gott sei Dank nur eine Datenübernahme und nicht so viele Dokumente.

Leider fällt mir hierzu nichts mehr passendes ein.  :'(


Axel