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.
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?
Danke soweit für eure Hilf, ich bin inzwischen weiter gekommen. Ich musste lediglich das hier
Dim db As New NotesDatabase( "ax123/ABCDE/DE","dochouse\DHPro.nsf" )
entfernen und schon gings. ;D
Aber momentan häng ich woanders.
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? ???
VIelleicht hilft das weiter:
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...)
Das ErrorHandling sollte unbedingt wie folgt ergänzt werden:
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
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.
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.
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.
Sub Click(Source As Button)
On Error Goto ERRORHANDLE
Dim db As New NotesDatabase( "","DHTimRegen.nsf" )
'Das ist meine lokal gespeicherte Datenbank.
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.
"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?
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".
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.
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.
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. ;)
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.
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