Betrifft: ab orgAnice CRM 2008

Frage:

Wie kann man Datensätze markieren, die ein Dokument eines bestimmten Typs beinhalten? Z.B. alle Aktivitäten, die ein Word-Dokument beinhalten?

Lösung:

Es ist nicht möglich die Aufgabenstellung mit dem Markierungs-Assistenten zu lösen, da es innerhalb von orgBasic keine Möglichkeit gibt auf den Dokumententyp bzw. die Dateiendung zuzugreifen. Wir müssen ein VBA-Makro zu Hilfe ziehen:

[php]
Sub MarkDoc()
‚ Markiert in der Tabelle Aktivitäten alle Datensätze,
‚ die ein Word-Dokument (mit der Endung .doc) beinhalten
Dim tbl As OrgDbServer31.Table
Dim doc As OrgDbServer31.Document

Set tbl = Database.Tables("Aktivitaeten")

With tbl
.Indexes.SetActiveIndex "ID"
.UnmarkAll
.GoTop
Do While Not .EOF
Set doc = tbl.Fields("Dokument").value
If Not doc Is Nothing Then
If doc.DefaultExtension = ".doc" Then
.SetMark True
End If
End If
.Skip
Loop
End With

End Sub
[/php]

In bestimmten Fällen kann es gewünscht sein, Dokumente eine bestimmten Typs als externe Dokumente abzulegen. Hier eine erweiterte Version der obigen Prozedur, die die gefundenen Dokumente als externe Dokumente ablegt:

[php]
Sub MoveDocTypeToExtern(psType As String, psTableName As String, psPath As String, psFileName As String)
‚ übergebenen Dokumenttyp von intern nach extern.
‚ psPath mit abschliessendem "\" angeben!
‚ Der in psPath angegebene Pfad muss existieren
Dim tbl As OrgDbServer31.Table
Dim doc As OrgDbServer31.Document
Dim sPath As String

On Error GoTo ErrHandler

Set tbl = Database.Tables(psTableName)
With tbl
.Indexes.SetActiveIndex "ID", ORGDB_NAV_NOEVENTS
.UnmarkAll ORGDB_NAV_NOEVENTS
.GoTop ORGDB_NAV_NOEVENTS + ORGDB_NAV_NORELATIONS
Do While Not .EOF
Set doc = tbl.Fields("Dokument").value
If Not doc Is Nothing Then
If doc.DefaultExtension = psType Then
.SetMark True
sPath = psPath & psFileName & " " & .Fields("ID").value & doc.DefaultExtension
doc.SaveAs sPath
Set doc = Database.Documents.CreateLink(sPath)
tbl.Fields("Dokument").value = doc
.Write
End If
End If
.Skip 1, ORGDB_NAV_NOEVENTS + ORGDB_NAV_NORELATIONS
Loop
End With

Exit Sub

ErrHandler:
gErrors.DisplayError Hex(Err.Number) & ", " & Err.Description & ", MoveDocTypeToExtern, Tabelle: " & psTableName & ", ID: " & tbl.Fields("ID").value

End Sub
[/php]

Beispielaufruf:

MoveDocTypeToExtern „.doc“, „Aktivitaeten“, „D:\Test\“, „AktivitaetenID“

Vielen Dank an Herrn Kopplin von K+K Software E. + K. Kopplin GbR, dem Hersteller von KKMandant, für die Zurverfügungstellung des Quellcodes.

Was this helpful?

1 / 0

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen