Selektion und Summenbildung in Ansichten

  • Hallo,


    in einer Datenbank werden Dokumente mit einer Reihe von Betragsfelder vom Benutzer gefüllt. Die Dokumente sind mit Leser- und Autorenfeldern geschützt. In einer Ansicht werden dann wie gewollt nur die Dokumente des jeweiligen Benutzers angezeigt. In mehreren Spalten stehen die Betragsfelder.


    Nun ist die neue Anforderung, die Betragsfelder zu summieren. An sich kein Problem, nur enthält die Ansicht ja alle Dokumente, daher werden in die Summe auch die fremden, unsichtbaren Dokumente einbezogen. Das ist natürlich nicht gewünscht, daher wollte ich per Selektion die Dokumente auf den jeweiligen Benutzer einschränken. Und das bekomme ich nicht hin.


    Im Dokument gibt es ein Feld "author" als Leserfeld, das beim Anlegen mit @Author gefüllt wird. In meiner Ansicht verwende ich dann folgende Selektionsformel:

    SQL
    SELECT (Form = "sale") & (docstat = "active") & ( author = @UserName)


    Ich dachte es würde damit funktionieren, tut es aber nicht. Hat jemand bitte einen Tipp für mich?


    Danke im voraus!

  • Sorry, aber die Designer-Hilfe habe ich gelesen. Ich zitiere:

    Zitat

    Eine typische Verwendung von @UserName ist die Anzeige nur der Dokumente, die für den aktuellen Benutzer relevant sind. Beispielsweise könnte eine Datenbank für die Verwaltung von Kundendienstanforderungen @UserName in einer privaten Ansicht namens Zuordnungen verwenden, die jedem Kundendiensttechniker nur die ihm zugeordneten Dokumente zeigt:
    SELECT @UserName=AssignedTo
    Allerdings kann der Benutzer immer noch eine andere private Ansicht erstellen, in der alle Dokumente angezeigt werden. @UserName kann also nicht verwendet werden, um einen sicheren Datenschutz zu etablieren.


    Und genau das habe ich ja versucht, @UserName mit dem Inhalt eines Feldes zu vergleichen. Den "Datenschutz" habe ich ja bereits über Leserfelder sichergestellt.

  • Dann solltest du den zitierten Text auch ganz lesen:
    in einer privaten Ansicht


    Das ist nämlich der wichtige Punkt.


    Und ein paar Zeilen darüber im gleichen Hifledokument steht noch mal, daß die Formel in gemeinsamen Ansichten nicht verwendet werden soll

  • Ups, mein Fehler. Nun habe ich die Hilfe über Ansichten des Typs "Gemeinsam, privat bei Erstbenutzung" gelesen. Das ist ja eigentlich das was ich brauche. Nur kann ich zukünftige Änderungen dann wohl vergessen, da die Benutzer sicher kaum zu einer Löschung zu bewegen sind.


    Bisher (und auch vor Erstellung des threads) hat mich die Suche noch nicht auf die richtige Spur gebracht, aber ich werde die Suchbegriffe mal ein wenig weiter variieren.

    • Offizieller Beitrag

    suche mal im Forum, da gibt es Lösungen für das Löschen von privaten Ansichten.


    Alternativ (und für mich die bessere Lösung) ist es einen Ansicht zu bauen. Die erste Spalte ist kategorisiert über das Feld author. Danach bettest Du die Ansicht in einer Maske ein und trägst bei einzelne Kategorie anzeigen @Username ein.


    Damit hast Du das Problem der privaten Ansicht nicht mehr.


    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

  • Danke, den thread habe ich eben gefunden und teste. Einem spontan Gefühl folgend habe ich das in eine Seite eingebettet. Gibt es Gründe, besser in eine Maske einzubetten?

  • Ok, da ich das jetzt nur zur Darstellung der Ansicht brauche, fehlt mir da gerade nichts. Es sieht schon einigermaßen gut aus. Bisher habe ich die Ansicht allerdings so gesteuert, dass der Auswahlrand nur dann angezeigt wird, wenn auch ein Dokument ausgewählt ist. Das scheint bei der Einbettung dann nicht mehr zu gehen. Blende ich den Auswahlrand per Eigenschaften der eingebetteten Gliederung ein, ist er auch immer sichtbar. Wähle ich diese Option ab, funktioniert keine Auswahl.
    Bin ich zu dumm/blind oder geht das tatsächlich nicht anders?


    Edit:
    Oha: Ich habe in der Ansicht eine Schaltfläche die einen Agenten aufruft, der dann ein Feld in den ausgewählten Dokumenten ändert. Bei Aufruf in der eingebetteten Ansicht:
    "Dokument ist noch nicht gespeichert"
    dann:
    "Um diesen Agenten auszuführen, muss wenigstens ein Dokument ausgewählt sein"

    • Offizieller Beitrag
    Zitat

    "Um diesen Agenten auszuführen, muss wenigstens ein Dokument ausgewählt sein"


    Schau dir mal in den Eigenschaften die Einstellung bei Ziel an.


    Zitat

    "Dokument ist noch nicht gespeichert"

    Wahrscheinlich lässt du den Agenten über ein UI-Dokument laufen und dieses ist noch nicht gespeichert.


    Das UI-Dokument kann auch die Maske mit der eingebetteten Ansicht sein, je nachdem wo du Deinen Agenten ausführst.


    Schau dir auch mal die Eigenschaften der eingebetteten Ansicht an, dort kannst du den Auswahlrand auch noch einstellen.


    Gruß
    Dirk

  • Guten Morgen,


    ich habe von dem Agenten mal ein Foto gemacht. Bilder sagen ja bekanntlich mehr als Worte.


    Thema Auswahlrand: Sobald ich in den Eigenschaften der eingebetteten Ansicht auf der zweiten Seite die Option "Auswahlrand anzeigen" wähle, wird der Auswahlrand immer angezeigt. Wähle ich stattdessen auf der ersten Seite die Option "Auswahlrand-Eigenschaft der Ansicht verwenden" wird kein Auswahlrand angezeigt, aber nun ist auch keine Auswahl möglich. Diese Option klang eigentlich so wie ich mir das gewünscht habe, funktioniert aber leider nicht so.

    • Offizieller Beitrag

    Wird der Agent über eine Schaltfläche in der Ansicht oder dem Dokument gestartet?


    Du hast wahrscheinlich den Fokus aufs falsche Dokument.


    Gruß
    Dirk

  • Ich habe den Button, der den Agenten startet, sowohl in der Aktionsleiste der Ansicht als auch der Seite getestet. Beides führt zum identischen Ergebnis. Egal, ob nur der Fokus auf einem Dokument steht oder ich zwei Dokumente markiert habe. In der Maske möchte ich ihn eigentlich nicht haben, sofern ich eine andere Chance habe.

    • Offizieller Beitrag

    Mach mal einen Script-Agenten daraus, dann kannst Du debuggen und siehst, wo der Fokus liegt.


    Gruß
    Dirk

    • Offizieller Beitrag

    dann benutze mal STRG + S und direkt danach führst du den Agenten aus. Funktioniert?


    Falls du das Feld Saveoptions in der Maske mit der eingeb. Ansicht hast, entferne es mal (nur zum Testen).


    Gruß
    Dirk

  • Speichern bringt insofern ja nichts, da ich die Ansicht in eine Seite und nicht in eine Maske eingebettet habe. Getestet habe ich es trotzdem, man weiß ja nie. Aber gebracht hat es erwartungsgemäß nichts. Saveoptions habe ich eben weil Seite nicht genutzt.

    • Offizieller Beitrag

    naja mit dem Test hättest du zumindest herausbekommen, ob es an der Maske liegt.


    Mache aus der Seite mal eine Maske und versuche es noch einmal.


    Gruß
    Dirk