Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: webchild am 12.11.03 - 15:39:24
-
Ich habe ein Feld "Projekte"in einer Maske in dem mehrere Einträge aus einem Schlüsselwortfeld ausgelesen wurden.
Dann habe ich eine Ansicht, in der diese Werte jeweils getrennt angezeigt werden.
Ich möchte diesen einzelnen Wert nun wiederum an eine Variable übergeben.
Also, wenn ich nun ein Dokument in dieser Ansicht auswähle, soll nur dieser Eintrag an besagte Variable über einen Agenten ausgegeben werden.
Da ich noch nicht sehr firm in Lotus Script bin (totaler Anfänger) komme ich schon gedanklich nicht klar.
Ich kriege es nicht auf die Reihe einen Wert aus einer Ansicht auszulesen.
Soweit bin ich bis jetzt gekommen, aber ich bekomme nur den Fehler "Type Mismatch" ausgegeben:
Dim ws As New NotesUIWorkspace
Dim session As New notessession
Dim db As notesdatabase
Dim view As notesview
Dim doc As Notesdocument
Dim notesViewColumn As NotesViewColumn
Dim Projektnummer As Variant
Dim test As String
Set db = session.CurrentDatabase
Set view=db.getview("(Projekt)")
Set notesViewColumn = view.Columns (0)
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument
Set Projektnummer = notesViewColumn
Messagebox (Projektnummer)
Nicht lachen sondern bitte helfen, Danke! Ich hoffe es ist nur eine Kleinigkeit! :'(
-
Nicht lachen, sondern lächeln ... ;)
Ist die Ansicht kategorisiert? Dann könnte das helfen:
notesUIView.CaretCategory
Vielleicht funktioniert das auch bei nicht kategorisierten (auch wenns dazu nicht vorgesehen ist). Ansonsten dürfte es gar nicht so einfach sein, diese Info zu bekommen .... :-(
-
Die Ansicht ist kategorisiert, aber blöde Frage wo soll ich das denn einbinden?
Soll ich es einfach der Variable "Projektnummer" zuweisen? Aber dann kommt die Fehlermeldung "Variable does not contain an object".
Dim ws As New NotesUIWorkspace
Dim session As New notessession
Dim db As notesdatabase
Dim Projektnummer As Variant
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set Projektnummer = notesUIView.CaretCategory
Messagebox (Projektnummer)
???
-
Hi,
du kannst direkt aus einer Ansicht keine Werte auslesen. Du musst immer über ein Dokument gehen. Den richtigen Anfang hast du schon gemacht. Aber über NotesViewColumn kannst du nur die Eigenschaften einer Ansichtsspalte ermitteln.
Dein Code muß so aussehen:
Dim ws As New NotesUIWorkspace
Dim session As New notessession
Dim db As notesdatabase
Dim doc As Notesdocument
Dim strProjektNummer As String
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument
strProjektnummer = doc.Projekte(0)
Messagebox strProjektnummer
Axel
-
Set notesUIView=ws.CurrentView
Vielleicht befreundest Du Dich mal mit der Hilfe des Designers
-
... man kann Werte aus einer Ansicht lesen. Dazu verwendet man die NotesViewEntry => mehr dazu in der Hilfe...
... über den Eintrag kann man auch das dazugehörige Dokument initialisieren...
ata
-
Ata: kennst Du eine Möglichkeit, den ViewEntry der aktuellen Zeile zu bekommen? Das wäre ja eigentlich die naheliegendste Möglichkeit, ich sehe da aber nirgends sowas wie ein "currentViewEntry" oder sowas ..... :-( Wenn wir den haben, dann ist die Sache eine Leichtigkeit.
-
Hi,
über die Eigenschaft ColumnValues kann man alle Einträge einer Spalte auslesen.
Nur, den Wert der aktuellen Zeile bekommt man so nicht und das ist was webchild haben will. Da bleibt nichts anders übrig als über das Dokument zu gehen.
Axel
-
NotesViewentry kann ich ja nur benutzen wenn ich die Funktion GetEntryByKey("key$") verwende, aber was soll ich den als Schlüssel angeben? Sonst wäre es das doch schon:
Dim view As NotesView
Dim entry As NotesViewEntry
Set view = db.GetView("By Category")
Set entry = view.GetEntryByKey("Cars")
Messagebox entry.ColumnValues(0)
Deine Lösung Semeaphoros die du vorgeschlagen hattest (notesUIView.CaretCategory) wäre perfekt, wenn ich nicht den Wert aus einer versteckten Ansicht auslesen müsste, weil der Inhalt des Feldes noch mal getrennt werden muß in Projekt und Funktion.
Das habe ich erfolgreich in einer weiteren Ansicht gemacht aber das ist nicht die Anscht aus der man operiert.
Ich lese auch brav die Hilfe zu allen Befehlen die mir Vorgeschlagen werden! :)
Ich habe die Datenbank nicht gemacht, soll aber jetzt Anpassungen vornehmen und Funktionen einbauen, deshalb dieser komplizierte Weg!
Danke für jede Hilfe die ich erhalte! :-*
-
Axel: Das ist genau so wie Du sagst, hier haben wirs aber mit einem auseinandergezupften Multi-Value-Field zu tun und müssen wissen, welcher Eintrag ausgewählt wurde.
Webchild: Aber wenn Du über Caret ja das Resultat (fast) bekommst, dann solltest Du doch aus dem Caret-Resultat heraus entweder deinen Key zum Weitersuchen ausbrechen können oder sonstwie über einen Nachschlage-Vieh über die möglichen Caret-Werte hinüber eine Uebersetzung oder so machen können .....??
Na ja, Maintenance in fremdem Code ist eine anspruchsvolle Geschichte .......
-
Ein Beispiel für den Inhalt in dem Mehrfachfeld und die Messagebox die ausgegeben wird (notesUIView.CaretCategory) habe ich mal als Grafik angehängt.
Ich werde ab morgen 3 Wochen Urlaub machen und mich erst danach wieder darum kümmern können, also nicht denken ich hätte kein Interesse mehr an den Antworten!
Ich denke ich bin einer Lösung nicht mehr so fern, vielleicht werde ich aber doch die Felder oder die Ansicht ändern.
Bis dann, danke schon mal für die Unterstützung bisher! :D