2014-01-08 18 views
0

我遇到FaxDoc.Bodies函数有问题。我得到错误“方法数据应该在一个一维的基于零的字符串数组中传递。”VBScript传真多个文档阵列问题

我已经尝试了所有我能想到的,从使用arrayD()直接在FaxDoc.Bodies元素上。有任何想法吗?

Dim strJobIds 
Dim STAttach(1) 
'On Error Resume Next 
Set FaxServer = WScript.CreateObject("FAXCOMEX.FaxServer") 

WScript.Echo "FaxServer created" 
FaxServer.Connect "" 


Set FaxDoc = WScript.CreateObject("FAXCOMEX.FaxDocument") 



STAttach(0)="chili.txt" 
STAttach(1)="sugarcookies.txt" 


FaxDoc.Bodies=STAttach 

FaxDoc.DocumentName = "My First Fax" 

FaxDoc.Recipients.Add ("15555551234") 

FaxDoc.Sender.Email = "[email protected]" 
FaxDoc.Sender.Name = "Bob" 
FaxDoc.Sender.FaxNumber = "15555555678" 

' Optionally, Use FaxDoc.CoverPage and FaxDoc.CoverPageType to specify a cover page 
' FaxDoc.CoverPage = generic 
' FaxDoc.CoverPageType = 2 

' Optionally, you can control banner in outbound faxes 
FaxServer.Folders.OutgoingQueue.Branding = True 
FaxServer.Folders.OutgoingQueue.Save  '  Make the change persistent 
' Optionally, use FaxServer.Folders.OutgoingQueue.Retries and 
' FaxServer.Folders.OutgoingQueue.RetryDelay to control retries 

' Submit the document to the connected fax server and get back the job ID. 
strJobIds="" 
JobID = FaxDoc.ConnectedSubmit2(FaxServer, strJobIds) 

WScript.Echo "FaxDoc.ConnectedSubmit success" 

回答

1

它要求一个数组,并用分号分隔不工作,并返回相同的错误消息。

但是,我找到了使用VBA控制台应用程序而不是VBScript的解决方案。我的代码如下:

Module Module1 
    Function DecodeToDocArray(ByVal inputDocListString As String, ByRef numDocuments As Integer, ByRef bRetVal As Boolean) As String() 
     bRetVal = False 
     If (String.IsNullOrEmpty(inputDocListString)) Then 
      Return Nothing 
     End If 
     Dim docArray As String() 
     Dim strDelimiter As String 
     Dim delimiter As Char() 

     docArray = Nothing 
     strDelimiter = ";" 
     delimiter = strDelimiter.ToCharArray() 
     docArray = inputDocListString.Split(delimiter) 
     numDocuments = docArray.GetLength(0) 
     bRetVal = True 
     Return docArray 
    End Function 
    Sub Main() 



     Dim retVal As Boolean 
     Dim numDocs As Integer 
     Dim docArray As String() 
     Dim strDocList As String = "chili.txt;sugarcookies.txt" 
     MsgBox(strDocList) 
     numDocs = 0 
     docArray = DecodeToDocArray(strDocList, numDocs, retVal) 
     If ((docArray.GetLength(0) = 0) Or (retVal = False)) Then 
      System.Console.WriteLine("DecodeToDocArray failed") 
      retVal = False 
      MsgBox("End") 
      End 
     End If 

     Dim FaxDoc = CreateObject("FAXCOMEX.FaxDocument") 
     Dim FaxServer = CreateObject("FAXCOMEX.FaxServer") 
     FaxServer.Connect("") 

     MsgBox("test") 
     FaxDoc.Bodies = docArray 
     FaxDoc.Sender.LoadDefaultSender() 
     FaxDoc.Recipients.Add("15555551234", "TestUser") 
     Dim strJobIds As Object 
     strJobIds = Nothing 

     FaxDoc.ConnectedSubmit2(FaxServer, strJobIds) 

     MsgBox("sent") 

    End Sub 

End Module 
+0

很好找,并感谢您张贴解决方案!也许你可以将你的答案标记为正确答案,所以对于有同样问题的其他人可以更容易地找到答案。 – AutomatedChaos

+0

我打算,但它说我必须等一天才能。 – SyntaxLAMP