Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kutz am 05.12.02 - 16:24:45

Titel: Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 05.12.02 - 16:24:45
Hallo zusammen,

wir haben eine Datenbank mit verschiedenen Feldern gefüllt.
Ein Feld als Inhalt eine vorgegebene Tabelle erhalten.
Wir wollen damit eine standardmäßige Vorgehensweise bei
(Themen aus Sitzungen) diesen Protokollen vorgeben. Da die Länge der Tabellen immer unterschiedlich ist kann ich aus meiner Sicht keine feste Tabelle in der Maske vorgeben.

Habt Ihr eine Idee, oder vielleicht läßt sich eine Vorlage ja einfach kopieren? ???
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 05.12.02 - 20:04:05
ich habe sowas in der Richtung schon gemacht.
- einfügen von Tabellen aufgrund einer selection
- In einem setup dok befinden sich mehrere rtf Felder mit vordefinierten Tabellen, diese werden nach der Auswahl einfach ins aktuelle dok übernommen mit einem  .appendrtitem

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 06.12.02 - 07:49:31
Hört sich ja ganz gut an, würde sicherlich unsere Lösung sein, aber wie funktioniert so etwas? :'(
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 06.12.02 - 11:58:40
ich bin damals wie folgt vorgegangen:

- versteckte View erzeugt - dok erstellt,geschützt mit Autorfelder - in der 4 vordefinierte Tabellen erzeugt wurden in 4 rtfs(Überschrift, Farbe usw. => d_qualitydept, ...1, ...2, ...3)
- in dem dok wo diese eingefügt werden sollen habe ich ein action button eingefügt, darunter das rtf Feld(eleganter sind hotspots in einer Tabelle die die gleiche Farbe wie die Tabelle haben)
- in der action wird die Routine aus einer  library aufgerufen die wie folgt aussieht:

Sub  InsertDeptQuality(actdoc As Notesdocument)
.... actdoc == hier wird reingepastet
.... doc == hier werden die Tabellen geholt
   Dim view As NotesView
   Dim item1 As Variant, item2 As Variant, auswahl As Variant
   Dim tabelle(3) As String
   
   tabelle(0) = "Strategy Development"
   tabelle(1) = "Requirement Management"
   tabelle(2) = "Project Management"
   tabelle(3) = "Service Planning"
   
   Set view = db.GetView( "dworkquality" ) ''' in der view ist nur ein dok für diesen Zweck
   Set doc = view.GetFirstDocument
   
   If doc Is Nothing Then
      Messagebox "................ ", 48, "Notice"
      Exit Sub
   Else
      REM Auswahl Tabellenart
      auswahl = ws.Prompt(PROMPT_OKCANCELLIST, "Insert table frame", "please select a table frame", tabelle(0), tabelle)
      
      Select Case auswahl
      Case tabelle(0) : Set item2 = doc.GetFirstItem( "d_qualitydept" )
      Case tabelle(1) : Set item2 = doc.GetFirstItem( "d_qualitydept1" )
      Case tabelle(2) : Set item2 = doc.GetFirstItem( "d_qualitydept2" )
      Case tabelle(3) : Set item2 = doc.GetFirstItem( "d_qualitydept3" )
      Case Else : Exit Sub
      End Select
      
      Set item1 = actdoc.GetFirstItem( "d_quality" )
      
      If ( item1 Is Nothing  Or  item2  Is Nothing ) Then
         Messagebox "............... ", 48, "Notice"
      Else
         If ( item1.Type = RICHTEXT  And  item2.Type = RICHTEXT ) Then
            Call item1.AddNewLine( 2 )
            Call item1.AppendRTItem( item2 )
            
            actdoc.saveoptions = "1"
            Call actdoc.save (True,False)
            actdoc.saveoptions = "0"
            Call docUI.close
            
            Set docUI = ws.EditDocument(True, actdoc)      
            Call docUI.refresh
            Call docUI.GotoBottom
         Else
            Messagebox "...................... ", 48, "Notice"
            Exit Sub   
         End If   
      End If
 



cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 12.12.02 - 11:43:55
Hy,
bin leider die letzten Tage nicht im Haus gewesen.

Ich habe bei der Übernahme des Scripts immer das Problem:

Variant does not contain an object.

Anscheinend ist bei der Zuweisung noch ein Problem

set  item1=actdoc.getfirstItem("protokoll")

Bei mir heisst das Feld der Eingabe Protokoll.

Weiss jemand weiter ? ???
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 12.12.02 - 17:26:21
kann das nicht ganz nachvollziehen, das actdoc ist gespeichert, dein Feld protokoll existiert bereits.....

sorry, gib mir nähere Details - oder code Fragmente


cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 12.12.02 - 17:32:39
Hy,

ich habe jetzt folgenden Script-Code erstellt

Meine versteckte Ansicht heißt Vorlagen, das RTF-Feld in dieser Ansicht v_protokoll.

In der erstellten Maske heisst das Feld Protokoll


Sub Click(Source As Button)
   Dim actdoc As Notesdocument
   Dim view As NotesView
   Dim item1 , item2
   Set view = db.GetView( "Vorlagen" ) ''' in der view ist nur ein dok für diesen Zweck
   Set doc = view.GetFirstDocument
   
   Set item2 = doc.GetFirstItem( "v_protokoll" )
   
   Set item1 = actdoc.GetFirstItem( "Protokoll" )
   If ( item1.Type = RICHTEXT  And  item2.Type = RICHTEXT ) Then
      Call item1.AddNewLine( 2 )
      Call item1.AppendRTItem( item2 )
      
      actdoc.saveoptions = "1"
      Call actdoc.save (True,False)
      actdoc.saveoptions = "0"
      Call actdoc.close
      
      Set docUI = ws.EditDocument(True, actdoc)      
      Call docUI.refresh
      Call docUI.GotoBottom
   End If
End Sub
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 13.12.02 - 13:31:24
habe jetzt dein code nicht getestet aber
- ich würde in der Deklaration die items als Variant deklarieren
- Protokoll und v_protokoll sind 2 RTF Felder !

die Fehlermeldung deutet darauf hin das ein variant nicht initialisiert wurde

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 13.12.02 - 13:35:14
jetztetle - ich habe genau den Fall mit

If ( item1 Is Nothing  Or  item2  Is Nothing ) Then ....

ausgeklammert, falls ein item nicht initialisiert ist macht es keinen Sinn irgendwas zu appenden.

cu



Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: savage am 18.12.02 - 10:19:10
Und hast Du mal überlegt mit einem RTF Editor zu arbeiten, in dem der User die Tabelle selber erweitern und anpassen kann? Oder willst Du die einzelnen Tabellenfelder separat abspeichern und auslesen können, oder würd es ausreichen den gesamten Inhalt in ein RTF zu schreiben? Dann würde z.B. sowas wie der WYSIWYG Web Editor für Notes funktionieren. Der funktioniert auch im Client. www.lotusnotesdomino.de (http://www.lotusnotesdomino.de)
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 18.12.02 - 11:23:27
@savage

wenn jemand eine profesionelle Lösung will dann sucht derjenige bestimmt nicht in diesem thread.

Ich finde dieses Forum soll Lösungen aufzeigen und nicht Wege wie man an dieses oder jenes Produkt kommt.

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: savage am 18.12.02 - 11:34:54
@Performance

ja und nein. Es gibt ja auch solche Tools kostenlos. Die sind zwar nicht so gut, aber reichen manchmal auch aus. Und einige Sachen gibt es nun auch nicht als freeware oder shareware. Zudem ist es immer ein gute Ansatz das Thema auch von einer anderen Seite anzuschauen und auf Basis der Profi-Tools evtl. eigene Ideen umzusetzen. Also muss nicht schlecht sein sich mal anzuschauen, was bereits vorhanden ist um sich ein Bild der Möglichkeiten zu machen.
Und ist es nicht eine "Lösung" wenn man um den ganzen Programmierkram rum kommt indem man ein fertiges Tool einsetzt, auf das auch z.B. R6 setzt? Ich weiss nicht, ob Du nicht etwas zu kritisch mit professionellen Tools bist. Ich meine, wer hat schon Lotus Notes als Groupwaretool selber programmiert, damit er es nicht kaufen muss.  ;D
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 18.12.02 - 11:56:53
@savage

- ich bin nicht kritisch gegenüber "profesionellen Tools"  - als ITler bin ich ja eh voll dabei mit "profesionellen Lösungen/Tools" .....
- fertige Tools kosten immer Geld
- da wir meist mit Werksverträgen arbeiten MUSS das Endprodukt auch tatsächlich funktionieren, da hilft keine shareware oder auch kein fertiges Tool das eine Teilaufgabe übernehmen kann.
- und at least wenn der code mitverkauft wird(kostet etwas mehr) hilft eh nur Eigenarbeit.

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 02.01.03 - 14:11:44
Hi,

sorry habe erst mal meinen Urlaub genossen. Heute habe ich gleich eure Antworten ausprobiert.

Nachdem ich die Variablen item1 und item2 als Variant deklariert habe und gleichzeitig in der If Anweisung die Klammern entfernt hatte, erhalte ich jetzt eine andere Fehlermeldung.

Variant does not contain an objekt.

Das Feld in der Vorlage ist jedoch gefüllt. Habt Ihr eine Idee?

Cu

Kutz
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 02.01.03 - 16:07:55
hallo Urlauber

vielleicht kannst du die db posten mit der einen form

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Don Pasquale am 02.01.03 - 16:19:02
@Performance:
Ich bekomme immer so einen widerlichen Juckreiz im
kleinen Finger,
wenn ich ein Tool anempfohlen bekomme,
wo die eMailAdresse des Posters mit der empfohlenen Webseite so merkwürdig übereinstimmt.


ciao
Don Pasquale
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 02.01.03 - 16:30:16
yo don

aberrrrr

irgendwie sind wir doch alle Verkäufer oder ?  ::) ::) ::) ::)

- in erster Linie will jeder sich selbst am besten verkaufen ;D

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 02.01.03 - 16:42:25
das verstehe ich jetzt aber nicht. War das eine Antwort auf meine Fehlermeldung  ???
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 03.01.03 - 15:01:55
@Kutz
nein
wenn du die db postest - kann ich dir weiterhelfen :)


cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: ata am 03.01.03 - 17:33:36
... da sind einige Fehler und Ungenauigkeiten drin...

Zitat
Dim item1 , item2

Dim item1 As Variant
Dim item2 As Variant

Zitat
Set view = db.GetView( "Vorlagen" )

... wo kommt die db her - ist die Global deklariert...

Zitat
Set item1 = actdoc.GetFirstItem( "Protokoll" )

... wo wird actdoc initialisiert - ich vermisse "Set actdoc = ... "

ata

Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 16.01.03 - 17:02:01
Hm, irgendwie komme ich immer nicht weiter.

Beide Dokumente sind in der selben Datenbank.

Habt Ihr eine Idee, ich denke hier habe ich ein Denkfehler.

Sub Click(Source As Button)
   Dim actdoc As Notesdocument
   Dim db As notesdatabase
   Dim view As NotesView
   Dim item1 As Variant
   Dim item2 As Variant
   
   Set view = db.GetView( "Vorlagen" ) ''' in der view ist nur ein dok für diesen Zweck
   Set doc = view.GetFirstDocument
   Set item2 = doc.GetFirstItem( "v_protokoll" )
   
   Set item1 = actdoc.GetFirstItem( "Protokoll" )
   If ( item1.Type = RICHTEXT  And  item2.Type = RICHTEXT ) Then
    Call item1.AddNewLine( 1 )
      Call item1.AppendRTItem( item2 )
      
      actdoc.saveoptions = "1"
      Call actdoc.save (True,False)
      actdoc.saveoptions = "0"
      Call actdoc.close
      
      Set docUI = ws.EditDocument(True, actdoc)      
      Call docUI.refresh
      Call docUI.GotoBottom
   End If
End Sub
 ???
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: ata am 16.01.03 - 17:13:28
... wo kommt das actdoc her - ich vermisse

Set actdoc = ws.CurrentDocument.Document

... oder derartiges..

ata
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 16.01.03 - 17:16:47
Ja hatte ich ganz übersehen,

aber nachdem ich die Zeile eingefügt habe, erscheint immer noch die Meldung,

Variable does not contain an object.

Eine der Variablen ist leer.

 :(
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: ata am 16.01.03 - 17:20:52
... es fehlt noch die Deklaration des ws...

Dim ws As New NotesUIWorkspace

... sorry...


ata
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 16.01.03 - 17:27:34
Danke, jetzt komme ich Schritt für Schritt weiter

Jetzt erhalte ich

Object variable not set

 >:(
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: ata am 16.01.03 - 19:07:08
... schau mal mit dem Debugger, wo die Meldung erzeugt wird...

ata
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 17.01.03 - 09:50:02
@ata
der Geduldsmensch  ;D  ;D  ;D

@Kutz
poste doch einfach deine db hier rein - nur die 2 verwendeten Forms, dann kann ich dir weiterhelfen
- wenn du jede Fehlermeldung hier postest kann dieser Beitrag noch Ellenlang werden  :-\

cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: doliman am 17.01.03 - 22:19:45
Hallöchen Zusammen,

es gibt da etwas was eine Erwähnung sein sollte, nein es ist nicht kostenlos aber es hilft ungemein mit RTF Felder zu arbeiten.
Ich selber setzte diese Libary ein und man kann diese kostenlos testen. Für Profressionelle Berichte aus Notes mit RTF Felder eigentlich ein muss:
http://geniisoft.com/
Man kann mit dieser Libary mit den Backendklassen RTF Felder vergewaltigen und sämtliche Benutzerfunktionalität benutzen.
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 21.01.03 - 10:46:14
Hallo,

hier habe ich meine DB eingestellt.

Ein neues Management-Protokoll soll erstellt werden, dazu habe ich ein Button in die Maske eingebaut, mit der die Tabelle eingesetzt werden soll.

Danke schon im voraus :)

Kutz
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 21.01.03 - 13:28:28
hallo kutz

ich habe ein Paar Änderungen vorgenommen
- du kannst mehrere Vorlagen mit einer Maske erstellen - der Unterschied liegt in der Bezeichnung der Vorlagen - Feld v_Art
- Auswahl von neuen Vorlagen über eine Dialogliste - da habe ich die vorhandenen VMasken reingeschrieben - wenn dir das ein wenig zu starr ist kannst du auch ein @unique(@dbcolumn einbauen.
- das Querysave der VMaske verhindert das Vorlagennamen doppelt vorkommen
- das erzeugen von neuen Vorlagen oder Management doks habe ich über die roten Punkt Aktion gemacht
- die Vorlagen werden immer an die vorhandene rtf angehängt


cu

Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: doliman am 21.01.03 - 19:57:15
Hi,

wollte mich eigentlich nicht einmischen nur der Neugierde zu Liebe.
Um den Fehler "OBjectvariable not set" loszuwerden fehlt das hier:

Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase

sonst knallts bei der set view = ....

das Managment Dokument muss auch erst ein save erfahren sonst knallts am rtf Feld.
Aber so richtig habe ich das Szenario nicht verstanden was da tun soll??
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 22.01.03 - 09:08:25
@doliman

jeder darf sich einmischen - so entstehen geniale Ideen !!

- welche view meinst du - ich verwende keine view mehr
- beim Mgm dok kanllt es nicht sondern es kommt eine Meldung oder Kutz kann den Code ändern mit einem actdoc.save true, false
--> steht aber im Kommentar



cu
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Kutz am 29.01.03 - 10:36:58
Hallo

vielen Dank für die vielen Infos.

Besonderer Dank gilt performance für die kompetente Hilfe.

Cu

 :D
Titel: Re:Tabellen in RTF-Feld per Button einfügen
Beitrag von: Performance am 29.01.03 - 10:47:28
Hallo Kutz

thx...
ich hatte schon gedacht du hättest dich von Notes verabschiedet  ;D

keep running