Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: fiuman007 am 26.07.04 - 08:43:56
-
Hallo Leute,
folgende Sache:
ich habe eine Tabelle mit mehreren Zeilen und Spalten.
In einer Zeile sind mehrere Felder und 3 Hot-Spot Velinkungen.
1. Hotspot: Anfragen
2. Hotspot: Bestellen
3. Hotspot: Arbeitsplan
Also ich will dass wenn ich auf diese Hotspots klicke, mir die Werte von der aktuellen Zeile, auf die neue (Hotspot) Verlinkte Maske/Form
kopiert oder einfach angezeigt werden.
Geht so was überhaupt?
Vielen Dank
-
Hi,
du musst in den Masken jeweils die Eigenschaft "Formeln übernehmen Werte aus gewähltem Dokument" setzen. Außerdem muss in den entsprechenden Feldern der Vorgabewert gesetzt sein. Dort kommt der Feldname rein, von welchem der Wert übernommen werden soll.
Axel
-
Hi Axel,
die Eigenschaft "Formulas inherit values from selected document" ist schon ausgewählt.
Default Value ist auch als Feldname, aus dem der Wert übertragen werden sollte., definiert.
Wenn ich aus einer Ansicht irgendwelchen Eintrag markiere/aufmache dann funktioniert die Wertübernahme auf die andere Maske.
Nur, bei mir ist das Problem dass ich mehrere Zeilen habe. 20 Artikel insgesamt. Und in jeder Zeile sind 5 Felder und 3 Hotspots-Links.
Die Hotspotfelder verweisen/verlinken auf 3 andere Masken.
Und in die wird beim Aufruf, nicht der Wert reingeschrieben.
Also ich denke dass man bei den Hotspot-Eigenschaften das irgendwie reinschreiben muss dass die übernommen werden sollten. Weil so macht er immer eine blanke Seite auf .......
::)
-
Hi,
eine Hotspot - Eigenschaft, die die Werteübergabe regelt gibt es meines Wissens auch unter Version 6 nicht. Dann wird dir nicht anderes übrigbleiben, als das per Formel oder Script auszuprogrammieren.
Axel
-
Uiiii,
weiss du vielleicht wie das ungefähr gehen könnte ? ::)
-
Hi,
so z.B.
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim docCurrent As NotesDocument
Dim docNew As Notesdocument
Set uidoc = ws.CurrentDocument
Set docCurrent = uidoc.Document
Set db = session.CurrentDatabase
Set docNew = New NotesDocument(db) 'Neues Dokument anlegen
docNew.Form = "Name der Maske"
docNew.Feld1 = docCurrent.Feld1 'Übernahme der Feldwerte
...
Call docNew.Save(True, False) 'Sichern des Dokumentes
Axel
-
@axel:
Vielen Dank für Deine Mühe. Aber leider verstehe ich mich da garnicht oder nur sehr wenig in die Formelsprache. Also...
Keine Ahnung wo ich was einsetzen soll. :(
-
Hmm, da hast Du aber nicht die notwendigen Grundlagen, da solltest Du Dich schon mal selber um die Grundlagen der Applikations-Entwicklung mit Notes kümmern. Hier gibt es zwar Hilfe, aber das ist Hilfe zur Selbsthilfe. Fertige Lösungen, wie Du sie offenbar im Moment brauchst, hat das Forum nicht wirklich im Angebot.
-
@Semeaphoros
Hallo,
ja klar. Ich wollte auch keine fertige Lösung haben. Ich wollte einfach nur wissen ob es überhaupt geht, und dann möglichst ohne Formel. Aber das ist leider nicht der Fall.
Ich bin gerade dabei mich mit der Formelsprache auseinander- zusetzen. Hoffenlich wirs noch was.
Also nicht böse sein, wenn es jetzt vorher so rübergekommen ist, dass ich nix mache und ein fertiges Ergebnis erwarte., Is nich so ;)
-
Fein, danke für Deine Erläuterungen. Nein, es ist nicht ganz so rübergekommen, man hat nur nicht gemerkt, dass Du Dir dessen bewusst bist, wir haben hier im Forum schon manches erlebt, deshalb kommt dieser Hinweis fast automatisch, also ebenfalls nix für Ungut ... ;D
Rein von der Einschätzung her, Formelsprache könnte da an Grenzen kommen und der Ansatz, den Axel da schon halb skizziert hat, über LotusScript dürfte wohl die Lösung sein. Auf dem Weg, über LS, scheint es mir lösbar zu sein.
-
Hm. Also LotusScript. Da kenn ich mich ja noch weniger aus .... :(
Hat schon jemand was ähnliches gemacht oder gibt es hier im Forum ein ähnliches Thema?
Ich habe bisschen rumgesucht, aber bis jetzt leider noch nichts gefunden ...
-
Aehnliches hat es hier auch schon gegeben, aber mir fällt spontan nichts ein, wo man so einen Thread finden könnte. Mal abwarten, was die anderen noch so für Ideen bringen, musst mal ein bisschen abwarten, die sind offenbar alle am Aufschwung basteln :)
-
Hi,
du erstellst dir einen Hotspot, entweder über einer Grafik oder einen Aktionshotspot. In der Titelzeile des unteren Fenster des Designers wählst du Lostusscript aus und kopiert das Script hinein. Dann musst du das Script noch an deine Maskennamen und Feldnamen anpassen.
...
docNew.Form = "Name der Maske" 'Hier kommt der Maskenname´hin
docNew.Feld1 = docCurrent.Feld1 'Feld1 musst du durch deine Feldnamen ersetzen
docNew.Feld2 = docCurrent.Feld2 'Feld2 musst du durch deine Feldnamen ersetzen
...
docNew ist das neue Document und docCurrent ist das aktuelle Dokument mit den Feldern aus denen die Werte geholt werden sollen.
Ich hoffe ich einigermaßen verständlich erklärt.
Axel
-
Hi,
hab das jetzt so gemacht wie du es mir geschrieben hast :
Sub Click(Source As Button)
docNew.Form = "Anfragen"
docNew.BezeichnungAnfrage = "Bezeichnung1"
docNew.ZeichnungAnfrage = "Zeichnung1"
End Sub
Bekomme jetzt aber immer den Fehler wenn ich draufklicke :
"Variant does not contain an object" .....
???
-
Hi,
dir fehlt noch einiges von meinem obigen Script.
Das ganze Script muss so aussehen.
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim docCurrent As NotesDocument
Dim docNew As Notesdocument
Set uidoc = ws.CurrentDocument
Set docCurrent = uidoc.Document
Set db = session.CurrentDatabase
Set docNew = New NotesDocument(db) 'Neues Dokument anlegen
docNew.Form = "Anfragen"
docNew.BezeichnungAnfrage = "Bezeichnung1"
docNew.ZeichnungAnfrage = "Zeichnung1"
Call docNew.Save(True, False) 'Sichern des Dokumentes
End Sub
Axel
-
...
docNew.Form = "Anfragen"
docNew.BezeichnungAnfrage = "Bezeichnung1"
docNew.ZeichnungAnfrage = "Zeichnung1"
...
Also jetzt speichert er schon mal. Nur sind aber im neuen Dokument anstelle vom Inhalt der Felder "Bezeichnung1" & "Zeichnung1", diese Bezeichnungen.
Also es steht nicht der Inhalt drin, sondern die Namen der Felder.
Habs jetzt auch ohne Anführungszeichen versucht, aber dann übernimmt er garnichts.
Kann ich es auch so machen, dass wenn ich auf den Hotspot klicke, auch den Maske zu sehen bekomme? Weil so speichert er sie nur, ohne sie vorher zu zeigen.
-
Hi,
sorry, so kommts wenn man nur copy und paste macht. :-\
So sollte es nun aber funktionieren:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uidocNew As NotesUIDocument
Dim docCurrent As NotesDocument
Dim docNew As Notesdocument
Set uidoc = ws.CurrentDocument
Set docCurrent = uidoc.Document
Set db = session.CurrentDatabase
Set docNew = New NotesDocument(db) 'Neues Dokument anlegen
docNew.Form = "Anfragen"
docNew.BezeichnungAnfrage = doc.Current.Bezeichnung1
docNew.ZeichnungAnfrage = docCurrent.Zeichnung1
Set uidocNew = ws.EditDocument(True, docNew) 'Dokument im Frontend öffnen
Call uidocNew.Refresh 'Dokument aktualisieren
End Sub
Axel
-
Danke danke !!! Es geht jetzt.
Echt vielen Dank Axel.
-
Hi,
prima.
Setzt du den Thread bitte noch auf "Erledigt". Danke.
Axel