سؤال

طلب مني بوس الخاص بي تصدير قاعدة بيانات Gorp Mantis Bugs إلى Excel، لكنه لا يستطيع منحني إمكانية الوصول إلى 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 الرمز) السطر من قبل، وأظهرت المسؤولية "2200 أخطاء"، لذلك كان كل شيء على ما يرام حتى الاستعلام الأخير (CSV_EXPORT.PHP). يظهر البرنامج النصي، عند الاتصال عبر المستعرض، نفس الصفحة التي تسمى (إذا أظهرت الصفحة أخطاء، سيحتوي CSV على 8 أخطاء). مع البق 2200 المعروض في IE / Firefox، يجلبني CSV 2200 أخطاء. ولكن في Excel، حتى إذا أظهرت المسؤولية 2200 أخطاء، فإن CSV يجلبني 624 أخطاء ... كما لو أنني لم أسمى صفحة "مرشح متقدم" :(

آمل أن يفهم شخص ما ومساعدتي؛)

شكرا لك مقدما،

ديفيد

هل كانت مفيدة؟

المحلول

ربما سيكون من الأسهل بالنسبة لك استخدام API الصابون؟ نقطة الدخول في http: //server/mantis/api/soap/mantisconnect.php. .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top