Summen aus Ansichten in neues Dokument übernehmen

  • Moin! Ich hätt' da gerne mal ein Problem:


    Ich habe eine ungefähr so aussehende Ansicht erstellt:


    Spalte 1: Erstellungsjahr der Dokumente (Sortiert, Kategorien)
    Spalte 2: Name Ersteller
    Spalte 3: Feld A (Numerisch)
    Spalte 4: Feld B (Numerisch)
    Spalte 5: Feld C (Numerisch)


    Nun brauche ich eine Aktion für eine Bescheinigung, die folgendes bewirkt:


    a) Benutzer fragen, für welches Jahr die Bescheinigung ausgestellt werden soll (Auswahl)


    b) Benutzer fragen, für welchen Ersteller die Bescheinigung ausgestellt werden sol (Auswahl)


    c) Zum ausgewählten Benutzer und zum ausgewählten Jahr passende Dokumente zusammensammeln


    d) neues Dokument aus Maske "Bescheinigung" erstellen und in dessen berechnete Felder "Bescheinigung_A", "Bescheinigung_B" und "Bescheinigung_C" die Summen der Felder A, B und C der zusammengesammelten Dokumente eintragen.


    Es soll also eine Bescheinigung der über ein bestimmtes Jahr für einen bestimmten User angefallenen Beträge in den Feldern A, B und C erstellt werden.


    Ach ja: das ganze soll abwärtskompatibel bis Version 4.5 (OS/2) sein...


    Jemand 'ne Idee oder Hilfe? (p.s.: bin nicht gerade der Script-Experte...)

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    mit @dblookup kannst du dir eine Zahlenliste aller Einträge für einen User und Jahr organisieren und mit @sum diese addieren..


    Dies noch für die Dokumenttypen A, B und C.


    Also:
    1. neues Bescheinigungsdokument erstellen
    2. Name und Jahr eintragen
    3. Schaltfläche anklicken, die 3x DBLookup laufen lässt, die Listen mit @Sum addieren und in die entsprechenden Felder schreibt


    Dazu brauchst du eine Ansicht.
    1. Spalte sortiert Format "Jahr#Ersteller"
    2. bis 4. Spalte die Zahlen A, B und C


    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

  • Scheint leider irgendwie noch nicht ganz zu funktionieren, oder ich habe einen Denkfehler:


    Ich habe jetzt eine Ansicht "(sys-bescheinigungen)", die folgendermaßen aussieht:


    Spalte 1: jahr+"#"+Name
    Spalte 2: Zahl aus Feld A


    Also zum Test sieht der Inhalt nun so aus:


    2005#hans mustermann 12
    2005#hans mustermann 10


    In dem Agenten, der die Bescheinigung vorbereiten soll, wird erstmal nach Jahr und Name gefragt, dann das zusammengebaut in der Variable "tempauswahl" und dann die folgende Formel ausgeführt:


    tempa:=@Sum(@DbLookup("":"NoCache";"";"(sys-bescheinigungen)";tempauswahl;2))


    In tempa steht dann aber nix.


    Mach ich da was falsch oder muss die @Sum formel noch anders formuliert werden??? :-?

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    sieht doch schon gut aus.


    Ist die 1. Spalte sortiert?
    Lass mal die @Sum weg und schau, ob dann eine Liste zurückkommt.


    Gruß
    Dirk

  • Zitat

    Ist die 1. Spalte sortiert?


    ja, beide Spalten sind einfach aufsteigend sortiert


    Zitat

    Lass mal die @Sum weg und schau, ob dann eine Liste zurückkommt.


    Da kommt auch nix raus, die Variable ist weiterhin leer... :(

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    Was steht in tempauswahl?


    Versteckte Spalten verwendest du keine ind er Ansicht "(sys-bescheinigungen)"?


    Gruß
    Dirk

  • Zitat

    Was steht in tempauswahl?


    In tempauswahl steht in diesem beispiel: 2005#hans mustermann


    Zitat

    Versteckte Spalten verwendest du keine ind er Ansicht "(sys-bescheinigungen)"?


    nö!

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

  • Kleiner Nachtrag, den ich gerade rausgefunden habe:


    Wenn ich statt:


    tempa:=@DbLookup("":"NoCache";"";"(sys-bescheinigungen)";tempauswahl;2)


    das in Text umwandeln lasse, also so:


    tempa:=@Text(@DbLookup("":"NoCache";"";"(sys-bescheinigungen)";tempauswahl;2))


    verwende, landet in tempa zumindest der erste gefundene Wert, aber trotzdem leider nicht alle Werte von allen Dokumenten in der Ansicht, die dem Suchkriterium entsprechen, sondern eben nur der erste. Wie kriege ich das hin, dass er alle Werte zusammenfasst und davon die Summe bildet...?

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    lass dir mal tempa mit einem Prompt anzeigen.


    @Prompt([ok];"";@implode(@Text(tempa);"-"))


    Was steht im Prompt?


    Müsste etwas ind er Form Zahl1-Zahl2-...-Zahlx sein.


    Gruß
    Dirk

  • ah, wir kommen der Sache schon näher. Da wird dann tatsächlich eine Liste zahl 1 - zahl 2 - ... usw. ausgegeben.


    Aber wie bringe ich dem jetzt bei, daraus die Summe zu bilden?

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    probier jetzt mal folgendes:


    @Sum(@TextToNumber(@Text(tempa)))


    Was kommt als Summe heraus?


    Gruß
    Dirk

  • So, jetzt habe ich's, geht etwas von hinten durch die Brust ins Auge:


    Wenn ich folgende Formeln verwende:


    tempa1:=@DbLookup("":"NoCache";"";"(sys-bescheinigungen)";tempauswahl;2);
    tempa2:=@Implode(@Text(tempa1);";");
    tempa3:=@Sum(@TextToNumber(@Explode(tempa2;";")));


    dann steht in tempa3 genau dass, was ich wollte!!


    Vielen Dank für die Hilfe!

    ------------------------------------------------------------------------------
    Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

    • Offizieller Beitrag

    den implode und explode brauchst du nicht. Es lag wahrscheinlich daran, dass vom DBLookup ein Text anstelle von einer Zahl zurückgegeben wurde.


    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