Autor Thema: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen  (Gelesen 5260 mal)

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Moin Notes-Gemeinde,

komme gerade zu dem Fall, dass ich in einem Kombinationsfeld Werte entfernen muss, die nicht mehr benötigt werden. Jetzt existieren jedoch bereits einige Dokumente die die zu löschenden Werte bereits beinhalten.

Lösche ich nun die Werte aus dem Kombinationsfeld, sind diese auch in den bestehenden Dokumenten verschwunden.

Wie sperre/lösche/verberge ich die nicht mehr benötigten Werte in dem Kombinationsfeld, so dass diese in bestehenden Dokumenten erhalten bleiben, in zukünftigen jedoch nicht mehr ausgewählt werden können?

Das Kombinationsfeld ist "bearbeitbar"

Danke Euch
Franz

« Letzte Änderung: 31.10.14 - 08:58:50 von Caleb666 »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #1 am: 31.10.14 - 09:06:14 »
Formel für die Vorgabewerte:
Code
_Liste := "Wert 1" : "Wert 2" : "Noch ein Wert" : "Letzte Option";
@Trim( @Unique( _Liste : @ThisValue ) )

Dann noch die Option bei "neue Werte zulassen" entfernen, und voila: Die Dokumente, die einen anderen Wert als in der Liste enthalten, dürfen den behalten, alle anderen kriegen nur die Liste...
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 Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #2 am: 31.10.14 - 10:09:38 »
Super, das war´s
Vielen Dank für die Lösung.

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #3 am: 18.03.15 - 09:45:41 »
Guten Morgen,

ich wollte gerne nochmal diesen Thread aufgreifen, da ich gerade keine Lösung für folgenden Fall habe:

Die bisherigen Feldinhalte von Feldx haben neben Iher Bezeichnung auch einen Alias hinterlegt.

Bisherige Feldwerte für Feldx:
Apfel|1
Birne|2
Kirsche|3

Die bisherigen Feldwerte sollen zukünftig nicht mehr verwendet werden, sondern nur noch folgende neue Feldwerte.

Neue Feldwerte für Feldx:
Banane|1
Kiwi|2
Orange|3

Die Feldinhalte für Feldx sollen bei bestehenden Dokumente erhalten bleiben, bei neuen Dokumenten sollten nur noch die neuen Feldwerte zur Auswahl stehen.

Den Alias einfach dahinter setzen (oder auch innerhalb des Strings), brachte keinen Erfolg. der Feldinhalt bestehender Dokumente wird nicht angezeigt oder enthält bereits den neuen Wert... ???

Code
_Liste := "Banane"|1 : "Kiwi"|2 : "Orange"|3;
@Trim( @Unique( _Liste : @ThisValue ) )


Wie muss ich die Formel umbauen, damit der Vergleich wieder funktioniert?

Vielen Dank.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #4 am: 18.03.15 - 10:10:41 »
Schau Dir den Inhalt von Feldx im geschlossenen Dokument an, dort wird 1, 2 oder 3 stehen. M.E. hast Du keine Chance über den Feldwert von Feldx eine Unterscheidung zwischen den alten und den neuen Werten zu erkennen.

Du könntest vielleicht eine Unterscheidung anhand des Erstelldatums des Dokuments machen, falls Dir das etwas nützt.

Alternativ errechnest Du die Liste nicht innerhalb des Feldes Feldx, sondern in einem separaten Feld, nennen wir es FeldListe. Berechnet beim Anlegen enthält es die Liste

"Apfel|1" : "Birne|2" : "Kirsche|3"

Das Feld muss in allen alten Dokumenten nachträglich gesetzt werden, dann kannst Du es in der Maske ändern in

"Banane|1" : "Kiwi|2" : "Orange|3"

Die Auswahlformel von Feldx lautet dann FeldListe


Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #5 am: 18.03.15 - 10:47:28 »
Vielen Dank für die Lösungsansätze.

Was ich noch vergessen habe.

Der Feldwert von Feldx wurde in bestehenden Dokumenten auch in dem Feld UI_Feldx
als Text(ohne Alias) über folgende Formel gespeichert.
Code
	Source.Document.UI_Feldx = Source.FieldGetText("FeldX")

d.h. ich habe den gesetzten Wert in bestehenden Dokumenten auch ohne Alias gespeichert.

Die neuen Werte von FeldX("Banane|1" : "Kiwi|2" : "Orange|3"
) sollen jedoch wieder einen Aliasnamen erhalten (beim abspeichern des Dokuments wird wieder nur der Text in das Feld UI_Feldx geschrieben).


Lässt sich hierüber etwas basteln?

Vielen Dank.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #6 am: 18.03.15 - 10:57:18 »
Und was soll dabei herauskommen?

Angenommen, es war angekreuzt 1 und 2, mit derm UI-Feld könnte man daraus

Apfel|1
Birne|2

errechnen. Das willst Du dann kombinieren mit

Banane|1
Kiwi|2
Orange|3

und bekommst

Apfel|1
Birne|2
Banane|1
Kiwi|2
Orange|3

Das gibt dann ein schönes Durcheinander mit den Aliasen. Ich glaube nicht, dass Du das wirklich willst.

Warum arbeitest Du mit Aliasen, wenn Du bei Änderung der Werte und Beibehaltung der alten Aliase die alten Dokumente unverändert lassen willst? M.E. müssten die neuen Werte dann neue Aliase bekommen, oder die alten Dokumente die neuen Werte.

Oder ich habe Dich falsch verstanden ...

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #7 am: 18.03.15 - 13:32:32 »
Du hast Recht, es macht keinen Sinn.

Dann wäre für mich der Beste Ansatz über das Erstelldatum.

Die bestehenden Dokumente wurden alle im Zeitraum Oktober 2014 - Dezember 2014 erstellt.
Die neu zu erstellenden Dokumente werden alle im Zeitraum März 2015 - Mai 2015 erstellt.

Wie muss ich die Formel umbauen, damit ich das Erstelldatum berücksichtigen kann  ???

Mitch

  • Gast
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #8 am: 18.03.15 - 13:49:23 »
M.E. müssten die neuen Werte dann neue Aliase bekommen

Nur für den Fall, dass das untergegangen sein sollte.  ;)

Wenn ein Feld mit einer Auswahlliste (und Aliaswerten) komplett neue Werte zur Auswahl erhalten soll, dann würde ich empfehlen den neuen Werten auch neue Aliasse zu geben. Also Banane|4, Kiwi|5 und Orange|6.

Es sind ja "nur Aliaswerte", die sieht ja keiner. Mach ja nix wenn die "nicht bei 1 anfangen". Und falls Ansichten oder Skripte existieren, die Bananen (neue 1) und Äpfel (alte 1) unbedingt gleich anzeigen/behandeln sollen, dann würde ich lieber diese Elemente anpassen, als das Chaos mit Datumswerten zu machen. Nächstes Jahr änderst du es wieder und dann nochmal und nochmal.

Gruß,

Mitch

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #9 am: 18.03.15 - 14:10:48 »
Wenn ich andere Aliase für neue Werte z.B. wie folgt verwende....
Code
_Liste := "Banane"|20 : "Kiwi"|21 : "Orange"|22;
@Trim( @Unique( _Liste : @ThisValue ) )

dann ist bei bestehenden Dokumenten in dem Feldx nur noch der Alias-Wert z.B. 3, jedoch nicht mehr der dahinterliegende Text enthalten.

Desweitern wurde ich gerne die bestehenden Aliaswerte weiter verwenden (immer von 1 beginnend),  da ich diese an anderer Stelle noch benötige bzw. abfrage.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #10 am: 18.03.15 - 15:37:07 »
Du könntest die Aliase so gestalten, dass jeweils die letzte Zahl gemeinsam ist, und dann an den Stellen, in denen Du programmatisch darauf zugreifst, mit @Right (Feldx; 1) arbeiten.

alte Liste
Apfel|1
Birne|2
Kirsche|3

neue Liste
Banane|01
Kiwi|02
Orange|03

Wenn es mehrere Werte sind, kannst Du auch mit einem Trennzeichen arbeiten

alte Liste
Apfel|1
Birne|2
Kirsche|3
Melone|99

neue Liste
Banane|a_1
Kiwi|a_2
Orange|a_3
Zitrone|a_99

und dann @Right ("_" + Feldx; "_") verwenden

Um die alten Werte darstellen zu können, kannst Du als Listenformel diese probieren (mit obigem Beispiel)


_aliasalt := "1" : "2": "3";
_aliasneu := "01" : "02" : "03";
_listealt := "Apfel|1" : "Birne|2" : "Kirsche|3";
_listeneu := "Banane|01" : "Kiwi|02" : "Orange|03";

@Trim (@Unique (@Replace (Feldx; _aliasalt : _aliasneu; _listealt : _listeneu) : _listeneu))

Zumindest sinngemäß so, habe das nicht ausprobiert


Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #11 am: 18.03.15 - 16:10:06 »
Vielen Dank für Eure Vorschläge.

Da sich die Werte in dem Feldx 2x im Jahr immer zur gleichen Zeit ändern, bin ich noch am überlegen, ob ich die Aliaswerte wirklich verändern soll, da diese ja dann immer anders lauten müssen....

Mich würde noch der Ansatz mit dem Erstelldatum interessieren.

Mit folgender Formel kann ich zwar eine Unterscheidung vornehmen, jedoch liefert @ThisValue nur den Aliaswert und nicht den derzeit hinterlegten Namen zurück.

Code
Liste := "Banane"|1 : "Kiwi"|2 : "Orange"|3;
@If(Erstellt < [01.03.2015];@ThisValue; @Trim( @Unique( _Liste)))

Habt Ihr noch Ideen  ???

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #12 am: 18.03.15 - 16:20:13 »
Code
_listealt := "Apfel|1" : "Birne|2" : "Kirsche|3";
_listeneu := "Banane|1" : "Kiwi|2" : "Orange|3";
@If (Erstellt < [01.03.2015]; _listealt; _listeneu)

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #13 am: 19.03.15 - 07:58:58 »
Vielen Dank für Eure Ideen.

Ich werde es wie von Peter vorgeschlagen nun über das Erstelldatum lösen, da ich hiermit am wenigsten Aufwand habe.


Noch eine generelle Frage:
Wenn ich Auswahlfelder habe,  die wie in meinem Fall häufig Änderungen unterliegen, und auch bestehende Dokumente nicht verändert werden sollen, welche weiteren Ansätze gibt es dafür  ???
Über welchen Weg löst Ihr das ?



Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #14 am: 19.03.15 - 09:11:53 »
Konfigurationsdokumente mit den zur Verfügung stehenden Schlüsselwörtern, die jederzeit geändert werden können - und auf jeden Fall *nicht* über Aliase, da diese ja genau für den gegenteiligen Fall gedacht sind.

Bernhard

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #15 am: 19.03.15 - 09:15:40 »
Bei uns im Haus setzen wir inzwischen in fast allen Anwendungen ein oder mehrere Konfigurationsdokumente ein, in denen alle wichtigen Wertelisten hinterlegt werden.

In die Masken kommt für jedes benötigte Wertefeld ein verstecktes Feld, dass sich beim Anlegen des Dokumentes (Berechnet beim Anlegen) die aktuell gültigen Werte aus der Konfiguration zieht. Somit ist sichergestellt, dass wir bei Überarbeitung der Wertelisten nicht jedes Mal aufwendige Migrationsszenarien benötigen.

Gruß
Dirk
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline Caleb666

  • Junior Mitglied
  • **
  • Beiträge: 76
Re: Feldwerte ändern ohne bestehende Dokumente zu beeinflussen
« Antwort #16 am: 20.03.15 - 09:11:31 »
Danke, ich werde Eure Tipps das nächste mal berücksichtigen  ;)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz