Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DomAdmin am 16.01.03 - 13:25:06

Titel: @PickList mit Feldwert
Beitrag von: DomAdmin am 16.01.03 - 13:25:06
Hallo Leute,

ich hätte da mal ein Problem ...

ich will über eine Schaltfäche eine Ansichtsauswahl der gleichen DB anzeigen lassen, aus der dann der Benutzer einen Eintrag auswählt. Von diesem Eintrag soll aber nicht ein Spaltenwert wiedergegeben werden sondern ein Feldinhalt (leider muss das Feld RichText sein).

In der Hilfe steht nur mit Spaltenwert:

@PickList( [Custom] : [Single] ; Server : Datei ; Ansicht ; Titel ; Eingabeaufforderung ; Spalte ; Kategorie  )

ich kann aber doch ein RichText-Feld nicht in einer Ansicht darstellen, oder ?

Habt ihr eine Idee ??

MfG

DomAdmin



Titel: Re:@PickList mit Feldwert
Beitrag von: Till_21 am 16.01.03 - 13:31:14
ich kann aber doch ein RichText-Feld nicht in einer Ansicht darstellen, oder ?

mit @abstract geht das schon...
mehr dazu in der hilfe

gruss / till
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 16.01.03 - 13:40:37
Hallo Till_21,

in dem Richtext-Feld sind aber auch Tabellen. Dieses Feld ist in einer sog. Vorlage, aus der der User dann seine vorgefertigte Tabelle einfügt.

Deswegen will ich ja sozusagen den Feldinhalt "rausziehen" und ihn nicht erst in einer Ansicht darstellen !

Vielleicht habe ich auch die Hilfe nicht verstanden ....


MfG

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 16.01.03 - 13:43:17
... @abstact zieht den Text des Richtext-Feldes heraus...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 16.01.03 - 13:46:23
Hallo ata,

aber ich will doch die gesamte Tabelle von dem Richtext-Feld der Vorlage in das Richtextfeld des Dokuments haben ...  :-[

Geht es irgentwie auf Umwegen ? Mit PickList wäre es so Schön gegangen ...  :'(


MfG

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 16.01.03 - 13:48:42
... in LS kannst du PickListCollection verwenden, damit bekommst du das Dokument, und damit kannst du den Inhalt des Feldes an dein gewünschtes Feld anhängen...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 16.01.03 - 13:53:20
ata ...

Zitat
... in LS kannst du PickListCollection verwenden, damit bekommst du das Dokument, und damit kannst du den Inhalt des Feldes an dein gewünschtes Feld anhängen...

Ich habe aber leider Ahnung von LotusScript !  :'(

Gibt es in irgeneiner mitgelieferten DB sowas, das ich "nur" für mich anpassen muss ??? Oder hat jemand anderes sowas schonmal gemacht ??

Immer wenn ich mir ein Ziel setzte oder ein bisschen mehr Schnickschnack reinmachen will, stoße ich an meine - zugegeben sehr engen - Grenzen ...

MfG

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 16.01.03 - 15:56:22
... also mit LotusScript geht bedeutend mehr...

... was wird benötigt:
... der Servernamen
... der Datenbankpfad
... der Alias der Ansicht, die für die Picklist verwendet werden soll
... wie heißen die Richtextfelder, was muß von wo nach wo
... soll der Inhalt hinzugefügt werden, oder soll der alte Inhalt überschrieben werden...

... wenn du mir das sagen kannst, kann ich vielleicht etwas Script-Jogging betreiben...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 08:05:41
Ohhh, bitte, ja ...


Ich habe dir eine Email mit den ganzen Daten geschickt !

MfG
DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 11:11:15
... ich hab dir den Code zugemailt..

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 11:22:07
Estmal vielen lieben Dank

Ich habe es in die Schaltfäche eingesetzt, aber es kommt der Fehler "Eintrag nicht in Gestaltungsliste". Was heißt das ?? Für mich ist dein - zugegebenermaßen bestimmt aufwendiger und mit viel KnowHow erstellter- Script ... Chinesisch ... !

Wo kann ich grob nachsehen, was as Programm nicht gefunden hat ??

MfG
DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 12:24:33
... die Meldung deutet auf die Ansicht hin. Vergib der Ansicht einen Alias ohne leere Zeichen darin...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 12:31:00
Ok, habe ich gemacht,

und auch im Quellcode das abgeändert:

' # Das Quelldokument bestimmen...
   sServer = ""      ' # ... zunächst lokal, später => sServer = "NSFM081"
   sDBName = "Aufgaben.nsf" ' # ... in deiner Mail war der Name leer , ich habe "Aufgaben.nsf" geraten... => sDBName = "DBPGM\Aufgaben.nsf"
   sAnsicht = "AlleVorgabennachName"
   sTitel = sAnsicht
   sAufforderung = "Wählen Sie ein Dokument..."



Die Meldung kommt aber trotzdem weiterhin.
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 12:31:54
... schalte den Debugger ein und sag mir dann wo die Meldung erscheint...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 12:36:31
Das hört sich blöd an, aber ...Wie schalte ich den Debugger ein ?   :-\


Im Programmierfenster kommt kein Fehler aber wenn ich die Button das Ausprobiere und der Vorschau ... Schaltfläche meine ich natürlich !


Sorry, dass ich dich so nerven muss !!!

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 12:41:12
... kein Problem

... du schaltest den Debugger über ...

Datei | Extras | Debug Lotus Script

ein, und dann "Fortfahren"...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 12:50:44
Ok, ich hab den Debugger eingeschaltet, und wieder die Vorschau aufgerufen und die Schaltfläche gedrückt ...

Da kam der Debugger (cooooool) und blieb mit einem gelben Pfeil vor der 2. Zeile Stehen, da wo das Dim mit dem Workspace steht, und unten steht bei Aufruf " : CLICK".

Wenn ich nun Svhritt überspringen sage, hüpft die Markierug andauernd weiter. Bei Fortfahren kommt wieder die Meldung von wegen Eintrag nicht in Gestaltung.

Und nu ???

Dürfte ich das "Sub Click(Source As Button)" nicht davor schreiben, weil er bei jeder Zeile den Aufruf " : CLICK" "bemängelt ??

Soll ich dir die DB vielleicht mal schicken ??

Ich verstehe das nicht ...  :-[

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 12:58:33
... schick mir die DB...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 17.01.03 - 13:02:55
ist zu dir unterwegs ...

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: Performance am 17.01.03 - 13:06:10
*grummel*
und ich klicke noch drauf - hatte schon interessante Infos erwartet  ???  :-\  :-X
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 13:09:10
@Performance

... wenn es so weit ist löse ich das Dingens auf...

... eine ähnliche Aufgabenstellung werde ich demnächst im LotusScript-Kurs als Beispielfunktion(en) integrieren...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 14:10:47
... so, ich habe den Fehler - ein einfacher Schreibfehler - der Name der Ansicht war nicht korrekt - denn die Fehlermeldung morniert genau das, daß es die Ansicht nicht gibt - wenn sie falsch geschrieben ist, ist das auch korrekt...

... wenn du den Namen korrekt eingibst funktioniert auch schon

... "kaum macht mer's richtig duats..."  ;D ;D ;D

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: Performance am 17.01.03 - 14:13:10
@ata

mille grazie.....  ;D  ;D  ;D  ;D

ich bin halt eben neugierig

 8) 8)
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 17.01.03 - 15:08:29
... hier der korrigierte und geteste Code...

ata

Code
   Dim ws As New NotesUIWorkspace       ' # Frontend-Arbeitsbereich    
   Dim uidoc As NotesUIDocument               ' # Frontend-Dokument 
   Dim dc As NotesDocumentCollection        ' # DocumentCollection aus PickListCollection 
   Dim docSource As NotesDocument          ' # Quelldokument aus DocumentCollection 
   Dim docThis As NotesDocument               ' # Zieldokument 
   Dim itemSource As NotesRichtextItem       ' # Quellfeld 
   Dim itemTarget As NotesRichtextItem        ' # Zielfeld 
   Dim sSource As String                                ' # Feldname der Quelle 
   Dim sTarget As String                                 ' # Feldname des Ziels 
   Dim sServer As String                                 ' # Servername - wenn leer dann lokal 
   Dim sDBName As String                             ' # Datenbankpfad - in der Regel ab Data-Verzeichnis aufwärts... 
   Dim sAnsicht As String                                ' # Name des Ansicht für PickList-Auswahl 
   Dim sTitel As String                                     ' # Titel der PickList-Box 
   Dim sAufforderung As String                       ' # Aufforderung für den User in der PickList-Box         
'
   sSource = "VInhalt" 
   sTarget = "AZwischen" 
' 
   Set docThis = ws.CurrentDocument.Document ' # ... das Ziel-Dokument ist das aktuelle Dokument 
' 
' # Das Zielfeld initialisieren 
   Set itemTarget = docThis.GetFirstItem( sTarget ) 
   If Not itemTarget Is Nothing Then 
      If itemTarget.Type = 1 Then ' # ... wenn das Feld ein Richtext-Feld ist... 
' # ... alles in bester Ordnung 
      Else 
' # ... das Feld ist vorhanden, aber kein Richtext-Feld, also löschen des Feldes und neu erstellen... 
         Call docThis.RemoveItem( sTarget ) 
         Call docThis.CreateRichTextItem( sTarget ) 
         Set itemTarget = docThis.GetFirstItem( sTarget ) 
      End If 
   Else ' # ... sollte das Feld noch nicht im Dokument existieren, muß es neu erstelt werden... 
      Call docThis.CreateRichTextItem( sTarget ) 
      Set itemTarget = docThis.GetFirstItem( sTarget ) 
   End If         
' # Das Quelldokument bestimmen... 
   sServer = ""                                            ' # ... zunächst lokal, später => sServer = "NSFM081" 
   sDBName = "Backup\Aufgaben.nsf"           ' # ...  => sDBName = "DBPGM\Aufgaben.nsf" 
   sAnsicht = "AlleVorlagennachName" 
   sTitel = sAnsicht 
   sAufforderung = "Wählen Sie ein Dokument..." 
   Set dc = ws.PickListCollection( 3, False , sServer , sDBName , sAnsicht , sTitel , sAufforderung ) ' # False bedeutet "nur Einfach-Auswahl" - True "Mehrfach-Auswahl" 
   If dc.Count > 0 Then                                ' # ... wenn ein Dokument zurückgegeben wurde... 
      Set docSource = dc.GetFirstDocument   ' # ... das erste ( und einzigste ) Dokument aus der DocumentCollection holen... 
      If Not docSource Is Nothing Then            ' # ... sicherheitshalber prüfen, ob das Doc ein richtiges Doc ist 
         Set ItemSource = docSource.GetFirstItem( sSource ) 
         If Not itemSource Is Nothing Then 
            If itemSource.Type = 1 Then      ' # ... wenn das Feld ein Richtext-Feld ist...                                         
               Call itemTarget.AppendRTItem( itemSource ) 
' # Damit das Anhängen des Feldes wirksam wird, 
' # ... muß das Dokument zunächst gespeichert, geschlossen und wieder geöffnet werden... 
               docThis.Form = "Aufgabe"
               Call docThis.Save( True , True ) 
               docThis.SaveOptions =  "0"  ' # ... zur Vermeidung des "Wollen Sie speichern..."-Dialoges 
               Set uidoc = ws.CurrentDocument
               Call uidoc.Close 
               Set uidoc = ws.EditDocument( True , docThis )              
' # ... es kann sein, daß es das Feld "SaveOptions" noch gibt - das könnte stören, also löschen 
               Set docThis = uidoc.Document 
               If docThis.HasItem( "SaveOptions" ) Then 
                  Call docThis.RemoveItem( "SaveOptions" ) 
                  Call docThis.Save( True , True )                                                 
               End If 
               Print "... die Information wurde hinzugefügt." 
            Else  
               Print " ... das Quellfeld ist kein Richtext-Feld..." 
            End If 
         Else 
            Print "  ... es gibt kein Quellfeld zum Anhängen..."                         
         End If         
      Else 
         Print "  ... es gibt kein gültiges Quelldokument..." 
      End If 
   Else 
      Print "  ... es wurde kein Dokument in der Auswahl bestimmt..." 
   End If 
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 20.01.03 - 15:28:35
Erstmal vielen liebsten Dank ! *kuntsch auf beide Wangen*  :-*

ata, eine Frage hätte ich noch, der Code funktioniert super, er fügt das richtige ein usw.

aber was, wenn ich jetzt noch text in mein "Zeilfeld schreibe und dann noch eine Vorlage einfüge, z.B.

Text (ja, blablabla ...)

Vorlage1 (Tabelle mit keine Ahnung was ...)

Text (und dann, blablubblaber ...)

Vorlage 2 (eine andere Vorlage ...)

Geht das ? Ich habe eben ausprobiert und da hat er mir den Text "verschluckt" ...


MfG

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 20.01.03 - 15:42:44
... nachdem du den Text eingegeben hast muß noch gespeichert werden - denke ich - ich schau heute Abend nochmal nach...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 20.01.03 - 15:48:18
.... Stimmt ich habe es gemerkt !

wenn man zwischendurch etwas in die eingefügten Vorlagen schreibt und noch einen Text oder eine neue Vorlage hinzufügt, verschwindet der Text und der Text in den Vorlagen, nur die Vorlagen bleiben übrig !

Ich muss für die User eben dazuschreiben, dass sie zwischendurch immer mal wieder speichern sollen !!


... oder ist in deinem Code ein Punkt wo ich sagen kann "bevor du es hinzufügst, speichere mir erstmal" ?

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 20.01.03 - 15:55:43
... zu Beginn der Rotine könnte zuerst mal gespeichert werden, dann wäre das eigentlich erledigt...

... direkt nach

Set docThis....
Call docThis.Save(True,True)

... das Problem dürfte eigentlich nur bei neuen Dokumenten, die noch nicht gespeichert wurden, aufgetretten sein...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 20.01.03 - 16:04:57
aaaalso, wenn ich das bei

Zitat
   Set docThis = ws.CurrentDocument.Document ' # ... das Ziel-Dokument ist das aktuelle Dokument
   Call docThis.Save(True,True)

einfüge speicher er nicht was drin war !

Kann es daran liegen :

Zitat
# Das Zielfeld initialisieren
   Set itemTarget = docThis.GetFirstItem( sTarget )
   If Not itemTarget Is Nothing Then
      If itemTarget.Type = 1 Then ' # ... wenn das Feld ein Richtext-Feld ist...
' # ... alles in bester Ordnung
      Else
' # ... das Feld ist vorhanden, aber kein Richtext-Feld, also löschen des Feldes und neu erstellen...
         Call docThis.RemoveItem( sTarget )
         Call docThis.CreateRichTextItem( sTarget )

?

Es kommt nicht mehr vor wenn ich händisch speichere !
Kann man da nicht sowar wie @FileSave reinbauen ??

DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 20.01.03 - 16:09:00
... nimm statt

Call doc.Save(...)

... dann...

Call ws.CurrentDocument.Save

... das Dokument muß dazu unbeding im Bearbeitungsmodus sein, aber das müßte es ja sein...

ata
Titel: Re:@PickList mit Feldwert
Beitrag von: DomAdmin am 20.01.03 - 16:11:19
 :-* ata  :-*

Du bist mein persönlicher Held ...

OK ich komme wieder auf den Boden ...

Danke nochmal !

Es funzt !


DomAdmin
Titel: Re:@PickList mit Feldwert
Beitrag von: ata am 20.01.03 - 16:12:24
... na dann bin ich ja froh...

ata   ;D ;D ;D