Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Angelos am 02.07.08 - 10:08:44

Titel: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 10:08:44
Hallo Leute,

Ich habe da ein kleines Problem mit einer Aktion. Und zwar habe ich eine Maske angefertigt in der es einen Button gibt, der eigentlich beim Drücken ein Pop-Up erstellen soll, damit man einen bestimmte Datensatz auswählen kann. Das Problem hierbei ist, dass ich die Aktion mit Copy & Paste übernommen habe und ich nun anstatt auf den Server zu verweisen, auf meine lokale Datenbank verweisen will. D.h. die Aktion soll nicht die Datensätze aus der Serverdatenbank anzeigen, sondern diejenigen, die ich lokal gespeichert habe.

Code
Sub Click(Source As Button)
	
	On Error Goto ERRORHANDLE
	
	Dim db As New NotesDatabase( "ax123/ABCDE/DE","dochouse\DHPro.nsf" )
.....

Nun meine Frage: Im obigen Code ist doch bei "Dim db As..." die Verzeichnissangabe der Datenbank, oder nicht?
Wie muss ich das umändern um auf meine lokale Datenbank zuzugreifen?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 10:16:04
1.Du möchtest Dir in der Designer-Hilfe mal das Thema "Notes DatabaseClass" durchlesen.

2. Solltest du mal einen Lehrgang in Notes besuchen oder Fachliteratur kaufen.

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 10:16:20
Designer-Hilfe -> Notes Database Klasse -> Methode New

Den Text aus der Hilfe paste ich Dir hier jetzt nicht rein, damit Du das Suchen in der Hilfe ein wenig übst. ;)
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 10:26:14
ok, danke soweit. Nun weiss ich sschonmal wie ich die Verzeichnisse richtig angebe.  ;D

Aber sobald ich jetzt auf meine Database zugreifen will, kommt eine Fehlermeldung:"Eintrag nicht in Gestaltungsliste".
Was ist das schon wieder?

@klauss:
Ein Lehrgang in Notes ist verdammt teuer für einen Erstsemstler.  Woher das Geld nehmen? :-:
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 10:30:33
Zitat
Aber sobald ich jetzt auf meine Database zugreifen will,

Wie denn ? Meine Kristallkugel sonnt sich gerade......

Wenn kein Geld für einen Lehrgang, dann wenigstens ein Buch aus dem Herdt-Verlag ( ca. 30,-€).
Ohne Basics bringt das alles nix.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: WernerMo am 02.07.08 - 10:32:05
Hallo

Buch aus dem Herdtverlag würde ich auch empfehlen.

Und vermutlich hast Du beim "Kopieren" eine Ansicht/einen Ansichtnamen mit kopiert, den es in Deiner Datenbank nicht gibt.

Gruß Werner
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 10:32:45
1) Wenn Du Dir als Erstsemester eine Notes Client, Designer und Server Lizenz leisten kannst, sollte auch ein Kurs drinnen sein.

2) BITTE installier Dir einen englischen Server/Client. Mit den deutschen Fehlermeldungen kann man ja nix anfangen.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 10:37:42
Zitat
1) Wenn Du Dir als Erstsemester eine Notes Client, Designer und Server Lizenz leisten kannst, sollte auch ein Kurs drinnen sein.

Da wollte ich gar nicht fragen, aus welcher Quelle das kommt.....  :-P

Könnte ja auch ne Beta sein......
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 10:40:33
ICH hab mir den Notes-Client nicht gekauft.  ;)
Ich benutz ihn im Büro bei der Arbeit. Das alles läuft ja im Rahmen einer Studienarbeit. Ja doch, ein Buch scheint echt was herzugeben. Ist das oben genannte wirklich gut?

Hmm, zum Probelm muss ich mal den Kollegen fragen, wenn er wieder da ist...

Danke soweit.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 10:58:01
ICH hab mir den Notes-Client nicht gekauft.  ;)
Ich benutz ihn im Büro bei der Arbeit. Das alles läuft ja im Rahmen einer Studienarbeit.
Na dann müsste/sollte auch eine entsprechende Schulung und/oder literatur drinnen sein. Du bist ja kein dummer Leiharbeiter.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 11:01:21
Zitat
Du bist ja kein dummer Leiharbeiter.

... aber vielleicht ein Praktikant, der ausgenutzt wird.....
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 11:14:59
weder noch. ich bin ganz normal angestellt. Ba-Studium kennt ihr doch sicher. 3 Monate Praxis im Unternehmen, 3 Monate Studium an der Berufsakademie.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Glombi am 02.07.08 - 11:18:13
Ein Tip, wie man deutsche Fehlermeldungen in Englisch ausgibt, ohne den Client neu installieren zu müssen: In den Benutervorgaben Englisch einstellen und den Client neu starten.

Mach das doch mal, vielleicht gehts dann hier fachlich weiter!

Andreas
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 12:17:42
Danke soweit für eure Hilf, ich bin inzwischen weiter gekommen. Ich musste lediglich das hier
Code
Dim db As New NotesDatabase( "ax123/ABCDE/DE","dochouse\DHPro.nsf" )
entfernen und schon gings.  ;D

Aber momentan häng ich woanders.
Code
	Set doc = ws.CurrentDocument.Document	
	back = ws.PickListStrings ( PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	"(Projektdokumente \nach Projektnummer)", _
	"Projektauswahl", _
	"Bitte ein Projekt auswählen", _
	1, "")
	If Isempty(back) Then Exit Sub	

Und zwar kommt bei diesem Eintrag folgende Fehlermeldung:
"Variant does not contain an object"

Ich kann damit nichts anfangen. Was will mir Notes damit sagen?  ???
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 12:23:45
Dass Du die eine Zeile fälschlicher Weise herausgelöscht hast.

Wie soll er auf db.Server zugreifen, wenn db nicht gesetzt ist?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 12:24:39
Zitat
Ich kann damit nichts anfangen.

Ich auch nicht. Bitte den ganzen (!) Code posten.

Zitat
Was will mir Notes damit sagen?

Dass Du einen Fehler gemacht hast  ;D
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 12:31:02
Es geht hier ja genau darum, dass die Aktion eben NICHT auf den Server zugreifen soll, sondern auf die Datenbank die ich lokal gespeichert habe und genau jetzt bearbeite.

Dass ich einen Fehler gemacht habe weiss ich auch.  ::)

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 12:33:59
Würdest Du jetzt ENDLICH bitte die Designer-Hilfe zum Thema "NotesDatabase" Klasse, Methode "New" befragen?

Da gibts die Info:
Zitat
Dim variableName As New NotesDatabase( server$, dbfile$ )
server$ ... String. The name of the server on which the database resides. Use XXXXXXXXXXXXXXX to indicate a database on the current computer:
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Axel am 02.07.08 - 12:40:13
Auszug aus der Designer-Hilfe:

Zitat
...
Syntax
Dim variableName As New NotesDatabase( server$, dbfile$ )
or
Set notesDatabase = New NotesDatabase( server$, dbfile$ )

Parameters

server$
String. The name of the server on which the database resides. Use an empty string ("") to indicate a database on the current computer: if the script runs on the workstation, the empty string indicates a local database; if the script runs on a server, it indicates a database on that server.


... und mit current computer ist die lokale Arbeitsstation gemeint.

Axel
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 12:47:27
@Axel,

du verrätst aber auch alles.... ;)
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 12:48:47
Axel, ich habe den relevanten Teil extra ausge-Xt, damit der Engel mal die Designer-Hilfe benutzt. :(
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Axel am 02.07.08 - 13:05:07
Axel, ich habe den relevanten Teil extra ausge-Xt, damit der Engel mal die Designer-Hilfe benutzt. :(

Ich hab's gesehen, aber ich konnte "das Gestochere" einfach nicht mehr mit ansehen.   ;) :o


Axel
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 14:00:25
VIelleicht hilft das weiter:

Code
Sub Click(Source As Button)
	
	On Error Goto ERRORHANDLE
	
	Dim db As New NotesDatabase("","C:\Program Files\lotus\notes\data\DHTimRegen.nsf")
	Dim view As NotesView
	Dim doc As NotesDocument
	Dim session As New NotesSession
	Dim projectdoc As NotesDocument
	Dim ws As New NotesUIWorkspace
	Dim back As Variant
	Dim value As Variant
	
	Set doc = ws.CurrentDocument.Document	
	back = ws.PickListStrings ( PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	"(Projektdokumente \nach Projektbezeichnung)", _
	"Projektauswahl", _
	"Bitte ein Projekt auswählen", _
	1, "")
	If Isempty(back) Then Exit Sub	
	Call doc.replaceItemValue("Zeitprojekt",back(0))
	
	Set View = db.getView("ProjectByProjectTitle")
	If view Is Nothing Then Error 1002, "Projekt-Ansicht konnte nicht geöffnet werden."
	
	Set projectdoc = view.getDocumentByKey( back(0) )
	
	value = projectdoc.getItemValue("ProjectNo")
	Call doc.replaceItemValue("Zeitprojektnummer",value(0))
	
	value = projectdoc.getItemValue("ProjectManager")(0)
	Call doc.replaceItemValue("Zeitprojektverantwortlicher",value)
	
	value = projectdoc.getItemValue("ProjectTeam")(0)
	Call doc.replaceItemValue("Zeitprojektteam",value)
	
	value = projectdoc.getItemValue("ProjectCostCentre")(0)
	Call doc.replaceItemValue("Zeitprojektkostenstelle",value)
	Exit Sub
ERRORHANDLE:
	
	Msgbox "Projektauswahl Fehler:" + Error 
	Exit Sub
	
	
End Sub

Das mit den doppelten Anführungszeichen für local hab ich schon probiert. Er spuckt trotzdem noch ne Fehlermeldung aus. "Eintrag nicht in Gestaltungsliste". Das Umstellen auf Englisch hat nichts gebracht von daher kann ich leider keine passendere Fehlermeldung angeben. Die Hilf sagt auch nichts zu diesem Fehler. (Zudem die Hilfe mal sowas von benutzerfeindlich aufgebaut ist...)
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 14:04:43
Wo kommt der Fehler (Zeile) ?
Was sagt der Debugger ?

Zitat
Zudem die Hilfe mal sowas von benutzerfeindlich aufgebaut ist...
Stimmt nur teilweise. Man(n) muss schon wissen, wie und was man sucht.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 14:15:59
der Debugger verweist auf folgende Breakpoints:
1.) On error go to errorhandle
2.) Dim db as New NotesDatabase...
3.) dim session as new notessession
4.) dim ws as new NotesUIWorkspace
5.) Set doc = ws.CurrentDocument.Document
6.) 1."")

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 14:18:20
1) Der Pfad zur Datenbank tut mir in der Seele weh. Wenn die Datenbank im Notes-Datenpfad ist, reicht der Teil "DHTimRegen.nsf" (steht auch in der Designer-Hilfe).

2) Es fehlt ein grundlegende Fehlerbehandlung. Ist DB überhaupt gesetzt und valide, ist ws, doc, ... gesetzt und valide, ....

3) Gibt es die View "(Projektdokumente \nach Projektbezeichnung)" ?

4) Wenn es die View gibt, ist diese kategorisiert und gibt es eine leere Kategorie (du gibst ja als Category "" an)?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: koehlerbv am 02.07.08 - 14:19:01
Was soll dieser Code denn überhaupt bewirken? Das, was da abläuft, ist komplett sinnfrei - es gibt keinerlei Ergebnis ...

Bernhard
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 14:21:27
Hihi. Jetzt hab ich grad gesehen, worauf sich Bernhard bezieht. *ggggg*
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 14:30:50
@m3

zu 1) bereinigt. Danke für den Hinweis.
zu 2) wtf?  ???
zu 3) ja, die view (Ansicht) gibt es.
zu 4) keine Ahnung?   :-:
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 02.07.08 - 14:36:54
zu 4) keine Ahnung?   :-:

nachsehen? 

und dann noch die Hilfe zur Save-Method befragen.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 02.07.08 - 14:38:38
Also wenn ich das richtig sehe, fehlen dem "Engel" die Basics.

Da ist wohl zuerst eine Schulung o.ä. angebracht. Ansonsten bringt das hier nix.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: koehlerbv am 02.07.08 - 14:40:44
Also wenn ich das richtig sehe, fehlen dem "Engel" die Basics.

Das schrieb er schon:
zu 4) keine Ahnung

Vor allem soll er erstmal aufmalen, was überhaupt Sinn und Zweck der Sache ist - erst dann kann man überhaupt behilflich sein.

Bernhard
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 14:53:50
also, hier nochmal worum es genau geht und was genau mein Problem ist.
Siehe Anhang: Screenshots beigefügt.

Also, ich will auf einen Button klicken (in dem Beispiel "Auswahl nach Projektbezeichnung"). siehe Bild01.

Dieser soll ein Pop-Up öffnen (siehe Bild2) in dem ich das Projekt, dass ich will auswähle und die jewelige Projektnummer und Projektbezeichnung in meine Maske übernimmt.

Ich hab bisher diejenigen Werte (zumindest das was mir klar ist) auf meine Bedürfnisse umgeschrieben. (z.B. Dateipfad, Name der Ansicht, Values...)

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 15:03:41
zu 2) wtf?  ???
If doc|db|ws Is Nothing Then ... ???
Defensive Programmierung, Fehlerbehandlung? Sollte bekannt sein.

Weiter solltest Du, wenn Du Methoden wie "PickListStrings" verwendest, Dir auch die Designer-Hilfe dazu und zu den sich daraus ergebenden Themen GENAU ansehen. Dann sollte Dir (4) klarer werden.

Und einfach zum Nachdenken: Was passiert mit dem Wert, den Du mit "Call doc.replaceItemValue("Zeitprojekt",back(0))" in das Feld des Dokuments schreibst, wenn Du die Sub verlässt?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: koehlerbv am 02.07.08 - 15:08:06
Das ErrorHandling sollte unbedingt wie folgt ergänzt werden:

Code
Msgbox "Projektauswahl Fehler:" & Error$ & " " in Zeile " & Cstr (Erl) 

Beachte auch das "&" statt "+"! Das "+" ist NICHT der String Concenator!

Weiters: Die Fehlermeldung "... nicht in Gestaltungsliste" weist eindeutig auf die fehlerhafte Referenz auf ein nichtexistentes Designelement hin. Die angegebene Ansicht in PicklistStrings ist da sehr naheliegend. Da stimmt etwas nicht - das Leerzeichen vor dem Backslash?

Und: Geh strukturierter an die Sache heran - Code "finden" und dann mit try & error abändern wird niemals dauerhaft funktionieren!

Bernhard
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: m3 am 02.07.08 - 15:11:03
Weiters: Die Fehlermeldung "... nicht in Gestaltungsliste" weist eindeutig auf die fehlerhafte Referenz auf ein nichtexistentes Designelement hin. Die angegebene Ansicht in PicklistStrings ist da sehr naheliegend. Da stimmt etwas nicht - das Leerzeichen vor dem Backslash?
Ich glaub eher es liegt daran, dass er mit einer Kategorie in eine nicht kategorisierte View fährt.

Irgendwie zipft mich das an, kostenlos remote jenen Unterricht zu geben, den unser Engelchen eigentlich Firmenintern bekommen sollte. Da stimmst was prinzipiell nicht. (Und Angelos, ich mach Dir persönlich keinen Vorwurf daraus)
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 02.07.08 - 15:11:42
Code
Weiters: Die Fehlermeldung "... nicht in Gestaltungsliste" weist eindeutig auf die fehlerhafte Referenz auf ein nichtexistentes Designelement hin.

und genau um DIESE Fehlermeldung dreht sich alles. Wenn das verschwindet, komme ich wohl wieder alleine zurecht.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 02.07.08 - 15:21:06
dann lies dir doch das Statement von M3 zur kategorisierten View nochmals durch.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: koehlerbv am 02.07.08 - 16:17:14
Tja, nun isser wech - aber was unsere Hinweise nun bewirkt haben, bleibt im Dunklen ...

Bernhard  >:(
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: guesswho am 02.07.08 - 17:19:52
Zitat
Beachte auch das "&" statt "+"! Das "+" ist NICHT der String Concenator!

nur blöd, dass genau das "+" in den Herdt-Unterlagen (bzgl. Script) konsequent und durchgängig als String Concenator angegeben ist.

Als ich meinem "Engel" hier nach ihren tagelangen Problemen und Versuchen (und endlich dann einer Rückfrage!) erklärt habe, dass das nun GAR NICHT GEHT, hat die mir nach zwei Stunden Suche in der Notes-Hilfe gezeigt, dass es auch dort als Option beschrieben ist....   :o

Wenn unsere Engelchen Grundlagen BEHERRSCHEN würden, wäre das alles kein Problem. Aber mal kurz reinspringen, Semi besuchen, Buch durchwälzen und noch eine Herdt-Unterlage. So, jetzt kann ich alles!

Stimmt, alles ausser den (verd....) Grundlagen

Ach, nur noch eine Frage: Wie kann ich in einer Ansicht Integer in Long umwandeln ?  >:(

Weitere Aussagen verkneif ich mir  ;D

Jo
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 09:27:38
da bin ich wieder.  ;D
Die Hinweise haben mir bisher schon geholfen, jetzt hab ich jedenfalls einen kleinen Ansatz wo die Fehler liegen könnten. Ich denke da auch eher an eine falsche Verlinkung oder so etwas...

Versteht mich nicht falsch, ich würde sehr gerne an eienm Seminar teilnehmen und mir die Grundlagen aneignen. Aber ich stehe unter starkem Zeitdruck. Während der Theoriephase hat man kaum Zeit sich mit etwas anderem zu beschäftigen als mit dem Stoff und in der Praxisphase verlangt die Berufsakademie noch eine Studienarbeit die zügig abgeschlossen werden soll.
Somit hab ich zwangsweise im Moment keine andere Wahl als learning by doing und rumprobieren.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 03.07.08 - 09:30:59
Wo meinst du denn, dass der Fehler liegt?  :o
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 09:40:10
Code
Set doc = ws.CurrentDocument.Document	
	back = ws.PickListStrings ( PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	"(ProjectByProjectTitle_OnlyNotClosed)", _

ich tendiere auf die letzte Zeile. Das ist doch die Ansicht die ich öffnen möchte, nicht wahr?
Picklist erzeugt ja das neue Fenster, das beim Drücken des Buttons erscheint, wenn ich es richtig aus der Hilfe verstanden habe.

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 03.07.08 - 09:50:39
da fehlt ein Teil des Befehles
das ist einer der Punkte, die dir M3 schon gestern erklärt hat

und hast du seine Frage bzgl. der Ansicht überprüft?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 10:04:27
Die Sache ist die, es gibt schon eine funktionierende Version dieser Aktion. Von daher glaube ich nicht, dass da ein Befehl fehlt. Die Variablennamen heißen bei meiner Aktion auch gleich.

Hier nochmal der Code. Das Grüne bezieht sich immer auf die obere Zeile. Da vermute ich die Fehler.

Code
Sub Click(Source As Button)
	
	On Error Goto ERRORHANDLE
	
	Dim db As New NotesDatabase( "","DHTimRegen.nsf" )
'Das ist meine lokal gespeicherte Datenbank.
           
Code
Dim view As NotesView
	Dim doc As NotesDocument
	Dim session As New NotesSession
	Dim projectdoc As NotesDocument
	Dim ws As New NotesUIWorkspace
	Dim back As Variant
	Dim value As Variant
	
	Set doc = ws.CurrentDocument.Document	
	back = ws.PickListStrings ( PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	"(ProjectByProjectTitle_OnlyNotClosed)", _
'Hier muss die Ansicht rein, die ich öffnen will.
           
Code
"Projektauswahl", _
	"Bitte ein Projekt auswählen", _
	1, "")
	If Isempty(back) Then Exit Sub	
	Call doc.replaceItemValue("Projekt",back(0))
	
	Set View = db.getView("ProjectByProjectTitle")
' Oder muss hier die Ansicht rein die ich öffnen will?
   
Code
If view Is Nothing Then Error 1002, "Projekt-Ansicht konnte nicht geöffnet werden."
	
	Set projectdoc = view.getDocumentByKey( back(0) )
	
	value = projectdoc.getItemValue("ProjectNo")
	Call doc.replaceItemValue("Projektnummer",value(0))
	
	value = projectdoc.getItemValue("ProjectManager")(0)
	Call doc.replaceItemValue("Projektverantwortlicher",value)
	
	Exit Sub
ERRORHANDLE:
	
	Msgbox "Projektauswahl Fehler:" + Error 
	Exit Sub
End Sub

Ach ja, die Ansicht, die ich anzeigen will heisst "Projektdokumente \nach Projektbezeichnung" und es gibt eine Spalte namens "Projektbezeichnung", der Typ dieser Spalte ist "Kategorie".
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Axel am 03.07.08 - 10:34:11
Ach ja, die Ansicht, die ich anzeigen will heisst "Projektdokumente \nach Projektbezeichnung" und es gibt eine Spalte namens "Projektbezeichnung", der Typ dieser Spalte ist "Kategorie".

Bezieht sich die Aussage auf die Ansicht, die du bei PicklistString verwendest?

Wenn ja, dann kann das nicht funktionieren, denn du kannst keine kategorisierte Spalte für die Rückgabe verwenden.


Axel
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 03.07.08 - 10:34:37
Code
	db.FilePath, _
	"(ProjectByProjectTitle_OnlyNotClosed)", _
'Hier muss die Ansicht rein, die ich öffnen will.

und nochmals die Frage: hast du diese Ansicht gemäss M3 überprüft? Punkt 4?

Und das musst du schon selber machen, das kann keiner von uns.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Axel am 03.07.08 - 10:42:24
... und was mir noch aufgefallen ist:

Ach ja, die Ansicht, die ich anzeigen will heisst "Projektdokumente \nach Projektbezeichnung" und es gibt eine Spalte namens "Projektbezeichnung", der Typ dieser Spalte ist "Kategorie".

Deine Ansicht hat eine deutsche Bezeichnung, die Parameter bei PicklistString und GetView aber ganz andere (englische) Bezeichnungen. Oder verwendest du Aliasnamen bei den Ansichten?

Das passt auch nicht zusammen. Bereinige das erstmal und dann können wird weitermachen.

Axel
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 10:47:54
Code
4) Wenn es die View gibt, ist diese kategorisiert und gibt es eine leere Kategorie (du gibst ja als Category "" an)?

Ich glaube ich versteh nicht ganz was damit gemeint ist.
kleiner hinweis wonach ich suchen soll? (in der Notes - Hilfe? in der Ansicht selbst?)


@axel
Aliasnamen verwende ich keine. Das sind die englischen Namen von der Ansicht die sich bei der ursprünglichen Aktion öffnet. Das Problem ist, dass ich keinen Zugriff auf diese Ansicht habe um nachzuvollziehen, was da abläuft.
Aber insofern ist inzwischen (fast) alles bereinigt.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 03.07.08 - 10:58:00
Code
4) Wenn es die View gibt, ist diese kategorisiert und gibt es eine leere Kategorie (du gibst ja als Category "" an)?

Ich glaube ich versteh nicht ganz was damit gemeint ist.
kleiner hinweis wonach ich suchen soll? (in der Notes - Hilfe? in der Ansicht selbst?)

Du sollst dir die Methode PickListStrings in der Hilfe ansehen, und zwar im speziellen, welche Parameter für was sind.
Und wenn dir unklar ist, was bei den Erläuterungen für die Parameter steht, musst du das auch nachschlagen.

Zitat von: Angelos

@axel
Aliasnamen verwende ich keine. Das sind die englischen Namen von der Ansicht die sich bei der ursprünglichen Aktion öffnet. Das Problem ist, dass ich keinen Zugriff auf diese Ansicht habe um nachzuvollziehen, was da abläuft.
Aber insofern ist inzwischen (fast) alles bereinigt.


Und deine Ansichten heissen genauso?
Oder  hast du die Namen einfach so stehen lassen?

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Ottmar am 03.07.08 - 11:16:45
Also lieber Angelo,

nochmal ganz langsam:

1) Wie funktioniert der ScriptBefehl "PicklistStrings" ?
back = ws.PickListStrings (PICKLIST_CUSTOM, False, db.Server, db.FilePath, _
          "(ProjectByProjectTitle_OnlyNotClosed)", "Titel", "Nachricht", Spalte)

Parameter:
PICKLIST_CUSTOM = Du möchtest offenbar nicht etwas aus der Systemdatenbank (Domino-Verzeichnis) auslesen, sondern etwas aus einer benutzerdefinierten Datenbank. Das ist soweit offenbar ok.

False = Du möchtest einen Wert als Rückgabewert haben, und nicht mehrere Werte. Der Anwender soll also später, wenn er auf die Schaltflächt clickt, nicht die Möglichkeit haben, mehrere Dokumente auszuwählen, wie das zum Beispiel passiert, wenn Du beim Mail die (mehrere) Addressaten auswählst. Das ist offenbar auch soweit ok.

db.Server, db.file = Die Datenbank "db" soll geöffnet werden, das ist Dir - denke ich - hinlänglich mehrfach erklärt worden, dass Du Deinem Programm damit sagst, dass er die Datenbank "db" (= DHTimRegen.nsf auf lokal) verwenden soll.

"(ProjectByProjectTitle_OnlyNotClosed)" = Die Ansicht "(ProjectByProjectTitle_OnlyNotClosed)" soll geöffnet werden. Hier tun sich einige Fragen auf. Warum wählst Du eine Ansicht mit einem solchen Namen? Du schreibst doch von einer ganz anderen Ansicht? Du schreibst doch, Du möchtest die Ansicht "Projektdokumente \nach Projektbezeichnung" öffnen.
Hier sehe ich mehrere Möglichkeiten, was schief laufen könnte.
Möglicherweise hat die Ansicht, die Du meinst, zwei Namen, einen "normalen" Namen und einen sogenannten Alias-Namen. Das siehtst Du im Designer. Wenn die Ansicht einen Aliasnamen hat, dann nimm den Aliasnamen, sonst nimmst Du den "normalen" Namen. Bitte beachte, dass ein Backslash (= "\") ein Sonderzeichen ist und die Ansicht in Wirklichkeit dann "Projektdokumente \\nach Projektbezeichnung" heisst, also mit zwei Backslashes drinn. Das wäre gegebenenfalls in Deinem Script anzupassen. Grundsätzlich ist es aber eigentlich immer besser, mit Aliasnamen zu arbeiten, also nochmal: Wenn Die Ansicht einen Aliasnamen hat, dann nimm den!

Zum PicklistString-Befehl gehören auch noch die Parameter
"Titel" = Was soll in der Auswahlbox in der Überschrift erscheinen
"Message" = "Mit welcher Frage soll die Auswahl für den Anwender garniert werden"

"Column" = Welche Spalte aus der Ansicht soll im Script zurückgeliefert werden?
Auch hier gibt es offenbar Dinge, die Dir nicht richtig klar sind. Du verwendest den Rückgabewert (back(0)), um später das Dokument zu laden. Das kann aber nur dann funktionieren, wenn die Ansicht, die Du verwendest, bestimmte Kriterien erfüllt. Wenn Column bei Dir 1 ist (das sieht man nicht. weil Dein Code unvollständig ist) und die erste Spalte in der Ansicht ist nicht sortiert, so wird das ganze scheitern, weil dann der "View.GetDocumentByKey" nicht mitmacht.

Zusammengefasst: Der "Pickliststring" öffnet eine Ansicht und bietet dem Anwender eine Auswahl an. Die Datenbank, die zu öffnende Ansicht und die Spalte, die zurückgeliefert werden soll, sind vom Programmierer anzugeben. Als Ergebnis erhält man einen einzelnen Wert, eine unmittelbare Verknüpfung zu einem Notesdokument existiert nicht.

Weiter ersehe ich aus Deinem Programmcode, dass Du aber eine Verknüfung zu einem Notesdokument benötigst. Du willst nicht nur einen Wert lesen, sondern gleich mehrere Felder und deren Inhalte sollen dann offensichtlich in das aktuell geöffnete Dokument eingetragen werden. Hierzu dienen Dir die Befehle "db.GetView" und "View.GetDocumentByKey("KeyName")"
Der GetView macht einfach nur im Hintergrund eine Ansicht auf, ohne dass der Anwender das am Bildschirm sieht. Der "View.GetDocumentByKey" schnappt sich im Hintergrund diese Ansicht und öffnet genauso im Hintergrund das Dokument x welches in der Ansicht unter dem Namen "KeyName" zu finden ist. Als Ansicht käme also die gleiche Ansicht in Frage, die Du auch schon für den PicklistString verwendet hast. Als Schlüssel eignet sich Dein Rückgabewert "Back(0)". Das geht aber - wie gesagt - nur dann, wenn die entsprechende Spalte sortiert ist.

Hoffe, das hilft Dir weiter.

Noch zwei Nachbemerkungen:
1. Ich habe mir diesen grauenhaften Thread jetzt lange genug angeguckt kann ihn nicht mehr sehen, deshalb meine Antwort jetzt etwas ausführlicher.

2. Angelo, ich will Dir wirkich nichts böses unterstellen, aber ich bin überzeugt davon, dass Du mit der Lösung des Problems bislang deutlich mehr Zeit verbraten hast, als wenn Du Dir von Anfang an mal vernünftig die Designerhilfe angeschaut hättest und das Problem ganz in Ruhe angegangen wärst. In sofern sind Deine Aussagen in Sachen Zeitdruck für mich nicht nachvollziehbar.

Grundlagen zu üben ist unter Zeitdruck sicher schwierig. Aber dieses Forum ist eigentlich nicht dazu da, Dinge aus "Datenbankentwicklung 1, erster Schulungstag" zu erläutern, die alle in der Designerhilfe schnell zu finden sind, wenn man nur bereit ist, sich mal eine Stunde darin einzuarbeiten.

Gruß
Ottmar





 
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 11:19:56
PickListStrings in der Notes-Hilfe hatte ich mir gestern schon angeschaut. Ich weiss nicht genau was mir das bringen soll? Verstanden habe ich nicht wofür das in dem Beispiel gut sein soll.

Nein nein, die Ansichten habe ich schon anders bennant, und den Code dementsprechend angepasst.

Hier nochmal ein paar Screenshots:
1.) Das ist meine Maske, von der alles beginnt. Es geht hier konkret um den oberen Button. Wenn ich ihn drücke sollte eigentlich so etwas erscheinen:

2.) Das sollte erscheinen. Von hier wähle ich ein schon vorhandenes Projekt aus und bestätige die Auswahl.

3.) Die Daten von dem bei 2. ausgewählten Projekt, sollen dann in die Felder der Maske übernommen werden. (siehe rote Pfeile)

4.) So sieht die Ansicht aus, die eigentlich bei 2.) geöffnet werden soll aus der ich Projekte auswählen soll.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 03.07.08 - 11:47:16
PickListStrings in der Notes-Hilfe hatte ich mir gestern schon angeschaut. Ich weiss nicht genau was mir das bringen soll? Verstanden habe ich nicht wofür das in dem Beispiel gut sein soll.

Weil du dann vielleicht verstehst, was du machst?!??!?   >:(

Ich habe heute meinen gutmütigen Tag:

zähle deine Parameter und zähle einmal die Parameter in Ottmars Beispiel, und ziehe die eine Zahl von der anderen ab.
Wenn das nicht 0 ergibt, dann hast du den Ansatzpunkt für die Statements von M3.

P.S.: und gibt der Ansicht einen Alias ohne Backslash. und greif dann über den Alias zu. Backslash ist auch ein Escape-Operator, ich vermeide nach Möglichkeit, ihn bei so etwas innerhalb eines Scriptes zu benutzen.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 12:21:29
Code
zähle deine Parameter und zähle einmal die Parameter in Ottmars Beispiel, und ziehe die eine Zahl von der anderen ab.
Wenn das nicht 0 ergibt, dann hast du den Ansatzpunkt für die Statements von M3
.

Sorry, aber ich verstehe nicht ganz, was darunter gemeint ist.
WO genau soll ich WAS zählen ???

Aliasnamen habe ich inzwischen.  ;)
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Ottmar am 03.07.08 - 12:39:55
Angelos, mein Beispiel sieht folgendermaßen aus:

ws.PickListStrings (PICKLIST_CUSTOM, False, db.Server, db.FilePath, _
          "(ProjectByProjectTitle_OnlyNotClosed)", "Titel", "Nachricht", Spalte)

Es ergeben sich:

PICKLIST_CUSTOM +
False +
db.Server +
db.FilePath +
"(ProjectByProjectTitle_OnlyNotClosed)" +
"Titel" +
"Nachricht" +
Spalte =

8 Parameter, die ich dem PicklistStrings-Befehl mitgeben muss.

Deine Codebeispiele sind hier nicht vollständig reinkopiert worden, von daher ist sich Dau-In zurecht nicht sicher gewesen, ob Dein PicklistStrings-Befehl auch 8 Parameter mitbekommen hat. Wenn das nicht der Fall ist, ist das ein erster Ansatz, einen möglichen Fehler aufzuspüren.

Ergänzende Information:
Parameter werden mit Kommata, getrennt. Wenn Du einen Unterstrich in Deinen Befehl einbaust, heisst das nur, dass Du einen Zeilenumbruch machen darfst und der Code trotzdem erkannt wird.

ws.PickListStrings (PICKLIST_CUSTOM, False, db.Server, db.FilePath, _
          "(ProjectByProjectTitle_OnlyNotClosed)", "Titel", "Nachricht", Spalte)

ist identisch mit

ws.PickListStrings (PICKLIST_CUSTOM, _
    False, _
    db.Server, _
    db.FilePath, _
    "(ProjectByProjectTitle_OnlyNotClosed)", _
    "Titel", _
    "Nachricht", _
     Spalte)

Um die Verwirrung komplett zu machen:
PickListStrings liefert Dir ein Datentyp vom Typ "Array of String" zurück.

Wenn Du statt dessen PicklistCollection verwenden würdest, wäre der Rückgabewert vom Datentyp "NotesDocumentCollection"

Dann könntest Du dir den ganzen Quatsch mit "View.GetDocument by Key" sparen.

Also:

Baue bei den "Dim" Befehlen
Dim DocColl as NotesDocumentcollection
ein

Verwende statt PicklistStrings:
Set DocColl = ws.PickListCollection(3, false, db.server, db.FilePath, _
 "(ProjectByProjectTitle_OnlyNotClosed)", "Titel", "Nachricht")

Wie Du siehtst, den Parameter "Spalte" benötigst Du dann nicht mehr.

Um das erste (und einzige) Dokument aus der Collection zu bekommen, schreibst Du

Set projectDoc = DocColl.GetFirstDocument

Gruß
Ottmar
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Axel am 03.07.08 - 12:50:19
PickListStrings in der Notes-Hilfe hatte ich mir gestern schon angeschaut. Ich weiss nicht genau was mir das bringen soll? Verstanden habe ich nicht wofür das in dem Beispiel gut sein soll.

Du hast das nicht verstanden, weil dir die absoluten Grundlagen fehlen. Lass dir eins gesagt sein, und sei mir deswegen bitte nicht böse, so wird das auch nichts werden.

Auch wenn du mir unserer Hilfe das Ding zum Laufen bekommst, bringen tut dich das nicht weiter. Du verstehst nicht wie und warum es funktioniert. Bei der nächsten noch so trivialen Fehlermeldung, stehst du wieder auf dem Schlauch.

Ich rate dir deshalb dringensd besorge die erstmal Einsteiger-Literatur (z.B. Herdt-Verlag) und fang mal klein an. Wenn das eine läuft und vorallem du versteht warum es funktioniert, dann setz die ein nächstes Ziel usw.

Für fundierte Fragen stehen wir hier gerne zur Verfügung, aber wie können und wollen keine Einsteigerschulungen durchführen.

Axel
 
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 03.07.08 - 12:57:15
Siehe dazu #30.

Wenn ich mir diese Gezappel anschaue bzw. durchlese, kann ich mich nur wiederholen: Schulung oder Literatur.
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 03.07.08 - 13:19:20
Erstmal danke an alle für eure Hilfe und eure Geduld. (Special thx to Ottmar)
Aber so komm ich momentan nicht weiter. Ich werd mich wohl oder übel etwas näher damit beschäftigen bis ich mehr weiss, bzw. bis ich ganz genau versteh was der Code überhaupt bringt, wo der Fehler liegt.

Soll ich dann meine Lösung reinposten, wenn sie funktioniert?
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: klaussal am 03.07.08 - 13:35:54
Zitat
3.6 Abschluss einer Problemlösung
  Es wird erwartet, dass ein Feedback gegeben wird zu den Antworten auf ein Posting. Gerne gesehen sind beispielsweise auch die umgesetzten Lösungen in Form von Code(auszügen), was eine zusätzliche Hilfe für Forumsteilnehmer darstellt, die zukünftig das gleiche oder ein ähnliches Problem haben.
Der Thread sollte auch als "Erledigt" gekennzeichnet werden, wenn dieser als Abgeschlossen gilt. Dies erfolgt über einen Mausklick auf den Button .
Dies erleichtert es den Forumsteilnehmern, sich auf noch offene Fragen zu konzentrieren – damit wird die Reaktionszeit auf offene Fragen erhöht.
Hinweis: Diese "Erledigt"-Schaltfläche ist momentan aufgrund eines Software-Updates nicht verfügbar, wird aber demnächst wieder eingebaut. Als Workaround kann der Erstbeitrag editiert und das Symbol "Daumen hoch" ausgewählt werden. 

Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 04.07.08 - 12:18:21
Ich habs geschafft den Fehler zu umgehen und die Aktion zum Laufen zu bringen!  ;D
Es lag an einer einfachen Klammer um den View-Namen.  :o lol
Und hier und da ein paar kleine Änderungen.


Code
Sub Click(Source As Button)
	
	On Error Goto ERRORHANDLE
	
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim doc As NotesDocument
	Dim session As New NotesSession
	Dim projectdoc As NotesDocument
	Dim ws As New NotesUIWorkspace
	Dim back As Variant
	Dim value As Variant
	
	Set db = session.CurrentDatabase
	Set doc = ws.CurrentDocument.Document	
	back = ws.PickListStrings ( PICKLIST_CUSTOM, _
	False, _
	db.Server, _
	db.FilePath, _
	"ProjektdoksNachName", _
	"Projektauswahl", _
	"Bitte ein Projekt auswählen", _
	1, "")
	If Isempty(back) Then Exit Sub	
	Call doc.replaceItemValue("Projekt",back(0))
	
	Set View = db.getView("ProjektdoksNachName")
	If view Is Nothing Then Error 1002, "Projekt-Ansicht konnte nicht geöffnet werden."
	
	Set projectdoc = view.getDocumentByKey( back(0) )
	
	value = projectdoc.getItemValue("Projektnummer")
	Call doc.replaceItemValue("Projektnummer",value(0))
	
	value = projectdoc.getItemValue("Projektverantwortlicher")(0)
	Call doc.replaceItemValue("Projektverantwortlicher",value)
	
	Exit Sub
ERRORHANDLE:
	
	Msgbox "Projektauswahl Fehler:" + Error 
	Exit Sub
End Sub
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: DAU-in am 04.07.08 - 15:16:27
so, ich will dann mal auf Bernhard zurückkommen:
Was willst du mit dem Script wirklich erreichen?  ???

da fehlt doch noch was ....
Titel: Re: Verständnisproblem - Auswahl von Datensatz anhand einer Aktion
Beitrag von: Angelos am 10.07.08 - 09:45:38
nee, da fehlt gar nichts. Es läuft einwandfrei, es tut genau das was es soll.
Im Grunde öffnet dieses Skript eine Ansicht aus der ich bestehende Projekte mit ihren Werten wie Projektname, Projektnummer etc auswählen kann. Sobald ich dann eins ausgewählt habe, fügen sich die Werte des Projekts in die zugehörigen Felder der Maske ein.