Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 22.11.02 - 09:19:08
-
Hallo Leute,
ich habe eine Dialogliste mit Mehrfachwerten, die ich über ODBC aus einer SQL Datenbank mit Werten fülle.
Für den User benötige ich die Klarnamen,
für künftige Operationen aber die ID.
Die Tabelle STICHWORTE_VL
besteht nur aus zwei Spalten
STICHWORT_ID und STICHWORT_NAME.
So fülle ich die Dialogliste
Formel für Auswahl verwenden :
Datenquelle := "SQLDatenbank";
BenutzerID := "";
Kennwort := "";
Tabelle := "STICHWORTE_VL";
Spalte := "STICHWORT_NAME";
@DbColumn("ODBC" : "NoCache" ; Datenquelle ; BenutzerID ; Kennwort ; Tabelle ; Spalte ; "" )
Wie holt man zeitgleich auch noch die ID-Werte ?
hat da jemand eine diee ?
vielen dank für Eure Tipps
Ciao
Don Pasquale
-
... eine 2. DBColumn und die Werte in Variablen übernehmen - oder hab ich da was falsch verstanden?
ata
-
hi ata,
Das geht ?
zur Sicherheit:
Ich benutze das Formelfenster im Eigenschaftsfenster des Feldes.
Kein Ereignis.
don
-
... warum auch nicht?...
Datenquelle := "SQLDatenbank";
BenutzerID := "";
Kennwort := "";
Tabelle := "STICHWORTE_VL";
Spalte1 := "STICHWORT_NAME";
Liste1:= @DbColumn("ODBC" : "NoCache" ; Datenquelle ; BenutzerID ; Kennwort ; Tabelle ; Spalte1 ; "" )
Spalte2 := "STICHWORT_ID";
Liste2:= @DbColumn("ODBC" : "NoCache" ; Datenquelle ; BenutzerID ; Kennwort ; Tabelle ; Spalte2 ; "" )
REM "... und jetzt verketten...";
Liste1 + "|" + Liste2;
ata
-
@ata, wenn nun mittendrin bei ID ein Wert "Empty" ist, dann verschiebt sich doch die Verkettung, oder? Daran sollte man dann in der View zB denken, die leeren Spaltenwerte unbedingt mit Dummywerten zu befüllen, damit die Verschiebungseffekte bei Verkettungen mehrerer Listen nicht auftreten (wenn das einer liest, der das nicht kennt, muß der denken, ich bin deppert... ;D).
-
hi ata,
Hast Du einen Schimmer, was die Fehlermeldung
flasche Datentyp für Operator oder @Funktion Text erwartet
in diesem Zusammenhang bedeuten könnte ?
Don Pasquale
-
@Rob
... ich habe dran gedacht, aber ich wollte Don Pasquale noch was übrig lassen ;D ;D ;D
@Don Pasquale
... deine ID sind vermutlich Zahlen, also muß da noch ein @Text drumrum...
ata
-
@Rob Da wäre ich (in diesem Fall) nie drauf gekommen, denn die ID ist ein NOT NULL Feld.
@ata. Vielen Dank, es war das @Text
Es klappt leider immer noch nicht.
Angzeigt wird nämlich immer nur der erste Teil der Liste.
Die konkatenation scheint nicht zu funktionieren.
Don Pasquale
-
... angezeigt ja, die Rückgabe müßte aber deine ID sein.
... speicher das Dukument mit einer Auswahl und schau in den Dokumenteigenschaften im Feld nach was drin steht... es müsste die ID sein...
ata
-
Hi ata,
Wenn der User die Dialogliste anwählt,
dann sieht er die Klarnamen,
Ich sehe im Script dann in Feld(0) .. Feld(n) dann die ID´s.
Es ist genauso wie es soll.
Ein Wunder, ein wunder.
Nur, ich versteh´s nicht.
Ciao
Don Pasquale
-
... was verstehst du nicht? Die Verkettung bildet eine Liste der Namen mit ihren ID's - Rückgabewert ist die ID...
... oder versuchst du etwa per UIDoc drauf zuzugreifen?...
ata
-
... oder versuchst du etwa per UIDoc drauf zuzugreifen?...
ata
ja !?
-
... im Frontend bekommst du was du siehst, im Backend was drin steht...
ata
-
Hallo Leute,
ich denke, ich habe jetzt das was ich wollte.
Problembeschreibung :
In einer externen SQL Datenbank stehen in einer Tabelle Werte.
Diese sollen eine Dialogliste füllen. Der User soll den Klarnamen sehen können, intern möchte ich aber mit der ID des Klarnamens aberbeiten. Die tabelle mit den werten ist einfach aufgebaut.
TABELLE: STICHWORTE_VL
SPALTE 1 : STICHWORT_ID
SPALTE 2 : STICHWORT_NAME
Meine Lösung :
In der Maske benutze ich eine Dialogliste, für die
Auswahl gilt folgende Formel:
Datenquelle := "DSN_NAME";
BenutzerID := "";
Kennwort := "";
Tabelle := "STICHWORT_VL";
Spalte1 := "STICHWORT_NAME";
Liste1:= @DbColumn("ODBC" : "NoCache" ; Datenquelle ; BenutzerID ; Kennwort ; Tabelle ; Spalte1 ; "" );
Spalte2 := "STICHWORT_ID";
Liste2:= @DbColumn("ODBC" : "NoCache" ; Datenquelle ; BenutzerID; Kennwort; Tabelle; Spalte2; "" );
REM "... und jetzt verketten...";
Liste1 + "|" + @Text(Liste2)
Im Feld fldStichwort habe ich nun ein Array,
von dem ich nicht weiss wie groß es ist,
also steppe ich von lBound bis uBound hindurch.
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim wert As String
Set uidoc = uiws.CurrentDocument
Set doc = uidoc.Document
Dim inhalt As Variant
inhalt = uidoc.Document.GetItemValue("fldStichwort")
Dim Zahl As Integer
For i = Lbound(inhalt) To Ubound(inhalt)
wert = wert & " " & doc.fldstichwort(i)
Next
Messagebox wert
Vielen Dank an Ata, Rob_Green und manuel für die Hilfen.
Ciao
Don Pasquale
-
... ist es Absicht, daß deine Variable Wert mit einem Leerzeichen beginnt, ansonsten könntest du noch einen Trim() setzen...
ata
-
@Ata,
Mit einem Leerzeichen fängt die doch gar nicht,
ah ja jetzt, ich sehe was Du meinst.
Aber Wert ist eigentlich unwichtig,
es ging mir nur darum, dass ich
sofort sehe was drin ist.
gruß
Don Pasquale