Entweder Rechtsklick auf das Faximage oder über das Menü/Datei/Speichern. Dann gibt er automatisch *.tif als Dateityp vor. Jetzt kann ich den Ordner wählen und einen für mich aussagekräftigen Namen angeben, der aber wie schon gesagt nicht übernommen wird.
Beiträge von friedmi
-
-
Wenn ich empfangene Faxnachrichten in einem Festplattenorder unter einem Namen abspeichrn will, so wird zwar die Datei als *.tif im Ordner abgelegt. Jedoch geht der eingegebene Name verloren. D.h. die Datei liegt tatsächlich ohne Dateinamen auf der Festplatte. Komischer weise lässt sie sich hier problemlos benennen. (Davidfx unter Windows 7).
-
O.k. ich habe jetzt versucht mich mit der Sache auseinander zu setzen und folgender Code sollte mir schon mal zeigen was an Feldern verfvügbar ist. Komischerweise sind das noch nicht enmal die Hälfte der Felder die vorhanden sind. Ausserdem variert das Ergebnis der "Count" Anweisung von Abfrage zu Abfrage. Ich kann mir das nicht erklären???
Sub Test2()
Dim oApp As DvApi32.IApplication
Dim oAccount As DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oAddress As DvApi32.MessageItem2
Dim oUserFields As DvApi32.UserFields
Dim oFieldDefinition As DvApi32.FieldDefinition
Dim oFieldDefinitions As DvApi32.FieldDefinitions
Dim oFields As DvApi32.Fields
Dim oField As DvApi32.Field
Dim i As Integer
Set oApp = CreateObject("DVOBJAPILib.DvISEApi")
Set oAccount = oApp.Logon("Pentium11", "", "", "", "", "AUTH")
Set oArchive = oAccount.GlobalAddressBook.Archive
'###################################### Hinzufügen eines Globalen Feldes ##############
Set oFieldDefinitions = oArchive.FieldDefinitions()
'##################################### Archive FieldDefinitions auslesen ##############
For i = 0 To oFieldDefinitions.Count() - 1
Set oFieldDefinition = oFieldDefinitions.Item(i)
MsgBox ("Name: " & vbTab & (oFieldDefinition.Name()) & vbCrLf & _
"Type: " & vbTab & (oFieldDefinition.Type))
Next
oAccount.Logoff
End SubErgebnis:
FeldnameFeldTYp
Title0
NameSuffix0
HomeState0
PreferredType0
WebSite0
PersonalNumber0
PhoneOther0
SMSNumber0
VoIPNumber0
VoIPAddress0
JobTitle0
Birthday0
BirthDayDate0
Angezeigter Name 20
Notes0
Account0
Address0
Attachments0
Category0
Fields0
FormattedNotes0
ID0
Parent0
PDACategory0
Picture0
Priority0
StatusTime0
Subject0
Type0
Nr0
Wo ist der Rest(Adressen etc) der ja definitiv unter "Alle Felder" in Tobit vorhanden ist ?? -
Das funktioniert aber leider nicht mit allen zur Verfügung stehenden Felder im AddressItem, sonst wäre es kein Problem.
Wie kann ich denn alle verfügabren Felder im AddressItem durchlaufen und mit Werten aus meiner Tabelle füllen. Wenn ich es richtig sehe muss ich dazu das MessageItem2 benutze. Ich bekomme die Syntax aber nicht auf die Reihe. Vielecht ist ja jemand so freundlich und hat einen Code zu Hand, der die nachfolgenden Felder belegt.DisplayName
Salutation
Title
LastName
FirstName
MiddleInitial
NameSuffix
HomeStreet
HomeZip
HomeCity
HomeState
HomeCountry
PhonePrivate
PhonePrivate2
AltFaxNumber
PhoneMobile
AltEMail
IMA-Aol
IMA-ICQ
IMA-Msn
IMA-Other
IMA-Skype
Company
Department
Office
Street
ZipCode
City
State
Country
PhoneCompany
PhoneOffice
PhoneOffice2
FaxNumber
PhoneCar
EMail
PreferredType
WebSite
Manager
Assistant
PhoneAssistant
PersonalNumber
Home2Street
Home2Zip
Home2City
Home2State
Home2Country
eMail3
FaxOther
PhoneCallback
PhoneISDN
PhoneOther
PhonePager
PhonePrimary
PhoneRadio
SMSNumber
Telex
VoiceBox
VoIPNumber
VoIPAddress
Nickname
Profession
JobTitle
Birthday
BirthDayDate
AnniversaryDate
LicensePlateNumber
SpouseName
Children
Notes -
Es geht mir um Davidfx und David Zehn.
Ich lese meine Adressbücher in eine Excelliste, weil sich dort vieles einfacher korriegieren, importieren oder hinzufügen lässt.
DAs funktioniert einwandfrei:
Sub Get_address()
Dim oApp As DvApi32.IApplication
Dim oAcc As DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oAddressbook As DvApi32.AddressBook
Dim oAddressItem As DvApi32.AddressItem
Dim oAddress As DvApi32.Address
Dim oFieldName
Dim fso, txtfile
ActiveSheet.Rows("4:65536").ClearContents
Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")
Set oAcc = oApp.Logon("", "", "", "", "", "NOAUTH")
Set oArchive = oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalAddress)
Set oAddressItem = oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem)
Set oAddressbook = oAcc.GlobalAddressBook
For x = 0 To oAddressbook.Count - 1
Set oAddress = oAddressbook.Item(x)
Set oAddressItem = oAddress.AddressItem
For Z = 1 To 69
oFieldName = Worksheets("Adressliste").Cells(3, Z).Value
On Error Resume Next
Worksheets("Adressliste").Cells(x + 4, Z).Value = oAddressItem.GetField(oFieldName)
Next Z
Next x
End SubWenn ich aber die Liste zurück in's David Archiv schreiebn möchte habe ich Probleme die Felder zu belegen.
Laut der Doku sollte es aber doch so funktionieren (der rotmarkierte Teil funktioniert nicht):
Sub Write()
Dim oApp As DvApi32.IApplication
Dim oAcc As DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oAddressbook As DvApi32.AddressBook
Dim oAddressItem As DvApi32.AddressItem
Dim oAddress As DvApi32.Address
Dim oFieldName, oFieldVal
Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")
Set oAcc = oApp.Logon("", "", "", "", "", "NOAUTH")
Set oArchive = oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalAddress)
'##############Neuen Kontakt im Adressbuch erzeugen (Index=0)####################
Set oAddressItem = oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem)
oAddressItem.DisplayName = "Test User"
oAddressItem.AltEMail = "chef@firma.de"
oAddressItem.AltFaxNumber = "555-333-555"
oAddressItem.Category = "2"
oAddressItem.City = " New York"
oAddressItem.Company = "Firm"
oAddressItem.Birthday = "15.06.1960"
oAddressItem.Save
'##############Kontrolle on Kontakt angelegt wurde############
Set oAddressbook = oAcc.PersonalAddressBook
Set oAddress = oAddressbook.Item(0)
Set oAddressItem = oAddress.AddressItem
MsgBox oAddressItem.DisplayName
'##########################Felder im Kontakt ändern##########
oFieldName = "Birthday"
oFieldValue = "10.10.1963"
oAddressItem.SetField(oFieldName,oFieldValue)
oAddressItem.Save()
End Sub -
Ist die Dokumentation der DVAPI hinsichtlich des BeBefehls SetField für das
AddreessItem korrekt?
Ich kann mit dem GetField Befehl wunderbar mein
komplettes Adressbuch mit allen Feldern auslesen. Ein Adressfeld mit dem
SetField Befehl neu zu schreiben ist mir bisher nicht gelungen.
Trotz
stundenlangem experimentieren ist mir das schreiben eines Wertes in ein
Adressfeld noch nicht gelungen.Sub SetField(vField, vValue)
Hat vielecht jemand ein funktionierendes Code Beispiel für VB
Danke und Gruß Michael -
Hallo Jens,
meine Angaben beziehen sich auf David Zehn und David fx.
Ich habe in meinem Beitrag ja schon geschrieben das ich alle Felder auslesen konnte. Dazu ist es aber nötig die "Feldnamen" zu kennen. Abfrage über die API sieht ja wie folgt aus.
oAddressItem.GetField(City)
oAddressItem.GetField(Birthday)
Das setzt aber voraus das man die Feldnamen (City,Birthday) kennt.
Zum anderen weiß man nie wie viele Felder es gibt, da der Count Befehl inerhalb des Objects AddressItem ja auch nicht existent ist.Ich strebe immer allgemein gültige Lösungen an die auch nach Änderungen der Felder (Name; Anzahl) funktionieren.
For a= 1 to oAddressItem.Fileds.Count (Wäre doch toll wenn das die tatsächlich vorhandene Anzahl an Feldern in einer Adresse wären)
oName=oAddressItem.Fields(a).Name (Feldnamen bestimmen und gleichzeitig als Tabellenkopf verwenden)
oAddressItem.GetField(oName) (vorher identifizierte Feldnamen zum auslesen der Inhalte verwenden und in Tabelle eintragen)
Mit der Prozedur wäre es egal wenn sich am Aufbau der Adessdatenbank was ändert (Feldnamen oder Anzahl).
Die Sache wäre immer gültig und man müsste nicht ständig nach den Feldnamen "forschen".
Gruß Michael -
Hallo Jens,
das kann ich mir eigentlich nicht vorstellen. Ich hatte zum testen die Felder eines Kontakts mit den Feldnamen des Feldes selber gefüllt und dann die Abfrage via API mit den Feldnamen gestartet die in im Infocenter unter alle Felder vorgegeben sind, um gleichzeitig eine Zuordnung der Felder zu erhalten, da es zur Doku einige Abweichungen gab. Wenn du dir mein Sheet in der abgehangenen Datei an siehst wirst du feststellen das die Abfrage alle verfügbaren Felder zurück gebracht hat. Ich finde es nur " zum weinen", wenn sich was an den Strukturen ändert, jedes mal auf's neue nach den neuen Feldnamen "forschen" zu müssen
Gruß Michael -
Hallo Kollegen,
Folgenden VB Code verwende ich um
über die DVAPI meine Adressdaten auszulesen. Leider gefällt mir an der gannzen
Sache nicht da es keine Möglichkeit gibt alle verfügbaren Adressfelder innerhalb
des Objects AddressItem mittels eines Count Befehls zu "zählen" um dann die
Namen über den Index auszulesen und weiter zu verwenden.Sub
Get_address()
Dim oApp As DvApi32.IApplication
Dim oAcc As
DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oAddressbook As
DvApi32.AddressBook
Dim oAddressItem As DvApi32.AddressItem
Dim oAddress
As DvApi32.Address
Dim oFieldName
Dim fso, txtfile
Set oApp =
CreateObject("DVOBJAPILib.DvISEAPI")
Set oAcc = oApp.Logon("", "", "", "",
"", "NOAUTH")
Set oArchive =
oAcc.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalAddress)
Set
oAddressItem = oArchive.NewItem(DvApi32.DvItemTypes.DvAddressItem)
Set
oAddressbook = oAcc.GlobalAddressBook
For x = 0 To oAddressbook.Count - 1
'Anzahl der Adressbucheinträge ermitteln
Set oAddress =
oAddressbook.Item(x)
Set oAddressItem = oAddress.AddressItem
For a = 0 To
oAddress.AddressItem.Fields.Count 'Anzahl der Adressfelder im object AddressItem
(so dachte ich es mir zumindest)
MsgBox oAddressItem.Fields(a).Name ' Das
Ergebnis sind aber leider nicht alle existenten Felder im object AddressItem
Warum nicht?????????????
Next a
For Z = 1 To 86
oFieldName =
Worksheets("Adressliste").Cells(1, Z).Value
On Error Resume
Next
Worksheets("Adressliste").Cells(x + 2, Z).Value =
oAddressItem.GetField(oFieldName)
Next Z
Next x
End SubEs muss
doch eine Möglichkeit geben die Felder innerhalb eines Adresseintrages
auszulesen?? Oder muss man die tatsächlich vom Feldnamen her
kennen??Vielen DAnk und Gruß Michael