Autor Thema: Konzept Doc-History  (Gelesen 8679 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Konzept Doc-History
« am: 19.03.04 - 19:17:49 »
Hi,

ich bin gerade dabei eine Doc-DB fürs Marketing zu erstellen.

Ist eine ziemlich simpel aufgebaute DB, ein paar Views, kleiner Freigabeworkflow etc.

Zusätzlich protokolliere ich wesentliche Dinge in Feldern mit (wer hat Doc wann geändert, Statusänderung etc.).

Jetzt geht es noch darum, eine Änderunghistorie sinnvoll zu führen, z.B.

Version       Datum                 Änderungen
1                 15.10.2003         Neu
2                 20.10.2003        Kap. 5 neu hinzugefügt
3                 31.10.2003         Layoutanpassung Kap. 7  

usw.

Ich habe da schon daran gedacht, einfach ein Richtextfeld hinzuzufügen, und darin eine normale Notes-Tabelle abzulegen. Ist aber nicht sehr schön, denn die Versionsnummer und das Datum ist ja bereits vorhanden, und müsste der User so nochmal eintragen. Außerdem ist es unmöglich abzufragen, ob denn schon die Versionshistorie gepflegt wurde, wenn eine neue Version freigegeben wird.

Wie löst Ihr sowas?

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


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:Konzept Doc-History
« Antwort #1 am: 19.03.04 - 20:05:42 »
eine Möglichkeit:
neue Version nur per Aktion erstellen lassen.
Grund gleich abfragen oder beim Speichern.

Drei Felder machen, Multivalue.
Da dann jeweils Versionsnr., Datum, Grund reinschreiben
Thomas

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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #2 am: 19.03.04 - 20:23:28 »
Danke Thomas, das wäre wirklich eine Möglichkeit. Neue Version gibt es eh nur auf Button-Klick (Aktion), da diese über diesen Button zur Freigabe eingereicht wird.
Der Übersichtlichkeit halber sollte man dann die Zeilen der einzelnen Versionen wohl mit was trennen (Chr(10) oder "-----" oder so...).

Noch ein Schönheitsproblem dabei:
Wenn aber diverse Änderungen vorgenommen wurden, könnte der Änderungstext ziemlich lang werden und somit z.B. 3 Zeilen beanspruchen (Datum / Version hat ja nur eine Zeile). Dadurch passt dann das ganze nicht mehr sauber zusammen....

Evtl. könnte man die Stringlänge abfragen und in den beiden anderen Feldern dann bei bestimmter Länge ein Chr(10) einfügen. Aber dann müsste ich eine unschöne nicht-proportionale Font wie Courier nehmen...

Any idea?

Matthias
« Letzte Änderung: 19.03.04 - 20:25:09 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


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:Konzept Doc-History
« Antwort #3 am: 19.03.04 - 20:47:55 »
naja, es gab bei mir bis jetzt 2 Mal dieses Problem mit der schönen Darstellung in einer Tabelle.
Beide Male habe ich ein Java Applet mit einem JTable drauf benutzt, weil ich keine andere Möglichkeit kenne.
Der NotesClient ist einfach nicht dafür gemacht, Dinge schön darzustellen.
Thomas

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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #4 am: 19.03.04 - 20:56:17 »
Der NotesClient ist einfach nicht dafür gemacht, Dinge schön darzustellen.
Na ja, ist Ansichtssache  :)

Ich werde wohl wirklich den Weg mit einer nicht-proportionalen Schriftart gehen müssen im Text.
Wenn Feld-String history_Text z.B. > 100 Zeichen: ein Chr(10) nach dem 100. Zeichen rein.  Wenn > 200, ein weiteren Zeilenumbruch usw. Das dann in allen 3 Feldern.
 :P
Muss aber erstmal ausmessen, wieviele Zeichen denn pro Zeile Platz haben....

Hab ich jetzt wirklich keine Lust dazu, das umzusetzen, werde ich wohl aufschieben.
Lotus Script - Praktikanten habe ich leider keinen  ::)

Matthias

P.S. habe schon an eine embedded View gedacht, wo ich pro Versionsänderung ein (Antwort)-Dok anzeige. Ist aber wohl irgendie einwenig wie mit Kanonen auf Spatzen schiessen....
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


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:Konzept Doc-History
« Antwort #5 am: 19.03.04 - 20:59:01 »
da fällt mir gerade was ein, was ich glaube ich neulich irgendwo gesehen habe.
wenn ich mich recht entsinne, dann wurde für diesen Zweck eine Listbox hergenommen. Die hat ne feste Breite, der Text wird automatisch beschnitten. Und man kann auf Wunsch den gesamten Text einer Zeile anzeigen.

Etwas vage Erinnerungen, aber vielleicht hilfts
Thomas

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

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:Konzept Doc-History
« Antwort #6 am: 19.03.04 - 21:03:19 »
in dieser Anwendung hab ichs gesehen (glaube ich)
http://martinscott.com/home.nsf/pageview/NoteMan1
Thomas

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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Lösung:
« Antwort #7 am: 19.03.04 - 21:07:31 »
Man nehme tatsächlich ein RT-Feld
Pro hysterischem Eintrag mache man folgenes:

Man formatiere mit NotesRichTextParagraphStyle und mit NotesRichTextTab den Paragraphen so, dass der linke Rand um sagen wir 3cm eingezogen ist. Für die erste Zeile wird ein linker Rand eingestellt, der dem standard-Rand entspricht. Dann setzt man Tabulatoren auf 0,5cm vom linken Standardrand und auf 3cm (also dem Einzug, den der Paragraph hat)

Dann gibt man die Angaben wie folgt an:

Version TAB Datum TAB hysterischer Text NEWPARAGRAPH
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

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:Konzept Doc-History
« Antwort #8 am: 19.03.04 - 21:17:22 »
schön :)
was schwieriger wird, wenn du RT verwendest ist die Auswertung der Historie. Sei es in Views oder per Formel/Script (also z.B. gib mir mal den Grund der dritten Version) Das wird sogar schon unbequem, wenn du nur ein normales Textfeld nimmst anstelle von dreien.
Hmm, das ließe sich aber durch versteckte Felder umgehen, in denen die Daten gespeichert werden, Im RT Feld werden die Daten dann vorm Öffnen schön aufbereitet...
Thomas

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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #9 am: 19.03.04 - 21:18:41 »
Danke Euch beiden.

@Thomas: das muss ich mir mal näher ansehen.


@Jens:
Verstehe ich noch nicht ganz. Bekomme ich dann wirklich ein Ergebnis wie z.B. folgendes:

Version      Datum                Änderungen
1                15.10.2003        Neu
2                20.10.2003        Kap. 5 neu hinzugefügt, ziemlich viel Text geschrieben,
                                            dann noch viel mehr geändert, etc. und so weiter etc.
3                31.10.2003        Layoutanpassung Kap. 7 , außerdem Kap. 8 geändert,
                                            Kapitel 5 hat  auch nicht mehr gepasst
4                 05.11.2003       noch mehr geändert.


Matthias
« Letzte Änderung: 19.03.04 - 21:22:46 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #10 am: 19.03.04 - 21:19:51 »
Ups, habe Jens' Beitrag nochmal gelesen, sollte genau das sein was ich möchte  :)

Danke,
Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Konzept Doc-History
« Antwort #11 am: 19.03.04 - 21:26:03 »
Nur allzu verständlich, dass man das nicht auf Anhieb versteht :) ich hab mal nen Faxconverter geschrieben, in dem ich von einem Warenwirtschaftssystem Daten entgegennehme und dann an den Faxgateway weitergebe, da habe ich genau so Sachen machen müssen  ;)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #12 am: 19.03.04 - 21:32:39 »
Jetzt muss ich (leider) noch einen draufsetzen:

Angenommen ich habe dann so eine Textliste im RTFeld:

Zitat
Version      Datum                Änderungen
1                15.10.2003        Neu
2                20.10.2003        Kap. 5 neu hinzugefügt, ziemlich viel Text geschrieben,
                                            dann noch viel mehr geändert, etc. und so weiter etc.
3                19.03.2004        Layoutanpassung Kap. 7 , außerdem Kap. 8 geändert,
                                            Kapitel 5 hat  auch nicht mehr gepasst

Der letzte Eintrag hat sich gefüllt, weil der Bearbeiter auf "zur Freigabe einreichen" geklickt hat. Als Datum wurde das heutige Datum genommen.

Jetzt gibt aber der Freigeber das Dok erst am Montag frei. Gibts da ne Möglichkeit, das RTFeld via Search&Replace "19.03.2004" -> "22.03.2004" zu durchforsten?

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #13 am: 19.03.04 - 21:41:01 »
Wenn nicht möglich: auch kein Drama, dann lass ich das RTF erst bei Freigabe füllen, und speichere den Änderungstext temporär in einem Textfeld.

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Konzept Doc-History
« Antwort #14 am: 19.03.04 - 22:02:09 »
Gibt es in Normunds rtlib ( http://www.rtlib.com ), aber leider nicht im Standardarsenal von ND 5. Weiss nicht auswendig, ob es in ND6 zur Verfügung steht.

Die Möglichkeit, das zwischenzuspeichern, ist das eine, wenn man das ganze dann so wie Thomas geschildert hat ablegt, lässt sich das RT - Feld in einem solchen Fall wieder neu aufbauen
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #15 am: 19.03.04 - 22:07:53 »
jo, danke Jens, aber Normunds rtlib will ich nicht gleich für eine (meines Erachtens) "Kleinigkeit" einsetzen. Auch wenn Normunds das Geld Wert wäre  ;D

Ich werde es wohl über die Zwischenspeicherung lösen....

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Konzept Doc-History
« Antwort #16 am: 19.03.04 - 22:11:14 »
Denke ich auch, wollte es der Vollständigkeit halber erwähnt haben, da Search & Replace doch eigentlich ganz nützlich wären in RT-Feldern
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Konzept Doc-History
« Antwort #17 am: 20.03.04 - 16:08:53 »
Danke nochmal, habe es jetzt nach dem Vorschlag von Jens getestet und klappt wunderbar.

Code
Sub Click(Source As Button)
   Dim uiws As New NotesUIWorkspace 
   Dim uidoc As NotesUIDocument    
   Dim session As New NotesSession 
   Dim db As NotesDatabase 
   Dim doc As NotesDocument
   Dim tabpos1 As Long
   Dim tabpos2 As Long
   
   Set db = session.CurrentDatabase
   Set uidoc = uiws.CurrentDocument 
   Set doc = uidoc.Document    
   
   Dim rtpStyle As NotesrichTextParagraphStyle
   Set rtpStyle = session.CreateRichTextParagraphStyle
   
   Dim rti As Variant
   Set rti = doc.GetFirstItem( "Historie" )
   If ( rti.Type <> RICHTEXT ) Then Exit Sub
   
   'Linke Ränder definieren   
   rtpStyle.FirstLineLeftMargin = RULER_ONE_INCH   
   rtpStyle.LeftMargin = RULER_ONE_CENTIMETER * 7
   'Tabs definieren und setzen   
   tabpos1= RULER_ONE_CENTIMETER *5
   tabpos2= RULER_ONE_CENTIMETER *7
   Call rtpStyle.SetTab( tabpos1, TAB_LEFT)   
   Call rtpStyle.SetTab( tabpos2, TAB_LEFT)   
   'Textformatierung definieren
   Dim richStyle As NotesRichTextStyle
   Set richStyle = session.CreateRichTextStyle   
   'Paragraph-Style hinzufügen   
   Call rti.AppendParagraphStyle(rtpStyle)
   'Text in Richtextfeld setzen
   richStyle.FontSize = 8
   Call rti.AppendStyle(richStyle)      
   Call rti.AppendText(doc.Datum(0))
   Call rti.AddTab(1)
   Call rti.AppendText (doc.Version(0))
   Call rti.AddTab(1)
   Call rti.AppendText (doc.Aenderungen(0))
   Call rti.AddNewLine(1)
   
   doc.FORM = "test"
   Call doc.Save(True, False)   
   
   Call uidoc.close
End Sub
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz