Selektion und Summenbildung in Ansichten

  • Sorry, mir sind einige Dinge dazwischen gekommen.<br />
    Also, um die Sache mal abzurunden, hier nochmal der Hintergrund meines Vorhabens. Vielleicht l&auml;sst sich meine Vorstellung ja auch einfacher oder eleganter umsetzen. Ich m&ouml;chte nicht, dass jemand einfach so Dokumente l&ouml;schen kann. Daher habe ich das L&ouml;schen im Datenbankscript im querydocumentdelete per continue=false unterbunden. Stattdessen sollen die &uuml;berfl&uuml;ssigen Dokumente per Feld&auml;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 &auml;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&ouml;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&uuml;r die eingebettete Ansicht in Maske und Seite getestet.<br />
    </li>
    </ol>
    F&uuml;ge ich die Aktion stattdessen der eigentlich Maske hinzu, so dass sie nur bei einem ge&ouml;ffneten Dokument ausgef&uuml;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!

  • 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?

  • 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.

    • Offizieller Beitrag

    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 NotesDocument


    Wichtig 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?

    • Offizieller Beitrag

    UnprocessedDocuments gibt dir eine Collection mit allen markierten Dokumenten zurück.

    Code
    Set 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

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Damit kann ich etwas anfangen. Meine 7er-Hilfe hat hier bei GetFirstDocument ein anderes Beispiel, eben ohne Schleife:


    Code
    Set 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...