Maskenänderung - Programmierungsumsetzung?

  • Hallo zusammen,


    Ich glaube, ich fange erstmal mit dem IST-Zustand an. Wir nutzen eine Datenbank für die Abarbeitung von Aufträgen. Ein Auftrag enthält ca. 5 - 15 verschiedene Arbeitsschritten. Diese werden in einer 2. Datenbank ausgewählt und in ein Feld(1) werden die Doc-IDs übernommen. Im Feld(2) werden dann die Arbeitsschritte, abhängig von den Doc-Ids angezeigt.


    Wenn ein Arbeitsschritt abgearbeitet ist, wird in ein anderes Feld die Tätigkeit mit der benötigten Zeit eingetragen.


    Ich hoffe, das war bisher verständlich :o)


    Jetzt ist es aber so, das viele Arbeitsschritte und die Tätigkeit/Zeit Standard sind und daher ist es lästig, diese immer wieder gleichen Einträge zu machen.


    Meine Idee ist, für diese Tätigkeiten Standardtexte für die Tätigkeiten/Zeit zu nehmen. Die Ansicht in der 2. Datenbank wurde geändert, so das nun auch der Tätigkeitstext mit Zeitangabe, gebunden an die Doc-ID, mit übernommen wird. Jetzt habe ich also 4 Felder mit den benötigten Daten und ...


    ... stehe auf dem Schlauch.


    Theoretisch stelle ich mir das so vor - Nach Auswahl der Arbeitsschritte wird dynamisch eine Tabelle erstellt, die


    - Eine Grafik enthält - Ist der Arbeitsschritt erledigt, erscheint dort z.B. ein Häckchen.
    - Der Arbeitsschritt
    - Zeitangabe
    - Eine Schaltfläche, mit der ich genau diesen Arbeitsschritt (Tatigkeit/Teit) in das Tätigkeitsfeld übernehmen kann.


    Geht soetwas? Gibt es andere Möglichkeiten das umzusetzen? Ich bin da für jede Hilfe dankbar.


    gruß
    rubbel

    • Offizieller Beitrag

    Du kannst Dir 15 x 4 = 60 Felder in eine Tabelle bauen und dann mit HW-Formeln diese Zeilenweise verstecken. Macht Deine Maske aber langsammm.


    Alternativ kannst Du Dir eine Tabelle bauen und in jede Spalte nur ein Mehrfachwerte-Feld einfügen. Nachteil RTF fällt aus und Du musst die Einträge von den Zeichen her begrenzen, sonst stimmen die Datensatzzuordnungen nicht (Zeilenumbrüche).
    Feld1(0), Feld2(0), Feld3(0) und Feld4(0) ... ist Datensatz 1
    ...
    Feld1(n), Feld2(n), Feld3(n) und Feld4(n) ... ist Datensatz n + 1


    Oder einen Emb.View verwenden und mit Antwort-Dokumenten arbeiten.


    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 für Deine Antwort


    OT


    Jetzt ist der Schlauch noch länger. Ich schlage mich jetzt seit 2 Tagen mit diesem Mist rum und finde einfach keinen vernünftigen Ansatz. Ich könnte zwar für die Standardaufträge jeweils Teilmasken erstellen, aber das ist so dynamisch wie eine Eisenbahnschiene.


    gruß
    rubbel

    • Offizieller Beitrag

    mhh eine Teilmaske kann aber nur einmal im Dokument verwendet werden, weil ansonsten die Feldnamen doppelt vergeben werden und dies bringt einen Fehler.


    So wie ich es verstanden habe, werden pro Arbeitsschritt 4 Felder aus einem Vorgabedokument übergeben. Dein Problem ist nur, wie Du die dynamik (0 - n Arbeitschritte) hinbekommst.


    Dann fällt die Version mit den 15 x 4 Feldern aus, da Du n nicht kennst.


    Also ich kenne Deine Anwendung nicht, aber ich würde eventuell folgenden Ansatz wählen:


    - Arbeitsschritt auswählen
    - die 4 Felder werden in ein neues Antwortdokument geschrieben und dieses gespeichert
    - im Elterndokument bindest Du eine Ansicht (EmbeddedView) ein und lässt in der Ansicht nur die Antwortdokument anzeigen.


    Damit hast Du eine 1 : n Beziehung.


    Gruß
    Dirk

  • Hallo Diali,


    das ist leider eine Möglichkeit, die ich nicht nutzen kann bzw. soll.


    Eine Möglichkeit, die ich noch sehe, währe dem User eine Liste der Bearbeitungsschritte (angepasst an den akuell gewählten Arbeitsschritten) anzuzeigen.


    Dabei konnte ich das Feld mit den Doc-ISs benutzen? Problem ist, das in der Dialogliste den Arbeitsschritt anzuzeigen, dann aber für die Auswahl der dazugehörigen Tatigkeitsbeschreibung/Zeit die Doc-ID zu nehmen. Der Arbeitsschritt quasi als "Alias" Ich finde aber in der Hilfe nichts passendes.


    Danke und gruß
    rubbel

    • Offizieller Beitrag

    Deine Ansicht in der Quell (Arbeitschritte-DB) zeigt Dir alle Felder in einer eigenen Spalte?


    Die Quelle-Ansicht solltest Du ändern.
    1. Spalte (versteckt): alle Felder, die übernommen werden sollen (z.B. "Feldeinhalt1#####Feldinhalt2#####.....#####Feldinhaltn#####")
    Formel: Feld1 + "#####" + Feld2 + "#####" .....
    eventuell muss um die Felder noch ein @Text, wenn es keine Text-Felder sind und bei Mehrfachwerte-Feldern musst Du diese mit @Implode als Text-Liste einbinden.
    2. Spalte: was in der Auswahlbox angezeigt werden soll.


    Die Auswahl machst Du dann mit einer Picklist und übergibst die 1. Spalte. Mit @Word(Rückgabewert; "#####";1) bekommst Du dann den ersten Wert aus der Zeichenkette raus und kannst diesen mit @SetField oder FIELD in ein Feld schreiben. Genau so funktioniert es dann bei dem 2., ... bis n. Wert.


    Gruß
    Dirk

  • Position in der Textlist


    Hallo,


    eine Frage noch. Per


    docID = doc.GetItemValue("LeistungenDocID")(x)


    hole ich mir die DocID aus einem Feld mit mehreren DocIDs. Besteht die Möglickeit anhand diese Wertes dabei auch die Position in dieser Textliste zu ermitteln?


    Schönes Wochende
    rubbel

    • Offizieller Beitrag

    in der Zeile "docID = doc.GetItemValue("LeistungenDocID")(x)" steht das x für die Position des Wertes in einem Feld. Da aber x mit 0 beginnt, ist die Position der DocID x + 1.


    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