Sorry, mir sind einige Dinge dazwischen gekommen.<br />
Also, um die Sache mal abzurunden, hier nochmal der Hintergrund meines Vorhabens. Vielleicht lässt sich meine Vorstellung ja auch einfacher oder eleganter umsetzen. Ich möchte nicht, dass jemand einfach so Dokumente löschen kann. Daher habe ich das Löschen im Datenbankscript im querydocumentdelete per continue=false unterbunden. Stattdessen sollen die überflüssigen Dokumente per Feldänderung einen anderen Status bekommen und somit aus den Ansichten ausgeblendet werden. Also habe ich einen Agenten genommen, der eigentlich nichts anderes tut als den Inhalt eines Feldes zu ändern. Der Agent sollte per Aktion aufgerufen werden. Das hat auch bisher in allen anderen meinen Datenbanken so funktioniert. Nur jetzt mit der eingebetteten Ansicht nicht. <br />
<br />
Nun habe ich so ziemlich alle Möglichkeiten getestet:<br />
<ol>
<li>Ich habe das @setfield im Agenten belassen und den Agenten per Aktion aufgerufen, die Aktion war sowohl in der Ansicht als auch in der Maske/Seite definiert.</li>
<li>Ich habe das @setfield direkt in der Aktion aufgerufen, die Aktion war sowohl in der Ansicht als auch in der Maske/Seite definiert.</li>
<li>Diese Alternativen habe ich sowohl für die eingebettete Ansicht in Maske und Seite getestet.<br />
</li>
</ol>
Füge ich die Aktion stattdessen der eigentlich Maske hinzu, so dass sie nur bei einem geöffneten Dokument ausgeführt werden kann, funktioniert es. Aber so soll es ja nicht sein.<br />
Nun bin ich weiterhin ratlos und hoffe auf neue Ideen. Danke im Voraus!
Selektion und Summenbildung in Ansichten
- Jokeman
- Erledigt
-
-
Warum machst du das nicht einfach direkt im Database Script und setzt dort den Wert um ?
-
Weil ich absolut keine Ahnung von Script habe...
-
Dann solltest du das mal ändern
-
Naja, mal ändern ist leichter gesagt als getan. Vor allem hilft es mir nicht kurzfristig bei der Lösung meines Problems.
BTW: Vielleicht habe ich es bisher nur halbherzig versucht, aber gibt es tatsächlich kein vernünftiges Buch um sich Script-Grundlagen anzueignen?
-
Also wenn ich bei Amazon nach LotusScript suche finde ich gleich ne ganze Masse an Büchern zu dem Thema.
Also hast du wohl wirklich halbherzig bis gar nicht gesucht
-
Schade, dass Deine Antworten zu oft wenig hilfreich oder gar anmaßend sind. Ich stelle Deine Fachkompetenz nicht in Frage, aber aufgrund Deiner Sozialkompetenz hast Du den Job als Moderator sicher nicht.
Wenn ich Lotus Script bei Amazon eingebe, erhalte ich 71 Treffer. Bei der Beschränkung auf Bücher bleiben 31. Bei der Beschränkung auf mindestens drei Sterne bleiben 21. Davon haben 12 nichts mit Lotus zu tun, bleiben 9. Von den 9 sind vier zwar für Lotus, nicht aber für Lotus Script, bleiben fünf. Von den fünf sind drei 10 Jahre oder älter, bleiben genau zwei. Das eine ist 8 Jahre alt und nur noch gebraucht erhältlich, das andere zwar frisch, aber für rund 100 Euro nur mit drei Sternen bewertet. Aber Du hast Recht, eine Riesenauswahl.
Your turn.
-
Was ist daran bitte anmaßend ?
Es war doch dein eigener Kommentar den ich nur bestätigt habe.Und die 71 Treffer sind alles Bücher. Vielleicht solltest du nicht einfach mal die englischen ausklammern.
Und das in der IT nun mal oft die Dokumentationen in englisch ist, sollte dir ja wohl auch klar sein.Ob du überhaupt Sozialkompetenz besitzt maße ich mir nicht an zu beurteilen, genausowenig kannst du das beurteilen ohne mich persönlich zu kennen.
So eine Aussage ist nichts anderes als die beleidigte Reaktion auf eine Aussage, die dir nicht passt.Vielleicht solltest du das nächste Mal erst noch mal drüber nachdenken bevor du so etwas schreibst.
Und noch einen Kommentar zum Alter der Bücher: Bei Sprachen, die sich nicht mehr ständig weiterentwickeln sagt das Alter gar nichts über die Qualität aus.
Wenn ich heute eine alteingesessene Sprache wie z.B. C lernen will, dann können auch 10 Jahre alte Bücher eine sehr gute Literatur dazu sein. Teilweise sogar besser als die aktuelleren Bücher. -
zur Literatur:
Meiner persönlichen Meinung nach ist es nicht notwendig ein Buch zum Thema Lotus Script zu kaufen. Die Designer-Hilfe bietet alles was man braucht inkl. Beispiele.Was hast du derzeit im QueryDocumentDelete stehen?
Wahrscheinlich "Continue = False".Sortiere mal die Designerhilfe um, dann kannst du nach folgenden Begriffen suchen:
- UnprocessedDocuments ... in der Klasse NotesDatabase / gibt eine NotesDocumentCollection zurück
- GetFirstDoocuemnt / GetNextDocument ... in der Klasse NotesDocumentCollection / gibt ein NotesDocument zurück
- ein Feld kannst du recht einfach setzen. Angenommen dein NotesDocument-Object nennt sich doc, dann wird mit doc.LoeschFlag = "1" eine "1" in das Feld LoeschFlag geschrieben
- Save ... in der Klasse NotesDocumentWichtig ist Save, damit die Änderung im Dokument auf die Platte geschrieben wird.
Da du mit Script erst anfängst - bitte in einer Test-DB ausprobieren.
Gruß
Dirk -
Stimmt, da steht "Continue = False".
Zu den Tipps noch Fragen, damit ich das logisch nachvollziehen kann. Mit bildlicher Sprache kann ich das besser verstehen.
Wenn ich UnprocessedDocuments im Agenten verwende, der sich auf markierte Dokumente bezieht, werden damit die markierten Dokumente zur weiteren Bearbeitung in eine Kiste geworfen. GetFirstDocument zieht das erste Dokument wieder aus der Kiste heraus und wendet dann meine Befehl der Feldänderung darauf an. GetNextDocument nimmt dann halt das nächste Dokument. Am Ende wird alles gespeichert.Ich weiß allerdings ja nicht vorher, wie viele Dokumente ausgewählt wurden. Muss ich das nicht in eine Schleife setzen, bis alle Dokumente der Collection durch sind?
-
Schau doch mal in die DesignerHilfe zu den befehlen GetFirstDocument/GetNextDocument.
Da siehst du dann fast schon den ganzen benötigten Code blidlich vor dir -
UnprocessedDocuments gibt dir eine Collection mit allen markierten Dokumenten zurück.
CodeSet doc = dc.GetFirstDocument ' erstes Dokument aus der Collection holen' While Not doc is Nothing ' Schleife über alle Dokumente ' ... 'tu etwas mit dem Dokument' Set doc = dc.GetNextDocument(doc) ' nächstes Dokument aus der Collection holen' Wend
Schau dir bitte mal die Beispiele in der Designer-Hilfe an.Gruß
Dirk -
Damit kann ich etwas anfangen. Meine 7er-Hilfe hat hier bei GetFirstDocument ein anderes Beispiel, eben ohne Schleife:
CodeSet db = session.CurrentDatabase Set collection = db.FTSearch("Business", 10) Set doc = collection.GetFirstDocument If Not doc Is Nothing Then Call doc.CopyToDatabase(db2) End If
Bei GetNextDocument zieht das Beispiel genau das zweite Dokument heran, also auch ohne Schleife. Daher auch meine Rückfrage.
Benutzt Ihr die 8er-Hilfe? Sind da alle Dokumente zu Lotus Script auf Deutsch? Bei mir sind sie auf Englisch...
-
Hi,
Nein.
Ich glaube nur die Suche nach dem Schlagwort "UnprocessdDocuments" der Klasse NotesDatabase.
Hier findest Du genau die beschriebenen Beispiele.
Andreas