Autor Thema: PDF's als Attachments - automatisch  (Gelesen 3892 mal)

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
PDF's als Attachments - automatisch
« am: 26.09.03 - 16:08:04 »
 :-[
Ich gebe zu, ich bin im scripten nicht der Größte.
Ich möchte gerne PDF-Dateien aus einem Unterverzeichnis einfach nur selektieren und dann per Agent daraus je ein Dok mit entsprechenden Attachment machen.
hat jemand vielleicht eine Hilfe für mich?
-------
Gruß Rolf
--------------

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #1 am: 26.09.03 - 16:14:40 »
yoo, da hab ich was.

hab momentan hier nur den Code; die Designelemente muß ich danach noch zusammenfummeln.

Du kannst damit beliebige Dateien eines Verzeichnisses entweder

- 1 Doc pro Datei
- alle files in ein doc

importieren lassen.

ich schaue nachher mal nach dem Rest

'==========================================================================================
' C L A S S "recursionManager"
'==========================================================================================
Public Class recursionManager
   
   Private m_ws As NotesUIWorkSpace
   Private m_ses As NotesSession
   Private m_db As NotesDatabase
   Private m_currentPath As String
   Private m_fileSpecs As Variant
   Private m_recurse As Variant
   Private m_SingleDoc  As Variant
'   Private dummy As NotesItem
   
   Private Function getImportRules As Variant
      Dim doc As NotesDocument
      Set doc = Me.m_db.CreateDocument
         'continue = Me.m_ws.DialogBox("DefaultDialog", True, True, False, False, False, False, "Import Rules", doc) = -1
      continue = Me.m_ws.DialogBox("($ImportRules)", True, True, False, False, False, False, "Import Rules", doc) = -1
      If continue Then
         Me.m_currentPath = doc.startPath(0)
         Me.m_fileSpecs = doc.fileSpecs
         Me.m_recurse = doc.canRecurse(0) = "1"
         Me.m_SingleDoc = doc.OneDocument(0)="1"
         If Right$(Me.m_currentPath, 1) <> "\" Then Me.m_currentPath = Me.m_currentPath & "\"
      End If
      getImportRules = continue
   End Function
   
   Private Function processDirectory (currentPath$) As Variant
      Dim doc As NotesDocument
      Dim rtitem As NotesRichTextItem
      Dim object As NotesEmbeddedObject
      Dim Item As NotesItem
      Dim fileList List As String
      Dim importList List As String
      Dim dirList List As String
      Dim pb As New LNProgressBar(True)
      Dim i As Long, x As Long
      
      Call pb.SetText("Dateien importieren","Durchsuche: " & currentPath$)
      x = 0
      
      If Me.m_recurse Then
         
         fileName$ = Dir$(currentPath$ & "*.*", 0)
         Do While fileName$ <> ""
            fileList(fileName$) = fileName$
            fileName$ = Dir$()
         Loop
         
         fileName$ = Dir$(currentPath$ & "*", 16)
         Do While fileName$ <> ""
            If Left$(fileName$, 1) <> "." And Not Iselement(fileList(fileName$)) Then dirList(fileName$) = fileName$
            fileName$ = Dir$()
         Loop
      End If
      
      Forall fS In Me.m_fileSpecs
         fileName$ = Dir$(currentPath$ & fS, 0)
         Do While fileName$ <> ""
            importList(fileName$) = fileName$
            fileName$ = Dir$()
            Print FileName$
            x = x +1                    
         Loop
      End Forall
      
      Call pb.SetProgressRange(x)
      
      If m_SingleDoc Then
         
         i = 1
         
         Forall iL In importList
            Set doc = Me.m_db.CreateDocument
            Set rtitem = New NotesRichTextItem(doc, "Body")
            Set object = rtitem.EmbedObject(EMBED_ATTACHMENT, "", currentPath$ & iL, "")
            Call pb.SetProgressPos(i)                    
                   'doc.objPath = currentPath$
            doc.Form = "FileImport"
            doc.Subject = currentPath$ + iL
            Call doc.Save(True, True, True)
            i = i +1
         End Forall    
         
      Else
         
         Set doc = Me.m_db.CreateDocument
         i = 1
         
         Forall iL In importList
            Set rtitem = New NotesRichTextItem(doc, "Body")
            Set object = rtitem.EmbedObject(EMBED_ATTACHMENT, "", currentPath$ & iL, "")
         '   doc.objPath = currentPath$
'            Set dummy = doc.ReplaceItemValue ( objPath , CurrentPath$ )
'            Set Item = doc.ReplaceItemValue ( Form , "Fileimport" )
'            Set Item = doc.ReplaceItemValue ( AttFileName , iL )
            Call pb.SetProgressPos(i)                    
            i = i +1
         End Forall
         
         'doc.Form = "FileImport"
         'doc.Subject = "Datenimport"
         Call doc.Save(True, True, True)              
         
      End If
      
      If Me.m_recurse Then
         
         Forall dL In dirList
            newPath$ = currentPath$ & dL
            If Right$(newPath$, 1) <> "\" Then newPath$ = newPath$ & "\"
            Call processDirectory(newPath$)
         End Forall
      End If
      
      Delete pb                
      
   End Function
   
   Public Function run As Variant
      continue = getImportRules
      If continue Then Call processDirectory(Me.m_currentPath)
      run = continue
   End Function
   
   Sub new
      Set Me.m_ws = New NotesUIWorkSpace
      Set Me.m_ses = New NotesSession
      Set Me.m_db = Me.m_ses.CurrentDatabase
   End Sub
   
   Sub delete
      
   End Sub
End Class
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Re:PDF's als Attachments - automatisch
« Antwort #2 am: 26.09.03 - 16:16:16 »
 :-*
eknori du bist der hammer - thx
-------
Gruß Rolf
--------------

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #3 am: 26.09.03 - 16:16:26 »
Na, was nicht ist, kann ja noch werden ;-) Jeder hat mal klein angefangen ...

Ein paar Tips (immer: Siehe DesignerHelp):
- Attachment selektieren mit NotesUIWorkspace.FileOpenDialog
- Wurde ein Attachment selektiert (nein: Ende Banane, Ja: Siehe unten)
- Neues Dokument erstellen (NotesDatabase.CreateDocument)
- Wichtige interne Felder vorbelegen (wie Form etc.)
- Gewünschtes RichText item erstellen (siehe NotesRichTextItem class)
- Mit NotesRichTextItem.EmbedObject (siehe dort) ausgewähltes File anhängen.
- Dokument speichern

Ich denke mal, am meisten lernst Du, wenn Du nach diesem Kochrezept vorgehst. Wenn es dann zwischendurch klemmt, meld' Dich gleich wieder ;-)

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #4 am: 26.09.03 - 16:28:15 »
so, hab mal schnell ne Demo gebaut

( die Auswahl des Verzeichnisses funzt leider nicht, daher manuell eintragen )

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #5 am: 26.09.03 - 16:54:29 »
Zitat
Public Class recursionManager

Zitat
Ich gebe zu, ich bin im scripten nicht der Größte

Ob das was wird oder eine wirkliche Hilfestellung war ...

Nichts für ungut,
Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #6 am: 26.09.03 - 17:14:41 »
deshalb ja auch die gebrauchsfertige DEMO DB...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #7 am: 26.09.03 - 17:28:06 »
Ulrich, ich weiß nicht ... Ist das gut ?

Ich grübel' weiter drüber nach ... Ich habe auch noch keine endgültige Meinung in solchen Sachen.

Ciao,
Bernhard

PS: Ich bleib' dran an dem Thema. Ulrich, kommst Du zum Treffen Ende November nach München ? Wenn ja: Gibt es einen bezahlbaren Flieger nach Salzburg? Dann bist Du herzlich bei uns eingeladen (Abholung - 25 km, Übernachtung(en) und gemeinsame Fahrt nach München ;-)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #8 am: 26.09.03 - 17:44:46 »
@Bernhard:

Sorry, aber ich glaube, ich muß meine Erdkunde Kenntnisse mal einer Revision unterziehen...
Erst lese ich in deinem Profil SIEGBURG.. Daher das Mißverständnis mit dem Biertrinken-Gehen.

Jetzt Salzburg ?? Yoo, klar, habe ich noch nicht drüber nachgedacht. Werde ich morgen checken...

Ulrich
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #9 am: 26.09.03 - 18:11:43 »
Hi, eknori,

es sind nicht Deine Erdkunde-Kenntnisse - es ist der simple PISA-Lesetest ;-)))
SIEGSDORF ! 30 km vor Salzburg, rund um sind Traunstein, Inzell, Ruhpolding, Reit im Winkl, Richtung München kommt dann nach Rosenheim - jedenfalls rechts unten in Deutschland ;-))

A propos PISA: Meine Tochter (9. Klasse) hat heute eine PISA-Arbeit (also zumindest europaweites Niveau) in Mathematik zurück bekommen. Mit einer 3 (ohne Schusselfehler wäre es wohl ohne weiteres eine 2 gewesen) war sie die beste in ihrer (Realschul-)Klasse - im angeblichen besten (bayerischen) Schulsystem Deutschlands. Durchschnitt war fünfkommanochwas ! Und Susi ist kein mathematischer Überflieger ... Und wenn ich dann manchmal hier im Forum nur die pure Rechtschreibung sehe (Schussel-/Tippfehler und Kollegen mit einer anderen Muttersprache sind hier völlig aussen vor !) ...
Armes Deutschland ...

Herzliche Grüsse,
Bernhard

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Danke!
« Antwort #10 am: 26.09.03 - 18:56:01 »
 ;)
Dank Euch alölen für die rasche Unterstützung., speziell Ulrich.
Mit dieser Lösung kann ich verdammt viel anfangen,
-------
Gruß Rolf
--------------

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #11 am: 26.09.03 - 18:57:29 »
bei einer erfolgreichen vermarktung bin ich mit einer prov von 50 % einverstanden ... :D
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline RvM

  • Senior Mitglied
  • ****
  • Beiträge: 375
  • Geschlecht: Männlich
  • Domino: Geht nicht - gibt's nicht
    • PhotosForFree
Re:PDF's als Attachments - automatisch
« Antwort #12 am: 26.09.03 - 20:10:04 »
Wenn Du mir ne offizielle Rechnung schreibst (das meine ich ernst) - habe ich nichts dagegen.
Umsonst ist nur der Tod - und der kostet schon das Leben.
-------
Gruß Rolf
--------------

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:PDF's als Attachments - automatisch
« Antwort #13 am: 26.09.03 - 20:14:09 »
kein Thema; habe ein Gewerbe angemeldet...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz