Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: RalfK am 28.11.05 - 12:10:27
-
Hallo atnotes Gemeinde,
ich habe ein kleines Problem, oder besser gesagt, ich komme nicht auf den Lösungsansatz. Vielleicht könnt ihr mir einen Tipp geben.
Also ich habe ein Profildokument in dem verschiedene Werte stehen. Also zB
Feld1: Komplettrechner Feld1a: Preis
Feld2: Festplatte Feld2a: Preis
So weit so gut. Ich kann nun über @GetProfileField die einzelnen Felder in ein neues Dokument einlesen. Jetzt möchte ich das etwas weiterentwickeln. Ich würde gern eine Dialogliste schreiben, wo die einzelnen Werte drinstehen (also Rechner, Festplatte). Zusätzlich möchte ich für jeden Wert einen Preis festlegen. Das Ganze im Profildokument.
Öffnet nun der Benutzer ein neues Dokument, soll er per Dialogliste den Wert aussuchen und bekommt automatisch den Preis geliefert.
Mein Ansatz ist eigentlich, dass ich ein relativ schlankes Profildokument habe, was ich ohne Probleme an die jeweiligen Anforderungen anpassen kann.
Wißt ihr, wie ich dort am besten rangehen kann? Oder kennt ihr Quellen, wo man sich dazu informieren kann?
Grüße
Ralf
-
Hi,
ich halte Profildokumente für nicht die richtige Lösung für die von Dir gewünschte Umsetzung.
Mach doch in der gleichen oder einer anderen Datenbank eine neue Maske, wo die Hardwaretyp, Bezeichnung, Preis etc. Erfassen kannst. Diese Dokumente kannst du in Ansichten ausgeben, und dich mittels DBLookup oder DBcolumn darauf beziehen.
-
Hm das wäre auch eine Idee, aber dann habe ich doch das Problem, dass ich, wenn ich einen Wert auswähle, nicht automatisch die zugehörigen Werte wie zB Preis und Anzahl usw. angezeigt bekomme, oder habe ich da einen Denkfehler? Hmm.
Ich sollte es einfach mal testen.
-
Definitv Denkfehler. Wenn du ein Dokument X auswählst kannst du natürlich auch andere mit diesem Dokument zusammenhängende Daten übernehmen.
-
Ja. Ich habs mal probiert. Genau das habe ich gesucht. Aber was noch nicht so ganz klappt, ist den 2. Wert abhängig vom ersten zu machen.
Ich habe nun mit
@dbcolumn(........) eine Dialogliste erstellt. Klappt klasse und ich kann dort die einzelnen Dokumente anwählen.
Doch irgendwie klappt es nicht, mir im 2. Feld den Preis anzeigen zu lassen. Er zeigt sämtliche Inhalte der Spalte an. Ich möchte aber, wenn ich oben zB "PC" auswähle, auf das passende Feld in der Spalte "Preis" meiner Ansicht zugreifen.
Inwiefern muss ich die @dbcolumn Formel ändern?
-
Hi,
wenn Du ein DBColumn odeer DBLookup in einer Auswahlliste machst, dann gibt es dort zwei Optionen in den Feldeigenschaften:
1. Felder aktualisieren bei Auswahl
2. Auswahl aktualisieren bei Feldänderung
Mit ersterem werden die anderen Felder aktualisiert, sobald du eine Auswahl triffst
Mit zweitem erreichst Du das die Auswahlliste aktualisiert wird, sobald in einem anderen Feld eine Änderung stattfindet.
Mit Kombination dieser beiden Feldoptionen, kannst Du genau das erreichen was du willst.
-
Hmm daran liegt es leider nicht. Ich habe im 2. Feld die Formel
@Dblookup( "" : "" ; "" : "" ; "Produkte" ; (Produktname);2)
stehen. So dass er anhand des gewählten 1. Eintrages in diesem Feld den 2. Eintrag reinschreibt.
Nur bekomme ich immer die Fehlermeldung, dass das 2. Feld nicht indiziert ist.
-
Hi,
ist deine Ansicht nach der ersten Spalte sortiert?
Ansonsten guckts du hier:
@DbLookup( Klasse : Cache ; Server : Datenbank ; Ansicht ; Schlüssel ; Feldname)
@Dblookup( "" : "" ; "" : "" ; "Produkte" ; (Produktname);2)
Es gibt in Notes bestimmt kein Feld mit dem Namen (Produktname) !!!!
-
Die Klammern sind aber zulässig, Ulrich-Thomas. Sie machen nur keinen Sinn.
Um ganz auf Nummer sicher zu gehen, habe ich das eben auch praktisch getestet.
Bernhard
-
Die Klammern sind aber zulässig, Ulrich-Thomas. Sie machen nur keinen Sinn.
Um ganz auf Nummer sicher zu gehen, habe ich das eben auch praktisch getestet.
Bernhard
Japp. Das habe ich auch aus der Hilfefunktion entnehmen können. Um nochmal auf die andere Frage zu kommen:
Die Ansicht ist in der ersten Spalten aufsteigend sortiert.
1. Spalte: Name Feld: Produktname
2. Spalte: Aufschlag Feld: Aufschlag
Wie gesagt, die Dialogliste zum auswählen des Produktes klappt mit @dbcolumn. Nur will er nicht im 2. Feld die o.g. Formel ausführen, irgendwo ist dort ein Fehler, den ich nicht finde.
Edit:
Ich habe mal die Datenbank angehängt
-
Hallo,
nehme die folgende Formel:
T := @DbLookup( "": "" ; "";"Produktpflege";Produktauswahl;2);
@If(@IsError(T);"ERROR";T)
Zwei Bemerkungen dazu:
1. Für die Spalte die Du als Rückgabe brauchst, immer die Spalten Nr. nehmen.
2. Die Fehlermeldung "....view index bla, bla, bla" musst Du bei DbLookup
IMMER mit @IsError abfangen.
Boris
-
Ah genau das hat die Lösung gebracht. Folgende Fehler sind mir unterlaufen:
Ich habe mich in der @dblookup im Feld Schlüssel auf den falschen Wert bezogen
Die Fehlermeldung nicht abgefangen.
Vielen dank für die schnelle Hilfe.