Feldinhalte mittel Pipe abgetrennt, wie werden diese korrekt in Anischten angezeigt.

  • Hallo Zusammen,
    Wir haben folgendes Zenario...
    In einen Konfigurationsdok stehen Branchen in der Syntax "BRANCHE | NUMMER" --> "sonstige|99990". Bei einem Datenimport wurde ein Maskenfeld mit der "NUMMER" befüllt und in Ansichten wir nun auch "NUMMER" angezeigt.
    Naja wie es halt so ist, ändern sich die Ansprüche und plötzlich soll nicht mehr "NUMMER" sonder jetzt die "BRANCHE" angezeigt werden.


    Frage wie komme ich an die BRANCHE.


    DA es sich um einige 10.000 Dokumente handelt möchte ich ungern die Dokument neu befüllen lassen. Ebenso will ich keinen Agenten der jetzt in jedem Dokument eine Korrektur vornimmt. Es soll lediglich in einigen Ansichten nicht mehr der "NUMMER"-Part sondern der "BRANCHE"-Part dargestellt werden.



    Danke für Eure Hilfe...
    Thomas

    • Offizieller Beitrag

    Im Dokument steht nur der Alias (in Deinem Fall die Zahl) und die Maske zeigt Dir dann den Wert vor dem Pipe, d.h. die Information, die Du sehen willst, ist nicht im Dokument sondern in der Maske hinterlegt


    Du könntest die Branche in der Spalte der Ansicht umsetzten, dadurch wird aber eventuell Deine Ansicht langsamer.
    @If(Branche = "99990"; "sonstige"; "") oder per @Replace


    Besser ist es die Information im Dokument vorzuhalten. Ich würde ein verstecktes Feld mit dem Wert befüllen, dann musst Du bei Änderungen/Erweiterungen/Löschungen nicht die Ansichten anpassen.


    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

  • na ja, über nen @replace in der ansicht geht da vielleicht was wenn man sich irgendwie vorher das konfigurationsdokument holt. aber mit sicherheit schweine-langsam beim öffnen der ansicht! da müsste ja der ansichtenindex ständig neu erstellt werden. also vergiss das mal lieber. schreib lieber nen agent der den wert in das dokument in ein feld schreibt ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Hallo Dirk,
    ich habe gearde mal die Einträge im KonfigDoc. für die Branche gezählt und bin auf 103 gekommen. Das kriege ich Formeltechnisch nicht so ohneweiteres hingeschrieben...


    Hast Du noch andere Ideen?


    Danke und Grüße aus dem Norden
    Thomas

  • wie soll es den anders gehen? du hast den wert nun mal nicht in dem dokument und kannst ihn daher nicht anzeigen. also geht höchstens noch in zur "laufzeit" zu generieren -> @If oder @Replace.


    nur: das dauert mit sicherheit ewigkeiten beim öffnen der db!


    is es denn so kritisch die dokumente alle einmal anzupacken und über nen agent darein zu schreiben. klar läuft der nen moment aber alles in allem vielleicht 3 - 4 stunden arbeit würde ich sagen ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Klaro, aber wir Replizieren die DB via Telefon an Aussendienstler... und dann wird es spaßig.


    Ich will halt nur abklären, dass das auch wirklich notwendig ist... hinterher lass ich die Leute ne halbe Nacht lang replizieren und dann stellt sich raus, dass das auch cleverer gegangen wäre.


    Aber dann muß es halt wohl sein.


    Danke für die Hilfe!


    Gruß Thomas

  • Also du möchtest nicht unbedingt die werten in den Dokumente ändern aber die darstellung in der ansichten ?? Oder ?
    Du hast den wert irgendwo in einen konfig doc ... kannst den also kopieren ???
    Dann mach doch mal folgendes:
    1. Kopiere den feld dieses konfigdoc documents in einen Profildocument, nenen es meinet wegen "Branche"
    2. gehe in den ansicht spalte und erstelle folgenden formel
    Alles := @GetProfileDoc ( "Branche" ; "Deinfeld" );
    Ersteliste := @Left ( Alles ; "|" );
    ZweiteListe := @Right ( Alles ; "|" );
    @replace( DeinFeldInDerMaske ; ZweiteListe ; ErsteListe )


    Damit machst den ansicht folgendes.
    Er greift den mit pipes getrennte werten, splittet den auf in zwei listen, geht dann hin und nimmt das feld welches du aus deine maske darstellen möchte, vergleicht den mit den gerade erstellte liste, und stellt dann das gleiche element aus der liste vorne da.


    Funktioniert OHNE einen änderung an den dokumente, und damit ohne große replizier problemen.

  • Moin Ronka - Danke für die Hilfe, aber es klappt noch nicht... siehe unten.



    [color=FF3300]Ich bin für jeden weiteren Ansatz dankbar. Ich hoffe jemandem fällt noch etwas ein.[/color]


    Gruß aus OS
    Thomas

  • Wie häufig ändern sich diese dingen ? Wenn nicht (oder sehr wenig), dann würde ich dieses einmal MANUELL als liste kopieren in den spaltenformel, und dort mit "tets|0099":"weiter|3456" kopieren.
    Ist zwar ein wenig arbeit, aber einmal erstellt ist es dann fertig.
    Bei neue werten mußten diese dann hinzugefügt werden an diese liste.