Autor Thema: Lotus Notes Script  (Gelesen 4038 mal)

Offline kruemelmaus

  • Frischling
  • *
  • Beiträge: 22
Lotus Notes Script
« am: 20.03.09 - 18:48:13 »
Hallo,

ich bin gerade neu hier.

Habe auch somit meine erste Frage an die vielen Experten.  :D

Es wurde eine Datenbank erstellt, mit der eine Emailsignatur erzeugt werden kann.

Nun zu meinem Problem:

In der Notesform gibt es ein Feld fb_funk1 welches mit Hilfe eines dblookup Daten aus einem Konfigurationsdokument ausliest.
Hier ist dann eine Mehrfachauswahl möglich.

Mit Hilfe des unten stehenden Skriptteils wird das ganze in eine HTML Datei geschrieben.

Das Problem ist nun, sobald mehrere Werte ausgewählt wurden erscheinen diese zwar in der Notesansicht, aber im Exportfile
steht immer nur der erste Wert drin.

Wer kann mir helfen???

'Jobtitle  1
       
        If  Not Len( uidoc.document.fb_funk1(0)) < 1Then
                Print #sig_file, uidoc.document.fb_funk1(0)
        Else
        End If

Gruß
Oliver

BigWim

  • Gast
Re: Lotus Notes Script
« Antwort #1 am: 20.03.09 - 19:31:36 »
Hallo Oliver,

das Item in NotesDocument ist immer ein Array mit mindestens einem Eintrag. Das Array erhält Du mit

Code
tmpVariant = uidoc.document.fb_funk1

wenn sicher ist, dass nur Wert vorhanden sein kann, greift man in der Regel direkt zu mit

Code
tmpString = uidoc.document.fb_funk1(0)


Wenn Du also alle Werte eines Item ausgeben möchtest, mußt Du Dir eine Schleife basteln, z. B. so

Code
        If  Not Len( uidoc.document.fb_funk1(0)) < 1Then
                forall tmpString in uidoc.document.fb_funk1
                        Print #sig_file, tmpString
                next
        endif


Viel Erfolg
Markus

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Lotus Notes Script
« Antwort #2 am: 20.03.09 - 19:53:16 »
Ist weil du das erste Element im Array schon in deinem Code referenziert.

Ich hab das hinter einen Button getan. Falls du es im QuerySave o.ä. hast, kannst du das mit dem uiws weglassen.
Vorschlag:

Code
Sub Click(Source As Button)
	On Error Goto Felher
	Dim uiws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	
	
	Dim doc As NotesDocument
	Dim i As Integer
	Dim first As Integer
	Dim arrStrFb_Funk1 As Variant
	Dim strValue As String
	Const separator = ","
	
	Set uidoc = uiws.CurrentDocument
	Set doc = uidoc.Document
	
	arrStrFb_Funk1 = doc.GetItemValue("fb_Funk1") ' doc.fbFunkt1  -> ohne (0) geht auch. Das ist aber besser, weil parametrisierbar
	For i = 0 To Ubound (arrStrFb_Funk1) 
		strValue = Trim$(arrStrFb_Funk1(i)) ' trim entfernt leerzeichen vorne wie hinten. Macht oft Sinn. Kommt aber auf dein Prog drauf an. 
		If Len(Trim$(strValue)) > 0 Then 
			If first Then 
				strValue = separator + strValue	
				first = False
			End If
			Msgbox strValue ' erstmal gucken. 
			'Print #sig_file, strValue ' WENN OK, DANN AUSKOMMENTIEREN
		End If
	Next
wech: 
	Exit Sub
felher:
	Msgbox Error$ & Cstr(Err) & " in Zeile: " & Cstr(Erl)
	Goto wech
	
End Sub
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline kruemelmaus

  • Frischling
  • *
  • Beiträge: 22
Re: Lotus Notes Script
« Antwort #3 am: 23.03.09 - 10:23:42 »
Hallo Markus,

vielen Dank erstmal. Leider habe ich scheinbar immer noch ein kleines Problem.

1. wo packe ich den Code tmpString = uidoc.document.fb_funk1(0)
hin???

2.  If  Not Len( uidoc.document.fb_funk1(0)) < 1Then
                forall tmpString in uidoc.document.fb_funk1
                        Print #sig_file, tmpString
                next
        endif

bekomme ich hier bei immer eine Fehlermeldung: unexpected next


Fehlt hier nicht auch noch das else in der formel.


Sorry bin leider nur ein Anfäger, der sich gerade versucht einzuarbeiten


Gruß Oliver

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Lotus Notes Script
« Antwort #4 am: 23.03.09 - 10:27:25 »
Mach mal aus dem

Next

ein

End Forall
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline kruemelmaus

  • Frischling
  • *
  • Beiträge: 22
Re: Lotus Notes Script
« Antwort #5 am: 23.03.09 - 11:23:25 »
vielen Dank,

das war die richtige Lösung.

Nun aber leider noch eine kleine Frage:

Kann man das auch noch irgendwie so verändern, das bei mehreren Einträgen ein Komma erscheint?   ???

Gruß
Oliver

BigWim

  • Gast
Re: Lotus Notes Script
« Antwort #6 am: 23.03.09 - 11:27:06 »
Hallo Oliver,

Zitat
1. wo packe ich den Code tmpString = uidoc.document.fb_funk1(0) hin???
Nirgendwo. War als Starthilfe gedacht, Dir den Einstieg zu erleichtern.

Zitat
Mach mal aus dem Next ein End Forall
Danke Andre. Ich werde zukünftig nicht mehr aus dem Gedächtnis schreiben. Ohne Option declare und Debugger läuft bei mir nichts!

Zitat
Fehlt hier nicht auch noch das else in der formel.
Wenn dort nichts passiert, kannst Du es auch weglassen.

Markus

Offline kruemelmaus

  • Frischling
  • *
  • Beiträge: 22
Re: Lotus Notes Script
« Antwort #7 am: 23.03.09 - 16:13:20 »
Hallo Markus,

danke für die Aufklärung. Aller Anfang ist halt schwer.

Hast Du vielleicht aich noch für mein letztes Problem eine kleine Lösung?
(siehe vorheriges post)

Gruß

Oliver

BigWim

  • Gast
Re: Lotus Notes Script
« Antwort #8 am: 23.03.09 - 16:28:31 »
Hallo Oliver,

Zitat
Hast Du vielleicht aich noch für mein letztes Problem eine kleine Lösung?
funktioniert die Lösung von Pitiyankee nicht? Ist alles, was Du brauchst und ausbaufähiger als mein Beispiel ....


Mein Beispiel würde ich so ergänzen:

Code
        If  Not Len( uidoc.document.fb_funk1(0)) < 1Then
                sAusgabe = ""
                forall tmpString in uidoc.document.fb_funk1
                        sAusgabe = sAusgabe + tmpString + ","
                next
                Print #sig_file, Left(sAusgabe, Len(sAusgabe)-1)
        endif

Offline kruemelmaus

  • Frischling
  • *
  • Beiträge: 22
Re: Lotus Notes Script
« Antwort #9 am: 23.03.09 - 16:40:03 »
vielen Dank, funktioniert super

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz