2013-03-21 13 views
0

我遇到了一個奇怪的問題,即導出水晶報表會導致顯示MAPI地址簿時出現問題。這是兩個完全不相關的任務,我不明白一個人如何影響另一個。爲什麼導出Crystal Report會導致我的MAPI地址簿引發一些問題?

這是導出報表的例子:

Using rpt As New TestReport 
    rpt.ExportToStream(ExportFormatType.PortableDocFormat) 
End Using 

這是顯示MAPI地址簿的例子:

Dim msg As New AxMSMAPI.AxMAPIMessages 
Dim sess As New AxMSMAPI.AxMAPISession 
Dim f As System.Reflection.FieldInfo 
Const MAPI_LICENSE As String = "mgkgtgnnmnmninigthkgogggvmkhinjggnvm" 

f = GetType(AxHost).GetField("licenseKey", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance) 
f.SetValue(msg, MAPI_LICENSE) 
f.SetValue(sess, MAPI_LICENSE) 

sess.Parent = Me 
msg.Parent = Me 

sess.DownLoadMail = False 
sess.LogonUI = True 
sess.SignOn() 
sess.NewSession = True 
msg.SessionID = sess.SessionID 
msg.Compose() 

msg.Action = MSMAPI.MessagesActionConstants.mapShowAddressBook 

sess.SignOff() 

一個奇怪的事情是,如果我表現出的MAPI地址簿首先,然後導出水晶報表並在程序的剩餘時間顯示MAPI地址簿工作。如果我先導出,則MAPI地址簿在程序的剩餘時間內不起作用。

獲取引發的異常是在下面的行爲「未指定的故障發生」與我MAPI代碼和錯誤代碼「-2146796286」

msg.Action = MSMAPI.MessagesActionConstants.mapShowAddressBook 
+0

這是用Crystal 13.0.2000.0和MAPI 1.1.0.0 – BahKoo 2013-03-21 19:43:36

回答

0

對於什麼是價值,我也看到了問題水晶報表。我從來沒有機會找出最終原因,但在某些情況下查詢當前文件夾,運行報告,然後恢復當前文件夾似乎有所幫助。

+0

完成的。我嘗試了以下步驟,但無濟於事。這是你的意思嗎? 昏暗的路徑的String = Environment.CurrentDirectory 使用RPT作爲新TestReport rpt.ExportToStream(ExportFormatType.PortableDocFormat) 結束使用 Environment.CurrentDirectory =路徑 – BahKoo 2013-03-21 20:20:26

+0

是的,這就是我的意思。對不起,它不適合你... – 2013-03-21 22:39:31

相關問題