Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: HipSlu am 20.06.03 - 15:35:23
-
Hallo,
ihr seid - hoffe ich - meine letzte Rettung.....
folgendes Problem:
ich will - siehe bild - im web 2 comboboxen erstellen. die linke box bekommt einen berechneten wert zugewiesen, in die linke kann man mittels den buttons seine auswahl treffen.
ich habe das nun mal mittels java-script gelöst, was aber leider nicht ganz funkt, da die selektion nicht im dokument abgespeicher wird (was ja auch eigentlich klar ist, da durch das script alles im browser läuft und nicht am server).
soweit, sogut - aber wie macht man das richtig?
sollte ich das nicht gut erklärt haben... bitte gleich fragen!
-
Hy,
ich habe da mal sowas entwickelt muss das aber zuerst raussuchen.
Hoffe es reicht dir wenn du das Beispiel erst am Montag bekommst ???
Cu
Martin ;)
-
Du müsstest dir entsprechenden Code auch im Domino Directory abgucken können.
Ich bin mir nicht mehr sicher, ob da in R5 schon so ähnlich aussieht, aber zumindest unter R6 ist die Zuordnung von Personen zu Gruppen im Web Client ganz ähnlich gelöst (mal wieder zu faul zum selbst nachdenken ...).
-
@meichhorner: das wäre natürlich super - montag reicht vollkommen!
@harkpabst_meliantrop: ah, guter tip - ich werd gleich mal schauen....
-
Hy,
du solltest jetzt Post haben, hoffe das Beispiel hilft dir weiter. ;)
Du könntest es ja auch noch hier posten, wenn du es bekommen hast, ich habe hier leider eine zu lahme Verbindung und ausserdem muss ich jetzt für 2 Tage weg.
Cu
Martin
-
ok, danke dir!
ich habs mir noch nicht angesehen, aber ich poste es mal:
-
??? wie hast du has denn gemacht? woher kommt die listbox.js? und die formate.css?
ich komm schon noch drauf ;)
-
@meichhorner: nochmals vielen dank, nur leider kann ich es für meinen anwendungsfall nicht verwenden, da auch hier die auswahl ja nicht gespeichert sondern "nur" ein Mail generiert wird.....
-
Hy,
das zu erweitern um die Daten zuspeichern sollte nicht mehr das Problem sein.
Woran scheiterst du denn ???
Cu
Martin
-
ich scheitere daran, dass ich auch ein rich-text feld habe (http://www.atnotes.de/index.php?board=7;action=display;threadid=9156 ganz unten)...
aber ich habs eh schon fast..... bin dabei, die beiden buttons ">>" und "<<" einfach in einen lotus script agent zu packen, dann ist es ja kein problem (nur da sitz ich noch, weil ich in lotus script ned ganz so fit bin)
-
Hy,
falls du Probleme mit dem Script hast, einfach posten ;)
Cu
Martin
-
darauf komme ich natürlich gerne zurück.....
Ich habe in der Maske für die beiden Listboxen 4 Felder:
Mon_Left_Choices => Typ Text, versteckt, allow multiple Values. Im Vorgabewert errechne ich mittels DBLookUp alle später zur Verfügung stehenden Auswahlwerte
Mon_Left => Typ Listbox, allow multiple Values. Die Choices werden vom Feld "Mon_Left_Choices" geholt.
Mon_Right_Choices => Typ Text, versteckt, allow multiple Values. Anfangs leer.
Mon_Right => Typ Listbox, allow multiple Values. Die Choices werden vom Feld "Mon_Right_Choices" geholt.
In der Maske selbst ist "Create HTML for all Fields" aktiviert.
Die Grundidee ist also, dass ich somit mittels Script aus den Feldern "Mon_Left_Choices" und "Mon_Right_Choices" alle zur Verfügung stehenden Choices und aus den Feldern "Mon_Left" und "Mon_Right" alle im Web ausgewählten Einträge auslesen kann (und diese dann natürlich dementsrechend ändern kann)
Dann habe ich schon mal mit dem ">>" Button begonnen - dieser Ruft mittels @Command([ToolsRunMacro] den Agent "Select" auf....
Sub Initialize
Dim s As New NotesSession
Dim doc As NotesDocument
Dim item As NotesItem
Dim i As Integer
Dim Left_Selected As NotesItem
Dim Right_Selected As NotesItem
Dim Left_All As NotesItem
Dim Right_All As NotesItem
Set db = s.CurrentDatabase
Set doc = s.DocumentContext
Set Left_Selected = doc.GetFirstItem( "Mon_Left" )
Set Right_Selected = doc.GetFirstItem( "Mon_Right" )
Set Left_All = doc.GetFirstItem( "Mon_Left_Choices" )
Set Right_All = doc.GetFirstItem( "Mon_Right_Choices" )
Result = Move_IT(Left_Selected.Values, Left_All.Values, Right_All.Values)
Set item = doc.ReplaceItemValue("Mon_Right_Choices", Result)
Call doc.Save(False, False)
End Sub
Function Move_IT(Was, Von, Zu)
Move_IT = Arrayappend( Zu, Was )
End Function
Das setzen der Auswahl von der linken auf die rechte Box funktioniert somit also schon mal..... was mir jetzt noch fehlt ist folgendes:
1) die von der "Quell-ListBox" übertragene Auswahl von den zu Verfügung stehenden Einträgen entfernen
2) die "Ziel-ListBox" sortieren
wie ich 1) lösen soll, weiss ich noch nicht wirklich... zu 2) hab ich schon einige beispiele gefunden, die aber noch nicht wirklich funktionieren
-
Hy,
das geht um vieles einfacher.
Bei meinem Biespiel mit dem Javascript und den Argumneten für den Agent werden die Feldwerte ja dem Agnet übergeben und dieser sendet dann das Mail.
Du Kannst aber den maildoc.send rausnehmen und stattdessen z.B. folgendes reinschreiben dann bekommst du auch ein Dokument mit den gewünschten Daten und Feldern. ;)
z.B.
maildoc.Listbox1 = AgentArgs("Add")
maildoc.Listbox2 = AgentArgs("Delete")
call maildoc.save(False,False)
Ich will dich jetzt nicht in den Wahnsinn treiben :-\ aber dass sind 5 Minuten Anpassungsaufwand. ;)
-
nein nein, da hast du schon recht.... aber wie ich schon sagte, hab ich da leider unter anderem auch ein rich text feld - und das kann ich ja nicht dem agent übergeben....
-
Oh, sorry das habe ich wohl übersehen :-\
-
... kannst du mir vielleicht trotzdem weiterhelfen? ::)
-
Hast du es schon mal über DocumentContext probiert? ::)
Dim session As NotesSession
Set session = New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext
Print "<H2>" + doc.a(0) + "</H2>"
-
??? was soll das bringen? das gibt mir ja "nur" das feld a aus, oder? was ich brauchen würde wäre hilfe beim script bei den beiden buttons ">>" und "<<"...
-
Hy,
mit doc.a(0) solltes du den selektierten Eintrag der Listbox erhalten und den kannst du dann aus der Listbox entfernen und in die andere rüberschieben.
Martin
-
guter plan :)
aber um ehrlich zu sein, ist genau das mein problem
-
Hy,
verdammt irgendwie sollte das doch hinzubekommen sein >:(
Sag mir Bescheid wenn du was gefunden hast. ;)