Autor Thema: Dynamisches Java Applet  (Gelesen 17166 mal)

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #20 am: 10.07.04 - 20:58:24 »
Jupp. Das Beispiel habe ich jetzt in Notes zum laufen gebracht.

Jetzt muss ich nur noch meine Diskussions-Ansicht dazu bringen, mir die Hauptdokumente mit dem Tag --> folderheader anzuzeigen und die Anwortdokumente mit dem Tag Foldinglist.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #21 am: 12.07.04 - 10:11:22 »
So hier mal einen Zwischenstand. ich habe meine Ansicht für die Hauptordner modifiziert und diese werden auch  wie im obigen Beispiel angezeigt. (s. Anhang).

Hier der Code:

database := @Subset(@DbName; -1);
var:=@Name([CN];@ServerName);
baseUrl := "http://" + var + "/" + database;

a_area:= "<li id=\"foldheader\"><a href=\"" + baseUrl + "/content/" + @Text(@DocumentUniqueID) +  "?opendocument\">" + a_area + "</li>";
a_area

Die Ansicht ist jetzt in eine Page eingebettet und wird eingeschlossen von den Attributen: <ul>Ansicht</ul> zeigt jetzt richtig an:

Problem:
Die Antworten werden jetzt auch in <li>-Attributen eingeschlossen, jedes für sich. Aber alle Antworten zusammen müssen wieder in ein <ul>Antwortdokumente</ul>

???

Ich hoffe ihr konntet mich soweit verstehen.

Gruss

Andreas

Wie kann ich jetzt die Antworten in
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #22 am: 12.07.04 - 12:54:42 »
Ich habe mal einen anderen Ansatz. Der Code ist bezogen auf den Link von Axel.

If doc.form(0)="area" Then
      
      stringvar = stringvar + {<li id="foldheader"><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & doc.uniqueid(0) & {?Opendocument"  target="content">} & doc.a_area(0)  & {</a></li>}
      Set response = v.getchild(doc)
      stringvar = stringvar + {<ul id="foldinglist"><li><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response.uniqueid(0) & {?Opendocument"  target="content">} & response.CSubject(0) & {</a></li>}      
      Set responseCC = v.getchild(response)
      stringvar = stringvar + {<ul id="foldinglist"><li><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & responseCC.uniqueid(0) & {?Opendocument"  target="content">} & responseCC.CCSubject(0) & {</a></li></ul>}      
      
   End If


Dieses Beispiel ist noch nicht in einer Schleife. ??? Ich komme jetzt gerade bis zum ersten Antwortdokument des Hauptdokuments und im zweiten Schritt vom ersten Antwortdokument zum Antwort auf Antwort (Kommentar) Dokument.

Vielleicht könnte jemand meinen Code erweitern.

Gruss

Andreas
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #23 am: 12.07.04 - 17:59:02 »
kannst du vielleicht die .nsf ein bischen abspecken und die entscheidenden Teile da drin lassen und hier posten. So ist das ein bischen schwierig.
Es gibt noch relativ wilde Möglichkeiten mit so Dingen wie @DocNumber und @DocSiblings.

Aufgabe:
Finde das erste und letzte Dokument einer Kategorie: Dort muss es nämlich <ul><li>Wert</li> bzw.  <li>Wert</li></ul> statt <li>Wert</li> heissen.

Normalerweise kann man mit den Rückgaben von @DocNumber und @DocSiblings nicht soviel anfangen, da es nicht weiterverarbeitbarer "special text" ist. Mit JavaScript geht das aber.
Du musst dann die Spaltenformel irgendwie in der Art aufbauen:
Code
["<script>" +
"wertNachLetztemPunkt = someJavaScriptStringHandling(" + @DocNumber + ")" +
"if(wertNachLetztemPunkt== "1") {document.write(\"<ul>\")}" +
"documentWrite(<li>" + wert + "</li>)" +
"if(wertNamLetztemPunkt == " + @docSiblings + ") document.write(\"</ul>\") </script>"
Das könnte so gehen.
Vielleicht finde ich Zeit, dass noch an einem Mini-Beispiel durchzuziehen.

Gruß Axel
 
 
« Letzte Änderung: 12.07.04 - 18:00:26 von Marinero Atlántico »

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #24 am: 12.07.04 - 19:27:55 »
Andreas,

probier das attachment mal aus. Ansicht docs dieser Datenbank im Web anzeigen lassen und wenn das so richtig ist in deine Datenbank das script rüberkopieren und ggbfls ein wenig anpassen.

Hier ist Spaltenformel:
Code
nl:= @NewLine;

"[<script>" + nl +
"// DocNumber as String " + nl +
"var val = \"" + @DocNumber + "\";" + nl +
"// find last number." + nl +
"var elemente = val.split(\".\");" + nl +
"// assign lastNumber to variable " + nl +
"var sLastNumber=elemente[elemente.length - 1];" + nl +
"// assign variable sCountSiblings " + nl +
"var sCountSiblings=\"" + @DocSiblings + "\";" + nl +
"// if its first document, open <ul> tag" + nl +
"if (sLastNumber == \"1\") document.write (\"<ul>\");" + nl +
"//write content of field inside <li>-tag" + nl +
"document.write(\"<li>" + name + "</li>\")" + nl +
"// if its last document in category, close </ul>-tag" + nl +
"if(sLastNumber == sCountSiblings) document.write(\"</ul>\");" + nl +
"</script>]"

Kommentare in Script verbessert.

Das ist mein alter Trick des Programmiersprachen-Chainings.
Du schreibst serverseitig mit Formelsprache in der Spaltenformel dynamisch JavaScript.
Dieses JavaScript schreibt clientseitig html.
Und so kann man specialText weiterverarbeiten.
 

Gruß Axel
« Letzte Änderung: 12.07.04 - 19:41:29 von Marinero Atlántico »

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #25 am: 13.07.04 - 09:18:16 »
Dieses Script für die Ansichtsspalte ist grundsätzlich super. Es weist jedoch die gleichen Fehler auf wie mein Ansatz.

1. Sobald es ein Antwort auf Antwort Dokument gibt, wird dieses in der Navigation nicht mehr der zweiten Stufe untergliedert. Das Heißt es steht auch in der Höhe der Antwort und wird nicht eingeklappt. (wie bei meiner Lösung)  Ich konnte es mit <li> und </ul> erreichen, das beim Klick auf den Hauptpunkt alle gleichzeitig aufgehen. Finde ich jedoch schlecht, aber es läuft soso.

2. In dieser Spalten-Lösung, die ich eigentlich sehr genial finde, gibt es bei den leeren Einträgen (Also nur Hauptdokumente ohne Antworten) beim Klick eine Fehlermeldung. "Style ist NULL oder kein Objekt---> Das Style ist eigentlich da somit kann es nur das Objekt sein."

3. Die Verlinkung zu den Dokumenten ist noch nicht funktionsfähig. Die Antworten verweisen ebenfalls auf das Hauptdokument.

Ich kann nur hoffen, das Du es schaffst, ich blicke bei den ganzen möglichen Ansätzen kaum noch durch. Leider kann ich die Datenbank nicht posten.

Gruss

Andreas.

PS: HIIIIILFE
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Mein zweiter Ansatz.
« Antwort #26 am: 13.07.04 - 09:30:55 »
Hi an alle. Als ich verzweifelte habe ich mir gedacht einen Agenten zu schreiben, der die Dokumente rausprintend. Der Code steht unten. Was kann der Code ? Auf Basis des Beispiels (Link von Axel) wird jetzt eine Navigation aufgebaut und die Dokumente werden verlinkt. Gut. Was geht noch nicht ?

1. Mein Beispiel kann bisher nur eine Antwort generieren und ein Kommentar erstellen. --- weil ---- getChild kann nur eine Antwort (die erste Antwort) holen. Ein Schleife durch die Antworten habe ich noch nicht gefunden.
----> Eine Lösung hierfür wäre schon mal super.

2. Bei meinem Beispiel sind alle Einträge aufgeklappt. (viel zu hoch) und nimmt sehr viel Platz weg. --> Komisch auch, das selbst die Einträge ohne Antworten (nur Hauptdokument) sich auch aufklappen lassen. ???
----> Ein Lösung hierfür wären sehr klasse

3. Ich glaube das Lösungssciript, welches in den JSHeader kopiert wird ist so nicht in der Lage einen reinen Baum anzuzeigen. Ab der zweiten Ebene wird eine leere Zwischenebene benutzt. Siehe Beispiel hier. http://www.dynamicdrive.com/dynamicindex1/navigate1.htm

Wenn Ihr genau hinsieht, dann ist der dritte Eintrag ein leerer Ordner und macht wiederholt wieder die Struktur.

Ich persönlich finde Axels Ansatz in der Ansichtspalte am besten nur wird vielleicht auch hier der JS-code nicht ausreichen.

Help-----


------------------------------------------

Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim v As Notesview
   Dim doc As NotesDocument
   
   Dim stringvarend As String
   Dim navdoc As NotesDocument
   Dim response As NotesDocument
   Dim responseCC As NotesDocument
   Dim area As String
   Dim konfview As NotesView
   Dim konfdoc As NotesDocument
   Dim col As NotesDocumentCollection
   Dim i As Integer
   
   
   
   Set db = s.CurrentDatabase
   Set v = db.GetView("content")
   Set doc = v.GetFirstDocument
   
   Set konfview = db.GetView("konfnav")
   Set konfdoc = konfview.GetFirstDocument
   
   If Not (konfdoc Is Nothing) Then
      Call konfdoc.Remove(True)
   End If
   
   While Not (doc Is Nothing)
      
      If doc.form(0)="area" Then
         
         stringvar = stringvar + {<li id="foldheader"><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & doc.uniqueid(0) & {?Opendocument"  target="content">} & doc.a_area(0)  & {</a></li>}
         Set response = v.getchild(doc)
         If Not (response Is Nothing) Then
            
            stringvar = stringvar + {<ul id="foldinglist"><li><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response.uniqueid(0) & {?Opendocument"  target="content">} & response.CSubject(0) & {</a></li>}      
         Else
            
            stringvar = stringvar + {</ul>}
            Goto weiter
         End If
         Set responseCC = v.getchild(response)
         If Not (responseCC Is Nothing) Then
            stringvar = stringvar + {<ul id="foldinglist"><li><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & responseCC.uniqueid(0) & {?Opendocument"  target="content">} & responseCC.CCSubject(0) & {</a></li></ul>}      
         End If
      Else
         stringvar = stringvar + {</ul>}
      End If
weiter:
      
      stringvarend = stringvarend + stringvar
      stringvar=""
      Set doc = v.GetNextDocument(doc)
      
   Wend   
   
   Set navdoc = db.CreateDocument
   navdoc.form = "konfnav"
   navdoc.label = stringvarend
   Call navdoc.save(True,True)
   
   
   
End Sub
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #27 am: 13.07.04 - 12:59:56 »
@Andreas: Kannst du nicht die relevanten Teile in eine lauffähige kleine Mini-Anwendung packen. So ist das einfach mission imposible.

Für Resonses gibt es in Script:
Code
NotesDocumentCollection col = doc.responses
Problem dabei ist, dass die Collection unsortiert ist.

Besser ist eigentlich eine dynamische View-Formelsprachenlösung. Das scheint hier aber nicht trivial zu sein.

Gruß Axel

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #28 am: 13.07.04 - 14:49:09 »
Ich versuche es.

Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #29 am: 14.07.04 - 09:11:41 »
Hallo an Euch,

ich habe es jetzt soweit hinbekommen, dass alle Dokumente (bis zu 3. Ebenen) ausgedruckt werden und als Link in der Navigation angezeigt werden.

Guckt Ihr unten:

Jetzt muss ich nur noch die Navigation Ein- und Aufklappen drumlegen. Vielleicht geht ja auch der Ansatz. <SPAN></SPAN>

Was meint Ihr ? Kann jemand helfen ?





Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim v As Notesview
   Dim doc As NotesDocument
   
   Dim stringvarend As String
   Dim navdoc As NotesDocument
   Dim response As NotesDocument
   Dim response2 As NotesDocument
   Dim area As String
   Dim konfview As NotesView
   Dim konfdoc As NotesDocument
   Dim col As NotesDocumentCollection
   Dim i As Integer
   i = 1
   
   
   
   Set db = s.CurrentDatabase
   Set v = db.GetView("content")
   Set doc = v.GetFirstDocument
   
   Set konfview = db.GetView("konfnav")
   Set konfdoc = konfview.GetFirstDocument
   
   If Not (konfdoc Is Nothing) Then
      Call konfdoc.Remove(True)
   End If
   
   While Not (doc Is Nothing)
      
      If doc.form(0)="area" Then
' Schreibt den ersten Link mit dem Subject aus dem Hauptdokument
         stringvar = stringvar + {<h3><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & doc.uniqueid(0) & {?Opendocument" target="content" onMouseOver="return toggleMenu('menu} & i & {')">} & doc.a_area(0)  & {</a></h3>}
         
' Das erste Antwortdokument zum Hauptdokument laden         
         Set response = v.getchild(doc)
         
         While Not ( response Is Nothing )
            
            stringvar = stringvar + {<a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response.uniqueid(0) & {?Opendocument"  target="content">} & response.CSubject(0) & {</a><br>}                                 
            
            Set response2 = v.getchild(response)
            
            While Not ( response2 Is Nothing )
               stringvar = stringvar + {<a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response2.uniqueid(0) & {?Opendocument"  target="content">} & response2.CCSubject(0) & {</a><br>}                                 
               Set response2 = v.GetNextSibling( response2 )
            Wend
            
            Set response = v.GetNextSibling( response )
         Wend
         
      End If
      
weiter:
      
      stringvarend = stringvarend + stringvar
      stringvar=""
      i = i + 1
      Set doc = v.GetNextDocument(doc)
      
   Wend   
   
   Set navdoc = db.CreateDocument
   navdoc.form = "konfnav"
   navdoc.label = stringvarend
   Call navdoc.save(True,True)
   
   
   
End Sub
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Dynamisches Java Applet
« Antwort #30 am: 14.07.04 - 09:25:32 »
ich weiß echt nicht genau, was du meinst und kann deshalb nicht helfen.

nur ein kleiner Klugscheißer-Tipp noch: es ist keine gute Idee, Server- und DB-Namen hart zu codieren...
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #31 am: 14.07.04 - 10:55:30 »
Also ich bin schon wieder etwas weiter: Ich bin jetzt anders vorgegangen: Vielleicht weißt Du jetzt was ich vor habe.

Guckst Du Code:


Was ich noch nicht hinbekommen habe ist jetzt die 3 Ebene. Also die Kommentare. Vielleicht könntest Du die Schleife für mich erweitern. Mir platz gleich der Kopf



---------------------------

Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim v As Notesview
   Dim doc As NotesDocument
   
   Dim stringvarend As String
   Dim navdoc As NotesDocument
   Dim response As NotesDocument
   Dim response2 As NotesDocument
   Dim area As String
   Dim konfview As NotesView
   Dim konfdoc As NotesDocument
   Dim col As NotesDocumentCollection
   Dim i As Integer
   i = 0
   
   
   
   Set db = s.CurrentDatabase
   Set v = db.GetView("content")
   Set doc = v.GetFirstDocument
   
   Set konfview = db.GetView("konfnav")
   Set konfdoc = konfview.GetFirstDocument
   
   If Not (konfdoc Is Nothing) Then
      Call konfdoc.Remove(True)
   End If
   
   While Not (doc Is Nothing)
      
      If doc.form(0)="area" Then
         i = i + 1
' Schreibt den ersten Link mit dem Subject aus dem Hauptdokument
         stringvar = stringvar + {<h1><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & doc.uniqueid(0) & {?Opendocument" target="content" onMouseOver="return toggleMenu('menu} & i & {')">} & doc.a_area(0)  & {</a></h1>}
         
' Das erste Antwortdokument zum Hauptdokument laden   
         Set response = v.getchild(doc)
         
         If Not (response Is Nothing) Then
            stringvar = stringvar + {<SPAN id='menu} & i & {'>}
         End If
         
         While Not ( response Is Nothing )
            
            stringvar = stringvar + {<h1><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response.uniqueid(0) & {?Opendocument"  target="content" onMouseOver="return toggleMenu('menu2')">} & response.CSubject(0) & {</a></h1>}                                 
            
            Set response = v.GetNextSibling( response )
            
            If (response Is Nothing) Then
               stringvar = stringvar + {</SPAN>}
            End If
            
         Wend
         Goto weiter
         Set response2 = v.getchild(response)
         While Not ( response2 Is Nothing )
            stringvar = stringvar + {<h1><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & response2.uniqueid(0) & {?Opendocument"  target="content">} & response2.CCSubject(0) & {</a></h1>}                                 
            Set response2 = v.GetNextSibling( response2 )
            If (response2 Is Nothing) Then
               stringvar = stringvar + {</SPAN>}
            End If               
         Wend
         
      End If
      
weiter:
      
      stringvarend = stringvarend + stringvar
      stringvar=""
      
      Set doc = v.GetNextDocument(doc)
      
   Wend   
   
   Set navdoc = db.CreateDocument
   navdoc.form = "konfnav"
   navdoc.label = stringvarend
   Call navdoc.save(True,True)
   
   
   
End Sub
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #32 am: 14.07.04 - 17:57:05 »
Ich glaub du musst das
Code
Set response2 = v.getchild(response)
         While Not ( response2 Is Nothing )
            stringvar = stringvar + {<h1><a href="http://spsrv1/igusIntranet80_b.nsf/content/}  & response2.uniqueid(0) & {?Opendocument"  target="content">} & response2.CCSubject(0) & {</a></h1>}                                 
            Set response2 = v.GetNextSibling( response2 )
            If (response2 Is Nothing) Then
               stringvar = stringvar + {</SPAN>}
            End If               
         Wend
vor das wend darüber packen. Und davor noch ein öffnendes Span legen.
Es ist wirklich nicht einfach ohne Daten.
... und ich mache ja gerade deshalb "ach-so-schwierige" Objekt Orientierung, um solche "einfachen" Schleifenkonstruktionen zu vermeiden.
Das ist wohl mehr was für "richtige Programmierer".  ;D
Vielleicht hilft es, wenn du das Resultat.
Also das ausgedruckte html postest:
Und zwar den Ist Zustand und den Sollzustand.

Ausserdem werde ich jetzt noch bis 21:00 Uhr im Büro sitzen und morgen auch.

Gruß Axel
« Letzte Änderung: 14.07.04 - 18:32:39 von Marinero Atlántico »

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #33 am: 14.07.04 - 20:13:01 »
Das ist das jetzige Ergebnis-Code (s. auch Image)

<img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/FA6B9C07E756B113C1256EB4003D3185?Opendocument" target="content" onMouseOver="return toggleMenu('menu1')">Drawings BRG</a><br><SPAN id='menu1'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/BA9AF6A4C4A6B498C1256ED1003FEE8A?Opendocument"  target="content" >Antwort 1</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/D8082EC5BCAECB7DC1256ED1003FF207?Opendocument"  target="content" >Antwort 2</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/3056D2F624438664C1256ED1004712E3?Opendocument"  target="content" >Antwort 3</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/E441C399C72F371DC1256ED1004B7A65?Opendocument"  target="content" >A 4</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/FE6C427EF74FE38EC1256E640033B374?Opendocument" target="content" onMouseOver="return toggleMenu('menu2')">Drawings ECS</a><br><SPAN id='menu2'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/836406AFAFD9030FC1256ED100400459?Opendocument"  target="content" >Antwort 1</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/156E1321C7FAC46FC1256E6400319726?Opendocument" target="content" onMouseOver="return toggleMenu('menu3')">E-Learning Center</a><br><SPAN id='menu3'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/7ADF7E4FCEA7FB97C1256ED10040091C?Opendocument"  target="content" >Antwort 1</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/1ABDCF1F3B4FA448C1256E6F0036F114?Opendocument" target="content" onMouseOver="return toggleMenu('menu4')">Engineering Projects</a><br><SPAN id='menu4'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/15C48FDFBAD11EA1C1256ED100400EF2?Opendocument"  target="content" >Antwort 1</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/8502E4A764C5F144C1256E640031835D?Opendocument" target="content" onMouseOver="return toggleMenu('menu5')">Factory Services</a><br><SPAN id='menu5'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/5F3C97EDB5D06F84C1256ED100401587?Opendocument"  target="content" >Antwort 1</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/E11A948CEDC0B5E2C1256E64003376B8?Opendocument" target="content" onMouseOver="return toggleMenu('menu6')">Intranet Services</a><br><SPAN id='menu6'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/3AA4FF89A61214C3C1256ED10041CAE4?Opendocument"  target="content" >Antwort 1</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/2DE29743B4DB610CC1256ED10041D014?Opendocument"  target="content" >Antwort 2</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/16771DA7C80F7889C1256E640033D67E?Opendocument" target="content" onMouseOver="return toggleMenu('menu7')">Miscellaneous</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/C8487F6AB88F6776C1256E640033C352?Opendocument" target="content" onMouseOver="return toggleMenu('menu8')">Project Bluemilk</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/C6131B6D45203BEBC1256E77003419CF?Opendocument" target="content" onMouseOver="return toggleMenu('menu9')">Projekts</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/96AB2FF6FE8097B9C1256E640031A9B2?Opendocument" target="content" onMouseOver="return toggleMenu('menu10')">Sales Tools</a><br><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/FAD8BCD968FD94F6C1256E6400339EC9?Opendocument" target="content" onMouseOver="return toggleMenu('menu11')">Technical Data BRG</a><br><SPAN id='menu11'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/BEF59A7FC7958B79C1256ED1003FFEB9?Opendocument"  target="content" >Antwort 1</a><br></SPAN><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/ECBF772126880149C1256E640033942F?Opendocument" target="content" onMouseOver="return toggleMenu('menu12')">Technical Data ECS</a><br><SPAN id='menu12'><img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/E49BCEDE010D2D4AC1256ED1003FF7A3?Opendocument"  target="content" >Antwort 1</a><br></SPAN>


Und das ist das Script, das dieses Ergebnis erzeugt.

Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim v As Notesview
   Dim doc As NotesDocument
   
   Dim stringvarend As String
   Dim navdoc As NotesDocument
   Dim response As NotesDocument
   Dim area As String
   Dim konfview As NotesView
   Dim konfdoc As NotesDocument
   Dim col As NotesDocumentCollection
   Dim i As Integer
   
   i = 0
   
   
   
   Set db = s.CurrentDatabase
   Set v = db.GetView("content")
   Set doc = v.GetFirstDocument
   
   Set konfview = db.GetView("konfnav")
   Set konfdoc = konfview.GetFirstDocument
   
   If Not (konfdoc Is Nothing) Then
      Call konfdoc.Remove(True)
   End If
   
   While Not (doc Is Nothing)
      
      If doc.form(0)="area" Then
         i = i + 1
         
' Schreibt den ersten Link mit dem Subject aus dem Hauptdokument
         stringvar = stringvar + {<img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/}   & doc.uniqueid(0) & {?Opendocument" target="content" onMouseOver="return toggleMenu('menu} & i & {')">} & doc.a_area(0)  & {</a><br>}
         
' Das erste Antwortdokument zum Hauptdokument laden   
         Set response = v.getchild(doc)
         
         If Not (response Is Nothing) Then
            stringvar = stringvar + {<SPAN id='menu} & i & {'>}
         End If
         
         While Not ( response Is Nothing )
            
            stringvar = stringvar + {<img src="pfeil.gif"><a href="http://spsrv1/igusIntranet80_b.nsf/content/}  & response.uniqueid(0) & {?Opendocument"  target="content" >}  & response.CSubject(0) & {</a><br>}                                 
            
            Set response = v.GetNextSibling( response )
            
            If (response Is Nothing) Then
               stringvar = stringvar + {</SPAN>}
            End If
            
         Wend
         
      End If
      
weiter:
      
      stringvarend = stringvarend + stringvar
      stringvar=""
      
      Set doc = v.GetNextDocument(doc)
      
   Wend   
   
   Set navdoc = db.CreateDocument
   navdoc.form = "konfnav"
   navdoc.label = stringvarend
   Call navdoc.save(True,True)
   
   
End Sub


Puh.... man ist das hartnäckig.



Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #34 am: 15.07.04 - 12:45:32 »
Hi Axel,

ich bin jetzt selbst bis zur Kommentar-Ebene gekommen. Um 23.45 Uhr hatte ich die Lösung.

Ich denke ich komme jetzt für die weiteren Ebenen selbst klar.

Gruss

Andreas:

PS: Danke für die Hilfe ---- Leider warst Du einer der Einzigen, die sich zu meinem Problem geäußert hatten. Schade. Mein Problem sollte doch nicht so selten sein und Lösungen gibt es bestimmt schon.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #35 am: 15.07.04 - 17:11:00 »
cool  8)
In der Zwischenzeit kannst du vielleicht mal das hier ausprobieren.  ;D
http://www.codestore.net/store.nsf/unid/EPSD-5W4M2G?OpenDocument
« Letzte Änderung: 15.07.04 - 17:24:35 von Marinero Atlántico »

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #36 am: 15.07.04 - 22:08:46 »
Diese Lösung sieht wirklich Klasse aus. Echt geil. Die Grafische Darstellung gefällt mir sehr gut. Ich werde mir diese Lösung unbedingt ansehen.

Meine Jetzige Lösung klappt bei einem Mouseover die Gliederung auf und mit OnClick wird dann das Dokument geöffnet.

Lieber hätte ich es, das beim KLICK beides passiert, aber die Methode Onlick scheint sofort beim Attribut <a> sofort belegt zu sein. Gibt es da eine Möglichkeit den OnClick für beides zu verwenden ?

Perfection is all.

gruss

Andreas
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #37 am: 16.07.04 - 17:52:39 »

Lieber hätte ich es, das beim KLICK beides passiert, aber die Methode Onlick scheint sofort beim Attribut <a> sofort belegt zu sein. Gibt es da eine Möglichkeit den OnClick für beides zu verwenden ?

Der moralinsaure Satz zum Freitagabend:
Ich find das keine Perfektion, sondern ziemlich normal. Schliesslich müssen die User länger mit der Anwendung arbeiten als du das da herausbekommt.

Ich glaube, das könnte funktionieren, wenn du im onClick des links return false zurückgibst. Warum ist da überhaupt ein Link?

Ich habe jetzt auch langsam begriffen, was du da für eine Ansicht hast. Da ist eine Spalte mit lauter response-to-response Dokumenten.

Die theoretisch besten Lösungen wären wohl gewesen:
1. xml aus Ansicht herausschreiben und daraus mit xslt die entsprechende Navigations-Html erzeugen.
2. wenn mit Lotusscript, dann rekursiv.

Aber du scheinst ja quasi fertig zu sein. Das sieht optisch gut aus.

Gruß Axel

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re:Dynamisches Java Applet
« Antwort #38 am: 20.07.04 - 08:45:13 »

Jetzt hast Du es. Genau das ist es. Eine Response to Response Ansicht, die in eine Navigation umgewandelt wird. Mit XML hätte ich es gerne gemacht, nur fehlte mir da der Ansatz und die Vorgehensweise mit dem XSLT. Ich habe es jetzt mit DHTML gemacht. Läuft auch super schnell.

Ich werde einmal das "return false" einbauen. Wenn es klappt, ist das auf jeden Fall eine schönere Lösung. Obwohl das mit dem MousOver ziemlich cool aussieht. Aber Klicken ist einfach besser.

Das mit dem XML könnten wir doch noch mal diskutieren ?

Gruss

Andreas
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Marinero Atlántico

  • Gast
Re:Dynamisches Java Applet
« Antwort #39 am: 20.07.04 - 09:03:59 »

Ich werde einmal das "return false" einbauen. Wenn es klappt, ist das auf jeden Fall eine schönere Lösung. Obwohl das mit dem MousOver ziemlich cool aussieht. Aber Klicken ist einfach besser.

Das mit dem XML könnten wir doch noch mal diskutieren ?

Ja, klar. Problem ist, dass ich z.Zt.:
a) dringend Urlaub brauche
b) viel zu tun habe (Widerspruch zu a)
c) irgendwie getrieben werde, mir ständig neue Technologien reinzuziehen (Widerspruch zu a) und b)).

Ich meinte das mit dem xml eigentlich so, dass per xslt dhtml erzeugt wird. Es soll also kein xml an den Browser geschickt werden. Das gilt heute - wenn ich das letzte Woche bei längeren Diskussionen auf der Ranch richtig verstanden habe - auch unter hardcore xml-freaks als im Sinne der Performance nicht praktikabel.
Man kann aber sehr wohl das, was du jetzt über LotusScript machst, mit xml/xslt aufgerufen über LotusScript oder Java machen. Und ich glaube das ergibt besseren code.

Gruß

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz