Lotus domino designer

Hi,
folgendes Problem:

Ich möchte in einem Dokument einen Wert auswählen, daraufhin sollen alle anderen Felder dementsprechend geändert werden.
Bsp: in dem ersten Feld kann ich auswählen zwischen „Äpfel“ und „Birnen“.
Wählt man „Äpfel“ sollen Feld2 auf „Österreich“, Feld3 auf „Kilo“ und Feld4 auf „Euro“ geändert werden.
Wählt man „Birnen“ aus, so soll in Feld2 „Deutschland“, Feld3 „Gramm“ und Feld4 „Mark“ stehen.
Ausserdem sollen die Felder noch bearbeitbar sein, sprich wählt man „Birnen“ aus, soll es trotzdem möglich sein, dass Feld4 auf „Euro“ zu ändern.
–> zu kompliziert erklärt? --> kann man das realisieren?
ich beschäftige mich erst seit kurzem mit Lotus und bin nicht wirklich bewandt auf diesem Gebiet, wäre deshalb für Hilfe sehr dankbar!
Klaus

Hi Klaus,

ich denke schon, dass das machbar ist, aber leider bin ich mittlerweile zu weit von
der Entwicklung weg. Sorry dafuer.
Wenn Du die Frage anderen stellst, waere es vielleicht noch gut zu sagen, welche
Version von Designer Client bzw Domino generell Du im Einsatz hast, da es hier
auch von Version zu Version Unterschiede gibt.

Sorry nochmal, dass ich Dir nicht mehr sagen kann.

Gruesse
Ulrike

Ich möchte in einem Dokument einen Wert auswählen, daraufhin
sollen alle anderen Felder dementsprechend geändert werden.

[…]

Ausserdem sollen die Felder noch bearbeitbar sein, sprich
wählt man „Birnen“ aus, soll es trotzdem möglich sein, dass
Feld4 auf „Euro“ zu ändern.

[…]

Hallo Klaus01,

grundsätzlich sollte der erste Ansatz die Nutzung der Formelsprache sein. Der Einfachheit halber empfehle ich aber in diesem Fall die Nutzung des onChange-Events von Feld1 und damit die Nutzung von LotusScript:

Sub Onchange(Source As Field)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Dim inhaltfeld1 As String
inhaltfeld1 = uidoc.FieldGetText(„Feld1“)
Select Case inhaltfeld1
Case „Äpfel“
Call uidoc.FieldSetText(„Feld2“, „Österreich“)
Call uidoc.FieldSetText(„Feld3“, „Kilo“)
Call uidoc.FieldSetText(„Feld4“, „Euro“)
Case „Birnen“
Call uidoc.FieldSetText(„Feld2“, „Deutschland“)
Call uidoc.FieldSetText(„Feld3“, „Gramm“)
Call uidoc.FieldSetText(„Feld4“, „Mark“)
Case Else
'keine Aktion
End Select
End Sub

Feld1 ist vom Typ „Dialogliste“ und kann die Werte „Äpfel“ oder „Birnen“ annehmen. Sobald der Wert geändert wurde und in das nächste Feld gewechselt wird (z.B. per Tab-Taste), überschreibt der Code die abhängigen Felder 2-4.

Gruß
Markus

Hallo Klaus,

eigentlich ist es nicht so kompliziert… eigentlich… :wink:

Der „Trick“ ist es, sich den alten Inhalt des Feldes Feld1 zu merken, um festzustellen, ob sich der Wert geändert hat.

Erstelle unterhalb des Feld1 ein Feld1AlterWert, Textfeld, berechnet, versteckt. Wertformel:
@If(
@IsDocBeingLoaded;
@Return(Feld1);
Feld1AlterWert = Feld1;
@Return(Feld1);
„Wert weicht ab“
);

REM {abhängige Felder aktualisieren};
FIELD Feld2 := @If(
Feld1 = „Äpfel“;
„Österreich“;
Feld1 = " Birnen";
„Deutschland“;
Feld2
);
[…]

Feld1

Wenn das Dokument neu geladen wird oder der Wert sich nicht geändert hat, passiert nichts.
Wenn sich der Inhalt von Feld1 geändert hat, werden die anderen Felder neu gesetzt.
Der Wert von Feld1AlterWert ist nach der Berechnung immer der gleiche wie der von Feld1.

Feld1 sollte ein Auswahlfeld (Dialogliste, Radiobutton, Checklist) sein und die Eigenschaft „Maske nach Feldänderung aktualisieren“ (heißt so ähnlich) muss aktiviert sein.

Die Formel lässt sich natürlich noch optimieren. Man sollte möglichst wenige feste Zeichenketten in den Quellcode schreiben (besser in anderen Dokumenten speichern).

Und es gibt auch andere Möglichkeiten, diese Funktionalität zu realisieren. Aber die hier beschriebene ist eine der einfacheren.

Wenn Sie weitere Fragen haben, können Sie gerne wieder auf mich zukommen (am besten direkt; Kontaktdaten s.u.)

Oder Sie können uns auch engagieren. :wink:

Mit freundlichen Grüßen
Thomas Bahn


Thomas Bahn
Diplom-Mathematiker
Geschäftsführer
Tel. +49 4307 900 -401
Fax +49 4307 900 -409
Mobil +49 173 9357916
[email protected]
http://www.assono.de
http://www.assono.de/blog

assono GmbH
Lise-Meitner-Str. 1-7
24223 Schwentinental

Hi Markus,

ich habe das jetzt genauso probiert und es funktioniert :smile:)))

danke vielmals dafür, muss es jetzt noch fertig eintippseln, aber das schaut schon mal sehr vielversprechend aus!

danke!

Klaus

Hallo Thomas!

Besten Dank für deine Antwort aber ich habe schon die andere Lösung von Markus angewendet!!! Danke dir vielmals für die Mühe!

lg

Klaus

Hallo Markus,

nochmals vielen Dank für Deine Hilfe, das hat ganz ausgezeichnet funktioniert und bin sehr zufrieden mit dem Ergebnis! Eine Frage hätte ich jetzt noch, vielleicht kannst du mir ja helfen, in dem Forum konnte ich nichts finden:
Möchte nun die „Äpfel“ rot einfärben & die „Birnen“ grün.
kann ich das auch noch irgendwie mit einbinden?

danke nochmals

Klaus

Eine Frage hätte ich jetzt noch, vielleicht kannst
du mir ja helfen, in dem Forum konnte ich nichts finden:
Möchte nun die „Äpfel“ rot einfärben & die „Birnen“ grün.
kann ich das auch noch irgendwie mit einbinden?

Hallo Klaus,

für den Notes Client funktioniert es mit folgendem Trick (berechnete Hintergrundfarben sind hier leider nicht möglich):

  • 1x1 Pixel große farbige GIF Grafiken erstellen in rot und in grün und als Bildressourcen in die Notesanwendung einbinden.
  • Den Bildressourcen Aliasnamen geben „rot“ für „rot.gif“ und „gruen“ für „grün.gif“, damit Du unabhängig von den Dateinamen bist.
  • Den zu färbenden Teil (z.B. Feld1, in dem Du Äpfel oder Birnen auswählen kannst) in eine Tabellenzelle einfügen.
  • Der Tabellenzelle ein berechnetes Hintergrundbild geben:
    @If(Feld1=„Äpfel“;„rot“;Feld1=„Birnen“;„gruen“;"")
  • Für das Schlüsselwortfeld „Feld1“, in dem Du die Auswahl triffst, die Option „Felder bei Schlüsselwortänderung aktualisieren“ auswählen.

Gruß
Markus

und wieder ein Volltreffer :smile:))

Danke dir vielmals für Deine exzellente Hilfe, hat genauso funktioniert wie ich mir das vorgestellt habe!

besten Dank

Klaus