Autor Thema: Dateianhänge von einem Feld in ein anderes verschieben - wie gehts?  (Gelesen 2008 mal)

Offline ampfi

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Hallo zusammen,

ich mache gerade eine Auftrags-Datenbank. Hierbei sollen auch Dateien an einen Auftrag gehängt werden, die nach der Freigabe des Auftrags für die Benutzer nicht mehr bearbeitbar sein sollen.

In meinem jugendlichen Leichtsinn habe ich mir dafür folgendes ausgedacht:

1. Auswahl der Dateien durch den Benutzer über ein RichTextLite-Feld
2. Beim Speichern des Dokuments werden dann die Dateien in ein  RT-Feld kopiert, das wiederum in einem zugriffsgeschützten Abschnitt liegt.
3. Entfernen der Dateien aus dem RichTextLite-Feld.

Alles sieht eigentlich ganz gut aus. Zumindest so lange, bis ich die Dateien öffnen möchte. Dann bekomme ich nämlich die Fehlermeldung, dass das Element des Dokuments nicht gefunden wurde.

Nach der Suche hier im Forum wurde mir dann auch klar, dass ich nur die Verweise auf die Dateien kopiert habe und die eigentlichen Dateien mit dem Leeren des RT-Lite-Feldes gelöscht werden:

http://atnotes.de/index.php/topic,43712.0.html

Jetzt stecke ich fest und hoffe, dass mir hier im Forum sagen kann, wie ich das elegant lösen kann. Ein Abspeichern der Dateien im File-System möcht ich aber verhindern.

Hier mein Code:

Code
Sub speichern 
        Dim w As New NotesUIWorkspace 
        Dim uidoc As NotesUIDocument 
        Dim doc As NotesDocument 
        Dim rtitemA As Variant 
        Dim rtitemB As Variant 
        
        Set uidoc = w.CurrentDocument 
        Set doc = uidoc.Document 

        'Mit Setzen des folgenden Feldes mache ich den zugriffsgeschützten Abschnitt         
          bearbeitbar: 

        Call uidoc.FieldSetText("BearbAnhaenge","1") 
        Call uidoc.Save 
        
        If doc.HasItem("Anhang") Then 
                Set rtitemA = doc.GetFirstItem( "Anhang" ) 
        Else 
                Set rtitemA =New NotesRichTextItem(doc, "Anhang") 
        End If 
        
        Set rtitemB = doc.GetFirstItem( "AnhangTransfer" ) 
        
        Call rtitemA.AddNewLine(1) 
        Call rtitemA.appendRTItem(rtitemB) 
        Call doc.RemoveItem("rtitemB") 
        Call uidoc.FieldClear("AnhangTransfer") 
        
        Call doc.Save(False, True) 

        'Der Abschnitt wird wieder dicht gemacht: 

        Call uidoc.FieldSetText("BearbAnhaenge","0") 
        Call uidoc.Save
End Sub


Vielen Dank fürs Anschauen

Markus
« Letzte Änderung: 22.10.10 - 15:59:39 von ampfi »
Markus

Domino 8.0.2 Win2003
Notes Client 8.0.2

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Nur mal so ein Schuß ins Blaue. Steuer doch den Zugriff auf den Abschnitt in Abhängigkeit des Auftragsstatus.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Entweder Du versuchst es so, wie Axel angeregt hat, oder Du wirst die Dateien temporär auf die Platte schreiben und neu an die Richtextfelder anhängen müssen. Löschen am Ende nicht vergessen.

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Ich würde Axels Variante empfehlen.

Das mit dem verschieben ist leider nicht so leicht wie es sein sollte und wenn du Sache auf die Platte schreibst musst du dies auch erstmal dürfen, genauso wie das löschen. Lieber mit dem Bereich arbeiten, dann musst du dir um so was keine Gedanken machen.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline ampfi

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Hallo zusammen,

habe es jetzt doch über den Zwischenschritt des Abspeicherns gemacht. Eine Zugriffssteuerung in Abhängigkeit des Status hätte bereits angehängte Dateien änderbar gemacht.

Vielen Dank für Eure Hilfe

Markus
Markus

Domino 8.0.2 Win2003
Notes Client 8.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz