質問

私の上司は、ExcelにCorpのMantisのバグデータベースをエクスポートするために私に尋ねたが、彼は私にSQL Serverへのアクセス権を与えることができず、プロセスを自動化する必要があります。

私が使用することができる唯一のことは、Excel(ノーODBC、無手動エクスポート)です。

だから私はこれを行うために管理します:

Dim webClient As Object
Dim i As Long, vFF As Long, oResp() As Byte
Dim vLocalFile As String
Dim username As String, password As String

username = "blahblah"
password = "blahblah"

Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")

// Opening the connection to the application with a POST, containing user, password, and "permanent login" checked

webClient.Open "POST", "http://10.202.157.40/mantisbt-1.1.6/login.php", False
webClient.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
webClient.send ("username=" & username & "&password=" & password & "&perm_login=on")

// Now I set the "project" to "All Projects" (as I want the view to display our 2200 bugs)

webClient.Open "POST", "http://10.202.157.40/mantisbt-1.1.6/set_project.php", False
webClient.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
webClient.send ("project_id=0")

// The problem is, the last query displays 624 bugs instead of 2200, but I noticed when I click on "Advanced Filters" it successfully show the 2200 bugs (tested under a web browser AND Excel : the ResponseText shows them)

webClient.Open "GET", "http://10.202.157.40/mantisbt-1.1.6/view_all_set.php?type=6&view_type=advanced", False
webClient.send

// And NOW I can download the CSV file... (and that's where something is wrong *)

webClient.Open "GET", "http://10.202.157.40/mantisbt-1.1.6/csv_export.php", False
webClient.send

oResp = webClient.responseBody

// Creating a file and then filling it...
vFF = FreeFile
vLocalFile = "_mantis_export.csv"
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF

// Freeing memory
Set webClient = Nothing

(*:コードをCF)ラインの前に、ResponseTextは「2200年のバグ」を示したので、すべてが最後のクエリ(csv_export.php)まで大丈夫でした。ブラウザ経由で呼び出されたスクリプトは、(ページが2個のバグを示した場合、CSVは2つのバグが含まれます)、それを呼び出したページとまったく同じことを示しています。 IE / Firefoxで示した私の2200のバグでは、CSVは私に2200個のバグをもたらします。 しかし、Excelで、ResponseText 2200個のバグを示していても、CSVは私をもたらし624のバグ...私は「高度なフィルタ」ページと呼ばれていなかったかのように:(

);

私は誰かが私を理解し、役立つことを願って

事前のおかげで、

デビッド

役に立ちましたか?

解決

あなたは、SOAP APIを使用するために、

おそらくそれは容易になるだろうか? //server/mantis/api/soap/mantisconnect.php のhttpであります>。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top