Autor Thema: Wert | 1; Wert2 | 2 @Replace  (Gelesen 3761 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Wert | 1; Wert2 | 2 @Replace
« am: 08.02.06 - 15:33:45 »
Hallo,

Wie kann ich aus einem Status-Feld aus dem Profiledoc das so aussieht:

Division approved | 0
IT approved | 1
Cerf Finished | 7
Cerf Denied | 8

in einer Ansicht wo in der Spalte der Status derzeit nur als Zahl angezeigt wird den Text anzeigen?

Ich hab es derzeit mit einer @If Abfrage gemacht:
@If(Status = "0"; "Division approved";Status = "1"; "IT approved";"Cerf Finished";Status = "8";"Cerf Denied";"New Cerf")

Das Problem ist wenn ich den Status im Profildoc ändere dann muss ich in der Spalte das auch immer ändern. Es sollte doch irgendwie mit:
 @Replace und @For(n := 1;
n <= @Elements(Status);
n := n + 1;....

gehen.

danke Robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #1 am: 08.02.06 - 15:40:49 »
Hi,

Wo kommen die Werte des Statusfeldes im Profile-Dokument denn her?

(Dialogliste, wie wird die Dialogliste mit den Daten gefuellt?)

Andreas

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #2 am: 08.02.06 - 15:50:05 »
1. Profile und Ansicht ist schon mal schlecht :-)

Als Lösung könntest Du z.B. beim Speichern des Dokuments beide Werte ablegen. In deiner Auswahl wird die Zahl gespeichert und in einem Text Feld der passende Text.
Nachteil dieser Lösung, sobald ein Wert der Liste geändert wird, müssen Alle Werte in den bereits gespeicherten Dokumenten korrigiert werden.

oder Du machst die Umrechnung statisch in deiner Ansichtenspalte. Nachteil sobald ein Wert geändert hat, muss die Ansicht angepasst werden.

Eine Volldynamische Lösung könnte evtl. mit der NotesViewColumn.Formula zu einem gewissen Grade sogar automatisiert werden. :-)
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #3 am: 08.02.06 - 16:20:08 »
@ascabg

Deine Frage verstehe ich nicht ganz!
Im Profile-doc wird das Status-Feld einfach per text gefüllt wie man es in meinem ersten Post sehen kann. Das Status-Feld ist ein Multivalue Feld mit Display seperate values with "New Line" und when enter a "New Line".

Und dann wird im normalen doc einfach der Wert aus dem Profiledoc geholt.

@umi

D.h so wie ich es hab ist es fast schon perfekt oder sagen wir es anderes geht es garnicht wirklich besser?
Das mit dem seperaten Speichern von Text und Zahl will ich vermeiden.
Und das Umrechnen in der Ansichtsspalte hab ich ja eh schon mit der @if.

Sonst noch eine Idee?

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #4 am: 08.02.06 - 16:47:20 »
die Aussage von UMI ist zu 100% korrekt.
Es gibt keine anderen Möglichkeiten als die aufgezählten:

1. den Wert vor dem "|" zusätzlich in einem weiteren Feld speichern und dieses anzeigen in der Ansicht

2. den Wert "statisch" in der Ansicht umsetzen (@GetProfileField etc. funktioniert nicht in Ansichten)

Leider gibt es hier KEINE schöne Lösung sondern nur Würgarounds.

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #5 am: 08.02.06 - 20:32:48 »
Danke für die Antworten dann werde ich meine Lösung lassen und in der Ansicht weiterhin die Lösung mit der @if Abfrage und statischer Zuordung der Zahlen zum Status machen.

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #6 am: 08.02.06 - 22:57:40 »
Ich würd einfach ein Ansicht auf Dokumente mit 2 Feldern machen.
Im ersten steht der Bezeichner. Im Zweiten die Nummer.
Division approved | 0
IT approved | 1
Cerf Finished | 7
Cerf Denied | 8
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #7 am: 09.02.06 - 08:43:35 »
Hi,

Ich habe den Sachverhalt so verstanden.

MaskeA => Profildokument => FeldA = Feld mit allen moeglichen Stati (Mehrfachwerte)
Angaben im FeldA => wie oben angegeben Wert | Alias

MaskeB => "normales" Dokument => Feld "Status", in dem einer der Werte aus "FeldA" enthalten ist (Dialogliste, Optionsfeld ?)

In einer Ansicht werden Dokumente, basierend auf MaskeB angezeigt.

In einer Spalte dieser Ansicht wird der Wert aus dem Feld Status angezeigt. Hierbei handelt es sich aber um den Aliasnamen.
Nun soll der in der Spalte angezeigt Wert nicht der Aliasname, sonder der eingentliche Text sein und dieses so flexibel, dass die Werte in der Ansicht sich auch sofort aendern, wenn sie sich im FeldA (Profildokument) aendern.

VIELLEICHT GIBT ES JA DOCH MOEGLICHKEITEN

Ich habe bei mir einen aehnlichen Fall und das Problem geloest.
(ohne weitere Felder), jedoch stehen die Werte NICHT in einem Profile

Andreas
« Letzte Änderung: 10.02.06 - 12:09:48 von ascabg »

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #8 am: 12.04.06 - 10:20:30 »
Ich würd einfach ein Ansicht auf Dokumente mit 2 Feldern machen.
Im ersten steht der Bezeichner. Im Zweiten die Nummer.

Und wie krieg ich, wenn ich aus einer Liste ein Element (also eigentlich nur einen Alias) auswähle, am Besten in das zweite Feld den Bezeichner (vor dem Alias) rein?  :o

Ich werkel jetzt da schon den ganzen Morgen an einer Formel, krieg das aber nicht hin  >:(

Grüsse
Moritz

Glombi

  • Gast
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #9 am: 12.04.06 - 10:22:33 »
Im Querysave mit

doc.FeldXYZ = Source.FieldGetText( "NameSchlüsselwortfeld" )


Andreas

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #10 am: 12.04.06 - 10:28:41 »
Ich würde das lieber per Formel lösen, damit die Änderungen auch mit einem RefreshDocs funktionieren würde. Ist das zu kompliziert damit?

Glombi

  • Gast
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #11 am: 12.04.06 - 10:31:08 »
Du kannst das natürlich auch ins Postrecalc schreiben....


und in Formelsprache sollte es mit @GetField("NameFeld") gehen
(sofern die Designer Hilfe korrekt ist und es das Pendant zu FieldGettext ist)

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #12 am: 12.04.06 - 10:38:43 »
Ach, sorry. Das Problem ist natürlich, in dem Feld steht ne ganze Liste:

Wert1 | 1
Wert2 | 2
Wert3 | 3

Ich weiss jetzt, ich brauch den text zu Alias "2". Mit @GetField erhalte ich ja nur das erste Element der Liste. Ich muss aber nun irgendwie direkt an "Wert2" kommen.

Sorry, hab nicht richtig mitgedacht.  ::)

Glombi

  • Gast
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #13 am: 12.04.06 - 10:43:26 »
Zitat
Mit @GetField erhalte ich ja nur das erste Element der Liste. Ich muss aber nun irgendwie direkt an "Wert2" kommen.

Das stimmt nicht. Du bekommst alle gewählten Werte.

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #14 am: 12.04.06 - 10:49:10 »
Aus der Designer-Hilfe:

Zitat
If the field specified in fieldName is marked to Allow multiple values, this function returns the first value only.

(Bei @GetProfileField dasselbe, habs eben getestet)

Aber das spielt eigentlich keine Rolle. Ich kann die Liste ja mit einem @Implode wieder zusammenfügen und dann erhalte ich einen String.

Die Frage ist, wie bekomme ich aus "Addresses|1;E-Mail|2;Invoices|3" den String "E-Mail" heraus, wenn ich nur "2" als Alias habe.

Glombi

  • Gast
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #15 am: 12.04.06 - 10:57:12 »
@getField funktioniert eh nicht, es werden die Aliaswerte geliefert und nicht die Schlüsselwörter. D.h. die Hilfe erzählt mal wieder Quatsch. Auch werden ALLE Aliaswerte geliefert und nicht nur der erste.

Generell zum Thema - ich mach es so:
Ein Feld mit den Mehrfachwerten "Schlüssel 1|1":"Schlüssel 2|2" ...

Das Feld dann als Auswahlformel im Schlüsselwortfeld eintragen. Dann kannst Du mit Script und einer kleinen Schleife die Bezeichner ermitteln.

Andreas

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #16 am: 12.04.06 - 10:58:06 »
"Addresses|1;E-Mail|2;Invoices|3"

- mit Explode wieder auseinander nehmen
- mit @Word den Teil nach dem | in eine Liste extrahieren
- Position ermitteln
- Wert mit dieser Position aus der Listeermitteln und
- mit Word den ersten Teil (vor |) abschneiden
Gruß
Dirk

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Wert | 1; Wert2 | 2 @Replace
« Antwort #17 am: 12.04.06 - 11:42:49 »
@GetProfileField gibt korrekt alle Elemente zurück, mit Alias und Text als Liste. Die @Prompt hatte lediglich den ersten Eintrag abgeschnitten. *schäm*  : :-X

@GetField habe ich jetzt nicht getestet.

Ich habe nun die Tipps von diali befolgt, um zum Ergebnis zu kommen. Hier präsentiere ich euch stolz meine Formel  ;D:

Code
REM "Diese Funktion gibt den Text vor einem Alias zurück";
REM "---------------------------------------------------";

REM "Nach welchem Alias soll gesucht werden?";
_alias := CategoriesNo;

REM "Die Liste der zu durchsuchenden Elemente";
_list := @GetProfileField("Profile";"txtKategorien");

_position := @Member(_alias;@Word(_list;"|";2));
@Word(@GetMembers(_list;_position);"|";1)

Vielen Dank euch beiden für die rasche und gute Unterstützung!!

Grüsse
Moritz

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz