Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 01.07.04 - 15:25:42
-
Hallo Forum,
ich brauch' mal wieder einen Rat:
Ändert man den Text einer Checkbox-Auswahl tritt der Effekt auf, dass alte Dokumente an dieser Stelle ein leeres Kästchen haben. Ist ja auch klar, die alte Auswahl existiert ja so nicht mehr.
Frage: wie kann ich dieses programmtechnisch managen, ohne per Suchdurchlauf alle Dokumente zu durchforsten und den Eintrag auszutauschen. Am besten wäre eine Lösung innerhalb der Maske mit @function oder notfalls schript.
Any idea?
Alexis
-
Wie wär's mit einem "computed for display" feld? ("berechnet zur anzeige" hab' halt alles in englisch)
Darin zeigst Du nur für's Lesen den Inhalt des Checkbox Feldes an. (Standard "Hide when" Funktion - ähm - "Abssatz verbergen")
Gruss aus der Schweiz
-
Eine Variante wäre im Querysave des Dokumentes eine Abfrage einzubauen nach dem Motto, bist du leer oder hast du keinen Wert der eigentlich in der Feldliste, die natürlich konfigurierbar ist drinsteht, dann nimm einen Default Wert, den du wieder aus einem Konfigurationdokument holst.
Allerdings wenn du das Keyword irgendwo für Workflow oder so was brauchst, dann hast du mit der Methode eine Menge Ärger am Hals. Besser ist ein einfacher, primitiver Agent den du nach deiner Änderung einmal über alle Dokumente diesen Typs laufen lässt und der dir den Wert abc durch xyz ersetzt, wenn er denn vorhanden ist.
Thomas
-
Hai @Isa
so geht es leider nicht, da die User in der Maske auch weiterhin editieren und somit die Checkbox nicht umgangen werden kann.
@Thomas
Ich muss schon den Feldinhalt direkt austauschen, mein Versuch mit einem Agenten mit @if inhalt = xxx dann @setfield = yyy (in richtiger Syntax) greift leider nicht (Inhalt bleibt auf altem Wert).
Alexis
-
Mach Dir doch einen simplen Agent, der "AlterWert" gegen "NeuerWert" austauscht:
FIELD DeinFeld := @ReplaceSubstring (DeinFeld; "AlterWert"; "NeuerWert").
Dieser Agent läuft über alle Dokumente der DB oder gewählte einer Ansicht (je nachdem, wie das bei Dir aussieht).
HTH,
Bernhard
-
Multi oder Single Value?
Und wenn du eh in einem Rutsch austauschen musst, willst dann schreib dir einen Agent.
@replace(deinfeldname;"AlterWert";"NeuerWert")
-
Hallo Berhardt,
Danke, das klappt (so einfach!).
Du hast mir schon so oft geholfen, ich muss dir wohl mal 'ne Flasche Schampus zukommen lassen.
Alexis
-
automatisches Aktualisieren beibringen, wenn atnotes offen ist.
Was ist übrigens aus Coburg geworden?
Thomas
-
@Thomas:
Deep Purple wird's auch ohne mich schaffen - es hat terminlich bei mir leider nicht sein sollen mit Coburg.
@Alexis:
Immer gerne :) Schick' einfach einen Scheck an den Getränkehändler meines Vertrauens - 11,50 kostet ein K20 "Wieninger Hell" - das ist mir lieber als Schampus ;D
Bernhard
-
Wenn du mit Aliasen arbeitest hast du übrigens null Pflegeaufwand in den Dokumenten (wenn ich dein Problem richtig verstanden habe)
-
Hallo Thomas, hallo Forum,
DAS ist die einfachste Lösung, die fast keine Nebenwirkungen hat.
Hier noch einmal mein Problem und die Lösung:
In einer Maske sollte in einer Checkbox ein Text verändert werden, da der alte missverständlich war. Das hat zunächst die Folge, dass die Einträge in den alten Dokumenten verschwinden (den neuen Text kennt das alte Dokument ja nicht).
Lösung 1:
Ein Replace der alte Texte geht natürlich, hat aber den Nachteil, dass die Dokumente als ungelesen deklariert werden.
Lösung 2:
In der Maske hinter den neuen Texten den alten Text als Alternativtext eintragen (Text_neu|Text_alt) und Synonyme im Feld zulassen.
Danke für Eure Anregungen
Alexis